Lotus notes 在Lotus Notes中,基于具有数值的文本字段对视图排序时出现问题

Lotus notes 在Lotus Notes中,基于具有数值的文本字段对视图排序时出现问题,lotus-notes,Lotus Notes,现有的LotusNotes数据库表单有一个文本字段,其中包含一个数值。我正在尝试创建一个视图来对该字段进行排序,但结果如下 九十九 1000 1002 1003 101 1011 有没有办法转换字段,这样我就可以进行数字排序了。Lotus Notes 6.5。在列公式中,使用 @TextToNumber( itemname ) 由于文本字段具有数值,因此它们仍被视为文字字符串。因此,我发现格式化它们并避免@Errors的最简单方法是用前导零填充它们,并继续将它们视为字符串 这个解决方案的好处是

现有的LotusNotes数据库表单有一个文本字段,其中包含一个数值。我正在尝试创建一个视图来对该字段进行排序,但结果如下

九十九 1000 1002 1003 101 1011


有没有办法转换字段,这样我就可以进行数字排序了。Lotus Notes 6.5。

在列公式中,使用

@TextToNumber( itemname )

由于文本字段具有数值,因此它们仍被视为文字字符串。因此,我发现格式化它们并避免@Errors的最简单方法是用前导零填充它们,并继续将它们视为字符串

这个解决方案的好处是我们仍然在处理字符串。如果您的数据无法转换为数字,则不要在数据类型转换中乱动

因此,将其放入列公式中,并根据需要将排序选项设置为升序或降序:

MaxSize := 10;
len := @Length(@trim(yourField));
Pad := MaxSize - Len;
@Repeat("0";pad) + @trim(yourField);
确保“MaxSize”值大于它接收到的任何值的长度。从您提供的示例来看,4似乎可以解决这个问题


(根据Ken的建议),如果填充列的外观对用户不具吸引力,您可以将此列设置为隐藏、排序列,然后将原始未格式化(和未排序)列呈现给用户,使其以数字顺序显示。

感谢您的回复。我尝试了@TextToNumber,得到了@Error。如果该项无法转换为数字,您将得到一个错误。这是发生在所有的记录上,还是只发生在一些记录上?您可以通过先将项目值转换为文本,然后使用
@TextToNumber(@text(itemname))
将其转换为数字来覆盖不一致性。将为视图中的所有行返回@错误。我尝试了@Text,结果为空,因此@TextToNumber(@Text)也返回@Error。您尝试了@Text,并在括号中包含了字段的名称,例如
@Text(field)
,所有内容都显示为空?如果是,请查看字段类型。转到任意视图,选择一个文档,然后单击文件>文档属性并单击第二个选项卡。然后找到字段名并查看数据类型。@文本字段上的文本应显示值,除非该字段是富文本字段。您正在用字段的实际名称替换“itemname”,对吗?请发布解决问题的答案。我已将您的两个帐户合并在一起。很好的解决方法。请注意,如果您不希望填充的数字显示在视图中,可以将其添加为隐藏列进行排序。@Ken。谢谢,我已经更新了答案,包括你的评论。