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

Lotus notes 如何使用Lotusscript将数据转换为Ascii?,lotus-notes,lotus-domino,lotusscript,lotus-formula,Lotus Notes,Lotus Domino,Lotusscript,Lotus Formula,我使用Domino Designer在表单构建中有一个lotus脚本字段。此字段还允许用户存储Lotus多字节字符集字符串。但是,我想将其转换为ASCII字符串。在我的视图列定义中,我总是使用公式语言中的@Ascii()函数来转换它。但是,我计划在lotusscript中的Exiting()函数中执行此操作。有人可以帮助我在lotusscript中执行类似的操作吗 公式语言 @Ascii(@Text(Employee_Name)) LotusScript: Sub Exiting(Sourc

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

公式语言

@Ascii(@Text(Employee_Name)) 
LotusScript:

Sub Exiting(Source As Field)

    Employee_Name = Asc(Employee_Name)  // does not work

End Sub

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

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

当然,您可以在QuerySave中编写这10行代码。但您也可以将此公式放入字段的输入转换中:

@Ascii( @ThisValue )

这是您的决定…

如果其他解决方案因任何原因不可接受,则您可以使用LS。Asc(和Char)的问题是它一次只能处理一个字符。只需在字段值上循环并一次转换一个字符,然后将每个字符追加回字符串(或将ASCII值写入字节数组)。您可能还会发现“byte”版本也很有用

实际上“Employee_Name”是当前字段。。。我试过你的代码它什么都没做?你能建议点什么吗?因此,在保存时,我正在尝试将Employee_Name字段中输入的文本转换为Ascii格式。您可以在QuerySave事件中使用此代码吗?是的,在我将代码粘贴到QuerySave中后,它确实起了作用,谢谢。在字段的每个出口保存文档可能不是用户所期望的…@TorstenLink Good call。如果它在文档QuerySave中,那么它在退出字段时就不会保存,这样就解决了问题,并且不会引入意外的保存。