检查数字字段 lotusscript

Check numeric field lotusscript

我在名为 "fin_Paiement" 的表单上有一个字段。我想要做的是:字段值只接受数字和点,并用点替换任何其他字符。我用替换函数为字母值做了这件事,但它不起作用。 我试过了:

Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim db As NotesDatabase
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
doc.fin_Paiement = Replace(doc.fin_Paiement_Montant(0), "*[a-z,A-Z]*", ".")

非常感谢您的帮助!谢谢

LotusScript 的 Replace 方法不支持正则表达式。您必须使第二个参数成为所有字母的数组,例如:

doc.fin_Paiement = Replace(
 Cstr(doc.fin_Paiement_Montant(0)),
 Split("a, b, c, d, e, f, g, h, i, j, you get the idea...", ", "),
 "."
)

请注意,我还没有对此进行测试,但理论上它应该可以解决问题。

创建一个将所有非数字更改为点的函数

Function ToDigitsAndDots(orig As String) As String
    Dim i As Integer
    Dim char As String
    For i=1 To Len(orig)
        char = Mid(orig, i, 1)
        If Not char Like "#" Then char = "."
        JustDigitsAndDots = JustDigitsAndDots & char
    Next
End Function

并将您的代码行更改为

doc.fin_Paiement = ToDigitsAndDots(doc.fin_Paiement_Montant(0))

请打消我的疑虑:您的字段属于 "Number" 类型,对吗?在这种情况下,不需要代码,它只接受数字,并且小数分隔符在其属性中指定。默认情况下,字段的区域设置是 Notes 客户端的区域设置,默认情况下是操作系统的区域设置,因此通常不需要您担心。

无论如何,这是您在 LotusScript 中通常不会做的事情! 最直接的方法是在字段的事件之一中使用@functions。

查看您的设计器帮助,here is some hint , and you may want to review this