【问题标题】:How to convert data to Ascii using Lotusscript?如何使用 Lotusscript 将数据转换为 Ascii?
【发布时间】:2018-04-12 07:16:56
【问题描述】:

我在使用 Domino Designer 构建的表单中有一个 lotus 脚本字段。该字段还允许用户存储 Lotus 多字节字符集字符串。但是我想将其转换为 ASCII 字符串。我总是使用公式语言中的@Ascii() 函数在我的视图列定义中进行转换。但是我打算在 lotus 脚本的 Exiting() 函数中执行此操作 有人可以帮我在 lotusscript 中做类似的操作吗?

公式语言

@Ascii(@Text(Employee_Name)) 

LotusScript:

Sub Exiting(Source As Field)

    Employee_Name = Asc(Employee_Name)  // does not work

End Sub

【问题讨论】:

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


    【解决方案1】:

    首先:您的问题有一个很大的错误:Lotus Notes 中没有“LotusScript-field”。所有可编辑字段都有 LotusScriptEvents,但字段的主要语言是公式。使用公式,您可以定义默认值、输入验证和-这对您的问题很重要-输入-翻译。 Input-Translation-Event 可以包含在存储之前转换字段内容的公式。

    当然你可以在QuerySave中编写这10行代码。但是你也可以只把这个公式放在字段的输入翻译中:

    @Ascii( @ThisValue )
    

    这是你的决定......

    【讨论】:

      【解决方案2】:

      您可以使用 Evaluate 语句调用@Ascii 公式:

      Sub Querysave(Source As Notesuidocument, Continue As Variant)
      
          Dim workspace As New NotesUIWorkspace
          Dim uidoc As NotesUIDocument
          Dim doc As NotesDocument
          Set uidoc = workspace.CurrentDocument
          Set doc = uidoc.Document
          Dim eval As Variant
      
          eval = Evaluate("@Ascii(@Text(Employee_Name))", doc)
      
          Call doc.ReplaceItemValue("Employee_Name", eval)
      
          Call doc.Save(True, False)
      
      End Sub
      

      【讨论】:

      • 实际上“Employee_Name”是当前字段......我试过你的代码它没有做任何事情?你能提出一些建议吗?所以在保存时,我试图将 Employee_Name 字段中输入的文本转换为 Ascii 格式。
      • 您可以在 QuerySave 事件中使用此代码吗?
      • 是的,在我将代码粘贴到 QuerySave 后它确实有效,非常感谢
      • 在每次退出字段时保存文档可能不是用户期望的...
      • @TorstenLink 好电话。如果它在文档QuerySave中,那么退出字段时不会保存,这样就解决了问题并且不会引入意外保存。
      【解决方案3】:

      如果其他解决方案因任何原因不可接受,那么您可以使用 LS。 Asc(和 Char)的问题在于它一次只作用于一个角色。只需遍历字段值并一次转换每个字符,然后将每个字符附加回字符串(或将 ASCII 值写入字节数组)。您可能还会发现“字节”版本也很有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-09
        • 1970-01-01
        • 2015-06-10
        • 1970-01-01
        • 2012-11-30
        • 1970-01-01
        • 2014-09-03
        • 1970-01-01
        相关资源
        最近更新 更多