![]() |
#8 |
Участник
|
У класса SysTableLookup есть такой метод SysTableLookup.parmQuery() куда в качестве параметра можно передать предварительно сформированный Query, в том числе и по нескольким таблицам. Общая схема примерно такая
X++: // Формируем Query query = new Query() queryBuildDataSource1 = query.addDataSource(tableNum(Table1)) queryBuildDataSource2 = queryBuildDataSource1.addDataSource(tableNum(Table2)) (...) // Инициализируем класс для создания формы lookup sysTableLookup = SysTableLookup::newParameters(tablenum(Table1), _lookupCtrl); // Какие поля должны отображаться в выпадающем списке sysTableLookup.addLookupfield(fieldnum(Table1, Field1)); sysTableLookup.addLookupfield(fieldnum(Table1, Field2)); // Передаем запрос в форму Lookup sysTableLookup.parmQuery(query); // Формируем форму Lookup sysTableLookup.performFormLookup(); \Forms\PBATreeInsertDefaultRoute\Designs\Design\StringEdit:PBADefaultRouteId\Methods\lookup Хотя, кажется, не получится вывести поля из разных таблиц. Впрочем, я не пробовал. Может и получится... PS: Нет. Не получится. Формированием Grid в форме lookup занимается метод \Classes\SysTableLookup\buildGrid() в котором указывается Id только одной таблицы-источника. Значит, добавить объекты из нескольких таблиц-источников - не получится. Не будут сформированы корректные Id источников Последний раз редактировалось Владимир Максимов; 02.06.2011 в 10:57. |
|
|
За это сообщение автора поблагодарили: samolalex (1). |