Lotus Notes中的Text字段对齐方式

时间:2010-10-15 13:12:21

标签: lotus-domino

基本上有一个带有文本字段的表单,我必须在此文本字段中由业务创建提供的内容,一旦文档被保存,它就会显示在视图中。根据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

在标签栏下,所有标签都应正确对齐,
在日期列下,所有日期都应以正确的对齐方式显示 在描述下,所有描述都应该正确对齐。

1 个答案:

答案 0 :(得分:0)

您需要为文本字段使用等宽字体(如上所示),并且您必须在该文本字段后面调整数据。

假设您在表单中有三个多值输入字段:txtLabel,txtDate和txtDescription。您还有一个名为“display”的附加字段来显示它们。显示字段可以有这样的公式:

txtLabel + " " + txtDate + " " + txtDescription

(注意显示字段需要设置为多值,字体需要设置为courier new或monospace字体)

如果输入字段都具有相同的长度,则效果很好。如果不这样做,则需要强制它们具有相同的长度。为此,您可以将代码更改为以下内容:

    @For(n :=1; n<=@Elements(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
相关问题