SSRS限制文本长度但保留完整的单词

时间:2013-01-17 18:17:04

标签: oracle reporting-services plsql

在我的表格中,我基本上有2列(更多但是有明显的左侧和右侧)。其中一个字段FIELD1位于左侧,来自LookupSet(),每个ID可以包含两个来自FIELD1的项目。使用连接(lookupset(),vbcrlf)我可以获取ID的两个值并将其放入表中的一个单元格中。这有效,但使用vbcrlf时,行高会增加。这会导致问题,因为右侧有数据,它们之间不能有额外的空间。

我对第一行进行了分割(join(lookupset()))。getValue(0),然后对其下面的行进行了值1.使用一些iif语句来检查错误等,这是有效的。

我解决的一个问题是FIELD1的值可能比单元格的宽度长,但不会超过两个。我能够在oracle中做一些子串魔术:

SELECT ID, SUBSTR(FIELD1, 1, 70) FROM....
UNION
SELECT ID, SUBSTR(FIELD1, 70) FROM ...

使用排序,我可以为每个ID获取最多4行数据,我将能够拆分查找集并将每个值放入表中。

我的最后一个问题,希望有人可以帮助的是,当我查找子字符串时,它可以切断单词,下一行将从单词的其余部分开始。 有没有办法,可能使用正则表达式确保保持文字,但也要确保返回的总长度<一些字符?如果我偏离正轨,我很乐意放弃我目前采取的任何方法。

1 个答案:

答案 0 :(得分:0)

我能够通过使用
来解决这个问题(有一些帮助)     SUBSTR(FIELD1,1,regexp_instr(FIELD1,'[]',70))

SELECT ID, SUBSTR(FIELD1,1, regexp_instr(FIELD1, '[ ]', 70)) FROM....
UNION
SELECT ID, SUBSTR(FIELD1, regexp_instr(FIELD1, '[ ]', 70)) FROM ...