Показать сообщение отдельно
Старый 05.12.2002, 17:18   #1  
SG is offline
SG
Участник
 
4 / 10 (1) +
Регистрация: 17.11.2002
Адрес: Украина, Киев
? Использование 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.
Как выкрутиться?