2

基本的なリビジョン管理システムを作成する取り組みの一環として、Lotus Notes テンプレートで設計要素レベルの継承をプログラムで無効にしたいと考えています。私はこれまでに次のことを試しました:

  • DXL エクスポート (ForceNoteFormat=true) + XSLT。これは、インポーターのフィールド (!) での検証の問題で失敗しました。
  • DXL エクスポート (ForceNoteFormat=false) + XSLT。うまくいくようですが、この一般的なものにはDXLソリューションを使用したくありません。

探求したい分野:

  • すべての (デザイン) ノートをループし、アイテムを削除し$Classます。

これを行う方法、または継承を削除する別のアプローチについて誰か提案がありますか?

4

1 に答える 1

4

次のサブは機能しているようです。7.0.3クライアントが生成できるすべてのデザイン要素からフラグを削除します。同じテーマに関するIanのブログエントリNotesNoteCollectionから手がかりを得ました。

Private Sub clearDesignInheritance(db As notesdatabase)
    On Error Goto errorthrower

    Dim nc As NotesNoteCollection
    Set nc = db.CreateNoteCollection(True) ' Select all note types...
    nc.SelectDocuments=False ' ...except data documents.

    Call nc.BuildCollection

    Dim noteid As String
    noteid = nc.GetFirstNoteId

    Dim doc As notesdocument

    Do Until noteid=""
        Set doc = db.GetDocumentByID(noteid)
        If doc.HasItem("$Class") Then
            Call doc.RemoveItem("$Class")
            Call doc.save(False,False,False)
        End If
        noteid = nc.GetNextNoteId(noteid)
    Loop

    Exit Sub
ErrorThrower:
    Error Err, Error & Chr(13) + "Module: " & Cstr( Getthreadinfo(1) ) & ", Line: " & Cstr( Erl )
End Sub
于 2009-08-10T18:37:49.043 に答える