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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.10.2005, 23:12   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Логика работы метода fetch
Привет всем.

Столкнулся с проблемой.
Не могу воссоздать метод fetch вручную по дизайну отчета.
В смысле, есть дизайн. По super() строится отчет (3 датасорса в иерархии)

А я хочу тоже самое сделать вручную.
Типа

while (queryRun.next())
{
table1 = qr.get(tableNum(Table1));
if (qr.changed(tableNum(table1))
{
this.send(table1);
}
....
}
Не получается - проблема со вторым датасорсом - там body пустой, а только футера две штуки есть. И соответственно выводится должны после данных (body) третьего датасорса, вложенного в этот. (притом, что в футере выводится сумма по колонке из третьего датасорса, и поэтому он еще и ошибку выводит что поле не существует)

Короче, вопрос в чем - кто-то может толково объяснить, как по отчету Аксапта строит выполнение метода fetch()

Спасибо
Старый 03.10.2005, 18:03   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
В метод send воткни отладочную печать (что посылается) и зауписти с родным fetch.
Потом воспоризведи эту последовательность вызовов в своем fetch.
Старый 03.10.2005, 18:05   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
а как ее воткнуть можно детальней?
В смысле галку включить мониторинга вызова методов?
Старый 03.10.2005, 21:59   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Wamr, сделал по твоему совету.
В info() в методе send() выводу входные параметры

Info Сообщение (20:48:00) CustTable - 1 - true
Info Сообщение (20:48:00) CustTrans - 2 - true
Info Сообщение (20:48:00) CustTransOpen - 3 - true
Info Сообщение (20:48:00) CustTrans - 2 - true
Info Сообщение (20:48:00) CustTransOpen - 3 - true
Info Сообщение (20:48:00) CustTrans - 2 - true
Info Сообщение (20:48:00) CustTransOpen - 3 - true
Info Сообщение (20:48:00) CustTrans - 2 - true
Info Сообщение (20:48:00) CustTransOpen - 3 - true

Но если делаю такую же последовательность вручную
PHP код:
    qR = new QueryRun(this.query());

    while (
qr.next())
    {
        
custTable qr.get(tableNum(CustTable));
        
custTrans qr.get(tableNum(CustTrans));
        
custTransO qr.get(tableNum(CustTransOpen));
        if (
qr.changed(tableNum(custTable)))
            
this.send(custTable);

        
this.send(custTrans2);
        
this.send(custTransO3);
    } 
, то вылетает помимо этих сообщений еще и ошибка -
Неверное поле - 2 раза - из-за того, что в footer CustTrans два поля суммирования по полям CustTransOpen

Понимаю, что решать это надо с помощью функции this.addPendingSums();
Но пока не получилось ее куда-то прилепить, чтобы футер отобразился в правильном положении.

И еще, помимо этого, не печатается второй футер - тоже знаю почему, не знаю как побороть.
В executeQuery второго футера CustTrans стоит проверка переменной if (value) super(); А эта переменная забивается в executeSession() CustTransOpen - третий уровень. и она не заполняется как надо.

Запутанно как-то.
Но, может еще есть умные идеи.
Буду очень признателен.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема вызова метода доступа (Enum'ы!) Zoe DAX: Программирование 4 14.04.2008 23:48
Есть ли аналог метода Fetch репорта в Форме Ramil DAX: Программирование 3 03.07.2007 17:56
lookup не закрывается до завершения метода modified Morpheus DAX: Программирование 4 09.08.2006 16:43
Использование профилировщика и толкование результатов его работы belugin DAX: Программирование 3 22.11.2005 16:56
Отчет: перекрытие fetch() убивает буфер записи в display-методе Zabr DAX: Программирование 1 18.02.2005 18:45

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

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

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