Показать сообщение отдельно
Старый 20.03.2003, 16:51   #1  
cyrus is offline
cyrus
OntargIT
 
22 / 19 (1) ++
Регистрация: 24.06.2002
Адрес: Kiev
Проблема: подстановка значений по дефолту в диалог QueryRun
Здравствуйте, уважаемые!

Итак, попрос:
Надо сделать фильтр по строкам таблицы, скажем, DateTrans, при выполнении периодической операции по этой таблице. При этом по дефолту в одно из полей в диалоге запроса надо поставить значение из поля TransDate найденой строки, скажем, DateTable.

Класс есть:
xxxxxXxxxxxCreate

static void main(Args args)
{
....
if (xxxxxXxxxxxCreate.prompt())
{
xxxxxXxxxxxCreate.run()
}
}

и, соответственно, prompt:
boolean prompt()
{
Query q;
TransDate transDate = DateTable::find(...).TransDate;
;
queryRun = new QueryRun(queryStr(DateTableQuery));
q = queryRun.query();
q.dataSourceTable(tableNum(DateTrans)).findRange(fieldNum(DateTrans,TransDate)).value(sysQuery::value(transDate));
return queryRun.prompt();
}
Вопрос знатокам: почему значение transDate не появляется в соотв поле диалога запроса, а вместо этого происходит unpack ранее введенных значений c runBaseDialog? DateTableQuery - interactive. Менять последовательность сборки qr тоже не помогает (в смысле, если сначала собирать query, а потом делать new QueryRun(q))

thanks in advance