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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.03.2004, 16:15   #1  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Проблема при построении отчетов
Трабл! Если кто попадался или знает решение (ссылочку) буду благодарен.

проблема (Ax 3.0 w/o sp):
Есть отчет (новый)
Есть MenyItem к нему.

Если у отчета в query 1datasource, то настраиваем отчет - открываем (просто так или через menuitem) - все нормально работает.

Но еслм мы:
1) Ставим два datasourca - на одном уровне
2) Ставим два datasourca - один у другого
3) Не ставим ни одного датасорса - перекрываем инит и там созаем query и queryrun с двумя заjoinыми датасорсами

запускаем отчет - все работает.
запускаем через menuitem - получаем:

Ошибка времени выполнения - неправильные типы аргументов в операции присвоения значения переменной.

стек вызовов:
(C) \Classes\TutorialTestReport\unpack - line 12
(C) \Classes\xSysLastValue\getLast - line 16
(C) \Classes\RunBase\getLast - line 9
(C) \Classes\RunBaseBatch\getLast - line 3
(C) \Classes\RunBase\promptPrim - line 8
(C) \Classes\RunBase\prompt - line 10
(C) \Classes\RunBaseBatch\prompt - line 3
(C) \Classes\RunBaseReport\prompt - line 13
(C) \Classes\TutorialTestReport\main - line 6

Кто сталкивался с подобной траблой - откликнитесь плиз!
Старый 22.03.2004, 17:01   #2  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
вдумчиво почитай манулу, а потом, если не прийдет озарение, пройдись дебагером и будет тебе щастье
Старый 22.03.2004, 19:09   #3  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
:-Х Ух, Какой Вы Злой
Щастья нет. Все нормально, (спасибо за идею), если генерить отчет с помощью мастера. А вот если ручками - беда... Объяснить не могу... лучше делать все автоматом, чем ручками - один выход... и не париться, вот тогда и будет ЩЩастье
Старый 23.03.2004, 10:20   #4  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Точно, нужно просто нанять мастера, он все и сгенерит. Не царское это дело в коде ковыряться, да манулы читать ;-)
Старый 23.03.2004, 16:25   #5  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
Маленький хинт - а ответов на форуме нет, потому как вопрос непонятен - выложите код (на вскидку - метод unpack и class declaration) и все ответят. А догадываться, что у Вас в отчёте....
Старый 23.03.2004, 16:49   #6  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Спасибо, что откликнулись, Ned! Дело вот в чем: Если лезть так глубоко, то можно создать новый класс, унаследовать его от RunBaseReport, переопределить pack / unpack / initQuery и рыться там. Но по ходу дела я упростил задачу - все данные функции возложил на MyNewReport (хм, кстати, а можно ли в самом отчете перекрыть unpack?)
в initе нового Reportа переопределил qyery, забил туда 2 дс+ эддлинк. И все работает нормально, если просто этот отчет открывать!! но, если открыть его через MenuItem, то ж..сорри - Все! то есть - ничего! не работает.. пример ругательств приводил выше. Методом научного тыка понял - в очтете должно быть 2 дизайна - Auto... и GeneratedDesign. Так вот, такая ситуация возникает, если Auto..Design путой. По крайней мере, я поместил туда Header и Prolog и все заработало. Остальное поместил в другой дизайн, кстати, только туда можно внутрь Body поместить Footer, например, с суммированием по секции. Т.е. решение есть, все работает, методология решения данной проблемы выработана (желаю больше никому не наступать на подобного рода грабли), одно неизвестно - почему все так работает? Но, может, оставим этот вопрос теоретикам?
Прикладников как-то больше волнует результат. Жаль просто потерянного времени.
Старый 23.03.2004, 17:28   #7  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
Всё-то Вы торопитесь
1. Весь форум делает отчёты много лет и многие (я, например) никогда не пользуются мастером. Вам не отвечают т.к. это всем уже известно. Никаких сложностей в создании отчётов нет.
2. Если у Вас есть сгенерированный дизайн, то генератору отчётов уже всё-равно есть у отчёта спецификация автодизайна или нет.
3. Описание лога наводит на размышления, что у Вас или неправильно написан анпак или не те аргументы в макросах в класс декларэйшен.

