这种情况可能吗?

时间:2019-08-02 14:29:20

标签: lotus-notes lotus-domino lotusscript lotus lotus-formula

使用按钮是否可以以一种形式出现这种情况?

如果我创建新记录: 我的“保存并关闭”按钮将发送通知。

如果我编辑现有的现有记录: 我的“保存并关闭”按钮不会发送通知。

当前,我有4个按钮: 编辑,退出,保存并关闭。

当我单击“新建”时: 仅显示“保存并关闭”按钮。

当我打开现有文件时: 显示编辑并退出。然后,当我单击“编辑”时,将显示“保存并关闭”。

**计划在我要放置此代码的位置添加另一个“保存并关闭”按钮。 然后仅在我处于创建新模式而不是编辑模式时显示。

Sub Click(Source As Button)
    Dim ses As New NotesSession
    Dim db As NotesDatabase 
    Dim doc As NotesDocument 
    Dim body As NotesRichtextItem
    ' get the database
    Set db = ses.CurrentDatabase
    ' create a new document in the database
    Set doc = New NotesDocument( db )
    ' set the new document's form so it'll be readable as a mail memo
    doc.Form = "Memo"
    ' set the new document's subject
    doc.Subject = "Notification"
    ' set the new document's body
    Set body = New NotesRichtextitem( doc, "Body" )
    Call body.AppendText( "A new record has been created." )
    Call body.AddNewLine(1)
    Call body.AppendText( "Click here to open the document --> " )  
    Call body.AppendDocLink( ws.CurrentDocument.document, "Click me" )
    'Call doc.Send( False, "Lekhwair Alatan")
    Dim recipients( 1 To 2 ) As String
    recipients( 1 ) = "recipient 1"
    recipients( 2 ) = "recipient 2"
    Call doc.Send( True, recipients )
End Sub

2 个答案:

答案 0 :(得分:2)

所以我假设这段代码在用户界面中的操作栏按钮或表单上的另一个按钮中。

因此,从NotesUIWorkspace可以获取CurrentDocument(类型为NotesUIDocument),并可以从中检查属性IsNewDoc。您还可以将发送通知的日期/时间另存为文档中的一个字段,以便您随时可以返回并确认发送了通知。

Dim workspace as New NotesUIWorkspace
Dim docuiCurrent as NotesUIDocument

set docuiCurrent = workspace.CurrentDocument

if docuiCurrent.Document.HasItem( "$UpdatedBy" ) then
    // send notification
End If

答案 1 :(得分:1)

将邮件发送功能的代码放入表单的post save事件中。添加新字段以保存状态。

一个简化的版本可能看起来像这样:

dim mailSent as string
mailSent = doc.getitemvalue("MailSent")(0)
if len(mailSent)=0 then
 call sendMail(doc)
 call doc.replaceItemvalue("MailSent",cstr(now))
 call doc.save(true,false)
end if