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

Тема в разделе "Lotus - Программирование", создана пользователем allex, 6 дек 2006.

  1. allex

    allex Гость

    Код (Text):
    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
     
  2. Elena Nefedova

    Elena Nefedova Гость

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

    allex Гость

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

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

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


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


    object.FitToWindow=True

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

    oshmianski Гость

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

    Dikobraz Grey Гость

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

    allex Гость

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

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

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

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

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

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

    Elena Nefedova Гость

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

    PS: Dim ws As NotesUIWorkspace
     
Загрузка...

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