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'm working in MR on a couple of drill-down procedures along the lines of "Select a user, select a user's record, select a report to run against that record."
My problem is that I cannot find a good way to get a dynamic list of reports. It would be great if I could return a list of the Standard Reports from the MR Interface, much like how the Report Assistant lists them out when you are specifying drill-down information.
you can make your own file of reports by reading the fex directory with a dos command, write the resulting list to a file, CMD DIR D:/IBI/WEBFOCUS52/basedir/.../*.fex > MYLIST.txt and then read that file , rewriting it (with option tags around the fex names,)into a dropdown list in your fex launch page.
the fexnames themselves might not be very useful, since they'll be short names , not very informative, so you might have to run that list thru a decode.
Posts: 3811 | Location: Manhattan | Registered: October 28, 2003
Here's a master and a fex I've developed to read the MRE domain HTML file and print a list of FEXes. At the moment I cannot filter on a folder name. I'd like to change the Master to somehow have multiple segments, but I cannot recall how to do that with a flat file.>Enjoy.
$
MREBASEDIR
FILE=MREBASEDIR, SUFFIX=FIX, $
SEGNAME=MRE_LINE, SEGTYPE=S0,
$ FIELD=MRE_LINE, MRE_LINE,
A200, A200, MISSING=OFF ,$SEGNAME=MRE_FOLDER,
PARENT=MRE_LINE, SEGTYPE=S0, $FIELD=MRE_FOLDER_LINE,
MRE_FOLDER_LINE,
A200, A200, MISSING=OFF ,$
DEFINE MRE_LINE_TYPE/A10 =
IF MRE_LINE CONTAINS 'HTML>' OR
'HEAD>' OR 'TITLE>' OR 'BODY>' OR
'FONT>' OR '<P>' THEN 'HTMLTAG'
ELSEIF MRE_LINE CONTAINS '
< !--' THEN 'COMMENT' ELSE
IF MRE_LINE CONTAINS '.kmd' OR
'app/help.htm' THEN 'MISC'
ELSE IF MRE_LINE CONTAINS '<A HREF=''#'
THEN 'FOLDER' ELSE IF MRE_LINE CONTAINS
'.fex' THEN 'FEX'
ELSE
IF MRE_LINE CONTAINS '.htm' THEN
'HTML' ELSE'LINE';-- Determine
Folder ID and Name DEFINE MRE_
FOLDER_ID/A12 = SUBSTR(200, MRE_FOLDER_LINE,
11, 22, 12, 'A12');
DEFINE MRE_FONMS/I2 = POSIT(MRE_
FOLDER_LINE, 200, 'MRFLAG=''none''>', 14, 'I2') + 14;
DEFINE MRE_FONME/I2 = POSIT
(MRE_FOLDER_LINE, 200, '</A>',
4, 'I2') - 1;
DEFINE MRE_FOLDER_NM/A60 =
SUBSTR(200,
MRE_FOLDER_LINE, MRE_FONMS,
MRE_FONME, 60, 'A60');Determine FEX ID
and Name
DEFINE MRE_FXS/I2 = POSIT
(MRE_LINE, 200, 'app/', 4, 'I2') + 4;<br />DEFINE MRE_FXE/I2 = POSIT
(MRE_LINE, 200, '.fex', 4, 'I2') +
3;DEFINE MRE_FXL = MRE_FXE -
MRE_FXS + 1;
DEFINE MRE_FEX_ID/A12 =
SUBSTR(200, MRE_LINE, MRE_FXS,
MRE_FXE, MRE_FXL, 'A12');
DEFINE MRE_FXNMS/I2 = POSIT
(MRE_LINE, 200, '''>', 2, 'I2') + 2;
DEFINE MRE_FXNME/I2 = POSIT(MRE_LINE,
200, '</A>', 4, 'I2') - 1
DEFINE MRE_FXNML = MRE_FXNME -
MRE_FXNMS + 1;DEFINE MRE_FEX_NM/A60 = SUBSTR(200, MRE_LINE, MRE_FXNMS,
MRE_FXNME, MRE_FXNML, 'A60');
Determine HTML ID and Name
DEFINE MRE_HTS/I2 = POSIT(
MRE_LINE, 200, 'app/', 4, 'I2') +
4;DEFINE MRE_HTE/I2 = POSIT
(MRE_LINE, 200, '.htm', 4, 'I2') + 3;
DEFINE MRE_HTL = MRE_HTE - MRE_HTS + 1;
DEFINE MRE_HTML_ID/A12 =
SUBSTR(200, MRE_
LINE, MRE_HTS, MRE_HTE, MRE_HTL, 'A12');
/>DEFINE MRE_HTNMS/I2 =
POSIT(MRE_LINE, 200, '''>', 2, 'I2')
+ 2;DEFINE MRE_HTNME/I2 = P
OSIT(MRE_LINE, 200, '</A>', 4, 'I2') - 1;
DEFINE MRE_HTNML =
MRE_HTNME -
MRE_HTNMS + 1;
DEFINE MRE_HTML_NM/A60 = SUBSTR(200,
MRE_LINE, MRE_HTNMS, MRE_HTNME,
MRE_HTNML, 'A60');
DEFINE MRE_PROG_ID/A12 =
IF MRE_LINE_TYPE EQ
'FEX' THEN MRE_FEX_ID ELSE
IF MRE_LINE_TYPE EQ 'HTML'
THEN MRE_HTML_ID ELSE TITLE='Program ID', $DEFINE MRE_PROG_NM/A60 = IF
MRE_LINE_TYPE EQ 'FEX'
THEN MRE_FEX_NM ELSE IF MRE_LINE_TYPE EQ 'HTML'
THEN MRE_HTML_NM ELSE '';TITLE='Program Name',
$Determine MRE parameters
DEFINE MRE_PMS/I2 = POSIT(
MRE_LINE, 200, 'MRFLAG=', 7, 'I2') +
8;DEFINE MRE_PME/I2 = POSIT(MRE_LINE, 200, '''>', 2, 'I2') - 1;DEFINE MRE_PML =
MRE_PME - MRE_PMS + 1;DEFINE
MRE_PARMS/A60 = SUBSTR(200,
MRE_LINE, MRE_PMS, MRE_PME, MRE_PML, 'A60');
DEFINE MRE_PARMS_PP/A3 =
IF MRE_PARMS CONTAINS '
skipamper' THEN 'No' ELSE 'Yes';
TITLE='Prompt for,Parameters', $DEFINE MRE_PARMS_SU/A3 =
IF MRE_PARMS CONTAINS 'hidden' THEN
'No' ELSE 'Yes'; TITLE=
'Show on,User''s List', $
DEFINE MRE_PARMS_DF/A3 = IF MRE_PARMS
CONTAINS 'defer' THEN 'Yes' ELSE 'No';
TITLE='Only run,Deferred',
DEFINE MRE_PARMS_OL/A3 = IF MRE_PARMS CONTAINS 'runasolap' THEN 'Yes' ELSE 'No';
TITLE='Run with,OLAP',
[code]-SET &ECHO=ALL;SET PAGE = NOLEAD-RUNFILEDEF MREBASEDIR DISK\ibi\apps\basedir\retrocab\ retrocab.htm>TABLE FILE MREBASEDIR PRINT MRE_PROG_ID MRE_PROG_NM >WHERE MRE_LINE_TYPE IN ('FEX', 'HTML') ON TABLE SET STYLESHEET TYPE=REPORT, GRID=OFF, FONT='VERDANA', SIZE=8, $ ENDSTYLE<br />ENDThis message has been edited. Last edited by: <Mabel>,
.... and if you are using resource layout tool to b uild your (D)HTML then strip the stylesheet info, add ON TABLE PCHOLD FORMAT XML and then change your SELECT box to call the procedure. I use the simple fex below to supply available years in the target database
SET HOLDLIST = P
RINTONLYSQL
select year(bk_date) as byear
from BIDEV.dbo.c1_maindata s1
group by bk_dateorder by byear desc
TABLE<br />HOLD AS REPYEARS
ENDTABLE FILE REPYEARS
SUM MAX.BYEAR AS VALUE
BY HIGHEST BYEAR AS DISPLAY
ON TABLE PCHOLD FORMAT XML
END
the important elements are - sourcetype="typeFex" datasource="app/repyears.fex" and presto - instant dynamic select population courtesy of ibirls.js javascript module.This message has been edited. Last edited by: <Mabel>,
Posts: 5694 | Location: United Kingdom | Registered: April 08, 2004