IFS Quick Reports: Tips, Tricks and Hidden Power
Go beyond basic SQL with IFS Quick Reports — parameters, formatted output, IFS view selection, scheduled email delivery, and knowing when you've hit the ceiling.
Published
Introduction
Quick Reports in IFS are deceptively simple: write a SELECT statement, save it, and let users run it. But that simplicity masks a powerful reporting toolkit that, when used well, can deliver sophisticated analytics without the overhead of SSRS or Crystal Reports.
The catch? Most IFS users never scratch the surface. They write basic SELECT * queries, export to Excel, and miss the advanced features that make Quick Reports genuinely useful: parameter syntax, view-based queries, formatted output, scheduled email delivery, and knowing when to stop trying to bend Quick Reports to do something they weren't designed for.
Quick Reports have been a cornerstone of IFS reporting for years, evolving from Foundation1 through IFS 10 and into IFS Cloud. They remain relevant because they're lightweight, fast to develop, and require no specialized reporting tools. A developer with basic SQL skills can build a production-ready report in minutes, not weeks. For operational dashboards, ad-hoc analysis, and lightweight management reports, Quick Reports are often the right answer.
But power comes with responsibility. This guide covers the tips, tricks, and hidden capabilities that separate quick-and-dirty reports from production-ready Quick Reports. We'll explore parameter syntax that most developers don't know exists, view selection patterns that unlock business logic, formatting tricks, email scheduling, and the hard boundaries where Quick Reports stop and SSRS takes over.
Part 1: Beyond Basic SELECT — Parameters and Query Flags
The Anatomy of a Quick Report Parameter
Parameters make Quick Reports interactive. Instead of hardcoding filters, users provide input at runtime. The syntax is simple: use an ampersand (&) before the parameter name.
By default, parameters are optional and treated as wildcards. But this is where most developers stop. IFS supports Query Flags — a set of flags that control how parameters behave.
Query Flags: Fine-Grained Parameter Control
Query Flags are specified inside square brackets, immediately after the ampersand:
The five positions have these meanings:
| Flag | Meaning |
|---|---|
| M | Mandatory input |
| C | Custom input rather than values-only input |
| S | A single value |
| B | Allow a between expression |
| L | Allow % and _ wildcards |
| - | The opposite behaviour for that position |
The documented default for SQL Quick Reports is [-CS-L]. Treat the five characters as one positional profile rather than as independent switches that can be rearranged.
There is an important client distinction. These flags work in IFS Applications clients that implement the Query Dialog behaviour. IFS Cloud documentation has also carried a known limitation where the SQL Quick Report parameter page accepts the syntax but does not apply query flags. Test the prompt in the exact Cloud release you are targeting; when the client ignores the flags, validate required input in the delivery design and use explicit SQL predicates rather than assuming the prompt will enforce it.
Practical Examples
Making a parameter mandatory:
In clients that honour query flags, the user must provide a status before the report runs.
Allowing multiple values (semicolon-separated):
Report_SYS.Parse_Parameter accepts semicolon-separated values, such as PLANNED;RELEASED;DELIVERED, and also understands ranges and wildcards. It is the reliable choice when a Cloud parameter page does not implement the multiple-value query-flag behaviour.
Building a smarter date range parameter:
In a client that honours the profile, this requests mandatory custom-text, single-value inputs. Use the date format shown by the target client and test the end-of-day rule against the column's actual time precision.
The NULL Parameter Trick
One of the most useful patterns is optional parameters with NULL checks. This lets users leave a filter blank to see all data:
If the user leaves the Customer parameter empty, the first condition is true and all rows pass. If they provide a value, the second condition filters to that customer. This avoids the performance penalty of string concatenation with '%' || &Param || '%'.
Performance Note: Report_SYS.Parse_Parameter is evaluated for every candidate row when used directly in a predicate. Use a simple equality/NULL-check for a single optional value, or apply the parser first against a small key set and join that result to the larger query.
Part 2: Leveraging IFS Views for Smarter Queries
Why Views Over Tables?
Quick Report SQL expressions should use supported views rather than base tables. Views are the governed starting point, provided the Quick Report presentation object/projection and the user's permission sets grant access to them.
IFS comes with hundreds of predefined views. Using them gives you:
- Built-in joins — Customer, order, invoice data pre-linked
- Formatting — Currency columns already formatted, dates in readable format
- Business logic — Views apply company filters, status mappings, translations
- Framework semantics — Many logical-unit views expose decoded state and calculated data, but not every view enforces every company/site/row rule. Quick Report permission, SQL access-provider checks, object grants and the view's own predicates all matter.
Finding Usable Views
Navigate to Solution Manager → Business Reporting & Analysis → Ad-hoc Reporting → SQL Query Tool. This interface shows:
- All available views and their columns
- Column data types and descriptions
- Quick drag-and-drop into your SQL
Common views for typical Quick Reports:
| View | Purpose |
|---|---|
CUSTOMER_ORDER | Customer-order header |
CUSTOMER_ORDER_LINE | Customer-order lines |
PURCHASE_ORDER | Purchase-order header |
CUSTOMER_INFO | Customer identity/category |
SUPPLIER_INFO | Supplier master data |
INVENTORY_PART_IN_STOCK | Inventory by part/site/location |
These names exist in Apps 10, but column sets and access behaviour vary by installed components/update. In IFS Cloud, use the Quick Report/SQL source discovery available in the target release and do not assume managed-service database objects are a public integration contract.
The Default Values Pattern
Here's a lesser-known trick in clients that support parameter default-value discovery: IFS can populate parameter choices from view metadata.
Specify the view name and column name separated by a double underscore:
Now instead of typing the category, users see a dropdown of all valid categories from the CUSTOMER_INFO view. This is powerful for avoiding typos and guiding users through valid inputs.
You can combine this with Query Flags:
IFS Cloud documentation has carried the same known limitation for SQL Quick Report default values as for query flags: the prompt may not apply them even though the definition can be saved. Verify the target update. If it is not supported, use an ordinary parameter and document the accepted values, or use Query Designer where it provides a governed selection experience.
The Application Owner Prefix (&AO)
Prefix application-owner database objects with &AO.. for schema independence:
Not:
The &AO placeholder gets replaced with the configured application-owner schema at runtime, making Quick Reports portable across environments. It does not grant access by itself: the Quick Report's generated presentation object/projection, underlying object grants and user permission sets still determine authorization.
Part 3: Formatting and Output Magic
Column Naming and Display
By default, IFS automatically formats column aliases to title case. A column named ORDER_NUMBER becomes "Order Number" in the output.
Explicit aliases with double quotes override this:
This is cleaner than relying on automatic formatting.
Export Formats
Available result-table exports depend on the client and release. Typical deployments provide Excel and/or CSV-style export, while older clients may also expose HTML or text output:
- Excel (.xlsx) — Best for pivot table analysis
- CSV (.csv) — For data pipelines
- HTML (.htm) — Email-friendly
- Text (.txt) — Legacy systems
In IFS Cloud, run the report and use the result table's export action. In IFS Applications 10, use the corresponding table/output action in the client. Also test row limits: an on-screen preview and an all-rows export do not necessarily have the same cap.
The Output Channel Workaround
CTE (WITH) acceptance has varied with Quick Report type, SQL validation/access-provider implementation and release. If the target release rejects a CTE, restructure it as a subquery or create a governed customer view. An Output Channel changes delivery, not SQL semantics, and does not turn a multi-step transformation into one Quick Report.
For a complex multi-step transformation, move the logic into a governed customer view, an Information Access Layer object where appropriate, or an analytics service. An output channel can then deliver the result, but it is not the transformation engine.
Part 4: Scheduling and Email Delivery
Setting Up Scheduled Quick Report Delivery
Quick Reports are primarily interactive. Some IFS Applications installations add scheduled distribution through registered tasks, report rules, output channels, or customer automation, but there is not one universal "schedule this SQL Quick Report" task across Apps 10 and every IFS Cloud release. Verify what is installed before designing the delivery path. A governed setup involves:
- Create and secure the Quick Report, including its presentation object/projection and underlying views.
- Choose a supported runner in the target environment: a registered IFS task, an operational report/report rule, or approved external automation using an API rather than a database login.
- Configure delivery through the environment's mail/output channel and keep credentials and recipient lists out of the SQL.
- Record ownership and failure handling so someone is accountable when a scheduled delivery stops.
Application Server Task Configuration
If the Apps 10 installation exposes a suitable Application Server Task, open its registered task definition and use the fields it actually provides. Do not select an arbitrary business component or assume a task named "Quick Report distribution" exists. Capture at least:
- Purpose and owner: Why the extract exists and who receives failure alerts
- Schedule and time zone: Including daylight-saving behaviour and business-calendar exceptions
- Execution identity: A least-privilege service user with the same data restrictions the report is meant to honour
- Parameter values: Stored and reviewed as configuration, not concatenated into SQL
- Output contract: File type, delimiter/encoding, maximum row count, retention and handling of sensitive data
- Delivery result: A run identifier, start/end time, row count and success/failure status
For IFS Cloud, use only capabilities exposed and supported for the tenant/update. If no native runner is available, call a supported projection/OData endpoint from an approved scheduler and reproduce the report contract there; do not introduce direct database access to a managed Cloud service.
Important Constraints
- Bind variables: Parameter substitution behaviour differs between IFS Enterprise Explorer and IFS Cloud Web. Test predicates, date conversion and grouping with the target client's bind-variable setting rather than relying only on SQL Developer.
- Mail configuration: Prove sender, recipient, attachment-size and relay-policy behaviour with a non-sensitive test report before enabling a production schedule.
- Metadata refresh: Saving SQL or Query Designer Quick Reports in Cloud can refresh Quick Report metadata and temporarily affect availability; the duration depends on the number and complexity of reports, not a fixed threshold.
- Failure visibility: A successful query is not proof of delivery. Monitor the runner and the mail/output transport separately.
Best Practices for Scheduled Reports
- Keep queries lean — Avoid queries that return thousands of rows every day; add filters.
- Define every scheduled parameter — Decide deliberately whether a blank value means "all", "none", or an error.
NVLis useful only when that business meaning is explicit. - Add a timestamp column — Help recipients know when the report ran:
- Test both stages — Run the query interactively, then execute the scheduled path once and reconcile its row count and delivered file.
Part 5: The Limits — When Quick Reports Aren't Enough
Known Limitations
IFS Quick Reports are powerful but not unlimited. Some boundaries have changed by release, so validate these against the target rather than treating them as universal:
1. CTEs May Be Rejected by the Quick Report Validator
Workaround: Restructure as a subquery or use a view.
2. No Complex Stored Procedure Calls
Quick Reports execute read-only SQL (SELECT, and WITH in releases whose validator accepts it). If your logic requires a state-changing PL/SQL procedure, it does not belong in a Quick Report. For reusable read logic, use a governed view; for an operational document or workflow, use the appropriate reporting or application service.
3. SQL Text/UI Limits Vary
Some Quick Report editors/releases impose SQL-text or UI limits. Confirm the actual limit before redesigning. Do not bypass a managed-Cloud UI limit by installing a database file ad hoc; move complex, reusable logic into a supported customer source view/projection or an analytics service as appropriate.
4. Performance Constraints on Large Datasets
Quick Reports are designed for lightweight analysis. If you're querying millions of rows or running complex aggregations regularly, consider:
- SSRS Operational Reports — Better for heavy lifting
- Customer-owned analytics store/materialised view — only where the deployment model and IFS delivery process support it
- Data Warehouse — Offload analytics to a dedicated environment
5. Bind Variable Issues (IFS EE)
When "Enable bind variables for SQL Quick Reports in IFS EE" is enabled, some SQL patterns break (especially GROUP BY with concatenated parameters). You may need to refactor:
When to Use SSRS Instead
Where SSRS operational reporting is installed and supported for the target release, consider it for:
- Complex layouts — Multi-section reports, nested groups, charts
- High-frequency aggregations — Pre-compute once, run fast many times
- Operational reports — Invoices, shipment notes (context-driven)
- Advanced formatting — Page breaks, watermarks, conditional styling
- A governed report-data contract — SSRS formatting does not make an inefficient Oracle query faster; dataset design, execution location and caching determine performance
SSRS has a steeper learning curve, but the investment pays off for strategic reports.
Part 6: Real-World Quick Report Examples
Example 1: Sales Performance Dashboard
This is deliberately labelled gross line value: it does not claim to be booked revenue and does not account for every discount, charge, tax, cancellation or currency-conversion rule. Agree the commercial measure before turning the query into a KPI.
Example 2: Inventory Alert Report
This query deliberately drives from planned parts and left-joins the selected warehouse, so a part with no stock row is treated as zero rather than disappearing from the alert. Available quantity and replenishment policy are site-specific concepts. If your operation includes ownership, availability-control, condition-code, consignment or lead-time rules, extend the example using the supported views and planning logic for that site rather than treating this as a complete replenishment calculation.
Example 3: Customer Aging Analysis
This example reports transaction-currency open amounts separately. Do not add different currencies together. For statutory or credit-control reporting, reconcile the chosen ledger view, due-date rule, authorised/preliminary postings and accounting-currency amount with Finance before publication.
Key Takeaways
-
Query Flags are client-dependent. They provide useful Query Dialog control in supported IFS Applications clients, but some IFS Cloud releases save and then ignore them.
Report_SYS.Parse_Parameteris a practical fallback for multi-value/range matching when used carefully. -
Use governed views, not base tables. IFS views expose framework semantics and supported read contracts, but still verify company/site filtering, permission grants and the view's own predicates.
-
NULL-check optional parameters. Avoid wildcard string concatenation; use
('&Param' IS NULL OR column = '&Param')for better performance. -
Know the limits before you hit them. CTE validation, editor limits, parameter behaviour and export caps vary by release. Recognize when a governed source view, operational report or analytics service is the right tool.
-
Schedule only through a supported runner. Test the query and delivery independently, monitor both, and never assume a generic Quick Report distribution task exists.
-
Keep it simple. Quick Reports shine when they're simple, fast, and focused. Complex logic belongs in views or SSRS.
Quick Reports are the Swiss Army knife of IFS reporting — not designed to do everything, but remarkably good at what they're designed for. Master the patterns in this guide, and you'll deliver faster insights without the maintenance overhead of larger reporting platforms.
Further Reading
Need more from IFS Quick Reports without creating fragile SQL?
Syrett Consultancy can help you design reports, parameters, and delivery patterns that stay useful and supportable.