D
Dimok-163rus
Нахожусь в документе "сущ.факты"(одна из вкладок в общ.документе"рублевые облигации").
В "рублевых облигациях" имеется много вкладок/документов, один из которых купонный период(в нем встроенное представление"купон.период встр"),народ, как мне добраться до полей этого встроенного представления?
У меня есть общее связывающее звено этих документов ID.
Поля "существ.фактов" я нахожу обращаясь к док-ту pdoc,
поля на любой вкладке "рублевой облигации" могу найти через childdoc.
А как вытащить поле из встроенного представления, не могу додуматься...прилагаю код(в агенте) и парочку фото, чтоб поскорей разобраться
во встроенном представлении "купонный период встр" будет сгенерировано несколько купонных периодов, мне нужно вывести диалоговоое окно пользователю, с этим встроенным представлением "купонный период встр", чтобы пользователь выбрал именно какой из всей серии купонных периодов ему взять и уже оттуда мне нужно изъять некоторые поля
В "рублевых облигациях" имеется много вкладок/документов, один из которых купонный период(в нем встроенное представление"купон.период встр"),народ, как мне добраться до полей этого встроенного представления?
У меня есть общее связывающее звено этих документов ID.
Поля "существ.фактов" я нахожу обращаясь к док-ту pdoc,
поля на любой вкладке "рублевой облигации" могу найти через childdoc.
А как вытащить поле из встроенного представления, не могу додуматься...прилагаю код(в агенте) и парочку фото, чтоб поскорей разобраться
Код:
%REM
Agent Приложение 3
Created 26.08.2013 by Dmitry Matveev/oao
Description: Comments for Agent
%END REM
Option Public
Option Declare
Sub Initialize
'обработчик ошибок
On Error GoTo MesError
'_________________________________________
Dim ws As New NotesUIWorkspace
Dim sess As New NotesSession
Dim pdoc As NotesDocument,childdoc As NotesDocument, tmpDoc As NotesDocument, profile As NotesDocument
Dim dc As NotesDocumentCollection
Dim db As NotesDatabase, sprdb As NotesDatabase
Dim uidoc As NotesUIDocument
Dim view As NotesView
'Поля, необходимо которые выгрузить
' Dim Name(0) As Variant
Dim Seria(0) As Variant
Dim Number_reg(0) As Variant
Dim Data_reg_izm(0) As Variant
Dim Num_period(0) As Variant
Dim Data_protocol(0) As Variant
Dim Nam_protocol(0) As Variant
Dim Data_resh(0) As Variant
Dim Num_resh(0) As Variant
Dim Doc_osnova_kupon(0) As Variant
Dim Data_period_start(0) As Variant
Dim Data_period_end(0) As Variant
Dim Razmer_kupon_nach(0) As Variant
Dim Stavka_kupon_p(0) As Variant
Dim Stavka_kupon_r(0) As Variant
Dim Forma_vip_dohod(0) As Variant
Dim Data_v_kupon(0) As Variant
Dim Dol_podp(0) As Variant
Dim Osn_podpis(0) As Variant
Dim Podpisant(0) As Variant
Dim Data_sob(0) As Variant
Set uidoc = ws.CurrentDocument
Set pdoc = uidoc.Document
Set db = sess.CurrentDatabase
'Профиль системы и база справочника
Set profile = db.GetProfileDocument("ConfigPrf")
If profile.pthRefer(0)="" Then
MessageBox "В профиле конфигурации системы не указан путь к БД Справочники!",0 ,"Ошибка настройки системы"
Exit Sub
End If
Set sprdb = sess.GetDatabase(db.Server, profile.pthRefer(0))
'Продолжать?
Dim askme As Variant
askme = ws.Prompt(PROMPT_YESNO, "Вы уверены?", "Сгенерировать документ?")
If askme=0 Then
Exit Sub
End If
'-------------------------------------------------------------------------------------------------------------------------------------------
Call uidoc.Save
Dim itm As NotesRichTextItem
Set itm = pdoc.GetFirstItem("Sfakt")
If Not itm Is Nothing Then
Call pdoc.RemoveItem("Sfakt")
' pdoc.Flag_Close="1"
Call pdoc.Save( True, False )
End If
'--------------------------------------------------------------------------------------------------------------------------------------
Set childdoc = db.GetDocumentByUNID(pdoc.GetItemValue("ID_Rubl_obl")(0))
'Что делаем с полями
' Msgbox childdoc.Name(0)
' Msgbox childdoc.data_protocol(0)
' MsgBox childdoc.Nam_protocol(0)
' Msgbox childdoc.Nomber_reg(0)
' Msgbox childdoc.Data_reg_izm(0)
' Msgbox childdoc.childdoc.Вкладка "досрочное погашение"кол-во погаш.шт(0)
' Msgbox childdoc.childdoc.Вкладка "досрочное погашение"[301](0)
' Msgbox childdoc.Osn_pogash(0)
' Msgbox childdoc.childdoc.Вкладка "досрочное погашение"Дата досрочн.погашения"(0)
' Msgbox pdoc.Dol_podp(0)
' Msgbox pdoc.Osn_podpis(0)
' Msgbox pdoc.Podpisant(0)
' Msgbox Today
'-------------------------------------------------------------------------------------------------------------------------------------------
' Set sprdb = sess.GetDatabase(db.Server, profile.pthRefer(0))
Dim pth_str$
Dim coll1 As NotesDocumentCollection
Dim dt1 As New NotesDateTime("")
Dim doc1 As NotesDocument 'Справочный док
'По коду шаблона ищем в справочнике шаблонов нужную карточку шаблона
pth_str$=""
Set coll1 = sprdb.Search({Form = "TmpForm_Profile" & ShortName = "P003"},Nothing,0)
' Msgbox "Количество док-тов : " & coll1.Count
Dim rttmp As NotesRichTextItem
If coll1.Count >0 Then
Set doc1 = coll1.GetFirstDocument
Set rttmp = doc1.GetFirstItem("TmpDoc")
ForAll o In rttmp.EmbeddedObjects
If Right(o.Name,4)=".dot" Then
pth_str$ = o.Name
GoTo ExtrMark
End If
End ForAll
End If
If pth_str$="" Then
MessageBox "Невозможно перейти к генерации поручения: в справочнике шаблонов отсутствует шаблон поручения!",,"Внимание!"
Exit Sub
End If
ExtrMark:
'Создаем каталог временной выгрузки на С
Dim dt As New NotesDateTime( "" ),dt_date$,dt_time$,tmppth_str
Call dt.SetNow
dt_date$ = dt.DateOnly
dt_time$ = dt.TimeOnly
dt_date$ = Left(dt_date$,2)+Right(Left(dt_date$,5),2)+Right(dt_date$,2)
dt_time$ = Left(dt_time$,2)+Right(Left(dt_time$,5),2)+Right(dt_time$,2)
tmppth_str = Environ$("TEMP") + "\TmpTpl_"+dt_date$+"_"+dt_time$
MkDir tmppth_str
'Выгружаем шаблон в созданную директорию
Dim object As NotesEmbeddedObject
Set object = rttmp.GetEmbeddedObject(pth_str$ )
Call object.ExtractFile (tmppth_str & "\" & CStr(pth_str$))
'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Dim Word As Variant, nm_doc$,ReplaceChr
Dim WordDoc As Variant
'Новый объект Word
Set Word = CreateObject("Word.Application") 'Создание объекта Word'a
Call Word.documents.add(tmppth_str & "\" & CStr(pth_str$)) 'Создаем новый документ на основе соответствующего шаблона
Set WordDoc = Word.activedocument
'Присваивание полям-Word'a значений из полей notes-документа
worddoc.FormFields(1).result = childdoc.Name(0)
worddoc.FormFields(2).result = childdoc.Seria(0)
worddoc.FormFields(3).result = childdoc.Number_reg(0)
worddoc.FormFields(4).result = childdoc.Data_reg_izm(0)
worddoc.FormFields(5).result = childdoc.Num_period(0)'kupon
worddoc.FormFields(6).result = childdoc.data_protocol(0)
worddoc.FormFields(7).result = childdoc.Nam_protocol(0)
worddoc.FormFields(8).result = childdoc.Data_resh(0)
worddoc.FormFields(9).result = childdoc.Num_resh(0)
worddoc.FormFields(10).result = childdoc.Data_resh(0)
worddoc.FormFields(11).result = childdoc.Doc_osnova_kupon(0)
worddoc.FormFields(12).result = childdoc.Data_resh(0)
worddoc.FormFields(13).result = childdoc.Num_resh(0)
worddoc.FormFields(14).result = childdoc.Num_period(0)'kupon
worddoc.FormFields(15).result = childdoc.Data_period_start(0)'kupon
worddoc.FormFields(16).result = childdoc.Data_period_end(0)'kupon
worddoc.FormFields(17).result = childdoc.Num_period(0)'kupon
worddoc.FormFields(18).result = childdoc.Razmer_kupon_nach(0)'kupon
worddoc.FormFields(19).result = childdoc.Stavka_kupon_p(0)'kupon
worddoc.FormFields(20).result = childdoc.Stavka_kupon_r(0)'kupon
worddoc.FormFields(21).result = childdoc.Forma_vip_dohod(0)
worddoc.FormFields(22).result = childdoc.Data_v_kupon(0)'kupon
worddoc.FormFields(23).result = childdoc.Num_period(0)'kupon
worddoc.FormFields(24).result = childdoc.Data_v_kupon(0)'kupon
worddoc.FormFields(25).result = pdoc.Dol_podp(0)
worddoc.FormFields(26).result = pdoc.Osn_podpis(0)
worddoc.FormFields(27).result = pdoc.Podpisant(0)
worddoc.FormFields(28).result = Today
nm_doc$ = "File3.doc"
WordDoc.saveas(tmppth_str + "\"+nm_doc$)
WordDoc.close
If pdoc.HasItem("Sfakt") Then
Set rttmp = pdoc.GetFirstItem("Sfakt")
Else
Set rttmp = New NotesRichTextItem(pdoc, "Sfakt")
End If
'Добавляет в RTF-поле присоединенный файл или ссылку на него.
Set object = rttmp.EmbedObject( EMBED_ATTACHMENT, "nm_doc$", tmppth_str + "\"+nm_doc$)
' pdoc.Flag_Close="1"
' Call uidoc.FieldSetText("$KM", "6" )
Call pdoc.Save( True, True )
pdoc.SaveOptions = "0"
Call ws.ViewRefresh
Call uidoc.Close ()
Set uidoc = ws.EditDocument(False, pdoc)
' Удаляем директорию
Kill tmppth_str & "\" & CStr(pth_str$)
Kill tmppth_str + "\"+nm_doc$
RmDir tmppth_str
Exit Sub
MesError:
'Обработка сбоев
' ErrNo = Err
' ErrLine = Erl
' ErrMessage = Error
MessageBox "Button Click " + CStr(Err) + " " + CStr(Erl) + " " + Error
Exit Sub
End Sub
во встроенном представлении "купонный период встр" будет сгенерировано несколько купонных периодов, мне нужно вывести диалоговоое окно пользователю, с этим встроенным представлением "купонный период встр", чтобы пользователь выбрал именно какой из всей серии купонных периодов ему взять и уже оттуда мне нужно изъять некоторые поля