Коллеги, ситуация такая:
Есть документ -> В документе поле -> В поле массив: путь к БД и UNID.
Есть кнопка, которая открывает данный документ.
Есть функция в библиотеке, которая получает документ на основе данного массива и возвращает в кнопку.
НО есть момент:
В библиотеке, документ виден, получен и все хорошо.
В кнопке же, при возврате из функции, документа уже нет!
Объект потерян, причем на выходе из функции он опять же есть.
Проблему решил: получил базу, из которой открывается документ в кнопке, после этого объект стал виден.
Привожу код из библиотеки и кнопки:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Библиотека</div></div><div class="sp-body"><div class="sp-content">
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Кнопка</div></div><div class="sp-body"><div class="sp-content">
В коде кнопки выделена жирным строка (тег ) , которая делает вызов функции, курсивом выделил получение базы (тег ).
Без этого получения документ в pDoc не возвращается.
Вопрос: Это такая фича лотуса? Без объекта базы, который висит в памяти, документы теряются?
Я понимаю это так : база из которой получается документ потеряна на выходе из функции библиотеки, в кнопке ее нет, соответственно документа тоже нет.
Объясните пож-та.
Есть документ -> В документе поле -> В поле массив: путь к БД и UNID.
Есть кнопка, которая открывает данный документ.
Есть функция в библиотеке, которая получает документ на основе данного массива и возвращает в кнопку.
НО есть момент:
В библиотеке, документ виден, получен и все хорошо.
В кнопке же, при возврате из функции, документа уже нет!
Объект потерян, причем на выходе из функции он опять же есть.
Проблему решил: получил базу, из которой открывается документ в кнопке, после этого объект стал виден.
Привожу код из библиотеки и кнопки:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Библиотека</div></div><div class="sp-body"><div class="sp-content">
Код:
Dim linkArr As Variant
Dim ses As New notessession
Dim linkDb As NotesDatabase
Dim linkDoc As NotesDocument
Set GetLink = Nothing
linkArr = project.Getitemvalue(Itemname & "Link")
If linkArr(0) = "" Then GoTo endh
Set linkDb = ses.Getdatabase(AgrDb.Server, linkArr(0), false)
On Error resume Next
Set linkDoc = linkDb.Getdocumentbyunid(linkArr(1))
On Error GoTo handler
Set GetLink = linkDoc
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Кнопка</div></div><div class="sp-body"><div class="sp-content">
Код:
Dim ws As New NotesUIWorkspace
Dim pDoc As NotesDocument
Dim linkArr As Variant
[i]
Dim ses As New notessession
Dim linkDb As NotesDatabase
linkArr = ProjDoc.Getitemvalue("respPersonLink")
If linkArr(0) = "" Then Goto endh
Set linkDb = ses.Getdatabase(ProjDoc.parentdatabase.Server, linkArr(0), False)
[/i]
[b] Set pDoc = Project.GetLink("respPerson") [/b]
If pDoc Is Nothing Then Goto endh
Call ws.SetTargetFrame("_Blank")
Call ws.URLOpen(pDoc.NotesURL)
В коде кнопки выделена жирным строка (тег ) , которая делает вызов функции, курсивом выделил получение базы (тег ).
Без этого получения документ в pDoc не возвращается.
Вопрос: Это такая фича лотуса? Без объекта базы, который висит в памяти, документы теряются?
Я понимаю это так : база из которой получается документ потеряна на выходе из функции библиотеки, в кнопке ее нет, соответственно документа тоже нет.
Объясните пож-та.