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

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

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

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

Нужна помощь !

  • Автор темы allex
  • Дата начала
A

allex

Код:
Sub Click(Source As Button)

Dim session As New notessession, db As notesdatabase, view As notesview
'Dim uidoc As New NotesDocument
Dim rtitem As NotesRichTextItem	
Dim rtitem2 As NotesRichTextItem
Dim rtitem3 As NotesRichTextItem
Dim object As NotesEmbeddedObject
Dim uidoc As NotesUIDocument
Dim fio_ As String
Dim fio1_ As String
Dim fio2_ As String
Dim fio3_ As String

Dim	zayavitel_FIO_ As String
Dim	zayavitel_d_r_ As String
Dim	zayavitel_pasport_ As String
Dim	zayavitel_ As String
Dim	zayavitel1_ As String
Dim	propiska_ As String
Dim	propiska1_ As String
Dim	propiska2_ As String
'Dim word As Variant
'Dim worddoc As Variant

Set w = New NotesUiWorkspace
Set db = session.currentdatabase
Set uidoc = w.currentdocument

'************************************ присвоение переменным значение полей из "Информация о заявителе"
fio_ = uidoc.FieldGetText("FIO")
'fio1_ = uidoc.FieldGetText("FIO")
'fio2_ = uidoc.FieldGetText("FIO")
'fio3_ = uidoc.FieldGetText("FIO")
'zayavitel_FIO_ = uidoc.FieldGetText("FIO")
'zayavitel_d_r_ = uidoc.FieldGetText("Data_rojd")
'zayavitel_pasport_ = uidoc.FieldGetText("Pasport")
zayavitel_ = 	"гр." + uidoc.FieldGetText("FIO") +" " +uidoc.FieldGetText("Data_rojd")+ " года рождения,	 " + uidoc.FieldGetText("Pasport")
'zayavitel1_ = 	"гр." + uidoc.FieldGetText("FIO") +" " +uidoc.FieldGetText("Data_rojd")+ " года рождения,	 " + uidoc.FieldGetText("Pasport")
'zayavitel2_ = 	"гр." + uidoc.FieldGetText("FIO") +" " +uidoc.FieldGetText("Data_rojd")+ " года рождения,	 " + uidoc.FieldGetText("Pasport")
propiska_ = uidoc.FieldGetText("Address")
'propiska1_ = uidoc.FieldGetText("Address")
'propiska2_ = uidoc.FieldGetText("Address")
'************************************ присвоение переменным значение полей из "Информация о заявителе"	
'******* получение файла шаблона и сохранение его на диск	
Set view = db.getview( "DBConfiguration" )
Set doc=view.GetFirstDocument
Set rtitem = doc.GetFirstItem( "dogovor_arenda_shablon" )

Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then	
Call o.ExtractFile( "c:\" & o.Source )
FileName$ = o.Source 
End If
End Forall
'******* получение файла шаблона и сохранение его на диск		

'*******
'Create the Word object:
Set word = CreateObject("Word.Application") 'Create Word object
Call word.documents.add("c:\" & FileName$) 'Create a new document based on the template 
word.visible = False
''Call word.documents.add("c:\dogovor kupli prodaji.doc") 
Set worddoc = word.activedocument 'Get a handle for the active document
'********
'**** записывание в поле worda значения переменной
worddoc.FormFields("fio").result = fio_
worddoc.FormFields("fio1").result = fio_
worddoc.FormFields("fio2").result = fio_
worddoc.FormFields("fio3").result = fio_
worddoc.FormFields("zayavitel").result = zayavitel_
worddoc.FormFields("zayavitel1").result = zayavitel_
worddoc.FormFields("zayavitel2").result = zayavitel_
worddoc.FormFields("propiska").result = propiska_
worddoc.FormFields("propiska1").result = propiska_
worddoc.FormFields("propiska2").result = propiska_

'**** записывание в поле worda значения переменной	

worddoc.saveas("Договор купли-продажи" + " с " + fio_ ) 'save the document with the filename of "John Doe.doc"	
'word.quit

uidoc.Save
'***********создание договора

Как сдесь создать документ-ответ по другой форме,чтоб в RT поле поместить обект.

Set rtitem2 = New NotesRichTextItem( doc2, "file" )
Set object = rtitem2.EmbedObject (EMBED_OBJECT, "", "c:\" & FileName$ , "OLEObject")


object.FitToWindow=True

Call doc2.ComputeWithForm(False, False)	

Потом этот документ нужно еще оставить открытым для редактирования

End Sub
 
E

Elena Nefedova

Для: allex
В неописанный код не погружаюсь. Могу только ответить на заданный вопрос:
"Как сдесь создать документ-ответ по другой форме,чтоб в RT поле поместить обект"
1. Ответ нужно создавать к уже записанному документу, чтобы в случае чего левые ответы в базе не болтались. Соответственно, вешать на Postsave, если создаем одновременно с документом.
2. Как создать:
Код:
Set rdoc = New NotesDocument(db)
Call rdoc.ReplaceItemValue("Form", "ResponseFormName")
Call rdoc.MakeResponse(parentdoc)
Call rdoc.Save(True, True)
 
A

allex

В неописанный код не погружаюсь.

Но код ведь кс коментариями.

если создаем одновременно с документом.

Документ-ответ создается после создания основного

Вот этот doc2 и будет являться ответом... но я уже запутался..


Код:
 Set rtitem2 = New NotesRichTextItem( doc2, "file" )
Set object = rtitem2.EmbedObject (EMBED_OBJECT, "", "c:\" & FileName$ , "OLEObject")


object.FitToWindow=True 

Call doc2.ComputeWithForm(False, False) 'обязательное условие
 
O

oshmianski

Но код ведь кс коментариями.

если Вы хотите. чтобы Вам помогли, выкладывайте не только КОД С КОММЕНТАРИЯМ, а и описание этого кода вне области форматирования (для чего он нужен и что должен делать). кроме того, было бы неплохо увидеть начальную задачу.
 
D

Dikobraz Grey

Документ-ответ создается после создания основного
C точки зрения кодинга да. А с точки зрения user'a?
Очень похоже, что подряд, нажатием на одну кнопку, почти одновременно. Что и имелось ввиду.
 
A

allex

Очень похоже, что подряд

Похоже но не подряд.

Сначала создается основоной документ а потом документ-ответ (форма договора)

Генерится вордовый документ, сохраняется на диск, ворд - закрывается...

uidoc.Save - я вставил только для времени тестирования проекта

Потом создается документ-ответ и туда приатачивается этот сохраненный вордовый документ.

И еще нужно ссылку на документ ответ поместить в RT поле основного документа.
 
E

Elena Nefedova

Для: allex
Отвечаю на "Потом этот документ нужно еще оставить открытым для редактирования"
Код:
Call ws.EditDocument(true, rdoc)

Что касается остального кода, так там нигде не указано, что есть еще проблемы...

PS: Dim ws As NotesUIWorkspace
 
Мы в соцсетях:

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