将“Section”中的一长行记录拆分为两行或多行
Posted
技术标签:
【中文标题】将“Section”中的一长行记录拆分为两行或多行【英文标题】:Spliting a long row of records in the 'Section' into two or more rows 【发布时间】:2019-07-23 09:22:42 【问题描述】:我有一个非常简单的要求。我在表格视图的“部分”部分放置了大量属性/列,因此报告变得太宽,因此在导出为 PDF 时会导致字体非常小。我只想将 Section 中的属性拆分为两行或多行。有可能吗?
【问题讨论】:
【参考方案1】:您应该考虑去掉其中的一些属性,并将它们移到仪表板提示中。从物理源检索时,表视图(或任何其他视图)的“部分”部分中的任何属性都不会过滤您的数据。 在您运行该分析的那一刻,您有一个查询返回一个庞大的数据集,并且您通过在屏幕上仅显示一小部分来伪造它。
您可以通过使用仪表板提示来避免宽度问题,该提示将物理过滤您的查询。 仪表板提示可以拆分为多行。 总而言之,检索小数据集的多个小型过滤查询的性能并不比单个大型查询和在屏幕上隐藏数据差。
如果您真的想将该行选择拆分为 2 行,则需要为该作业添加一些自定义 CSS/js,但这不会更改 PDF 导出:PDF 导出过程将无法了解您的自定义 CSS/js,因此仍会生成完全相同的 PDF。
【讨论】:
非常感谢您的回答。我不允许更改仪表板提示中的字段,所以这不是我的选择。您能否详细说明 CSS/js 代码到底是什么? 不是在编辑模式下打开分析,而是在预览中或在您的页面中打开分析。打开浏览器的开发者扩展程序并浏览代表这些部分的代码,并找到一个独特的模式来标识您想要断行的地方。然后使用 CSS 将其分成 2 行。请记住,OBIEE 页面是生成的,因此您的模式必须尽可能精确以识别要应用的位置,并且不能太笼统,否则可能会更改页面的其他部分。【参考方案2】:公用表表达式 (CTE) 允许您将单个记录拆分为多个记录。你将不得不弄清楚分裂的基础。
WITH
starter AS
(SELECT 'This is my really long text. It is really long. Just how long remains to be seen.' txt
FROM DUAL),
splitit ( line, txt ) AS
(SELECT SUBSTR( txt
, 1
, INSTR( txt, '.' ) ) AS line
, SUBSTR( txt, INSTR( txt, '.' ) + 1 ) AS txt
FROM starter
UNION ALL
SELECT SUBSTR( txt
, 1
, INSTR( txt, '.' ) ) AS line
, SUBSTR( txt, INSTR( txt, '.' ) + 1 ) AS txt
FROM splitit
WHERE txt IS NOT NULL)
SELECT line
FROM splitit;
这会导致:
LINE
This is my really long text.
It is really long.
Just how long remains to be seen.
【讨论】:
首先感谢您的回复。其次,我想在 OBIEE 上进行此操作(您在答案中显示的是类似 sql 查询),第三,它不是我想要拆分的长文本。它是一长串列/属性,全部排列在 OBIEE 中表视图的“部分”部分的单行中。希望这次我足够清楚:)以上是关于将“Section”中的一长行记录拆分为两行或多行的主要内容,如果未能解决你的问题,请参考以下文章