Вложения

Тема в разделе "Lotus - Программирование", создана пользователем reload, 14 апр 2008.

  1. reload

    reload Гость

    Добрый день! Ситуация. Есть база документов, у всех документов есть по одному или несколько вложений, последнии для экономии места вынесены в отдельную базу. задача выгружать вложения находясь в первой (основной) базе, это возможно?
     
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Куда выгружать?
     
  3. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
  4. reload

    reload Гость

    выгружать на жесткий диск конкретного рабочего места
     
  5. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    reload
    читайте хэлп, вот яркий пример

    Код (Text):
    Dim doc As NotesDocument
    Dim rtitem As Variant
    '...set value of doc...
    Set rtitem = doc.GetFirstItem( "Body" )
    If ( rtitem.Type = RICHTEXT ) Then
    Forall o In rtitem.EmbeddedObjects
    If ( o.Type = EMBED_ATTACHMENT ) Then
    Call o.ExtractFile( "c:\samples\" & o.Source )
    Call o.Remove
    Call doc.Save( False, True )
    End If
    End Forall
    End If

    Если надо на конкретное рабочее место выгружать, то соответственно скрипт должен выполнятясь на этом рабочем месте ( или через расшаренные ресурсы )
     
  6. reload

    reload Гость

    С этим всё, понятно, если бы вложения были в той же базе где и документы, тогда бы вопросов и не было. А так вложения находятся в соседней базе и добраться до них таким образом не получается. Поле "body" в основной базе пустое и никаких вложенных объектов там нет. Есть доп. поле в котором находится ссылка на вложенный объект в другой базе (тип набор строк, сервер, имя базы, UID документа с вложением) вот это вложение и надо достать. Можно таким образом: октрыть базу, получить документ getdocumentbyunid а потом от этого документа отцепить вложение?
     
  7. Yakov

    Yakov Гость

    Конечно можно.
    Код (Text):
    Dim database As New NotesDatabase("server", "path\to\db.nsf")
    Dim doc As NotesDocument
    Set doc = database.GetDocumentByUNID(unid)
     
  8. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    именно , в скрипте ж есть коммент '...set value of doc... - вот здесь каким нам удобно образом мы и задаем документ откуда доставвать вложение, будь то тек. документ или любой другой ( тот же гетдокбайунид )
     
  9. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Т.е. цель показать пользователю вложения? Если да, то можно без выгрузки. Через DialogBox, например.
     
  10. reload

    reload Гость

    Цель - сохранить нужные вложения на диске пользователя для дальнейшей работы с ними, так как документов очень много и вложений ещё больше, отбор доков для выгрузки будет идти по выделенным документам. Вроде пробовал так - не получается, щас ещё раз посмотрю, может где оплошал :ph34r:)) Спасибо!!!
     
Загрузка...

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