Цитата:
Изначально опубликовано AlexP
Добрый день.
Вопрос:
Есть отчет, который вызывает стандартный диалог, не используя класса
для этого вызова. Есть в отчете датасорс на вьюхе построенный, есть поля в ветке range в этом датасорсе, которые используются диалогом для ввода параметров для
последующей фильтрации.
Как в отчете получить значение вводимых пользователем параметров?
Заранее спасибо.
Я так понял Вы говорите о значениях введенных в SysQueryForm ?
Можно примерно так:
PHP код:
Int countRange, countDatasource;
Query qr;
QueryBuildRange qbr;
DictField dictField;
FreeTxt conditions;
;
if (this.queryRun())
qr = this.queryRun().query();
else
break;
countDatasource = qr.dataSourceCount();
while ( countDatasource >0)
{
countRange = qr.datasourceNo(countDatasource).rangeCount();
if( countRange)
{
while (countRange > 0)
{
qbr = qr.DatasourceNo(countDatasource).range(countRange);
if (qbr.value())
{
dictField = new DictField(qbr.table(),qbr.field());
conditions += " "+ DictField.label() +": "+ qbr.value();
}
countRange--;
}
}
countDatasource--;
}
в методах prompt или run после вызова super(). Вроде должно работать. Почти такой метод у меня вызывается в RunBase для всех отчетов.