いいね!数

0

閲覧数
234

ロータススクリプトのeditdocumentを使用して、既存文書のコピーを作成するコードを

書きました。このコードでは文書は一度も保存していません。

 

Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim workspace As New NotesUIWorkspace
    Dim db As NotesDatabase
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument, doc2 As NotesDocument
    Dim item As NotesItem
    
'// 確認メッセージ
    RetVal = Messagebox ( "文書のコピーを作成します。よろしいですか?" ,1+32, "メッセージ" )
    If RetVal = 2 Then
        Exit Sub
    End If
    
    Set uidoc = workspace.CurrentDocument
    Set doc = uidoc.Document
    Set db = session.CurrentDatabase
    Set doc2 = New NotesDocument(db)

    doc2.form=doc.form(0)
    
    Set item = doc.GetFirstItem("Readers")
    Call item.CopyItemToDocument(doc2, "Readers")
    Set item = doc.GetFirstItem("AreaFlg")
    Call item.CopyItemToDocument(doc2, "AreaFlg")
    Set item = doc.GetFirstItem("GRCode")
    Call item.CopyItemToDocument(doc2, "GRCode")
    Set item = doc.GetFirstItem("Department")
    Call item.CopyItemToDocument(doc2, "Department")

    
              '// 管理番号の自動採番
    If AutoManageNo( doc2 , "2" , "E" ) = -1 Then
        Exit Sub
    End If
    
    Call workspace.editdocument(True, doc2,False )
    
    Set uidoc = workspace.CurrentDocument
    uidoc.Refresh    
    
End Sub

ところか、このコードで作成した文書を@Command([FileSave])の仕込んであるボタンで保存したしたとき、

以下の QuerysaveイベントのコードでIsNewDocに引っかからず、処理が走ってしまいます。

        If Source.IsNewDoc Or doc.ManageNo(0) = "" Then
        Else
         ---処理----
        End If

 

editdocumentを使って作成した文書は新規文書とみなされないのでしょうか?

あるいは何か間違いがあるのでしょうか?

サーバー情報: | クライアント情報: | 
カテゴリ:アプリ開発 - Notes アプリ | タグ:
  | 質問日時:2020/09/10 14:35:12

回答・コメント

いいね!数

0

厳密にはeditdocumentで文書を作成しているのではなく

Set doc2 = New NotesDocument(db)

の段階でメモリー上に文書が作成されており、editdocumentはその文書を開く処理となります。なのでIsNewDoc で新規文書扱いされないという ことなのだと思います。

こういう場合はIsNewNoteを使うと判定できます。

If Source.Document.IsNewNote then

 

回答日時:2020/09/10 14:53:14

いいね!数

0

toseki様

早々の回答助かります。

ご教授頂いた、If Source.Document.IsNewNote thenで解決しました!

大変ありがとうございました。

勉強になりました。

回答日時:2020/09/10 15:17:32