• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Сохранение вложений документа

  • Автор темы DEN888
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

DEN888

Приветствую

Подскажите пожалуйста как правильно сохранить, через LS вложения поля (Body) текущего документа.

нашел через Help пример

Код:
Dim doc As NotesDocument
Dim rtitem As Variant
Dim fileCount As Integer
Const MAX = 100000
fileCount = 0	
'...set value of doc...
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) _
And ( o.FileSize > MAX ) Then
fileCount = fileCount + 1
Call o.ExtractFile _
( "c:\reports\newfile" & Cstr(fileCount) )
Call o.Remove
Call doc.Save( True, True )
End If
End Forall
End If

Данный код указал в действии формы, при нажатии на кнопку выходит ошибка:
"Переменная объекта не задана."

PS: В LS новенький, прошу демонстрационный пример, заранее спасибо
 
D

DEN888

вроде бы получилось :rolleyes:

Код:
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim Pdoc As NotesDocument
Set db = session.CurrentDatabase
Set Pdoc = workspace.CurrentDocument.Document

Set rtitem = Pdoc.GetFirstItem( "Body" ) 
If ( rtitem.Type = RICHTEXT ) Then
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
Call o.ExtractFile ("C:\reports\" & o.Name)	 
End If
End Forall	 
End If
End Sub

может есть лучше варианты?
 
H

hosm

Если не юзаются дальше, то вполне можно убрать строки Dim db As NotesDatabase Set db = session.CurrentDatabase
и можно вместо o.Name брать o.Source
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!