07.12.2001, 07:07 | #1 |
Участник
|
Динамические Lookup формы.
Динамические Lookup формы.
Допустим, необходимо создать Lookup форму, вид которой и выводимые в ней данные зависели бы от внешних динамических факторов. Например, в Lookup форме должны выводится данные таблицы, выбранные определенным условием, параметры которого задает пользователь в основной форме. Для этого в MorphX существует возможность создавать Lookup формы программным способом. За функционирование Lookup формы отвечает метод lookup(). Его необходимо переопределить и вписать следующий код: X++: void lookup() { QueryBuildDataSource queryBuildDataSource; QueryBuildRange queryBuildRange; SysTableLookup sysTableLookup; TableId tableId; FieldId fieldId, fieldId1, fieldId2; Query query = new Query(); sysTableLookup = new SysTableLookup(); tableId = tablename2id('HB_AClassTable'); // присваивается id таблице sysTableLookup.parmTableId(tableId); // задается таблица, для Lookup формы fieldId = fieldname2id(tableId, 'Name'); /* sysTableLookup.addLookupfield(fieldId); присваиваются id полям и fieldId1 = fieldname2id(tableId, 'Code'); sysTableLookup.addLookupfield(fieldId1); помещаются в Lookup форму fieldId2 = fieldname2id(tableId, 'TypeId'); */ sysTableLookup.addLookupfield(fieldId2); queryBuildDataSource = query.addDataSource(tableId); queryBuildDataSource.addrange(fieldId2).value( queryvalue(cTypeCode)); // определяется условие выбора данных из таблицы. cTypeCode – параметр sysTableLookup.parmQuery(query); this.performFormLookup(sysTableLookup.formRun());// активизация Lookup формы. } |
|