T
tikhiy
Доброй ночи, коллеги! // версия 8.5
Терпение мое иссякло и зрение подсело, но так и не смог добить проблему.
Имею:
1. Основную и вспомогательную формы для документа.
2. Фреймсет из двух фреймов (top и bottom).
3. View (верхний фрейм), в котором перечислены документы (очень лакончино).
4. !! Огромное желание сделать так, чтобы при нажатии (single click) на документ во View в нижнем фрейме открывалась дополнительная форма, где будет более подробно освещатся контент документа - именно в режиме просмотра, именно в специально сделанной для этого форме, а не в основной.
(А вот картинка!)
Для всего этого в событии "onSelect" (гендерная дискриминация, а что если не он селект, а она?..) я прописываю замысловатый кодец и ставлю "фрейм по умолчанию" для вспомогательной формы (которая снизу на картинке, там будет вычисляемый текст!) чтобы она всегда открывалась снизу! (эксперимент с SetTargetFrame тоже провалился...)
Что происходит в коде? Сколько я понимаю, так вот просто открыть документ с помощью "чужой" формы не получится (а зря, я им скажу, зря!), посему я копирую его содержимое в новый документ и прописываю ему нужную форму ("CollabPreview").
После чего, перелопатив дюжину тематических сайтов, догадываюсь "вроде бы правильно" поставить параметры функции "EditDocument" так, что не возникает дурацкая ошибка (как там её: lsERR_LSXU13_ANCESTOR_TARGET_FRAME)...
Но не тут то было! В результате подлец Лотус начинает открывать исходный фреймсет в новом окне - честно заполняя при этом вспомогательную форму данными из дубликата нужного документа и... плодя новые окошки бесконечно, ибо в них также появляется моё View, где сразу же происходит событие "onSelect"...
Пробовал я поэкспериментировать и с последним параметром ("newInstance" ставим в False), но в ответ - тишина, вернее, сообщение о том, что форма по умолчанию не найдена... Почему "по умолчанию"? Зачем? Я, видно, что-то концептуально не догоняю, ведь явным образом прописывается нужная форма!..
В общем, поможите калеке, а то откажусь от этой затеи и уйду в горы, наверное, жить... Спасибо за понимание!
// и вообще, почему бы не позволить пихать документ контекстом для страницы (Page)?..
[codebox]Sub Onselect(Source As Notesuiview)
Dim ws As New NotesUIWorkspace
Dim s As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uiview As NotesUIView
Set uiview = ws.CurrentView
Set db = s.CurrentDatabase
Set doc = db.GetDocumentByID( uiview.CaretNoteID )
Dim new_doc As New NotesDocument( db )
Call doc.CopyAllItems( new_doc )
new_doc.Form = "CollabPreview"
Call ws.EditDocument( False, new_doc, True, , False )
End Sub[/codebox]
Терпение мое иссякло и зрение подсело, но так и не смог добить проблему.
Имею:
1. Основную и вспомогательную формы для документа.
2. Фреймсет из двух фреймов (top и bottom).
3. View (верхний фрейм), в котором перечислены документы (очень лакончино).
4. !! Огромное желание сделать так, чтобы при нажатии (single click) на документ во View в нижнем фрейме открывалась дополнительная форма, где будет более подробно освещатся контент документа - именно в режиме просмотра, именно в специально сделанной для этого форме, а не в основной.
(А вот картинка!)
Для всего этого в событии "onSelect" (гендерная дискриминация, а что если не он селект, а она?..) я прописываю замысловатый кодец и ставлю "фрейм по умолчанию" для вспомогательной формы (которая снизу на картинке, там будет вычисляемый текст!) чтобы она всегда открывалась снизу! (эксперимент с SetTargetFrame тоже провалился...)
Что происходит в коде? Сколько я понимаю, так вот просто открыть документ с помощью "чужой" формы не получится (а зря, я им скажу, зря!), посему я копирую его содержимое в новый документ и прописываю ему нужную форму ("CollabPreview").
После чего, перелопатив дюжину тематических сайтов, догадываюсь "вроде бы правильно" поставить параметры функции "EditDocument" так, что не возникает дурацкая ошибка (как там её: lsERR_LSXU13_ANCESTOR_TARGET_FRAME)...
Но не тут то было! В результате подлец Лотус начинает открывать исходный фреймсет в новом окне - честно заполняя при этом вспомогательную форму данными из дубликата нужного документа и... плодя новые окошки бесконечно, ибо в них также появляется моё View, где сразу же происходит событие "onSelect"...
Пробовал я поэкспериментировать и с последним параметром ("newInstance" ставим в False), но в ответ - тишина, вернее, сообщение о том, что форма по умолчанию не найдена... Почему "по умолчанию"? Зачем? Я, видно, что-то концептуально не догоняю, ведь явным образом прописывается нужная форма!..
В общем, поможите калеке, а то откажусь от этой затеи и уйду в горы, наверное, жить... Спасибо за понимание!
// и вообще, почему бы не позволить пихать документ контекстом для страницы (Page)?..
[codebox]Sub Onselect(Source As Notesuiview)
Dim ws As New NotesUIWorkspace
Dim s As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uiview As NotesUIView
Set uiview = ws.CurrentView
Set db = s.CurrentDatabase
Set doc = db.GetDocumentByID( uiview.CaretNoteID )
Dim new_doc As New NotesDocument( db )
Call doc.CopyAllItems( new_doc )
new_doc.Form = "CollabPreview"
Call ws.EditDocument( False, new_doc, True, , False )
End Sub[/codebox]