莲花注意公式。试图在字段验证中运行@command

时间:2015-07-13 09:45:08

标签: formula lotus

我正在尝试使用公式在验证时从字段中打开文档。基本上我已经设置了一个检查重复条目的数据库,我希望数据库(如果创建了一个表单)检查它是否已经存在,是否确实询问用户是否要打开表单。我已经完成所有设置并获得了UNID但是当我来保存文档进行测试(一切正常)它会出现以下错误

@commands and other UI functions are not allowed in this context

不确定要尝试什么。任何帮助将是欣赏。我使用的命令如下

@Command([EditDocument];1;Unid) //where Unid is an ID I have acquired previously

1 个答案:

答案 0 :(得分:0)

这是一项使用公式语言无法完成的任务。正如消息所示:@Commands不能在任何可以帮助您完成此任务的上下文中使用。

您需要在任何匹配事件(例如QuerySave)中使用LotusScript来执行此操作检查并打开其他文档。以下是一些示例代码:

%include "lsconst.lss"
Sub QuerySave( Source as NotesUIDocument, Continue as Variant )
  Dim ses as New NotesSession
  Dim db as NotesDatabase
  Dim ws as New NotesUIWorkspace
  Dim doc as NotesDocument
  Dim ok as Variant
  Dim strOtherUnid as String
  Set db = ses.CurrentDatabase
  strOtherUnid = Source.Document.OtherUnid(0)
  If strOtherUnid  <> "" then
    Continue = False
    ok = Messagebox ("There is already another document, do you want to edit it?" , MB_YESNO + MB_ICONQUESTION, "QUESTION" )
    if ok = IDYES then
      Set doc = db.GetDocumentByUNID( strOtherUnid )
      Call ws.EditDocument( False, doc )
    End if
  End if
End Sub

此代码根本没有经过测试,只是用作起点。它需要一个名为&#34; OtherUnid&#34;包含另一个文档的universalid。