2010-10-15 57 views
0

基本上有一個帶有文本字段的表單,我必須在該文本字段中由業務創建提供的內容,一旦保存文檔,它就會顯示在視圖中。根據Key值,它會查看文本字段的內容,然後通過電子郵件發送給相關用戶。在創建內容時,嘗試通過按空格鍵,退格鍵等來使文本對齊。但仍然發現電子郵件沒有任何對齊,看起來很奇怪。蓮花筆記中的文本字段對齊

內容顯示如下。

Label: Date: Description: 

Test1 TestDate1   Abcdefghijklmnopqrstuvwxyz 
Test2  TestDate2  asdfasf 
Test3 TestDate3    asdfasdfasdfasdf 

查看日期和描述中存在對齊問題。內容應如下所示。

Label: Date: Description: 

Test1 TestDate1 Abcdefghijklmnopqrstuvwxyz 
Test2 TestDate2 asdfasf 
Test3 TestDate3 asdfasdfasdfasdf 

在標籤列的所有標籤都應該有適當的調整,
下日期列中的所有日期應顯示以合適的對準和
下描述的所有描述應該進來正確對齊。

回答

0

您需要爲文本字段使用等寬字體(如上所示),並且必須在該文本字段後面調整數據。

假設您有三種形式的多值輸入字段: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