Skip to main content

New APEX 4.2.3 Packaged Applications: Sample Reporting & Data Reporter

APEX 4.2.3 seems to be largely a maintenance release, with few new features added.  (Full details of what is included can be read here:

Despite this fact, there are a couple of new "features" that were added by way of a new packaged applications called Sample Reporting and Data Reporter.  Let's take a look at Sample Reporting first.  Upon initial inspection, this application seems quite unremarkable and basic, as it simply contains a few IRs and standard reports.  However, after a closer look, it is obvious that there is more to this than what is on the surface.

Upon running the Sample Reporting application, you'll see the following main five options:

The first two - Interactive Report & Standard Report are nothing more than their titles imply, and I won't spend any more time discussing them in this post.  The last three, however, do merit some additional attention.

Filter Reports
Filter Reports will seem very familiar to you, as this type of report has been implemented by a number of web sites.  Basically, there is a list of filters on either the left side of in a drop down.  Selecting a filter will, well, filter the report based on that criteria.  Adding additional filters will OR each condition.

The point behind Filter Reports is to enhance usability by reducing the number of options available.  While IRs are great, they may be overwhelming and not intuitive enough for some users.  Filter Reports solves this problem by presenting all of the available options right there on the page.  Users need only click on what they want to see.

If this is something that you think your users will benefit from, then you need to check out the second new packaged application, Data Reporter.  Data Reporter allows you to create a Filter Report on any table in your schema.  Rather than go into more detail on how to create a new report with the Data Reporter application, I'll reference Mike Hichwa's blog post here:

It would not surprise me at all if Filter Reports were integrated into APEX 5.0, as I think that a lot of users will benefit from their more streamlined approach to mining data.

Use Cases
The Use Cases section offers a number of different scenarios that involve APEX reports, as illustrated below:

While some of these examples are simple, many of them provide clear and concise examples on how to take your APEX reports to the next level.  For example, the Custom Reports Template &  Custom Buttons one illustrate how to easily change the look & feel of your reports to make them easier to use.  Developers of all skill levels will be able to utilize these Use Cases as points of reference for their own projects.

SQL Examples
As APEX developers, we often forget about the pure power available to us in the database itself.  From advanced search techniques to analytic functions, the Oracle Database can provide a layer of functionally that is unsurpassed.  The SQL Examples section outlines some of these features.

If nothing else, every APEX developer should have a look at these example and their corresponding SQL statements.  At a minimum, they will serve as a refresher.  But in most cases, most developers will learn a thing or two from these examples.

APEX 4.2.3 is available now as a patch or as a fresh installation.  If you don't want to upgrade your own instances, then head on over to, as it is running 4.2.3.


Pete M said…
Thanks for this Scott, it's all to easy to forget about the packaged apps!

Popular posts from this blog

Logging APEX Report Downloads

A customer recently asked how APEX could track who clicked “download” from an Interactive Grid.  After some quick searching of the logs, I realized that APEX simply does not record this type of activity, aside from a simple page view type of “AJAX” entry.  This was not specific enough, and of course, led to the next question - can we prevent users from downloading data from a grid entirely?

I knew that any Javascript-based solution would fall short of their security requirements, since it is trivial to reconstruct the URL pattern required to initiate a download, even if the Javascript had removed the option from the menu.  Thus, I had to consider a PL/SQL-based approach - one that could not be bypassed by a malicious end user.

To solve this problem, I turned to APEX’s Initialization PL/SQL Code parameter.  Any PL/SQL code entered in this region will be executed before any other APEX-related process.  Thus, it is literally the first place that a developer can interact with an APEX page…

Custom Export to CSV

It's been a while since I've updated my blog. I've been quite busy lately, and just have not had the time that I used to. We're expecting our 1st child in just a few short weeks now, so most of my free time has been spent learning Lamaze breathing, making the weekly run to Babies R Us, and relocating my office from the larger room upstairs to the smaller one downstairs - which I do happen to like MUCH more than I had anticipated. I have everything I need within a short walk - a bathroom, beer fridge, and 52" HD TV. I only need to go upstairs to eat and sleep now, but alas, this will all change soon...

Recently, I was asked if you could change the way Export to CSV in ApEx works. The short answer is, of course, no. But it's not too difficult to "roll your own" CSV export procedure.

Why would you want to do this? Well, the customer's requirement was to manipulate some data when the Export link was clicked, and then export it to CSV in a format…

Refreshing PL/SQL Regions in APEX

If you've been using APEX long enough, you've probably used a PL/SQL Region to render some sort of HTML that the APEX built-in components simply can't handle. Perhaps a complex chart or region that has a lot of custom content and/or layout. While best practices may be to use an APEX component, or if not, build a plugin, we all know that sometimes reality doesn't give us that kind of time or flexibility.While the PL/SQL Region is quite powerful, it still lacks a key feature: the ability to be refreshed by a Dynamic Action. This is true even in APEX 5. Fortunately, there's a simple workaround that only requires a small change to your code: change your procedure to a function and call it from a Classic Report region.In changing your procedure to a function, you'll likely only need to make one type of change: converting and htp.prn calls to instead populate and return a variable at the end of the function. Most, if not all of the rest of the code can remain un…