22.03.2004, 16:15 | #1 |
Модератор
|
Проблема при построении отчетов
Трабл! Если кто попадался или знает решение (ссылочку) буду благодарен.
проблема (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 |
NavAx
|
вдумчиво почитай манулу, а потом, если не прийдет озарение, пройдись дебагером и будет тебе щастье
|
|
22.03.2004, 19:09 | #3 |
Модератор
|
:-Х Ух, Какой Вы Злой
Щастья нет. Все нормально, (спасибо за идею), если генерить отчет с помощью мастера. А вот если ручками - беда... Объяснить не могу... лучше делать все автоматом, чем ручками - один выход... и не париться, вот тогда и будет ЩЩастье |
|
23.03.2004, 10:20 | #4 |
NavAx
|
Точно, нужно просто нанять мастера, он все и сгенерит. Не царское это дело в коде ковыряться, да манулы читать ;-)
|
|
23.03.2004, 16:25 | #5 |
Lean Six Sigma
|
Маленький хинт - а ответов на форуме нет, потому как вопрос непонятен - выложите код (на вскидку - метод unpack и class declaration) и все ответят. А догадываться, что у Вас в отчёте....
|
|
23.03.2004, 16:49 | #6 |
Модератор
|
Спасибо, что откликнулись, 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 |
Lean Six Sigma
|
Всё-то Вы торопитесь
1. Весь форум делает отчёты много лет и многие (я, например) никогда не пользуются мастером. Вам не отвечают т.к. это всем уже известно. Никаких сложностей в создании отчётов нет. 2. Если у Вас есть сгенерированный дизайн, то генератору отчётов уже всё-равно есть у отчёта спецификация автодизайна или нет. 3. Описание лога наводит на размышления, что у Вас или неправильно написан анпак или не те аргументы в макросах в класс декларэйшен. У вас бы дела пошли чуть быстрее если бы Вы: 1. Посмотрели бы Тьюторьял РанБэйзРепорт 2. Спросили бы на форуме по поводу непонятных методов |
|
23.03.2004, 17:41 | #8 |
NavAx
|
До этого поста, я думал, что в написании отчетов в axapta ничего особо сложного нет, а оказывается существуют теоретики, прикладники и методология решения проблемы, которая не понятно в чем заключается ... :-(
|
|
23.03.2004, 17:50 | #9 |
Lean Six Sigma
|
Нет человека - нет проблемы! Извиняюсь - просто шутка, но не смог удержаться. |
|
23.03.2004, 18:38 | #10 |
Модератор
|
Есть такой человек!
Разумеется, я смотрел 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 код:
И так и так - перекрываю, допустим, prompt - вывожу (trace) запрос - результат меня радует, все так, как предпологал, запрос построен корректно. Очтет открывается - ура! Открываю через МИ - все... ошибка. Убираю один датасорс - все ОК! открывается и через МИтем. А с двумя - шиш. Вылечилось разбрасыванием отчета на два дизайна. Что, хоть и работает, но душа болит А почему так??? Вопросы тому кто "делает отчёты много лет" Если использовать класс - что есть хорошо, дает широкие возможность и наверняка скоро возникнет ситуация, в которой имеено класс будет вызывать отчет, Что и как надо запаковать, что бы избежать подобного рода проблем? Если не использовать класс, то что еще надо сотворить с отчетом, что бы данной проблемы не возникало (как перекрыть pack)?. To Ned: Спасибо, что откликнулись. To macklakov: Алекс, не издевайся, плиз. люди смотрят кинь лучше ссылку, если знаешь, где это описано. Про RTFM мы все в курсе. |
|
23.03.2004, 19:34 | #11 |
NavAx
|
Почитать можно в руководстве разработчика, а потом посмотреть, как работают готовые отчеты. Я не Алекс, просто смешно слышать предположения новичков о том, что построение отчетов это сокральное знание.
|
|
24.03.2004, 11:15 | #12 |
Модератор
|
to macklakov: Sorry.... Я думал - это один из моих знакомых надо мной издевается. Оказывается - незнакомый... Отлично! Что ж, господин "профи", читайте внимательно - все работает. Но! Прежде, чем давать "советы", плиз, смоделируйте ситуацию, создайте отчет ручками, и посмотрите - все ли нормально работает, или возникает данная ошибка. Вот в чем и был вопрос. Может, она только у меня так "глючит". А насчет руководства - укажите именно место, где описывается данная проблема. А то как-то "в руководстве написано... на http://technet.navision.com/ сказано.. кто-то на форуме обсуждал.." - несолидно! конкретики, плиз-з!
|
|
24.03.2004, 11:19 | #13 |
Участник
|
Попробуй очистить кеш настроек пользователя (меню Сервис/параметры/кнопка Использование данных/кнопка сброс).
|
|
24.03.2004, 12:25 | #14 |
NavAx
|
А что здесь воспроизводить? Судя по коду, это обычный отчет с двумя связанными датасорсами, в котором не понятно за чем руками переопределяется query и pack/unpack. При запуске диалог берет таблицы из query и проставляет параметры, а потом в init эти параметры затираются. К тому же пакуются/распаковываются таблицы, которые опять таки нигде потом не используюстя. В каком месте прикажешь искать баг, если весь отчет это сплошной баг?
|
|
24.03.2004, 12:57 | #15 |
Участник
|
Уважаемые, участники. Извините, что к вам обращаюсь
"Профи" будьте, пожалуйста, терпимее к начинающим. Мы все когда то начинали. "Начинающие", пожалуйста, помните, что здесь не линия консультаций и никто не ОБЯЗАН вам отвечать. Мало того, вы вполне можете встретиться с критическим обсуждением вашего вопроса. Помните о рекомендациях Как правильно задать вопрос, чтобы быть услышанным Спасибо за понимание. |
|
24.03.2004, 13:07 | #16 |
Модератор
|
to mazzy: Сергей, проблемы нет, я давно её победил. Просто интересно знать из-за чего (при некоторых обстоятельствах) может возникать данная ошибка.
to macklakov: ЧИТАЙТЕ внимательно!!! Это 3 разных подхода я ИЛИ делаю 2 дс или перекрываю инит ! А про пак/анпак - это я тоже с возмущением, т.к. такой код использовать не собираюсь. Что бы Вы предложили на его место? А?? Если я НЕ перекрываю pack, а система орет, что произошла ошибка в unpackе? Он же по идее, только quryrun пакует, не так ли? Если Вы такой "профи"... |
|
24.03.2004, 13:34 | #17 |
NavAx
|
А не пойти ли нам в курилку ;-))) Скоро первое апреля, а мы еще не придумали, как подшутить над системой. Пусть она запомнит параметры, а мы потом возьмем и подменим ей query, и она останется без параметров :-)))
|
|
24.03.2004, 13:46 | #18 |
Модератор
|
Так и есть... коллеги бывшие издеваются... ничего святого!
Но он прав.... да, вполне возможно, что все так и есть.. |
|
|
|