I've said it before and it's still true. ColdFusion Report Builder is absolute trash. Very unstable, very inconsistent interface, very tedious to fine tune a report. I always get the impression an Adobe intern was given this to do one summer. It's impressive for an intern, but an embarrassment for Adobe. Even as a free application, it's not worth the cost.
A while ago, I posted about jumping through some hoops to get a Report Builder report from a filter page in Flex. I never posted code and it seems no one else ever did out there, though this is becoming a common pattern. So here we go.
You've got a report done in Report Builder (a cfr). Congrats for not killing yourself in frustration over the tool, though I'm sure you thought about it. It generates a nice PDF or whatever, now you want to invoke it from your Flex front end. The Flex front end gives a list of departments, leaders, and job types and you can select any number of each to narrow down what's on your report. How do you get your filter responses to the cfr?
Resurrecting my app yesterday is requiring I make changes to the reports. I think a very strong argument could be made that ColdFusion Report Builder 7 is the worst application ever, even worse than Internet Explorer. I'm using build 144677 and holy cow... the bugs... I'm an Adobe Fanboy, but come on. Why would this product be released publicly as it is? And I updated to this build at some point, from a build that was less stable with even more goofy bugs.
I built a screen in Flex that lets you select what filters to have for the report. Date ranges, etc. The CF Report Builder report just accepts a query. The first thought/attempt was to pass all the filters through the URL to the report using navigateToURL(). This worked fine, but other filters were going to be complex variable types. Not to mention the security hole it opened up and creating a very long URL.
So instead I passed all the filter information to a CFC function that stored the filter to the session scope. When that returns, Flex calls the report, which creates the query based on session variables. A bit roundabout way of doing it, but it works!

