|
0 / 0 / 0
Регистрация: 10.09.2005
Сообщений: 560
|
|
Редактирование аттачмента30.03.2009, 08:41. Показов 13046. Ответов 6
Метки нет (Все метки)
Нужна срочная помощь.
При двойном нажатии на аттачмент, открывается диалог, там жмем кнопку "Редактировать", документ открвывается во временную папку, мы редактируем док, сохраняем. А почему не приатачивается новый отредактированный док обратно ? Пробовал так, скриптом выбираем файл на редактирование (аттачментов может быть несколько), экспортируем его на диск, удаляем этот объект из RT поля, открываем файл с диска ...редактируем, сохраняем, приатачиваем. Так при следующем подобном действии у меня в этом поле как бы объектов и нету (говорит скрипт). Интересует вариант для выбора аттачмента из имеющихся объектов в поле с последующим его сохранением на диск и удалением из RT поля Мистика, но думаю этому есть объяснение. код к сожалению забыл взять для демострации.
0
|
|
| 30.03.2009, 08:41 | |
|
Ответы с готовыми решениями:
6
Передача аттачмента Удаление аттачмента из Rtf Отследить Изменение Аттачмента |
|
0 / 0 / 0
Регистрация: 09.01.2009
Сообщений: 40
|
|
| 30.03.2009, 12:43 | |
|
Например так:
Dim ws As New NotesUIWorkspace Dim mWebBrowser As Variant , varAttachmentNames As Variant, vPrompt As Variant, handleV As Variant Dim strTempPath As String Dim uidoc As NotesUIDocument Dim doc As NotesDocument Dim rtitem As NotesRichTextItem Dim vFile As NotesEmbeddedObject Set uidoc = ws.CurrentDocument Set doc = uidoc.Document Set rtitem = doc.GetFirstItem( "MTC" ) If Not (uidoc.IsNewDoc) Then Exit Sub If rtitem Is Nothyng Then Exit Sub If Isempty( rtitem.EmbeddedObjects ) Then Exit Sub varAttachmentNames = "" Forall x In rtitem.EmbeddedObjects пробегаемся по атачментам в поле Боди If Len( varAttachmentNames ) > 0 Then varAttachmentNames = varAttachmentNames +Chr(10) varAttachmentNames = varAttachmentNames + x.Name End Forall If Len( varAttachmentNames ) = 0 Then Exit Sub Let strTempPath = Environ$("TEMP") путь во временную папку varAttachmentNames = Split( varAttachmentNames, Chr(10) ) список всех имен атачментов vPrompt = ws.Prompt( 4, "Выбор", "Выберете доверенность", varAttachmentNames(0), varAttachmentNames ) выбираем кактой-то один If Isempty(vPrompt) Then Exit Sub Kill strTempPath + "\" + vPrompt удаляем файл на жестком диске Set vFile = rtitem.GetEmbeddedObject(vPrompt) Call vFile.ExtractFile(strTempPath + "\" + vPrompt) скидываем файл на диск Call vFile.Remove удаляем аттачмент Call rtitem.Update Set WShell = CreateObject("WScript.Shell") открываем на редоктирование ReturnCode = WShell.Run("""" +strTempPath + "\" + vPrompt+"""", 1, True) Call rtitem.EmbedObject( EMBED_ATTACHMENT, "",strTempPath + "\" + vPrompt , "" ) добаляем файл обратно в аттач Kill strTempPath + "\" + vPrompt удаляем на локале Messagebox("Изменения внесены") Exit Sub
0
|
|
|
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
|
|
| 04.06.2009, 15:37 | |
|
Воспользовалась этим кодом,спасибо!
Только вот происходят непонятные вещи. Иногда,если вложений несколько(напрмер несколько файлов ворд),кнопка не работает :( Жмешь на нее и никакой реакции. в итоге нашла ,что не находятся объекты . Т.е. Isempty (rtitem.EmbeddedObjects ) дает True. В чем причина? И как решить данную проблему? Документ сохранен,вложения доступны на чтение и редакцию обычным способом.
0
|
|
|
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
|
||||||
| 04.06.2009, 15:51 | ||||||
|
Код, раpмещенный выше, не проверяла.
Возможно, в вашем случае вложения просто не попали в рт-поле, а приаттачились к документу? Такое бывает при одинаковых именах вложений, например, или при работе c веб. Проверяли обычно doc.HasEmbedded и использовали код для доступа к EmbeddedObjects :
0
|
||||||
|
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
|
|
| 04.06.2009, 16:29 | |
|
Я прошу прощения,может туплю. Но вот проверила есть ли они в поле $File. Допустип у меня три вложеня,соответственно три поля File. Как из всех этих полей выбрать для редакции нужный? В Promt выводит пустые строки
0
|
|
|
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
|
|
| 04.06.2009, 17:00 | |
|
В моем коде предполагалось, что поле одно и надо было брать 1-е вложение. Тебе надо фактически проверить наличие аттача в принципе (doc.HasEmbedded) и воспользоваться получением EmbeddedObject нужного аттача с помощью
GetAttachment: Set notesEmbeddedObject = notesDocument.GetAttachment( fileName$ ) Parameters fileName$ String. The name of the file attachment you want. fileName можно получить с помощью @AttachmentNames через Evaluate (вместо получения N-го поля $File). Понятно?
0
|
|
|
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
|
|
| 04.06.2009, 17:08 | |
|
Только заметьте, что @AttachmentNames возвращает имена всех аттачей документа и не подойдет, если часть аттачей не надо учитывать в своем коде. Я не знаю, подойдет ли это к вашей задаче... :(
0
|
|
| 04.06.2009, 17:08 | |
|
Помогаю со студенческими работами здесь
7
Контроль размера прикрепляемого аттачмента. Скачивание аттачмента без прочтения письма. Рушится ЭЦП на документе при копировании аттачмента Как проверить Rich Text поле на наличие аттачмента? MAPI и сохранение на диск аттачмента с письма. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|