Показать сообщение отдельно
Старый 14.01.2004, 20:19   #1  
epack is offline
epack
Участник
 
15 / 10 (1) +
Регистрация: 14.01.2004
Адрес: Москва
Динамическое создание DataSource на форме, и добавление элементов дизайна.
В методе init формы пытаюсь добавть DataSource, и поля этого DS положить на грид на форме.
Написал следующее:
PHP код:
public class FormRun extends ObjectRun
{
    
FormBuildDataSource    fbds;

    
FormControl formControl1;
    
FormControl formControl2;
}

void init()
{
    
super();

    
fbds form.addDataSource("Table1");

    
Grid.dataSource(fbds.table());  //    Grid.dataSource(fbds.id()); пробовал оба варианта

    
formControl1 Grid.addDataField(fbds.id(),fieldnum(Table1,Field1),formControl0);
    
formControl2 Grid.addDataField(fbds.id(),fieldnum(Table2,Field2),formControl1);

Во-первых, побочный глюк-неудобство - не получается у меня в пустой грид добавить поля из кода, в смысле, при запуске формы грид остаётся пустым.
Так что пришлось положить на грид Control типа StringEdit, под названием formControl0 (EDT, например, Name), а из кода уже после него добавлять остальные, нужные, поля.

Далее, теперь грид формируется правильно (т.е., содержит одно ненужное и два нужных поля), однако не отображает данные из соответствующей таблицы.
Если я такой же набор полей (со сходными свойствами) формирую в гриде вручную, в дизайне, то данные отображаются.
Возможно, некорректно устанавливается свойство DataSource грида..

Объясните пожалуйста, чего не хватает (или что я сделал не так).