View на форме

  • Автор темы doc
  • Дата начала
D
#1
Можно ли динамически определять на форме связанное view, а также переопределять выборку на этом view?
 

nvyush

Lotus team
22.04.2009
2 317
0
#2
Можно ли динамически определять на форме связанное view, а также переопределять выборку на этом view?
В свойстве внедренного вида Embedded Selection выбираем Formula и пишем туда формулу, возвращающую имя(псевдоним) нужного вида.
Виды делаем категоризованными, в Show single category пишем формулу, возвращающую нужную категорию. Как-то так.
 

Omh

Lotus team
04.07.2007
2 210
1
#6
По первому пунку - второй пост.
А по вторjму пункту - меняя View.SelectionFormula.
Только юз виз кашен, ибо view обычно один на всех :wacko:
 
D
#7
Можно ли динамически определять на форме связанное view, а также переопределять выборку на этом view?
Возник еще такой вопрос. Можно ли добавить на форму (диалоговое окно) view из другой базы и также динамически переопределять выборку? Как это сделать?
 

TIA

:-)
Lotus team
15.05.2009
790
3
#9
Возник еще такой вопрос. Можно ли добавить на форму (диалоговое окно) view из другой базы и также динамически переопределять выборку? Как это сделать?
Можно, но не тривиально. И "другая база" должна быть на воркспэйсе.

Делаем встроенный редактор по пустой форме c автофрэймсетом. Фреймсет с двумя фреймами. Сам редактор отображаем в маленьком фрэйме, чтоб незаметным пользователю был. Большой фрейм с вычисляемым по URL содержанием. URL должен указывать на БД, данные из которой хотим отображать. По URL приходится открывать существующий сохранённый документ. Потому в целевой БД лучше заготовить служебный элемент дизайна (например навигатор) и вьюшку, содержащую этот ЭД. ЭД должен содержать дополнительное поле "Form" При вычислении URL, отлукапливать по виду UNID этого ЭД. Т.о. по URL будем открывать этот ЭД,а т.к. у него есть поле Form, то откроется он по форме из целевой БД. Чувствуете, что получается? В исходном документе есть область, отображающая данные по форме из другой БД. Остаётся в форму целевой БД встроить вид и передать ему значение для SingleCategory. Способы разные - самый простой через notes.ini.

nvy
Ну, я свой пост с sysadmin'а в предыдущий тут и скопировал.
 

nvyush

Lotus team
22.04.2009
2 317
0
#11
Думаю, вариант TIA более простой и менее глюкавый, хотя сам не пробовал ни то, ни другое
 

TIA

:-)
Lotus team
15.05.2009
790
3
#12
Описанный там вариант меняет элемент дизайна (через DXL), а значит применим только если базой одновременно пользуется только 1 пользователь. Плюс вызывает репликацию изменённого элемента. Мой вариант не модифицирует элементы дизайна и допускает параллельную работу пользователей.

Да, и часто забывают, что модификация ЭД требует дизайнерского доступа в БД.
 
D
#13
Меняю субформу через DXL, переопределяю реплику БД. Запускаю форму появляется необходимое view из БД. НО когда повторно переопределяю субформу, чтобы появилась view из другой БД, субформа изменяется, а вот форма не изменяется, показывает view из предыдущей БД. Закрыв базу, и снова отрыв работет. В чем может быть проблема?
 
D
#14
А можно ли на основе формы с фреймсетом сделать диалоговое окно? У меня получается (при NotesUIWorkspace.DialogBox(......)), что форма отображается, а привязанный фрейм нет. Все это затеяно, что бы сделать диалоговое окно, в котором пользователь смог бы отметить необходимые ему документы и сохранить их UNID в текущем документе, из которого вызывается диалоговое окно? Причем в диалоговом окне должны отображаться документы, которые можно выбрать и, те которые уже ранее были выбраны.
 

TIA

:-)
Lotus team
15.05.2009
790
3
#15
Все это затеяно, что бы сделать диалоговое окно, в котором пользователь смог бы отметить необходимые ему документы и сохранить их UNID в текущем документе, из которого вызывается диалоговое окно?
А чем NotesUIWorkSpace.PickListStrings не подходит?
 
D
#18
А чем NotesUIWorkSpace.PickListStrings не подходит?
Необходимо реализовать возможность отображения списка документов, которые ранее были выбраны, т.е пользователь должен видеть какие документы он уже раннее отметил, и отмечает те документы которые бы он хотел добавить. И хотелось бы это изобразить в виде двух списков. Первый это view, в котором имеется список еще не выбранных документов, а второй список в виде ListBox (или м.б. тоже view) со списком отмеченных документов. При выборе документа в первом списке (доступных документов) и нажатии кнопки "Добавить" документ добавляется во второй список и , желательно исчезает из первого списка, что бы он не мешал выбору других документов. Т.е. по аналогии с диалоговым окном ACL. Я реализовал данный вариант в виде двух LIstBox. Но ListBox скудно отображает список доступных документов без иерархии (категоризации).
Буду очень признателен.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 570
263
#19
а что мешает сделать два вью на форме, один из кот. - приватная папка (в ней и хранить выделенные)
 
D
#20
а что мешает сделать два вью на форме, один из кот. - приватная папка (в ней и хранить выделенные)
Но view, в котором выбираются документы, находится в другой базе, которая изначально не известна, а определяется только при открытии диалоговой формы. Причем если форма определена как Auto Frame, то привязанный фрейм не отображается в форме при открытии ее как notesUIWorkspace.DialogBox()