Hi @cokeyng, this is a case of indirect filtering. You're on the right track by thinking of parameters. We'll solve it by creating three list tables that do all the filtering we need, but we'll hide the list tables that do indirect filtering. Here's the basic concept:
Indirect Filtering
One way to do indirect filtering is by passing the values of required list tables into object filters. For example, when we select Facility A, the list control can filter a list control for Region. This will only show the region for Facility A. The parameter will take on that value.
Since the parameter always has a value, we can pass that value into a key value object:
'Facility Region'n = 'Region'p
Now we have indirect filtering!
Hiding the Extra List Controls
We do not want the extra list controls visible. The easiest way to do that: put them in a precision container, then drag a text box on top of it and set its background to white. This will effectively hide the controls from view and prevent users from interacting with them.
Finally, here's what it all looks like in action:
Here's some sample data if anyone would like to give it a try themselves:
cas;
caslib _ALL_ assign;
data casuser.facilities(promote=yes);
length facility_name $12.;
infile datalines dlm=',';
input facility_name$ facility_size$ facility_region$ revenue;
datalines;
Facility A, 25 to 50, AB, 10000000
Facility B, 75 to 100, ON, 25000000
Facility C, 25 to 50, AB, 10000000
Facility D, 75 to 100, AB, 10000000
Facility E, 25 to 50, ON, 25000000
;
run;
... View more