не удаляеться иконка вложения

Тема в разделе "Lotus - Программирование", создана пользователем Vvv, 13 ноя 2009.

  1. Vvv

    Vvv Гость

    Я удаляю аттачи через функцию NSFNoteDetachFile при этом сам файл удаляеться из письма но его иконка остаеться.

    Подскажите пожалуйста как можно удалить иконку вложения ? подходит любой способ
     
  2. Klido

    Klido Гость

    погляди какое поле показано в области иконки вложения - его дополнительно и удаля....
     
  3. Vvv

    Vvv Гость

    >погляди какое поле показано в области иконки вложения - его дополнительно и удаля....
    к сожалению иконка находиться в body который удалить я не могу
     
  4. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    А чё не EmbeddedObject.Remove?
    Чем обусловлено?
     
  5. Vvv

    Vvv Гость

    NSFNoteDetachFile
    это C API а не LotusScript
     
  6. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Я-то понимаю, но кагбэ зачем?
     
  7. Vvv

    Vvv Гость

    в принципе мне все равно каким способом удалять аттачь но я знаю только способо через NSFNoteDetachFile
     
  8. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Vvv, батенька, Вы жжёте!

    Давай лучше через NotesEmbeddedObject?
    Omh какбэ гарантирует, что будет проще :(

    В чём задача состоит?
    Ща решим!
     
  9. Vvv

    Vvv Гость

    сейчас посмотрел help нашел варианты для удаления
    NSFItemDeleteByBLOCKID
    удалить item $FILE в котором аттачь с заданным именем но помоему оба варианта не как не влияют на удаление иконки

    я пишу addin для domino на С++ в help по domino c api я не вижу функций эквивалентным NotesEmbeddedObject в LotusScript

    конечная цель - из программы на C++ удалить вложение в note так что бы иконка аттача удалилась тоже
     
  10. Klido

    Klido Гость

    иконка в документе или в представлении???
     
  11. Vvv

    Vvv Гость

    иконка в документе
    можно считать это обычное письмо с приатачиным файлом
     
  12. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Надо явно парсить RTF-поле и удалять из него CD начинающееся с CDHOTSPOTBEGIN и типом HOTSPOTREC_TYPE_FILE. Если надо удалить один из аттачей, которые располагаются в одном RTF, то находить его по внутреннему имени файла (ну тот, который уникальный если вложено два файла с одинаковым именем).
     
  13. Vvv

    Vvv Гость

    Надо явно парсить RTF-поле и удалять из него CD начинающееся с CDHOTSPOTBEGIN и типом HOTSPOTREC_TYPE_FILE. Если надо удалить один из аттачей, которые располагаются в одном RTF, то находить его по внутреннему имени файла (ну тот, который уникальный если вложено два файла с одинаковым именем).

    спасибо за ваш ответ
    я пытался уже так сделать не получилось потому что
    0) мне надо сделать общий случай удаление любого атача
    1) имя файла я узнаю только после того как начну парсить HOTSPOTREC_TYPE_FILE элемент, вернуться назад к CDHOTSPOTBEGIN я не смог
    2) я не смог придумать как запомнить ссылку на CDHOTSPOTBEGIN (как индифицировать cd элемент) тогда бы я сделал за два прохода
    нашел нужный для удаления элемент (по HOTSPOTREC_TYPE_FILE) сохранив ссылку на него
    вторым проходом удалил бы его

    как то так
     
  14. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
  15. Vvv

    Vvv Гость

    спасибо за ссылку посмотрю еще раз как он удаляет атачии

    вообще автору этого проекта я показал несколько ошибок и как их исправить
    его Extension manager досих пор имеет проблеммы (вешает сервер на работе Indexer) хотя я ему писал как исправить
     
  16. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Хм.
    1) А как Вы реализовываете удаление их RTF-поля? Думаю, что должно быть что-то вроде копирования содержимого поля в новый буфер в памяти (или в файл), пропуская ненужные CD-записи. А затем замена старого значения RTF-поля новым из буфера, с уже удалёнными CD-записями. Потому почему бы не выполнять копирование памяти от CDHOTSPOTBEGIN до CDHOTSPOTEND только если он содержит ссылку на интересующий в данным момент файл? Т.е. перед копированием надо будет прочитать несколько CD-записей вперёд.
    0) Чем не общий случай? По вашим правилам Вы определяете имя файла для удаления или просто удаляете все вложения. Какой более общий случай вас интересует?
     
  17. Klido

    Klido Гость

    случилось похожее на днях делать, в 8.5.1 появились кое-какие новые апраметры для формул - мож они правильно зачистят иконки?

    EditInsertFileAttachment @Command
    Attaches a file to a document.

    Syntax
    @Command( [EditInsertFileAttachment] )

    or

    @Command( [EditInsertFileAttachment] ; file ; compress ; append ; deleteexisting ; deletefile )

    Parameters
    file

    Text. Optional. The name of the file you want to attach. Be sure to include the complete path specification (appropriate to the user's operating system).

    compress

    Text. Optional. Specify "1" (default) if you want to compress the attachment. Specify "0" if you do not.

    append

    Text. Optional. Specify "1" if you want to append the attachment. Specify "0" (default) if you want to insert it at the current position.

    Note This parameter is new with Release 8.5.1.

    deleteexisting

    Text. Optional. Specify "1" if you want to delete the same existing attachment. Specify "0" (default) if you do not.

    Note This parameter is new with Release 8.5.1.

    deletefile

    Text. Optional. Specify "1" if you want to delete the base file. Specify "0" (default) if you do not.

    Note This parameter is new with Release 8.5.1.

    Without a file parameter, displays the Create Attachment dialog box. If a file is specified, attaches that file to the document without opening the Create Attachment dialog box.
     
  18. Klido

    Klido Гость

    удалить вложение (и иконку) - проблем нет, но вот при вложении в бэкграунде какого-либо файла он в ртф вкладывается с иконкой по-умолчанию, т.е. никакой на вид...
    при этом пресловутый показ аттача внизу документа (ранее я задавал вопрос откуда оно вылезает ;), но так ни до чего и не дошли...) показывает всё правильно, что наводит на мысль о возможности вложить в ртф файло программно более красиво (через UI всё ОК, но надо именно в бэкграунде). Вкладываю примерно так

    Код (Text):
                  filename = ws.OpenFileDialog(flase, "Укажите новый файл")
    Set rtitem = ND.GetFirstItem( "Doc_Attach" )
    Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", filename(0))
    Call ND.save(True,False)
    и получаем вот такой вид документа с вложением
    att4.jpg
     
  19. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    забейте на РТФ классы - ибо глюкало
    к томуже, иконки - нотуса берут из "реганых" приложений на вянде (без интерактивного действа - иконка вложения не будет цепляться, такуж написали)
    выход след. - делать через DXL, иконок (для приложений) "надергать" из самих приложений, перекодить в гиф и сложить в базу. Подставлять, согласуясь с собственным худ. вкусом :)
     
  20. Klido

    Klido Гость

    красивая иконка - это даже не пол-, а 1/32-я беды :) не критично пока и можно рассказать, что пока будет так, а вот показ вложений внизу документа 2-й раз (причем всех вложений, там в документе не одно РТФ) - раздражает народ (ну и меня :crash:). Времени нет, к сожалению, экспериментировать с достаточно сложной формой (там штук 5 подформ только с вложенными же подформами), но странная псевдосекция внизу напрягает :)
     
Загрузка...

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