Sounds like you already have this working, so this may be a moot point. However, it seems like you jumped through some hoops that you shouldn't have to... (namely the importing of fex into the html)
Here's my method -- and it's going to sound very similar to what is suggested above. But hear me out -- I just tried this (on 7.1.4) and it works perfectly.
First, you need your first report to drill to a "linking" fex that you're talking about (and as was mentioned previously). It will pass the parameter(s) that you need in the subsequent reports. Your top level report should look something like the following:
-SET &RANDOM = RDUNIF(D5) * 10000;
TABLE FILE CAR
SUM
RETAIL_COST
BY CAR
ON TABLE SET STYLE *
$
TYPE=DATA,
COLUMN=N1,
TARGET='_blank',
FOCEXEC=app/linking(CAR=CAR RDM=&RANDOM),
$
ENDSTYLE
END
The "linking.fex" should only need one line in it:
-HTMLFORM layout2
In this example, layout2.htm is the filename of the 2nd html layout that you're calling (that has the other reports on it).
Here are examples of the 2 reports that reside on layout2.htm:
report1.fexTABLE FILE CAR
PRINT
BODYTYPE
DEALER_COST
RETAIL_COST
SALES
HEADING
"&CAR "
WHERE CAR EQ '&CAR';
END
report2.fexTABLE FILE CAR
PRINT
COUNTRY
HEIGHT
WEIGHT
MPG
HEADING
"&CAR "
WHERE CAR EQ '&CAR';
END
On my layout2.htm page, I added 2 frames (one for each report), I added a button that would actually execute the report, but you could do this probably as autoexecutes or whatever. Then I added a dropdown list of CARs as the parameter for the two reports. I can run the layout in standalone mode and it works fine -- both frames populate with their respective reports for the passed parameter. Now, here's the beauty. Because I named all of my variables the same thing -- I don't have to even use the '!IBI.AMP.xxx;' logic AT ALL. Now, having said that, if your variables weren't named the same throughout, then you would need a little javascript to put the value of that amper variable into a javascript variable -- and then I would probably set the dropdown list value to that variable.
Something like this could go in the javascript onload event -- but keep in mind, in my example I didn't even need to do this:
var myparm = '!IBI.AMP.CAR;'; //get the amper variable into a javascript variable.
combobox1.value = myparm; //set the value of the combobox (dropdown listbox) to that variable.
OnExecute(button1);//execute the IBI routine to run the reports
You might even be able to combine those first 2 lines of code into one. I didn't test that little snippet, but the concept should be there.
Back to my original example, the ONLY other thing I had to do, because I was using a button, was to simulate the button was clicked in the onload. You could call the onclick function, or you could call the "OnExecute" function directly (which is what I did).
WHEW, that's sort of a long-winded answer, but I hope it makes a little sense. My point is, it really is a pretty straightforward idea and is especially easy if you use the same amper name throughout the process. Let me know if any of that doesn't make sense -- worst case, I could potentially email you my files and let you try it yourself.
Good luck!!
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio
Testing: <none>
Using MRE & BID.  Connected to MS SQL Server 2005
Output Types: HTML, Excel, PDF