05.12.2002, 17:18 | #1 |
Участник
|
Использование QueryBuildRange в отчетах
Привет всем,
Вопрос: какая связь между предопределенными Ranges на DataSourc'ах и ranga'ми определяемыми из кода? Опишу ситуацию: делаю отчет, который должен печать прайс-лист из всех айтемов и их цены для определенного клиента за заданный период времени, причем если клиент покупал один и тот же айтем в разное время, то выводить только самую последнюю цену. Значения полей из rang'ей тоже нужно вывести на печать.Я завел в query новый (единственный) датасоурс SalesLine с ranges custAccount и createdDate и с сортировкой по ItemId и createdDate. Теперь переписываю fetch() public boolean fetch() { QueryBuildDataSource ds; QueryRun qr; SalesLine line; str cust, period, previousItemId; ; qr = new QueryRun(element.query()); if (qr.prompt()) { ds = element.query().dataSourceTable(tableNum(SalesLine)); // хочу найти наложенные ranges и взять их значения, которые задал юзер cust = ds.findRange(fieldNum(SalesLine, CustAccount)).value(); period = ds.findRange(fieldNum(SalesLine, createdDate)).value(); // Для начала хочу просто посмотреть что значения правильно считались info(cust + " " + period); /* НО ЗДЕСЬ НИЧЕГО НЕТ, хотя дальше все работает првильно и ограничения действительно были наложены. */ while (qr.next()) { line = qr.get(tableNum(SalesLine)); if (strcmp(line.ItemId, previousItemId)) { element.send(line); previousItemId = line.ItemId; } } } return true; } т.е. такое ощущение, что я по findRange(...) не нахожу наложенных ranges. Как выкрутиться? |
|
05.12.2002, 17:49 | #2 |
Участник
|
Range из тела отчета
Да, такая проблема есть. Значения выбраны, но Value их не дает. Знаю только один выход. Тот же код сработает, если отчет будет вызван из класса наследника RunBaseReport. Как ни странно.
|
|
05.12.2002, 17:50 | #3 |
----------------
|
Имеет смысл заменить
ds = element.query().dataSourceTable(tableNum(SalesLine)); на ds = qr.query().dataSourceTable(tableNum(SalesLine)); |
|
05.12.2002, 17:55 | #4 |
Участник
|
Range из тела отчета
Да, такая проблема есть. Значения выбраны, но Value их не дает. Знаю только один выход. Тот же код сработает, если отчет будет вызван из класса наследника RunBaseReport. Как ни странно.
|
|
|
|