Добавление нового Attachment командой Openfiledialog.

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

  1. Гость

    При добавлении нового attachment командой OpenFileDialog, чё за хрень существующий attachment уходит в подвал.
    Код (Text):
    Forall file In files
    Call rtitem.EmbedObject(EMBED_ATTACHMENT, "", file)

    ' "прописываем" изменения в RichTextItem
    Call rtitem.Update     

    ' тут указывается форма документа, если он был новый и форма не установлена еще, либо на всякий случай :)
    Call uidoc.Document.ReplaceItemValue("Form", "Contract")

    ' это позволяет избавиться от вопроса о сохранении закрываемого документа!
    ' причем это прописывается в "старый" экземпляр документа в памяти-instance,
    ' т.е. в открытом предыдущей командой документе это не появится и убирать не нужно оттуда ничего
    Call uidoc.Document.ReplaceItemValue("SaveOptions", "0")

    ' закрываем "старый" документ
    Call uidoc.Close(True)
    End Forall
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    апдейт нужен с True
    и ваще РТ - это много глюков
    TIA рассказывал и про детали встраивания аттача, без сохранения дока на диск
     
  3. Гость

    А это как - апдейт нужен с True !?!
    Call rtitem.Update(True) - не проходит.
    А по TIA я поищу.
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    Call notesUIDocument.Refresh( [ IncludeRichTextItems ] )
    я это имел в виду
    коряво выразился

    но в общем - док нужно сохранить (после добавления аттача) и переоткрыть в ws
     
  5. Гость

    Народ pls. help не выходит сохранить предыдущий attache. Какие-то непонятные файлы ATT создает.

    Код (Text):
        Forall file In files
    Call rtitem.EmbedObject(EMBED_ATTACHMENT, "", file)

    ' "прописываем" изменения в RichTextItem
    Call rtitem.Update     

    ' тут указывается форма документа, если он был новый и форма не установлена еще, либо на всякий случай :)
    Call uidoc.Document.ReplaceItemValue("Form", "Contract")

    ' это позволяет избавиться от вопроса о сохранении закрываемого документа!
    ' причем это прописывается в "старый" экземпляр документа в памяти-instance,
    ' т.е. в открытом предыдущей командой документе это не появится и убирать не нужно оттуда ничего
    'Call uidoc.Document.ReplaceItemValue("SaveOptions", "0")

    ' закрываем "старый" документ
    Call uidoc.Close(True)
    End Forall

    ' теперь открываем документ в новом окне
    Call ws.EditDocument(True, uidoc.Document)

    'сохраним документ
    Call ws.CurrentDocument.Save

    'обновим документ
    Call ws.CurrentDocument.Refresh(True)
     
  6. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
  7. amigolinx

    amigolinx Гость

    Походу Денис оттуда и брал код :(
    Мне вот не совсем понятна логика - что за уидок все время в цикле закрывается ( Call uidoc.Close(True) )? И опять же зачем при каждом проходе цикла менять форму на доке ( Call uidoc.Document.ReplaceItemValue("Form", "Contract") )? Может стоит вынести эти штуки после завершения ForAll. Если это проблему и не решит, то все же как-то спокойнее будет :(

    ... или наоборот, все операции с доком включить поголовно в цикл...
     
  8. Klido

    Klido Гость

    вообще - зачем цикл?
    в чем задача - заменить аттач? добавить ещё один?
     
  9. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Да, там с циклом явно какой-то перебор.
    Это всё:
    Код (LotusScript):
    Call rtitem.Update       
    Call uidoc.Document.ReplaceItemValue("Form", "Contract")
    Call uidoc.Document.ReplaceItemValue("SaveOptions", "0")
    Call uidoc.Close(True)
    вынести ара из цикла
    И вообще, обращатся всё время к документу через uidoc - не модно, лучше завести переменную.
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    эффект вызывается рассинхронизацией ФЭ и БЭ
     
  11. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    amigolinx та просто, ребята, ну он же не думает, что пишет :(
    я видела, что оттуда, первый пример. Там есть еще и второй, например. Там плохо написано?
    Что туда добавить, чтоб было понятно - краткую инструкцию по SaveOptions? или описание различий уи и бекэнда?
    или фразу о том, что списывать надо с умом и иногда смотреть в описание используемых команд?
     
Загрузка...

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