26.07.2005, 09:15 | #1 |
Участник
|
Здраствуйте,
хотел спросить, в чем ошибка или недоделка. QueryBuildDataSource queryBuildDataSource; QueryBuildRange queryBuildRange; ; queryBuildDataSource = Query.dataSourceTable(tableNum(salestable)); queryBuildRange = queryBuildDataSource.findRange(fieldNum(Salestable,DeliveryDate)); if ( queryBuildRange ) queryBuildDataSource.clearRange(fieldNum(Salestable,DeliveryDate)); queryBuildRange = queryBuildDataSource.addRange( fieldNum(Salestable,DeliveryDate)); queryBuildRange.value(date2str(today()-10,321,2,2,2,2,4)+'..'+date2str(today(),321,2,2,2,2,4)); super(); даннный скрипт хочу использовать в репорте, поместил его в init метод. он какбы и работает, но не всегда. когда меняю queryBuildRange.value, чтоб увидеть резултат, должен закоментировать super(); пропустить репорт и опять снять коментарий. Где недоделано? |
|
26.07.2005, 12:27 | #2 |
Участник
|
init сам формирует query, если в параметрах query указано autoQuery=yes
query программно надо формировать не в ините отчета/формы, а в ините датасорса ПОСЛЕ супера. задавать value лучше в executeQuery. См. примеры в доке. Кроме того, вместо того, чтобы вручную формировать строку критерия лучше воспользоваться SysQuery::range(today()-10,today()); См. также http://axapta.mazzy.ru/lib/emptyqueryrange/ Кроме того, лучше пользоваться не today - это системная дата компьютера, а SystemDateGet - это рабочая дата в Аксапте, пользователь может ее менять. |
|