Scope of Platforms Tested: Oracle 11g XE, Oracle APEX Versions 4.0.2 and 4.2.5
I don't like the column headers assigned to my APEX report after I assign my source query or table/view association. How do I change them? Can I add special formatting and embedded codes (e.g. HTML hex, decimal or short codes)?
Additional Question: How do I keep these formatting codes out of the text values that are exported when I run a "download" or "save to csv" operation?
This is a generalized expansion of another SO post which asks: How do I conditionally change the field (column) names on an APEX report. This Q&A explanation talks more generally about dynamic assignments of object items and attributes found on Oracle APEX reports. This example does this by embedding HTML codes within the text of report column headers. This should be searchable and more helpful to a wider audience.
... let's get going!
Try editing the report region definition:
Notice that I can also define a substitution value populated from a defined page item.
For example, page item =
P2_MY_TITLE
would be represented by:&P2_MY_TITLE.
I encountered some problems with getting both Interactive and Classic reports to show HTML formatted text on Version 4.0.2... The rest of this example was done using a newer instance on APEX Version 4.2.5. This example was done using Interactive reports.
I Defined two page ITEMS: PX_DISPLAY_FORMAT
and PX_ID_COLUMN_HEADER
. The former is just a convenience that allows users to define if their intent is to "VIEW ONLY" or to "EXPORT TO CSV". Choosing the appropriate option will dynamically set the format of the report displayed.
The latter item: PX_ID_COLUMN_HEADER
is for the ID column. I defined a short PL/SQL function output to decide what to display.
BEGIN
if :P6_DISPLAY_FORMAT = 'html-coded'
then return 'à © æ';
else return 'MY_ID_COLUMN';
end if;
END;
I used these codes to test:
It's probably noticeable that there is a next step:
This function can be generalized, the column header choices kept as table driven data, etc.
PX_ID_COLUMN_HEADER
pulls from thePX_DISPLAY_FORMAT
item value as could other items defined for the other columns.
And now screen-pics of the final product in the two modes:
VIEW ONLY (With Special HTML Characters and Formatting)
Hint: Look for ID Column at the last column on the left.
CSV EXPORT FORMAT (With Text Only Values)
[cross-refs: #csv, #delimited reports, #column headers, #html formatting]