У вас бы дела пошли чуть быстрее если бы Вы:
1. Посмотрели бы Тьюторьял РанБэйзРепорт
2. Спросили бы на форуме по поводу непонятных методов
Старый 23.03.2004, 17:41   #8  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
До этого поста, я думал, что в написании отчетов в axapta ничего особо сложного нет, а оказывается существуют теоретики, прикладники и методология решения проблемы, которая не понятно в чем заключается ... :-(
Старый 23.03.2004, 17:50   #9  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт

Нет человека - нет проблемы!

Извиняюсь - просто шутка, но не смог удержаться.
Старый 23.03.2004, 18:38   #10  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Есть такой человек!
Разумеется, я смотрел tutorial!! Дело в том, что все работает!! Как можно отследить ошибку, если все работает нормально? И почему данная ошибка вылезает именно при запуске из МИ? Кстати, ЧТО вы бы предложили запаковать?
Есть 2 таблицы, ProdTable и InventDim (ProdTable.InventDimId == InventDim.InventDimId), по которым стандартными средствами строиться отчет.

Вопрос: и что я должен запаковать?

ProdTable prodTable;
InventDim InventDim;

#define.CurrentVersion(1)
#define.Version1(1)
#localmacro.CurrentList
prodTable, ???? - это же просто запись, а не параметры.
inventDim ???? параметры нам пока неизвестны - это дело пользователя.
#endmacro

Зачем? он же все равно queryrun пакует?

B tutorial_runbaseform был запакован дополнительный параметр поиска. Здесь ничего такого нет. Есть наш query, который мы инитим по-своему и на основе его переопределяем queryrun...

Но! В конце концов в вообще отказался от класса, который бы инициализировал и вызывал отчет. я перекрыл метод init в отчете. Примерно так:

PHP код:

      
public void init()
      {
          
QueryBuildDataSource    qbds;
          
TableId                 tableId;
          
FieldId                 fieldId;
          
FieldId                 joinedFieldId;
          
SysReportRun            reportRun this;
          ;
          
super();
      
          
query = new Query();
      
          
tableId tablenum(ProdTable);
          
qbds query.addDataSource(tableId);
      
          
tableId tablenum(InventDim);
          
qbds qbds.addDataSource(tableId);
      
          
fieldId         fieldnum(ProdTableInventDimId);
          
joinedFieldId   fieldnum(InventDimInventDimId);
          
qbds.addLink(fieldIdjoinedFieldId);
          
qbds.joinMode(JoinMode::ExistsJoin);
          
//qbds.relations(false);
      
          
queryrun = new QueryRun(query);
          
reportRun.queryRun(queryrun);
          
reportRun.queryRun().reset();
          
reportRun.printRanges(true);
      } 
Но и этого можно не делать. Можно скопировать в датасорсы Query таблицу ProdTable, к ней в датасорс - InventDim, а в InventDimе прописать relation.

И так и так - перекрываю, допустим, prompt - вывожу (trace) запрос - результат меня радует, все так, как предпологал, запрос построен корректно. Очтет открывается - ура! Открываю через МИ - все... ошибка. Убираю один датасорс - все ОК! открывается и через МИтем. А с двумя - шиш. Вылечилось разбрасыванием отчета на два дизайна. Что, хоть и работает, но душа болит А почему так???
Вопросы тому кто "делает отчёты много лет"

Если использовать класс - что есть хорошо, дает широкие возможность и наверняка скоро возникнет ситуация, в которой имеено класс будет вызывать отчет, Что и как надо запаковать, что бы избежать подобного рода проблем?

Если не использовать класс, то что еще надо сотворить с отчетом, что бы данной проблемы не возникало (как перекрыть pack)?.

To Ned: Спасибо, что откликнулись.
To macklakov: Алекс, не издевайся, плиз. люди смотрят кинь лучше ссылку, если знаешь, где это описано. Про RTFM мы все в курсе.
Старый 23.03.2004, 19:34   #11  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Почитать можно в руководстве разработчика, а потом посмотреть, как работают готовые отчеты. Я не Алекс, просто смешно слышать предположения новичков о том, что построение отчетов это сокральное знание.
Старый 24.03.2004, 11:15   #12  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
to macklakov: Sorry.... Я думал - это один из моих знакомых надо мной издевается. Оказывается - незнакомый... Отлично! Что ж, господин "профи", читайте внимательно - все работает. Но! Прежде, чем давать "советы", плиз, смоделируйте ситуацию, создайте отчет ручками, и посмотрите - все ли нормально работает, или возникает данная ошибка. Вот в чем и был вопрос. Может, она только у меня так "глючит". А насчет руководства - укажите именно место, где описывается данная проблема. А то как-то "в руководстве написано... на http://technet.navision.com/ сказано.. кто-то на форуме обсуждал.." - несолидно! конкретики, плиз-з!
Старый 24.03.2004, 11:19   #13  
lugachy is offline
lugachy
Участник
 
82 / 11 (1) +
Регистрация: 15.03.2004
Попробуй очистить кеш настроек пользователя (меню Сервис/параметры/кнопка Использование данных/кнопка сброс).
Старый 24.03.2004, 12:25   #14  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
А что здесь воспроизводить? Судя по коду, это обычный отчет с двумя связанными датасорсами, в котором не понятно за чем руками переопределяется query и pack/unpack. При запуске диалог берет таблицы из query и проставляет параметры, а потом в init эти параметры затираются. К тому же пакуются/распаковываются таблицы, которые опять таки нигде потом не используюстя. В каком месте прикажешь искать баг, если весь отчет это сплошной баг?
Старый 24.03.2004, 12:57   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Уважаемые, участники. Извините, что к вам обращаюсь

"Профи" будьте, пожалуйста, терпимее к начинающим. Мы все когда то начинали.

"Начинающие", пожалуйста, помните, что здесь не линия консультаций и никто не ОБЯЗАН вам отвечать. Мало того, вы вполне можете встретиться с критическим обсуждением вашего вопроса. Помните о рекомендациях Как правильно задать вопрос, чтобы быть услышанным

Спасибо за понимание.
Старый 24.03.2004, 13:07   #16  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
to mazzy: Сергей, проблемы нет, я давно её победил. Просто интересно знать из-за чего (при некоторых обстоятельствах) может возникать данная ошибка.

to macklakov: ЧИТАЙТЕ внимательно!!! Это 3 разных подхода я ИЛИ делаю 2 дс или перекрываю инит ! А про пак/анпак - это я тоже с возмущением, т.к. такой код использовать не собираюсь. Что бы Вы предложили на его место? А?? Если я НЕ перекрываю pack, а система орет, что произошла ошибка в unpackе? Он же по идее, только quryrun пакует, не так ли? Если Вы такой "профи"...
Старый 24.03.2004, 13:34   #17  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
А не пойти ли нам в курилку ;-))) Скоро первое апреля, а мы еще не придумали, как подшутить над системой. Пусть она запомнит параметры, а мы потом возьмем и подменим ей query, и она останется без параметров :-)))
Старый 24.03.2004, 13:46   #18  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Так и есть... коллеги бывшие издеваются... ничего святого!

Но он прав.... да, вполне возможно, что все так и есть..
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Еще проблема с Excel при построении диаграмм zZ_TOP_Zz DAX: Программирование 7 22.09.2008 10:16
EP2009. Не вижу стандартных отчетов на сервере отчетов. slava09 DAX: Администрирование 8 19.08.2008 08:03
Проблема с активно-пассивными счетамидля формы 1 в генераторе финансовых отчетов Truba DAX: Функционал 8 14.08.2006 12:07
Возникла проблема с получением имени файла при создании своего канала вывода отчетов. oleg_kap DAX: Программирование 3 06.06.2006 14:12
Axapta Report Designer vs. Something Андре DAX: Программирование 39 18.07.2005 11:06

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:23.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.