如何在 Apex 交互式报表的列数据中显示新行

use*_*025 3 oracle oracle11g oracle-apex

我正在使用 Apex 4.2 和 Oracle 11.g

我有一个名为“交易详细信息”的列,我在交互式报告中显示该列。报告列的“显示文本为”选项设置为“标准报告列”。报告列选自名为 transaction_detail 的 varchar2 表列。我也只是在建桌子。transaction_detail 表列由具有以下代码的过程填充:

Insert into mail_log (transaction_type, transaction_detail)
Values ('FTP Transaction',
           'Filename=' || p_image_filename || 
                '<br/>' || 'Event Description=' || l_event_description);
Run Code Online (Sandbox Code Playgroud)

程序代码可以轻松更改。报告仅显示:

Filename=myfile.jpg<br/>Event Description=my description

我尝试在过程中使用 CHR(13) 而不是 html 字符,然后尝试用 html 字符替换 apex 中的 CHR(13)。而不是简单地选择列:

  , transaction_detail
Run Code Online (Sandbox Code Playgroud)

我试过:

 , REPLACE(transaction_detail, CHR(13), '&lt;br/&gt;')
Run Code Online (Sandbox Code Playgroud)

但我无法克服 Apex 错误:ORA-12899:列“APEX_040200”的值太大。“WWV_FLOW_WORKSHEET_COLUMNS”。“DB_COLUMN_NAME”(实际:49,最大值:30)


如果该列是标准报告列,Apex 是否应该能够将 解释为新行?

use*_*025 5

Jorge (jrimblas) 等人在 OTN 论坛上回答了这个问题。该讨论的链接位于上面。简而言之,在存储过程中我去掉了'&lt;br/&gt;'并将其替换为CHR(13). 然后,在 Apex 交互式报告中,我不需要将该列更改为“标准报告列”。我将以下内容放置在该列的“HTML 表达式”中。

<div style="width:240px">
<pre style="font-family:Arial; font-size:12px; white-space:pre-wrap">#TRANSACTION_DETAIL#</pre>
</div>
Run Code Online (Sandbox Code Playgroud)