[CLOSED] -Dynamic Filters in Reporting Object with Filter Panel on Portal in 8204
FocalPoint Forum Community:
As always, thank you in advance for any advice or guidance you can provide me. This community has been wonderful to me, and I appreciate it.
My latest challenge is to create a portal using
Chapter 8: Enhancing Portals Using Interactive Features and Coding Techniques in the manual titled Business Intelligence Portal Release 8.2 Version 04.
The portal works beautifully overall. I followed the directions to create a reporting object, its accompanying filter panel, and then I combined them in the filter panel.
The one glitch I'm experiencing has to do with the dynamic filters I've established.
TABLE FILE CAR
BY CAR.ORIGIN.COUNTRY
BY CAR.COMP.CAR
BY CAR.CARREC.MODEL
BY CAR.BODY.BODYTYPE
WHERE ( CAR.ORIGIN.COUNTRY EQ &COUNTRY.(FIND CAR.ORIGIN.COUNTRY IN car|FORMAT=A10).COUNTRY:.QUOTEDSTRING )
WHERE ( CAR.COMP.CAR EQ &CAR.(FIND CAR.COMP.CAR IN car|FORMAT=A16).CAR:.QUOTEDSTRING )
WHERE ( CAR.CARREC.MODEL EQ &MODEL.(FIND CAR.CARREC.MODEL IN car|FORMAT=A24).MODEL:.QUOTEDSTRING )
WHERE ( CAR.BODY.BODYTYPE EQ &BODYTYPE.(FIND CAR.BODY.BODYTYPE IN car|FORMAT=A12).BODYTYPE:.QUOTEDSTRING );
ON TABLE SET PAGE-NUM NOLEAD
ON TABLE SET ASNAMES ON
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLEMBEDIMG ON
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
INCLUDE = IBFS:/EDA/EDASERVE/_EDAHOME/ETC/warm.sty,
$
ENDSTYLE
END
In the filter panel, I chained all four filters together. That way, when one changes, they all update appropriately.
They are all optional, dynamic filters. None are multiselect.
They all work great except one.
If someone selects the model first, the report headings show without data.
If someone selects the model, the other data around it should populate the report.
To liken it to a country, region, store example, if someone chooses the store first, the country and region should update, but they don't.
Does anyone have any suggestions?
I apologize if this seems like a mundane question. I've looked in several manuals, and I've tried various combinations of dynamic and static parameters, all with varying degrees of success. I think I am missing something obvious. This is my first foray into reporting objects.
Thank you again for any advice, even if it's to direct me to a manual or post. I might have overlooked something.This message has been edited. Last edited by: FP Mod Chuck,
WebFocus 8.2.04 WebFocus 8.2.04
November 22, 2019, 02:18 PM
MartinY
You need to see this as a Hierarchy between Country - > Car - > Model - > BodyType. Chaining the control together will insure that from the selection you made, the following criteria will update accordingly : from left to right and will never update from right to left.
In other words, a parent selection will update downward its child but a child selection will not update its parent backward. Always in the "- >" direction never in the opposite direction.
If you want to have the Country and Car list updated according to selected Model you will need to go with js (or jquery) recursively. I don't think that it will be possible with a RO or dynamic filter built that way. You will need to code.
WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF In Focus since 2007
November 22, 2019, 02:23 PM
BabakNYC
Are you using the Page Designer to assemble your content and generate the parameters? You may want to use the WITHIN= in your WHERE test and try putting your code in a Page. Allowing the Page to generate the parameters makes this a little easier to deal with and picking a value in any of the parameters cascades to the available values in the others. Create this example and put it in a Page. When you get prompted to create the parameters you'll see 4 parameters that are inter-related.
-DEFAULT &COUNTRY=_FOC_NULL;
-DEFAULT &CAR=_FOC_NULL;
-DEFAULT &MODEL=_FOC_NULL;
-DEFAULT &BODYTYPE=_FOC_NULL;
TABLE FILE CAR
BY CAR.ORIGIN.COUNTRY
BY CAR.COMP.CAR
BY CAR.CARREC.MODEL
BY CAR.BODY.BODYTYPE
WHERE ( CAR.ORIGIN.COUNTRY EQ &COUNTRY.(FIND CAR.ORIGIN.COUNTRY IN car|FORMAT=A10).COUNTRY:.QUOTEDSTRING )
WHERE ( CAR.COMP.CAR EQ &CAR.(FIND CAR.COMP.CAR IN car|FORMAT=A16,WITHIN=COUNTRY).CAR:.QUOTEDSTRING )
WHERE ( CAR.CARREC.MODEL EQ &MODEL.(FIND CAR.CARREC.MODEL IN car|FORMAT=A24,WITHIN=CAR).MODEL:.QUOTEDSTRING )
WHERE ( CAR.BODY.BODYTYPE EQ &BODYTYPE.(FIND CAR.BODY.BODYTYPE IN car|FORMAT=A12, WITHIN=CAR).BODYTYPE:.QUOTEDSTRING );
ON TABLE SET PAGE-NUM NOLEAD
ON TABLE SET ASNAMES ON
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLEMBEDIMG ON
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
INCLUDE = IBFS:/EDA/EDASERVE/_EDAHOME/ETC/warm.sty,
$
ENDSTYLE
END
WebFOCUS 8206, Unix, Windows
November 22, 2019, 04:49 PM
JulieA
The use of WITHIN might have done it. I understand the example, and I'm going to try it with my own data now. I'll post any additional questions next week.
Thanks.
WebFocus 8.2.04 WebFocus 8.2.04
November 27, 2019, 11:30 AM
JulieA
The use of WITHIN works inside my reporting object and with my filter panel. Thank you so much, BabakNYC. I appreciate learning about WITHIN and its usage.
WebFocus 8.2.04 WebFocus 8.2.04
January 14, 2020, 03:56 PM
JulieA
Thank you again, BabakNYC, for explaining WITHIN to me.
I have a different question somewhat related to this one.
My user is requesting one more feature be added to the reporting object-that of a report heading.
The report heading should display the filters chosen at any given time.
In a regular report fex, I have done this many times. So, I think the principle and theory should be the same here.
Here's my sample code
SET EMGSRV=OFF
SET MESSAGE = OFF
SET ERROROUT = OFF
SET WARNING = OFF
SET TRMOUT = OFF
SET MSG = OFF
SET ASNAMES = ON
SET HOLDATTR = ON
SET EMPTYREPORT = ON
-SET &STORE_HEAD = IF &STORE EQ '_FOC_NULL' THEN 'STORE=All' ELSE 'STORE=' | &STORE;
-SET ®ION_HEAD = IF ®ION EQ '_FOC_NULL' THEN 'REGION=All' ELSE 'REGION=' | ®ION;
-SET &MANAGER_HEAD = IF &MANAGER EQ '_FOC_NULL' THEN 'MANAGER=All' ELSE 'MANAGER=' | &MANAGER;
-SET &FOOTING_1 = &STORE_HEAD | ', ' | ®ION_HEAD | ', ' | &MANAGER_HEAD;
Then, I add the footing to the footing area inside the report. It works beautifully.
With my reporting object, I added similar code to the preprocessing section and the report section; however, then the reporting object ignores the -DEFAULTH commands in the report section and shows the panel on the left side of the screen. I did some additional research and learned that DEFAULT commands are ignored if -SET commands are used; so, I'm left with trying to devise the best way to accomplish my objective. I'd appreciate any guidance.This message has been edited. Last edited by: JulieA,
WebFocus 8.2.04 WebFocus 8.2.04
January 16, 2020, 10:57 AM
FP Mod Chuck
Julie
I think you should open a case with techsupport on this as I don't know away around that limitation.
Thank you for using Focal Point!
Chuck Wolff - Focal Point Moderator WebFOCUS 7x and 8x, Windows, Linux All output Formats
January 20, 2020, 09:21 AM
BabakNYC
-SET supersedes -DEFAULT but I don’t see a -DEFAULT for your &STORE or &ION or &MANAGER. Your -SET commands depend on the default values of these variables but has to prompt you because there is no default values populated.
WebFOCUS 8206, Unix, Windows
January 27, 2020, 04:36 PM
JulieA
BabakNYC:
Yes, I understand -SET supersedes -DEFAULT. You are correct my example does not include -DEFAULT or -DEFAULTH commands in it. My reporting object has the -DEFAULTH commands in it like this:
ENGINE INT CACHE SET ON SET PAGE-NUM=NOLEAD SET SQUEEZE=ON -DEFAULTH &WF_HTMLENCODE=OFF; SET HTMLENCODE=&WF_HTMLENCODE
SET HTMLCSS=ON -DEFAULTH &WF_EMPTYREPORT=ON; SET EMPTYREPORT=&WF_EMPTYREPORT