0

我在具有多行文本框值的數據集中有一個字段。我想分割該記錄,將其存儲到一個數組中,並且當我通過for循環從數組中獲取值時,我想爲每行預先添加一個「*」。我寫了一個公式,但它只適用於2個值。之後,它不工作,我無法得到如何檢索像這樣的值。Crystal Report公式問題:如何將多行文本值分割到數組中以及如何通過forloop獲取它

我想要得到的結果是:

* 123 
* 234 
* 786 

但我得到的結果是:

*123 
234 
786 

我的公式是

Local StringVar y; 
Local StringVar x; 
Local NumberVar i; 

y := ""+ chrw(10); 
x := y; 

Stringvar Array strings := Split({Touche.Concerns}, "\r\n"); 
Stringvar Array numbers; 


For i :=1 To Ubound(strings) Do 
(
y := y + chrw(10)+ "$" + strings[i]; 
); 
y; 
+0

你的公式在邏輯上基本上是正確的,但是代碼本身很雜亂,並且有錯別字。回過頭來清理它,你可能會發現它會爲你工作。爲了讓你開始:你用什麼'x'和'數字'變量?你爲什麼以你的方式初始化輸出字符串「y」?仔細檢查您連接到輸出的字符。 – Ryan 2014-09-25 13:15:18

回答

0

而是一個長的公式打破的到數組中並操作每一行,爲什麼不用換行符替換換行符星號?

"* " & replace(trim({Touche.Concerns}), "\r\n", "\r\n* ");

領先的「*」是將在第一行焦炭,trim函數被調用,以消除任何尾隨換行符(所以不會只用星號線)。

作爲便箋,請在連接字符串時使用&,而不要使用+ char。使用+有時可能會導致數字值被加在一起的強制。例如,"12" + "34"將產生46而不是1234&字符確保使用字符串連接。

相關問題