Форум продуктов IBM Lotus
Продукты IBM Lotus => IBM Lotus Notes & Domino => Тема начата: fort66 от 03 Июль 2013, 16:46:24
-
День добрый всем! Можно ли с лотусе создать форму (подформу) не через дизайнер, а программным путем. Нужно динамически выводить поля и их количество. если знаете, подскажите плиз.
с уважением
Олег
-
Да, можно. Есть технология DXL - дизайн формы описывается через XML и на основании XML описания создаётся элемент дизайна.
Однако, Вы слишком кратко описали задачу, и я могу подозревать, что для неё существует и более правильное, и гораздо более простое решение.
Если целью стоит создание формы для сущности, но у этой сущности есть несколько подчинённых сущностей, которые Вы и хотите описать в форме самой сущности, то найденный Вами путь неправильный.
То есть.
Допустим, у Вас есть форма "Человек". В ней Вы указали ФИО, дату рождения, ФИО матери, ФИО отца и т.п. Но тут возникла задача указать ФИО детей. Если ребёнок один, всё просто - создали поле, в которое и вводится ФИО. Но если детей несколько, изменять дизайн ради того, чтобы N детей - некорректный способ решения задачи.
Подобные задачи в реляционных СУБД решаются созданием подчинённой сущности "ребёнок", в ней указывается ссылка на родителя, а при открытии формы родителя выполняется запрос "показать ФИО всех детей, у которых есть ссылка НА ЭТОГО родителя".
Хотя в Lotus Notes используется не реляционная, а NoSQL база данных, но решение примерно такое же.
Для описания сущности "Ребёнок" можно использовать ответные документы (Responses), а для их отображения в форме родителя - втроенные представления (Embedded view) с отбором по категории, коей должна являться ссылка на родительский документ. Тогда в форме родителя будет отображаться в виде встроенного окна представление с детьми, которым данный человек является родителем.
В реальной ситуации "родители/дети" всё несколько сложнее (так как у одного ребёнка двое родителей, а в описанной мною схеме решения придётся вводить одного ребёнка два раза лдя каждого из родителей), поэтому конкретно эту задачу нужно решать чуть-чуть по-другому. Но на её примере можно понять, как решать задачи, в которых есть подчинённые сущности.