【问题标题】:Check numeric field lotusscript检查数字字段 lotusscript
【发布时间】:2015-03-02 12:51:16
【问题描述】:

我在名为“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]*", ".")

感谢您的帮助!谢谢

【问题讨论】:

    标签: lotus-notes lotus-domino lotusscript lotus lotus-formula


    【解决方案1】:

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

    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))
    

    【讨论】:

      【解决方案2】:

      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...", ", "),
       "."
      )
      

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

      【讨论】:

        【解决方案3】:

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

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

        查看您的 Designer 帮助,here is some hint,您可能想要review this

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多