Использование 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.
Как выкрутиться?
|