【问题标题】:How do I customize column headers with HTML in a report region of an Oracle APEX page?如何在 Oracle APEX 页面的报告区域中使用 HTML 自定义列标题?
【发布时间】:2014-08-01 03:49:05
【问题描述】:
测试平台范围:Oracle 11g XE、Oracle APEX 版本 4.0.2 和 4.2.5
在分配源查询或表/视图关联后,我不喜欢分配给 APEX 报告的列标题。我该如何改变它们?我可以添加特殊格式和嵌入代码(例如 HTML 十六进制、十进制或短代码)吗?
附加问题:当我运行“下载”或“保存到 csv”操作时,如何将这些格式代码排除在导出的文本值之外?
【问题讨论】:
标签:
html
oracle11g
oracle-apex
oracle-xe
【解决方案1】:
Oracle APEX 报告标题的条件格式和特殊格式
这是另一个 SO 帖子的广义扩展,该帖子要求:How do I conditionally change the field (column) names on an APEX report。此问答解释更笼统地讨论了 Oracle APEX 报告中的对象项和属性的动态分配。此示例通过在报告列标题的文本中嵌入 HTML 代码来实现此目的。这应该是可搜索的,并且对更广泛的受众更有帮助。
已解决的问题
- 如果您不喜欢最初的结果,如何更改 REPORT 输出标题。
- 如何绕过 APEX 报告设计页面的初始限制:显示 HTML 代码和其他特殊文本格式命令。
- 如何防止这些格式代码出现在文本格式(ascii、utf-8 等).csv(逗号分隔值)导出文件中。
...让我们开始吧!
更改 APEX 报告输出标题:仅文本
尝试编辑报告区域定义:
请注意,我还可以定义从已定义的页面项填充的替换值。
例如,页面项目 = P2_MY_TITLE 将表示为:&P2_MY_TITLE.
更改 APEX 报告输出标题:带有 CSV 输出切换的 HTML 格式
在 4.0.2 版上让交互式报告和经典报告显示 HTML 格式的文本时遇到了一些问题...本示例的其余部分是使用 APEX 4.2.5 版上的较新实例完成的。此示例是使用交互式报告完成的。
我定义了两个页面项目:PX_DISPLAY_FORMAT 和 PX_ID_COLUMN_HEADER。前者只是为了方便用户定义他们的意图是“仅查看”还是“导出为 CSV”。选择适当的选项将动态设置显示的报告格式。
后一项:PX_ID_COLUMN_HEADER 用于 ID 列。我定义了一个简短的 PL/SQL 函数输出来决定显示什么。
BEGIN
if :P6_DISPLAY_FORMAT = 'html-coded'
then return 'à © æ';
else return 'MY_ID_COLUMN';
end if;
END;
我用这些代码来测试:
- à(希腊字母 alpha)--十进制值
- (空格 - 格式)
- ©(版权符号)
- æ(在 aesop、aeneid、faeroes... 中表示 a + e 符号)
可能会注意到还有下一步:
这个函数可以泛化,列标题选择保留为表驱动数据等。PX_ID_COLUMN_HEADER 从PX_DISPLAY_FORMAT 项目值中提取,就像为其他列定义的其他项目一样。
现在是两种模式下最终产品的屏幕图片:
仅查看(使用特殊的 HTML 字符和格式)
提示:在左侧最后一列查找 ID 列。
CSV 导出格式(仅包含文本值)
[交叉引用:#csv、#delimited 报告、#column headers、#html 格式 ]