如何使用Lotusscript将数据转换为Ascii?

时间:2014-04-17 16:37:36

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

我在使用Domino Designer构建的表单中有一个Lotus脚本字段。该字段允许用户也存储Lotus Multi-Byte Character Set字符串。但是我想将其转换为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

3 个答案:

答案 0 :(得分:2)

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

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

@Ascii( @ThisValue )

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

答案 1 :(得分:1)

您可以使用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

答案 2 :(得分:0)

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