我在使用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
答案 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'版本也很有用。