Interactive Reports Are More Flexible Than You Think
Interactive Reports (IRs) are one of APEX’s signature components, giving end users the ability to filter, sort, group, compute, and chart data without any development effort. But many developers only scratch the surface of what IRs can do. Understanding the full range of customization options lets you deliver more powerful reporting with less custom code.
Saved Reports and Default Reports
Users can save their customized views of an Interactive Report, including filters, column order, sorting, and control breaks. As a developer, you can create multiple named default reports that appear as tabs above the report. This lets you provide pre-built views like “All Orders,” “Overdue Orders,” and “This Month’s Orders” as starting points that users can further customize:
Create default reports in the APEX page designer by running the page, configuring the report interactively, and then saving it as a Default Report (Primary or Alternative). Alternative reports appear as named tabs.
Computed Columns
Users can add computed columns through the Actions menu without any developer involvement. But you can also define server-side computed columns in the report’s Column Attributes that use SQL expressions. This is useful for calculations that should always be available:
-- In the IR column definition, set the column to "Computed"
-- Expression: QUANTITY * UNIT_PRICE * (1 - NVL(DISCOUNT_PCT, 0) / 100)
Link Columns and Row Actions
Add link columns to navigate to detail pages. Configure the link column’s target as a page in your application, mapping report columns to page items. For more complex row actions, use a column with a link that calls a JavaScript function or a Dynamic Action:
-- Column source for an action link
SELECT employee_id,
first_name || ' ' || last_name AS employee_name,
department_name,
salary,
'<button class="t-Button t-Button--small" onclick="editEmployee(' ||
employee_id || ')">Edit</button>' AS actions
FROM employees e
JOIN departments d ON e.department_id = d.department_id;
Controlling User Capabilities
Not every user needs every IR feature. In the report attributes, you can disable specific capabilities: turn off Download to prevent data export, disable Chart View if charting is not relevant, restrict users from saving their own reports, or hide the Subscription feature. This lets you tailor the user experience to the audience while keeping the powerful features available where they are needed.
Performance Tips
IR queries should be as simple as possible because APEX wraps them in additional SQL for filtering and pagination. Avoid calling PL/SQL functions in the SELECT list for columns that will not be displayed. If users frequently filter on a column, ensure it has an index. For very large data sets, consider using a view with appropriate indexes rather than a complex multi-table join as the IR source.