0

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

我为第一行做了一个 split(join(lookupset())).getValue(0),然后在它下面的行为值 1。使用一些 iif 语句来检查错误等,这是可行的。

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

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

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

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

4

1 回答 1

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 ...
于 2013-01-17T19:36:07.233 回答