Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/71: Рейтинг темы: голосов - 71, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 10.09.2005
Сообщений: 560

Редактирование аттачмента

30.03.2009, 08:41. Показов 13046. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна срочная помощь.
При двойном нажатии на аттачмент, открывается диалог, там жмем кнопку "Редактировать", документ открвывается во временную папку, мы редактируем док, сохраняем. А почему не приатачивается новый отредактированный док обратно ?

Пробовал так, скриптом выбираем файл на редактирование (аттачментов может быть несколько), экспортируем его на диск, удаляем этот объект из RT поля, открываем файл с диска ...редактируем, сохраняем, приатачиваем. Так при следующем подобном действии у меня в этом поле как бы объектов и нету (говорит скрипт).

Интересует вариант для выбора аттачмента из имеющихся объектов в поле с последующим его сохранением на диск и удалением из RT поля

Мистика, но думаю этому есть объяснение. код к сожалению забыл взять для демострации.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.03.2009, 08:41
Ответы с готовыми решениями:

Передача аттачмента
привет всем гуры, Подскажите пожалуйста, необходимо передавать локальную базу в формате mdb (Microsoft Access) по каналу связи Lotus...

Удаление аттачмента из Rtf
Видел где-то ранее обсуждался этот вопрос, но потерял ссылку Подскажите,... в RTF есть несколько аттачментов, кодом удаляю один.... В...

Отследить Изменение Аттачмента
Нужно как-то понять, менялся аттачмент или нет (у пользователя есть такая возможность). Дата модификации не подходит, извлекать аттач на...

6
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 :

Code
1
2
3
4
Set v2File = Doc.GetFirstItem ( "$File" )
If Not v2File Is Nothyng Then
If Isarray(v2File.Values) Then
Set o = Doc.GetAttachment ( v2File.Values(0) )
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.06.2009, 17:08
Помогаю со студенческими работами здесь

Контроль размера прикрепляемого аттачмента.
Как можно сделать ограничение по размеру на прикрпепляемый файл, например, не более 5 Мб?

Скачивание аттачмента без прочтения письма.
Кто знает, как можно реализовать "скачивание прикрепленного файла" в Web Access без прочтения письма, т.е. не открывая его ?

Рушится ЭЦП на документе при копировании аттачмента
Доброго времени суток! Похожего на форуме не нашел, поэтому создал тему. Проблема в следующем: Есть документ, в котором подписываются...

Как проверить Rich Text поле на наличие аттачмента?
Есть документ с несколькими рич текстовыми полями, необходимо проверить именно само поле на наличие вложения , а не документ типа :...

MAPI и сохранение на диск аттачмента с письма.
Подскажите пожалуста как сохранить на диске аттачмент с письма. objmassage.attachments.???.Использую OLEMSG32.DLL. С добавлением к письму...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Камера 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 и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru