AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 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.
Как выкрутиться?
Старый 05.12.2002, 17:49   #2  
Oo is offline
Oo
Участник
 
10 / 11 (1) +
Регистрация: 21.12.2001
Range из тела отчета
Да, такая проблема есть. Значения выбраны, но Value их не дает. Знаю только один выход. Тот же код сработает, если отчет будет вызван из класса наследника RunBaseReport. Как ни странно.
Старый 05.12.2002, 17:50   #3  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Имеет смысл заменить
ds = element.query().dataSourceTable(tableNum(SalesLine));
на
ds = qr.query().dataSourceTable(tableNum(SalesLine));
Старый 05.12.2002, 17:55   #4  
Oo is offline
Oo
Участник
 
10 / 11 (1) +
Регистрация: 21.12.2001
Range из тела отчета
Да, такая проблема есть. Значения выбраны, но Value их не дает. Знаю только один выход. Тот же код сработает, если отчет будет вызван из класса наследника RunBaseReport. Как ни странно.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Количество знаков отображения после запятой в формах и отчетах AX3.0 SP3 ksenia DAX: Функционал 4 07.04.2008 17:27
Использование "like" при работе с классом "QueryBuildRange" poul DAX: Программирование 18 11.08.2006 12:20
Вопрос по QueryBuildDataSource, QueryBuildRange и QueryRun Paul_ST DAX: Программирование 9 11.02.2004 17:13
Использование временных таблиц в отчетах Alexey DAX: База знаний и проекты 1 28.05.2002 11:15
Programmable Section в отчетах. Андрей Василюк DAX: База знаний и проекты 0 27.11.2001 18:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:36.