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

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

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

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

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

Проблема с аттачами

Тема в разделе "Lotus - Программирование", создана пользователем SkyRanger, 1 июн 2007.

  1. SkyRanger

    SkyRanger Active Member

    Репутация:
    0
    Регистрация:
    17 мар 2007
    Сообщения:
    44
    Симпатии:
    0
    Прикрепляю файло к документу

    Код:
    	Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim rtitem As NotesRichTextItem
    Dim object As NotesEmbeddedObject
    Dim doc As NotesDocument
    Dim filename As Variant
    
    Set uidoc = ws.CurrentDocument
    filename = ws.OpenFileDialog(True, "Выберите файл(ы)","","c:\")
    Call uidoc.GotoField("doc_file")
    
    Forall j In filename
    Print j
    End Forall		
    
    Set doc = uidoc.Document
    
    Set rtitem = New NotesRichTextItem( doc, "doc_file" )
    
    Forall j In filename
    Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", j)
    End Forall
    
    Call doc.Save( True, True )
    Но аттач становится виден после закрытия документа и открытия его сново.

    Мне надо чтобы аттач становился доступен сразу и еще чтобы он добавлялся не в самый конец документа а в поле doc_file чтобы не пролистывать содержание документа чтобюы добраться до прикрепленной в виде файла версии...
     
  2. velitchestvo

    velitchestvo Гость

    Репутация:
    0
    попробуй так:
    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim rtitem As NotesRichTextItem
    Dim object As NotesEmbeddedObject
    Dim filename As Variant

    Set uidoc = ws.CurrentDocument
    filename = ws.OpenFileDialog(True, "Выберите файл(ы)","","c:\")
    Call uidoc.GotoField("doc_file")

    Forall j In filename
    Print j
    End Forall

    Set rtitem = New NotesRichTextItem( uidoc, "doc_file" )

    Forall j In filename
    Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", j)
    End Forall

    Call uidoc.Save( True, True )
     
  3. Medevic

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

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Используй собаки:
    Код:
    @Command([EditGotoField]; fieldName$);
    @Command([EditInsertFileAttachment])
     
  4. morpheus

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

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.915
    Симпатии:
    1
    <!--QuoteBegin-velitchestvo+1:06:2007, 08:16 -->
    <span class="vbquote">(velitchestvo @ 1:06:2007, 08:16 )</span><!--QuoteEBegin-->Set rtitem = New NotesRichTextItem( uidoc, "doc_file" )
    [snapback]67741" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    тут скорее всего будет ошибка
     
  5. SkyRanger

    SkyRanger Active Member

    Репутация:
    0
    Регистрация:
    17 мар 2007
    Сообщения:
    44
    Симпатии:
    0
    Во заработало!


    Код:
    	Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim rtitem As NotesRichTextItem
    Dim object As NotesEmbeddedObject
    Dim doc As NotesDocument
    Dim filename As Variant
    
    Set uidoc = ws.CurrentDocument
    filename = ws.OpenFileDialog(True, "Выберите файл(ы)","","c:\")
    
    Forall j In filename
    Print j
    End Forall		
    
    Set doc = uidoc.Document
    
    Set rtitem = New NotesRichTextItem( doc, "doc_file" )
    
    Call doc.Save( True, True )	
    
    Forall j In filename
    Call uidoc.GotoField("doc_file")
    Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", j)
    Call uidoc.GotoField("doc_text")
    Call uidoc.Import("Microsoft Word",j)
    End Forall
    
    Call doc.Save( True, True )	
    Call uidoc.GotoField("post_no")
    Только проблема опять же, он зараза в самый низ документа под полоску аттачит, а я хочу чтобы в поле аттачил как значок, в общем аналогично

    Код:
    @Command([EditGotoField]; fieldName$);
    @Command([EditInsertFileAttachment])
    тока на скрипте...
     
  6. SkyRanger

    SkyRanger Active Member

    Репутация:
    0
    Регистрация:
    17 мар 2007
    Сообщения:
    44
    Симпатии:
    0
    Интересно... Если использовать

    Set rtitem = doc.GetFirstItem( "doc_file" )

    то нефига не работает, он не возвращает объект поля...

    А если создавать новое поле и старое уже есть, он все равно добавляет в самый конец документа...

    Т.е. вставить в поле не получается, так как он ен хочет это поле возвращать в виде объекта... Или я где то туплю???

    А как запретить правку / удаление ентого объекта? Или надо запрещать правку всего документа???
     
  7. IsAvailable

    IsAvailable Гость

    Репутация:
    0
    1.
    По поводу отображения аттачей - этот вопрос на этом форуме поднимался не раз уже (и мной в том числе % )
    Дали мне в тот раз зело полезную ссылку. Как найду - выложу сюда. Но суть решения вот тут можно посмотреть: http://codeby.net/forum/threads/1774s0.html?p=8488&

    2.
    Чтоб до RT-поля достучаться - используй сначала Вариант, а потом уже присваивай значение "РТ-переменной".

    3.
    На сколько знаю, достаточно запретить правку части документа с РТ-полем. Например, секцией с регулируемым доступом.


    P.S. По поводу пункта 1. : http://codeby.net/forum/threads/2112s660.html...amp;#entry52357
    Спасибо oshmianski
     
Загрузка...

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