программно вложить файл

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

  1. sam23

    sam23 Гость

    Как сделать что бы некий заранее известный документ можно было прицепить в заранее известное поле.
    Например C:/myfile.doc
    Нужно прицепить в поле Brif
     
  2. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Ну при создании документа цепляй документ в поле. как приатачить документ смотри в поиске, примеров довольно много было на форуме.
     
  3. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Взято из хэлпа

    Код (Text):
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim rtitem As NotesRichTextItem
    Dim object As NotesEmbeddedObject
    Set db = session.CurrentDatabase
    Set doc = New NotesDocument( db )
    Set rtitem = New NotesRichTextItem( doc, "Brif" )
    Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "C:\myfile.doc")
    Call doc.Save( True, True )
     
  4. sam23

    sam23 Гость

    Может я что то не так делаю. только начал изучать Lotus.
    Вставляю код в Initialize формы
    вот код - Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim rtitem As NotesRichTextItem
    Dim object As NotesEmbeddedObject
    Set db = session.CurrentDatabase
    Set doc = New NotesDocument( db )
    Set rtitem = New NotesRichTextItem( doc, "Brif" )
    Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "C:\myfile.doc")
    Call doc.Save( True, True )

    и ничего неполучается. захожу в форму, а документ не влаживается.
    Подскажите как сделать
     
  5. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Повесь код на PostOpen. Но поставь условие:

    if (Source.IsNewDoc) Then
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim rtitem As NotesRichTextItem
    Dim object As NotesEmbeddedObject
    Set db = session.CurrentDatabase
    Set doc = source.document
    Set rtitem = New NotesRichTextItem( doc, "Brif" )
    Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "C:\myfile.doc")
    Call doc.Save( True, True )
    endif

    В твоем коде ты новому документу приатачиваешь файл, а не к текущему.
     
  6. Alex_Sun

    Alex_Sun Гость

    Ты же каждай раз создаёш документ помимо открываемого, да ещё и без указания формы.
    Используй событие PostOpen, а до документа доберайся через Source (set doc = Source.Document)
     
  7. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    sam23
    савсем всё не так делаете...
    начните с азов

    в Вашем случае надо делать код на кнопку
    Код (Text):
    Dim ws as New NotesUIworkspace
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim rtitem As NotesRichTextItem
    Dim object As NotesEmbeddedObject
    Set db = session.CurrentDatabase
    Set doc = ws.CurrentDocument.Document
    Set rtitem = New NotesRichTextItem( doc, "Brif" )
    Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "C:\myfile.doc")
    call ws.CurrentDocument.Refresh(true)
    Не партесь и зделайте кнопку на @-Formula
    Код (Text):
    @Command( [EditGotoField]; "Brif" )
    @Command( [EditInsertFileAttachment]; "C:\myfile.doc"" )
    з.ы. учите азы. Открывайте книги и штудируйте
     
  8. Alex_Sun

    Alex_Sun Гость

    Чёрт, меня опередили...
     
  9. sam23

    sam23 Гость

    ничего не получается объясните если можете все подробно
     
  10. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    1. что не получаеться?
    2. что должно получиться (описание действий пользователя и системы )
     
  11. sam23

    sam23 Гость

    пробывал сделать кнопку.
    пишу в PostOpen код
    Dim ws as New NotesUIworkspace
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim rtitem As NotesRichTextItem
    Dim object As NotesEmbeddedObject
    Set db = session.CurrentDatabase
    Set doc = ws.CurrentDocument.Document
    Set rtitem = New NotesRichTextItem( doc, "Brif" )
    Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "C:\myfile.doc")
    call ws.CurrentDocument.Refresh(true)

    и создаю кнопку. в Click пишу формулу
    @Command( [EditGotoField]; "Brif" )
    @Command( [EditInsertFileAttachment]; "C:\myfile.doc"" )
    пытаюсь сохранить,он ругается
    "конец формулы наступил до того как встретилась строка"
     
  12. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    зделайте тип кнопки Formula ( сверху поля в котором Вы пишите код стоит вилимо LotusScript, его надо сменить на Formula )
     
  13. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Просто кто-то забыл точку с запятой поставить. :rolleyes:

    И кавычка лишняя. И два слеша надо.
    Короче:
    Код (Text):
    @Command( [EditGotoField]; "Brif" );
    @Command( [EditInsertFileAttachment]; "C:\\myfile.doc" )
     
  14. sam23

    sam23 Гость

    теперь все нормально сохранилось. но при нажатии на кнопку ничего не происходит
     
  15. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    значит нет такого файла на диске С
     
  16. sam23

    sam23 Гость

    все я разобрался,косяк мой был. а интересно можно програмно нажать клавишу
     
  17. morpheus

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

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

    Alex_Sun Гость

    :rolleyes: А как???
     
  19. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    лучше действительно не знать
     
  20. Xellos

    Xellos Гость

    Как-как... Читайте хелп, он рулез. Там многое есть. Собственно, почти всё, кроме недокументированных возможностей и некоторых неочевидностей.
     
Загрузка...

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