Как программно создать File Resource в дизайне базы данных?

Тема в разделе "Lotus - Программирование", создана пользователем fedotxxl, 16 сен 2010.

  1. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Всем привет
    Есть элемент базы данных - File Resource. Туда можно добавлять файлы произвольного содержания. Как это можно сделать программно?
     
  2. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
  3. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    alik86
    ага
     
  4. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Пока решил проблему сл. образом:
    Для создания использую dxl:
    Код (LotusScript):
    Function createEmptyMercurialProperties(db As NotesDatabase) As FileResource

    Dim ns As New NotesSession
    Dim nd As NotesDocument

    Dim importer As NotesDXLImporter
    Dim dxl As String

    Set db = ns.CurrentDatabase
    Set nd = db.CreateDocument

    dxl = {<?xml version='1.0'?>
    <fileresource name='MercurialProperties.xml' xmlns='http://www.lotus.com/dxl'
    version='8.0' maintenanceversion='2.0' replicaid='} + db.ReplicaID + {' publicaccess='false'
    designerversion='8'>
    <noteinfo noteid='8ca' unid='} + nd.UniversalID + {' sequence='3'>
    <created><datetime dst='true'>20100916T121213,33+04</datetime></created>
    <modified><datetime dst='true'>20100916T121253,86+04</datetime></modified>
    <revised><datetime dst='true'>20100916T121253,85+04</datetime></revised>
    <lastaccessed><datetime dst='true'>20100916T121253,85+04</datetime></lastaccessed>
    <addedtofile><datetime dst='true'>20100916T121213,35+04</datetime></addedtofile></noteinfo>
    <updatedby><name>} + ns.UserName + {</name></updatedby><filedata
    >
    SABlAGwAbABvACAAVwBvAHIAbABkAA==
    </filedata></fileresource>

    }

    Set importer = ns.CreateDXLImporter
    importer.DesignImportOption = DXLIMPORTOPTION_CREATE
    Call importer.Import(dxl, db)

    Set createEmptyMercurialProperties = FindFileResource(db, "file", "MercurialProperties.xml")
    End Function
    Для изменения содержимого - класс FileResource из LotusScript Gold Collection
    Код (LotusScript):
    Set db = session.CurrentDatabase
    Set fr = findMercurialProperties(db)

    Dim stream As NotesStream
    Set stream = session.Createstream

    Call stream.WriteText("Here is another content")
    Call fr.UpdateFileData(stream)
    Call fr.save
    Call stream.close
    Код (LotusScript):
    Function findMercurialProperties(db As NotesDatabase) As FileResource
    Dim fr As FileResource

    Set fr = FindFileResource(db, "file", "MercurialProperties.xml")
    If fr Is Nothing Then Set fr = createEmptyMercurialProperties(db)

    Set findMercurialProperties = fr
    End Function
     
Загрузка...

Поделиться этой страницей