Lotus notes 如何使用Lotusscript将数据转换为Ascii?
我使用Domino Designer在表单构建中有一个lotus脚本字段。此字段还允许用户存储Lotus多字节字符集字符串。但是,我想将其转换为ASCII字符串。在我的视图列定义中,我总是使用公式语言中的@Ascii()函数来转换它。但是,我计划在lotusscript中的Exiting()函数中执行此操作。有人可以帮助我在lotusscript中执行类似的操作吗 公式语言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
@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中,那么它在退出字段时就不会保存,这样就解决了问题,并且不会引入意外的保存。