1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Вложения

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

  1. reload

    reload Гость

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

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

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

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

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

    reload Гость

    Репутация:
    0
    выгружать на жесткий диск конкретного рабочего места
     
  5. morpheus

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

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

    Код:
    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 Гость

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

    Yakov Гость

    Репутация:
    0
    Конечно можно.
    Код:
    Dim database As New NotesDatabase("server", "path\to\db.nsf")
    Dim doc As NotesDocument
    Set doc = database.GetDocumentByUNID(unid)
     
  8. morpheus

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

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

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

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

    reload Гость

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

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