您需要爲文本字段使用等寬字體(如上所示),並且必須在該文本字段後面調整數據。
假設您有三種形式的多值輸入字段:txtLabel,txtDate和txtDescription。您還有一個名爲「display」的字段來顯示它們。顯示字段可以有一個這樣的公式:
txtLabel + " " + txtDate + " " + txtDescription
(注意在顯示字段需要被設置爲多值,和字體需要設置爲Courier新的或等寬字型)
如果輸入字段都具有相同的長度,那麼這很好。如果他們不這樣做,則需要強制他們擁有相同的長度。要做到這一點,你可以改變你的代碼是這樣的:
@For(n :=1; n<[email protected](txtLabel); n:= n + 1;
FIELD displayTable := displayTable + @Left(txtLabel[n]; 10) + @Repeat(" "; 11 - @Min(10; @Length(txtLabel[n]))) + @Left(txtDate[n]; 10) + @Repeat(" "; 11 - @Min(10; @Length(txtDate[n]))) + @Left(txtDescription[n]; 20) + @NewLine);
displayTable
我承認,這是非常醜陋的。但讓我們分解它。我們添加了三個關鍵的東西:
首先,@For循環。這讓我們分別處理每一行。這是必要的,因爲@Length公式需要根據我們的多值字段的單個值進行操作。
其次,在循環中,我們使用@Left公式限制了列的長度。 txtLabel和txtDate現在不能超過10個字符,並且txtDescription的上限爲20個字符。
第三,我們添加了適當數量的空格,以便下一列正確排列。 @Repeat(@Min(@Length()))計算測試字段的長度。結果是我們需要添加10個字符的空格以及一個用於列填充的空格。例如,如果txtLabel是10個字符,則@Repeat公式將在txtLabel和txtDate之間再增加一個空格。如果txtLabel是3個字符,則@Repeat公式將添加8個空格。結果是這樣的:
txtLabel txtDate txtDescription
Stack Over 6/1/2009 Programming Question
Superuser 10/1/2009 Computer questions
Server Fau 2/1/2010 IT/Admin questions