As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only.
Join the TIBCO Community TIBCO Community is a collaborative space for users to share knowledge and support one another in making the best use of TIBCO products and services. There are several TIBCO WebFOCUS resources in the community.
From the Home page, select Predict: WebFOCUS to view articles, questions, and trending articles.
Select Products from the top navigation bar, scroll, and then select the TIBCO WebFOCUS product page to view product overview, articles, and discussions.
Request access to the private WebFOCUS User Group (login required) to network with fellow members.
Former myibi community members should have received an email on 8/3/22 to activate their user accounts to join the community. Check your Spam folder for the email. Please get in touch with us at community@tibco.com for further assistance. Reference the community FAQ to learn more about the community.
I have a fex that creates a holdfile used by several external fexes. Lets say I prompt in this initial fex for Dept, Report Type and Period, all multi-selects.
How do I pass these values onto subsequent report fexes referencing the hold file - for example to place in a report header so the user knows what was selected...? Should they somehow be included as items in the hold file..I did not have much luck with that.
Ideas?This message has been edited. Last edited by: RobertF,
I tend to solve that using an FORMAT ALPHA hold-file for each value-list and then loop over the rows in each file to concatenate them into several dialog manager variables.
For example:
TABLE FILE INITIAL
SUM Dept
ON TABLE HOLD AS DEPTS FORMAT ALPHA
END
-RUN
-SET &DEPTSTR = '';
-SET &COMMA = ' ';
-SET &Dept = '';
-REPEAT :DEPTLOOP FOR &ROW FROM 1 TO &LINES;
-READFILE DEPTS
-SET &Dept = TRUNCATE(&Dept);
-TYPE Row &ROW: Dept = &Dept
-SET &DEPTSTR = &DEPTSTR || &COMMA | &Dept.QUOTEDSTRING;
-SET &COMMA = ',';
-:DEPTLOOP
-TYPE Departments: &DEPTSTR
WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, SAP, PostgreSQL 11, Output: HTML, PDF, Excel 2010 : Member of User Group Benelux :
Indeed it does! Seems I mixed up the two lines that were supposed to be there while deciding what to name the table and columns. That should have been:
SET HOLDLIST = PRINTONLY
TABLE FILE INITIAL
SUM FST.Dept
BY DEPT NOPRINT
ON TABLE HOLD AS DEPTS FORMAT ALPHA
END
WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, SAP, PostgreSQL 11, Output: HTML, PDF, Excel 2010 : Member of User Group Benelux :
I am glad this is possible but I am not quite following what needs to be done.
To start I have code like this, it evaluates what will be prompted for in a future where clause, if the user selects ALL, (FOC_NULL) then it puts the literal: 'ALL' in there, otherwise, it will conatin something like: PEDIATRICS OR MEDICINE...should the user choose two specialties for examlpe.
-SET &SPECIALTYPROMPT = IF &IDXSPECIALTY EQ '_FOC_NULL' THEN 'All' ELSE &IDXSPECIALTY;
Down a few lines, the user is prompted (MultiSelect) for Specialty in the WHERE Clause. Here is that code...sorry about the long table names!
WHERE ( TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY EQ &IDXSPECIALTY.(OR(FIND TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY,TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY IN TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL)).enter specialty. )
All this gets called via an HTML Page. The data is stored in a HOLD file available to external fexes.
Subsequent HTML Push buttons pointing to various oher fexes yeild various reports off this hold file. Id like to imbed whatever the user selects for: Specialty in a page header for reference....but it exists in the original fex and not the subsequent fexes that use the hold file.
I am not sure if I need to make these fields part of the hold file....or what to do.
Robert, Have you thought about creating two separate hold tables - one to hold the data and another to hold the selection criteria, or perhaps a multi-path Focus hold file? Essentially by building an initial Hold file you are creating a mini datamart, so there should be a way to store those initial selection criteria as normal, separate, variables.
i hope you're naming your extract something other than HOLD... just make the parameters selected fields in that extract file EG if COUNTRY and CAR are selected, then APP HOLD someapp TABLE FILE IBISAMP/CAR SUM SALES DCOST BY COUNTRY BY CAR BY MODEL BY SEATS IF COUNTRY IS &MYCOUNTRY.QUOTEDSTRING IF CAR IS &MYCAR.QUOTEDSTRING ON TABLE HOLD AS MYEXTRACT FORMAT [alpha or focus or xfocus even} END ... then in subsequent fexes, count the number of distinct values in COUNTRY, if just 1, then use that value in your HEADING if>1, then probably not picked as a parm same with CAR, lather, rinse,repeat
i like George's idea better, i'm thinking
In Focus since 1979///7706m/5 ;wintel 2008/64;OAM security; Oracle db, ///MRE/BID
Posts: 3811 | Location: Manhattan | Registered: October 28, 2003
I guess I could make another HOLD file holding these values...not sure to what end though. A future fex has to point to one HOLD file or another unless you are suggesting I join them some how....?
I did try throwing them into a DEFINE with the thought of then throwing the newly defined item into my BY clause. The thought was that essentially every row would have a column containing the values the user selected when prompted, and that would then be in the HOLD file and available to any future fex. It seems a little inefficient but I thought it should work. It did not.
When I tried to SET say: SET &SPECIALTYPROMPT = IF &IDXSPECIALTY EQ '_FOC_NULL' THEN 'All' ELSE &IDXSPECIALTY;
Then added a DEFINE, say: SPECIALTYPAGEHEADER/A200 = &SPECIALYPROMPT
with echo on, you can see it trying to set SPECIALTYPAGEHEADER to what ever the user has chosen...say: 'CLINIC' OR 'MEDICINE'...but it errors out. I really want the value to be the literal 'CLINIC OR MEDICINE' I guess...
I tried wrapping quotes around &SPECIALTYPROMPT...still error'd out.
I thought I was onto something but now can not get the user prompted selction into a defined variable....
If you arrange to have a HOLD-file for each property, you can add such a WHERE-clause for each file/property.
For example:
TABLE FILE INITIAL
SUM FST.FIELD1
BY FIELD1 NOPRINT
ON TABLE HOLD AS FOCCACHE/FIELD1_HOLD
END
TABLE FILE INITIAL
SUM FST.FIELD2
BY FIELD2 NOPRINT
ON TABLE HOLD AS FOCCACHE/FIELD2_HOLD
END
TABLE FILE INITIAL
PRINT *
WHERE FIELD1 IN FILE FIELD1_HOLD;
WHERE FIELD2 IN FILE FIELD2_HOLD;
WHERE FOO EQ BAR;
HEADING
"The actual report"
END
Supposedly you're creating those files in the top-level report? We do something like that and store those HOLD-files in the FOCCACHE, so that it stays available to the user in their entire session. No need to pass those values on with the URL/drilldown that way and no need to interpret the contents quite so often.
More advanced implementation:
We went a bit further even and (in some reports) allow a user to have several such HOLD-files from multiple top-level report runs, so that windows or tabs they kept open still update correctly (normally a new report-run overwrites the HOLD-files that the contents of the drilldown report were based on, so a refresh would show the "new" results).
Basically, we increment a number each time a user runs our top-level report (using a sequence generator in one of our RDBMSes) and append that to the name of the HOLD-file. The sequence number is passed on with our drilldowns so that we can construct the correct HOLD-file name to query (in reality we pass on the HOLD-file name with the sequence number appended, I don't recall why we chose to go that route).
To manage all that, we created a number of -INCLUDEs that automate much of that process.
WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, SAP, PostgreSQL 11, Output: HTML, PDF, Excel 2010 : Member of User Group Benelux :
A future fex has to point to one HOLD file or another unless you are suggesting I join them some how....?
...ah, but a future fex can read as many files as you want...so you read the little hold file first, extract the parameters that you've parked there, use a -READ to do that. and then use those &vars you create with your -READ to populate the heading of your final report...that final report reading your second hold file. see?
In Focus since 1979///7706m/5 ;wintel 2008/64;OAM security; Oracle db, ///MRE/BID
Posts: 3811 | Location: Manhattan | Registered: October 28, 2003
Maybe I've just missed something in this whole conversation... But why are we even using a hold file to begin with? In order to create the hold file for each fex it seems that your passing variables x/y/z anyways. So why not skip creating the hold file/reading the same variables out, and just post the initial variables in the Header?
Eric Woerle 8.1.05M Gen 913- Reporting Server Unix 8.1.05 Client Unix Oracle 11.2.0.2
Posts: 750 | Location: Warrenville, IL | Registered: January 08, 2013
I took a few more reads of the question, and I think I understand what you are asking.... I think if this were me, I would use -write to write the Header with the variables to a text file and then use a -include as the first lines of the header. Just my two cents. Why bother re-reading the hold file or making another. Just write the header once and include it everywhere.
Eric Woerle 8.1.05M Gen 913- Reporting Server Unix 8.1.05 Client Unix Oracle 11.2.0.2
Posts: 750 | Location: Warrenville, IL | Registered: January 08, 2013
...ah, but a future fex can read as many files as you want...so you read the little hold file first, extract the parameters that you've parked there, use a -READ to do that. and then use those &vars you create with your -READ to populate the heading of your final report...that final report reading your second hold file. see?
Thanks All. These approaches have promise but are outside the bounds of what I have done in the past:
...ah, but a future fex can read as many files as you want...so you read the little hold file first, extract the parameters that you've parked there, use a -READ to do that. and then use those &vars you create with your -READ to populate the heading of your final report...that final report reading your second hold file. see?
I took a few more reads of the question, and I think I understand what you are asking.... I think if this were me, I would use -write to write the Header with the variables to a text file and then use a -include as the first lines of the header. Just my two cents. Why bother re-reading the hold file or making another. Just write the header once and include it everywhere
First, I can't even tinker right now because ther server has been down to two days...serves me right for trying to create a new report over the weekend I guess.
Second, The initial hold file provides data for a variety of subsequent reports. Any or all of the data therein might be selected on future reports. I would not want to requery the data set each time the user wants a new flavor of something, or if they wanted the same report but then to include or exclude something. The hold file is available for the user's entire session. Initial reports off this file are more summary level with drill downs available. This hold file also acts as the source for both.
The user has quite a bit of flexsibility in selectng what their initial data set is (hold file). Date ranges, Depts, Employees etc. etc. can all be chosen On the initial report off the hold file I want to be able to show them what they selected. Yes, if this were a report instead of a hold file it works fine but thats not what we need in this case.
The -write solution descibed above, to make a text file and then include it in the header sounds promising...Have you done this? I'll have to find the syntax for that...never knew you could do that.
The idea of sticking the parameters in a little hold file and using that file to populate variables in a future fex sounds doable as well...again, I have never tried that.
I hope I can figure out the syntax for each of these methods and try them...when I get my server back!
Server is back but no luck. Lets tak a simple example.
Lets say I want to make the model/s chosen avaiable in an external fex referencing the HOLD file created. Ex: if I choose Camry and Sienna I would want to have this in my page header in an external fex referencing the hold file created:
Car Model Report Select Model: Camry or Sienna
How do I get the model over to the external fex?
TABLE FILE CAR SUM CAR.BODY.SALES BY LOWEST CAR.COMP.CAR BY LOWEST CAR.CARREC.MODEL WHERE CAR.CARREC.MODEL EQ &MODEL.(OR(FIND CAR.CARREC.MODEL,CAR.CARREC.MODEL IN CAR)).enter model/s.; ON TABLE SET PAGE-NUM NOLEAD ON TABLE NOTOTAL ON TABLE HOLD AS CARMODELS FORMAT FOCUS ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * INCLUDE = IBFS:/EDA/EDASERVE/_EDAHOME/ETC/endeflt.sty, $ ENDSTYLE END
TABLE FILE CAR
SUM
CAR.BODY.SALES
BY LOWEST CAR.COMP.CAR
BY LOWEST CAR.CARREC.MODEL
WHERE CAR.CARREC.MODEL EQ &MODEL.(OR(FIND CAR.CARREC.MODEL,CAR.CARREC.MODEL IN CAR)).enter model/s.;
ON TABLE SET PAGE-NUM NOLEAD
ON TABLE NOTOTAL
ON TABLE HOLD AS CARMODELS FORMAT FOCUS
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
INCLUDE = IBFS:/EDA/EDASERVE/_EDAHOME/ETC/endeflt.sty,
$
ENDSTYLE
END
EX /WFC/Repository/Public/car_two.fex MODEL=&MODEL.QUOTEDSTRING
car_two.fex
-SET &MODELIN = IF &MODEL EQ _FOC_NULL THEN 'All' ELSE &MODEL.QUOTEDSTRING;
TABLE FILE CARMODELS
SUM
SALES
BY LOWEST CAR
BY LOWEST MODEL
HEADING
"You chose the following Models: &MODELIN"
ON TABLE SET PAGE-NUM NOLEAD
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
INCLUDE = IBFS:/EDA/EDASERVE/_EDAHOME/ETC/endeflt.sty,
$
ENDSTYLE
END
WebFOCUS 8.2.03 (8.2.06 in testing)
Posts: 253 | Location: Melbourne, Australia | Registered: February 07, 2007
A couple things. 1) This is a user forum in which people volunteer there time. We have full time jobs and will not always be able to provide you with answers right away. 2) For the same reason as 1, weekends tend to not get a lot of responses because people are spending their time with their families, not trolling a user forum on their time off. Please be patient as people here are generally helping you out of a desire to be helpful.
As for your "Cognos" buddies, I guarentee you I could do plenty of things in WF that they can't in Cognos and vice versa. Each tool has their strong points, so please don't insult the people that are trying to offer you advice by making comments about things you don't understand.
The help files have a lot of information about how to construct -write commands. I suggest you open the help files and do some reading about the multiple ways this can be done if the already provided explanations of -READ doesn't work for you.
Eric Woerle 8.1.05M Gen 913- Reporting Server Unix 8.1.05 Client Unix Oracle 11.2.0.2
Posts: 750 | Location: Warrenville, IL | Registered: January 08, 2013
Stu...thanks...I am on vacation with (believe it not in this day and age...erractic wireless connectivity)...look forward to trying the QUOTEDSTRING.
Eric, Yes I understand weekends etc...I was hoping for an answer because I had a deliverable I wanted to to put to rest before vacation. All was for not because the server ended up going down for 3 days.
I know this thing can run circles around Cognos but, at times, the thing is frustrating in trying to the basics...this was one of those times for me.
There are many help sources but I was unable to get the answer I needed.
In my example I'm explicitly calling the second procedure and passing the value of &MODEL via the EX command.
If the second (third or forth) procedures were being called external to the first FEX then you could either use global variables or write to the hold file via a DEFINE or COMPUTE.
-*New CAR_ONE.FEX - NOTE: you don't want to both &&PARAMETER and DEFINE. Choose one
-SET &&MODEL = IF &MODEL EQ _FOC_NULL THEN 'All' ELSE &MODEL.QUOTEDSTRING;
DEFINE FILE CAR
MODEL_PARAM/A200V = &&MODEL.QUOTEDSTRING;
END
TABLE FILE CAR
PRINT
CAR.BODY.DEALER_COST
CAR.BODY.RETAIL_COST
CAR.BODY.SALES
MODEL_PARAM
BY LOWEST CAR.CARREC.MODEL
WHERE CAR.CARREC.MODEL EQ &MODEL.(OR(FIND CAR.CARREC.MODEL IN CAR)).MODEL:.;
ON TABLE SET PAGE-NUM NOLEAD
ON TABLE NOTOTAL
ON TABLE HOLD AS FOCCACHE/CARMODELS FORMAT FOCUS
END
-*New CAR_TWO.FEX
TABLE FILE CARMODELS
PRINT DEALER_COST RETAIL_COST SALES
BY MODEL
HEADING
"&&MODEL"
END
-*CAR_THREE.FEX
TABLE FILE CARMODELS
PRINT MODEL_PARAM
WHERE RECORDLIMIT EQ 1
ON TABLE HOLD AS DEPTS FORMAT ALPHA
END
-RUN
-READFILE DEPTS
TABLE FILE CARMODELS
PRINT DEALER_COST RETAIL_COST SALES
BY MODEL
HEADING
"&MODEL_PARAM"
END
-* CAR_FOUR.FEX
TABLE FILE CARMODELS
PRINT DEALER_COST RETAIL_COST SALES
BY MODEL
HEADING
"<MODEL_PARAM"
END
WebFOCUS 8.2.03 (8.2.06 in testing)
Posts: 253 | Location: Melbourne, Australia | Registered: February 07, 2007
Hey Stu...it worked....with the car file. For some reason I get an error with my table though...the thing is taunting me!
When I run the car fex I indeed get a hold file with user selection criteria store in a variable.
I get an error on my file. Since I have no experience with the double &, any tips on where I may read up on it...or tips in general are appreciated. Here is the code. Like I said, if uncomment out the car portion, and comment out the rest, it creates a hold file with the user selected models as a variable. If I comment the car code out and run my code, I get this error:
0 ERROR AT OR NEAR LINE 22 IN PROCEDURE ADHOCRQ FOCEXEC * (FOC295) A VALUE IS MISSING FOR: &&IDXSPECIALTY
-* CAR EXAMPLE -*DEFINE FILE CAR -*MODEL_PARAM/A200V = &&MODEL.QUOTEDSTRING; -*END -*TABLE FILE CAR -*PRINT -* CAR.BODY.DEALER_COST -* CAR.BODY.RETAIL_COST -* CAR.BODY.SALES -* MODEL_PARAM -*BY LOWEST CAR.CARREC.MODEL -*WHERE CAR.CARREC.MODEL EQ &MODEL.(OR(FIND CAR.CARREC.MODEL IN CAR)).MODEL:.; -*ON TABLE SET PAGE-NUM NOLEAD -*ON TABLE NOTOTAL -*ON TABLE HOLD AS FOCCACHE/CARMODELS FORMAT FOCUS -*END
-* ACTUAL DATA SAMPLE DEFINE FILE TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL SPECIALTY_PARAM/A200V = &&IDXSPECIALTY.QUOTEDSTRING; END TABLE FILE TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL PRINT TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY SPECIALTY_PARAM ON TABLE SET PAGE-NUM NOLEAD ON TABLE NOTOTAL ON TABLE HOLD AS FOCCACHE/TESTDATARF FORMAT FOCUS END
Where did you -SET &&IDXSPECIALTY? That should be in the fex where you drilled down from.
The error says the variable has no value, so either you followed a route to this fex where it didn't get set, or it got lost somewhere (that happens here, haven't figured out yet why).
Another possible cause of your problem: Allegedly, a -EXIT can cause the loss of your &&-variables. Apparently, that's somehow not a bug, but intended behaviour. At least, that's what IBI support claims.
So, instead of using -EXIT, we're supposed to use -GOTO and a label at the end of the procedure to exit a procedure gracefully.
WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, SAP, PostgreSQL 11, Output: HTML, PDF, Excel 2010 : Member of User Group Benelux :
-*New CAR_ONE.FEX - NOTE: you don't want to both &&PARAMETER and DEFINE. Choose one
The code present in my latest post is currently the code run. I figured I's simplify it and get it working at it's simple level first. The Car Code that works (commented out), to my eye, looks just like my production code....the one that errors out.
To your questions: I did not SET &&IDXSPECIALTY. Per STU: -*New CAR_ONE.FEX - NOTE: you don't want to both &&PARAMETER and DEFINE. Choose one
I do not see him setting the &&Model and the car code works. Again, the code I am running is commented out above. To be honest, I do not know exacly how the &&MODEL variable is egtting its value. I assume from the regular &Model in the WHERE clause...?
I don't have a EXIT or GOTO in the latest code but I will keep that in mind since at some point I may.
...lost my WHERE clause I gess...still does not seem to work...same error...
DEFINE FILE TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL SPECIALTY_PARAM/A200V = &&IDXSPECIALTY.QUOTEDSTRING; END TABLE FILE TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL PRINT TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY SPECIALTY_PARAM BY LOWEST TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY WHERE TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY EQ &IDXSPECIALTY.(OR(FIND TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY,TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY IN TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL)).select specialty.; ON TABLE SET PAGE-NUM NOLEAD ON TABLE NOTOTAL ON TABLE HOLD AS FOCCACHE/TESTDATARF FORMAT FOCUS END
On the very first line of this prgram, do -SET &IDXSPECIALTY={a valid value}; Make sure you have the ending semi-colon. Then run the code. Also, in the CAR example there is no '.select' at the end of the WHERE clause but you have one. This could make a difference but try the suggestion above first.
Greg
current client: WF 8.1.05 & 8.2 - Windows 7 64bit - Tomcat 7 - MRE / BID - IE11
GOT IT! I must have misunderstood Stu. Thanks Wep and everyone. You do need the -SET statement. This code now runs:
-SET &&IDXSPECIALTY = IF &IDXSPECIALTY EQ _FOC_NULL THEN 'All' ELSE &IDXSPECIALTY.QUOTEDSTRING; DEFINE FILE TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL SPECIALTY_PARAM/A200V = &&IDXSPECIALTY.QUOTEDSTRING; END TABLE FILE TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL BY LOWEST TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY BY LOWEST SPECIALTY_PARAM WHERE TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY EQ &IDXSPECIALTY.(OR(FIND TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY,TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL.IDXSPECIALTY IN TBLMSTR_ACTUALBUDGETUNITWRVUCOMBINEDDETAIL)).select specialty.;
ON TABLE SET PAGE-NUM NOLEAD ON TABLE NOTOTAL ON TABLE HOLD AS FOCCACHE/TESTDATARF FORMAT FOCUS END
Of course I now have to incorporate into my real production code and then hope it runs via my html page but its looking better. Thanks again.