当我使用computeWithForm =“onsave”在XPage中保存Notes文档时,表单上没有计算任何内容。
我认为 computeWithForm 选项会触发表单中的“QuerySave”事件,但我错了吗?
我知道我可以在Xpage DataSource上使用 querySaveDocument 事件,但是有很多lotusscript逻辑: - )
形式:
[]
XPAGE:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE form SYSTEM 'xmlschemas/domino_9_0_1.dtd'>
<form name='testform' xmlns='http://www.lotus.com/dxl' version='9.0' maintenanceversion='1.9'
replicaid='C125827800263D1B' noquery='true' publicaccess='false' designerversion='8.5.3'
recalc='true' renderpassthrough='true'>
<code event='querysave'><lotusscript
>Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim doc As NotesDocument
Set doc = Source.Document
doc.test = "123"
Call doc.Save( True, False )
End Sub</lotusscript></code>
<body><richtext>
<pardef id='1' leftmargin='1in' hide='notes web' tabs='L6.9375in'/>
<par def='1'/>
<pardef id='2'/>
<par def='2'><run><font name='Verdana' pitch='variable' truetype='true' familyid='20'/><field
usenotesstyle='false' height='0.2500in' width='4.7243in' multiline='true'
borderstyle='single' type='text' kind='editable' name='title'/></run></par>
<par def='2'><field type='text' kind='editable' name='test'/><compositedata
type='98' prevtype='65418' nexttype='222' afterparcount='6' containertype='65418'
aftercontainercount='1' afterbegincount='3'>
Yg4BAIQAAAAAAAAAAAA=
</compositedata></par></richtext></body>
<item name='$$ScriptName' summary='false' sign='true'><text>testform</text></item></form>
答案 0 :(得分:2)
computeWithForm
仅运行输入翻译和输入验证公式。
如果你想保留LS逻辑,一个选项是将它移动到代理(我相信你需要将UIDocument类更改为Document类并相应地重新编码)并从XPages调用代理。这不是我已经完成的事情,所以我不能指出你的文档。
答案 1 :(得分:0)
这是一个误会! 使用表单计算执行相关表单中的@Formula。它不执行任何表单事件或运行LotusScript。如果您想使用LotusScript,您需要将其拉入代理并显式调用该代理(提示:不要打扰,将脚本转换为SSJS或Java)。
除此之外:你不应该在querySave事件中调用doc.save--无论如何都会有一个保存操作。您点击了两次磁盘(对于Notes客户端应用程序来说,就像代码在XPage中运行一样)