APEX Plugin – Interactive Report Dynamic Action Package

A couple of months ago I had a request to create a “Freeze Columns” dynamic action plugin for an interactive report which behaved like the following demo. Whilst I wasn’t sure whether it would be possible I knew that in APEX 4.0 we had some event hooks such as “After Refresh” which we could bind a dynamic action to. We could use this event to manipulate the Interactive Report HTML after every refresh to produce the required layout. Whilst the initial prototype was quick to implement, mainly thanks to jQuery, there were a number of challenges which I faced:

  1. Cross browser and version support since different flavours of IE handled the positioning of scrollbars differently. Achieving equal row heights when splitting the report into two HTML tables was tricky, each browser seemed to behave a little different.
  2. The header drop down menu’s would be placed incorrectly when horizontal scrolling occurred on the unfrozen set of columns, which unfortunately wasn’t as simple as the usual workaround for relative positioning.
  3. After resolving the above and the addition of several enhancement requests i.e. adding in additional vertical scrolling whilst freezing the header (see this demo) and making it work with Clarifit’s existing column grouping plugin (demo), I’m proud to announce the release of publicly available commercial package to perform all 3 cosmetic changes in combination or independently of each other. Here’s a screenshot to give you a visual of the plugins in action:

    Oracle APEX - Interactive Report Dynamic Actions

    Here’s a YouTube video which walks you through how to combine all 3 dynamic actions on the same interactive report.

    Lastly here’s the demo application to see them in action, and download page. The added extra is that, thanks to the release of APEX 4.1 on apex.oracle.com last Friday, I have been able to certify the package against this new release of APEX :)

  1. Marco Schlicher says:

    Hi Matt,

    very nicly done with the freeze columns and freeze header.
    I have an problem when using the freeze header plugin. when i execute it in an Interactive report which has the folowing column in is it goes completly beserk. The column colors a cell in the report.
    Any idea how this comes ? I think it hase something to do with the divs.

    ,null,’ ’
    ,case when nvl(rml.uiterst_advies_plan_jaar,rml.advies_plan_jaar) < nvl(rmf.programmeer_jaar,0) then
    ' ’


  2. Marco Schlicher says:

    Hmmz stil not good lets try again .

    ,null,’d i v >   ‘
    ,case when nvl(rml.uiterst_advies_plan_jaar,rml.advies_plan_jaar) < nvl(rmf.programmeer_jaar,0) then
    '   < /d i v '

  3. Marco Schlicher says:

    Almost there

    ,null,’div>table>tr>td class=”alpha_data” style=”background-color:#C95E4C;”> /td>/tr>/table>/div>’
    ,case when nvl(rml.uiterst_advies_plan_jaar,rml.advies_plan_jaar) table>tr>td class=”alpha_data” style=”background-color:#FF0000;”> /td>/tr>/table>/div>’

  4. Alain says:

    Hello Matt,

    Very nice work indeed !
    I would like to know if you have plans to allow automatic re-dimensioning for the scrolling container according to the window size, for instance when the page is refreshed ?
    That way the scrollbars would be reachable, even when the browser window size is smaller than what was assumed at design time.
    The vertical scroll bar on the left is very practical when freezing headers. Certainly thinking about buying it and using it with my company.


    • mnolan says:

      Hi Alain

      Thanks for the nice feedback. I could certainly look at adding this feature request, however because of my current workload I won’t be able to for a number of weeks.

      If you have an urgent requirement for this then I could prioritize the build of it for an additional fee.


  5. Alain says:

    Tried the new version with automatic width re-dimensioning and it works great, so we are ordering it for the company.
    In terms of user comfort when dealing with reports having lots of data/columns, it is just another world and a major selling point.

    If you get to it, implementing height re-dimensioning would be great as well.


  6. mnolan says:

    Hi Marco

    I think I’d need at least a screenshot to udnerstand what’s happening?

    You can eamil me at matt.nolan(at)thapexfreelancer.com