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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.12.2005, 13:26   #1  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Диалог в наследнике SalesReport_Invoice_RU
Добрый день!

Создал наследника SalesReport_Invoice_RU, пытаюсь вызвать диалог

перегрузил
PHP код:
protected boolean showDialog()
{
    return 
true;

перегрузил
PHP код:
public Object dialogMake()
{
    
Dialog  dialog;
    ;
    
dialog super();
    return 
dialog;

Запустил -- первый раз сработало, все остальные Аксапта падает. Делаю сброс данных -- первый раз срабатывает потом падает!

В чем дело? Ведь я просто вызвал диалог, даже свои поля на него не добавил!

Здесь вылетает ..
PHP код:
//solution for client reports W98
client static QueryRun newQueryRun(ReportRun _reportRun)
{
    return new 
QueryRun(_reportRun);

Старый 27.12.2005, 13:53   #2  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Посмотри super();

В RunBase метод dialogMake возвращает dialogRunBase, а не dialog.
За это сообщение автора поблагодарили: DreamCreator (2).
Старый 27.12.2005, 14:20   #3  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от KMV
Посмотри super();
В RunBase метод dialogMake возвращает dialogRunBase, а не dialog.
Да, действительно..
Вот так тоже падает:

PHP код:
public Object dialogMake()
{
    
DialogRunBase   dialogRunBase;
    ;
    
dialogRunBase super();
    return 
dialogRunBase;

Старый 27.12.2005, 14:30   #4  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Если своих полей добовлять не надо, то достаточно перекрыть один метод showDialog.
Если свои поля нужны, нужно перекрыть метод dialog.
Старый 27.12.2005, 14:35   #5  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
И еще вопрос:
А какой отчет используете, т.е метод lastValueElementName перекрыт?
Старый 27.12.2005, 14:54   #6  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от KMV
И еще вопрос:
А какой отчет используете, т.е метод lastValueElementName перекрыт?
Перекрыл
PHP код:
public identifiername lastValueElementName()
{
    return 
reportStr('SalesPurchInvoice_RU');

Аксапта падает с этим методом и без него, кроме того в других аналогичных потомках lastValueElementName я не перегружал, и работало корректно.

Да, нужны свои поля в диалоге! Поэтому удалил dialogMake(..) и перекрыл dialog

PHP код:
Object dialog(DialogRunbase _dialogboolean _forceOnClient)
{
    
Object ret;

    
ret super(_dialog_forceOnClient);

    return 
ret;

И Аксапта вновь падает..
Старый 27.12.2005, 15:05   #7  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
вот это я не понял
Цитата:
удалил dialogMake(..)
может просто xpo покажешь?
Старый 27.12.2005, 15:23   #8  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от Wamr
может просто xpo покажешь?
В xpo простой вариант класса который можно запустить. Первый раз запуск проходит корректно -- мы видим диалог, второй и все последующие (до сброса используемых данных) Аксапта падает.

+ в классе-родителе SalesPurchReport_RU я убрал модификатор (? помойму так) final в методе dialog.
Вложения
Тип файла: xpo example.xpo (3.0 Кб, 513 просмотров)
Старый 27.12.2005, 15:30   #9  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Ага, а параметры куда дел?

Код:
public static void main(Args _args)
{
    SalesReport_Invoice_RU launcher = new SalesReport_Invoice_RU();
    Args                   args;
    ReportRun              repRun;
    ;
    ...

    launcher.setParameters(_args.parmEnum(), _args.record(), _args.object());
    launcher.setCaller(_args.caller());
    ......
}
Старый 27.12.2005, 15:36   #10  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от KMV
Ага, а параметры куда дел?
Воткнул в боевой класс (эксперементальный вызывается в лоб, без Args)

PHP код:
    invoiceCreator.setParameters(_args.parmEnum(), _args.record(), _args.object());
    
invoiceCreator.setCaller(_args.caller());

    if(
invoiceCreator.prompt())
    {
        
invoiceCreator.run();
    } 
Аксапта опять упала..
Старый 27.12.2005, 15:36   #11  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Проще всего скопировать метод main() класса SalesReport_Invoice_RU в класс наследник.
Ну и заменить:

SalesReport_Invoice_RU launcher = new SalesReport_Invoice_RU();

в Вашем случае на:

example launcher = new Example()
Старый 27.12.2005, 15:45   #12  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
нормально работает.
Попробуй инкрементную компиляцию.
По симптомам похоже на неправильную отработку pack&unpack.
Старый 27.12.2005, 15:49   #13  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от KMV
Проще всего скопировать метод main() класса SalesReport_Invoice_RU в класс наследник.
Ну и заменить:
SalesReport_Invoice_RU launcher = new SalesReport_Invoice_RU();
в Вашем случае на:
example launcher = new Example()
Сделал! Упала!

Цитата:
Сообщение от Wamr
нормально работает.
Попробуй инкрементную компиляцию.
По симптомам похоже на неправильную отработку pack&unpack.
Инкрементно компилировал -- падает.
Я тоже на pack&unpack смотрю -- потому как после сброса один раз отрабатывает корректно, а на второй и последующие -- падает! Я делаю сброс используемых данных -- может есть еще средство?
Старый 27.12.2005, 15:55   #14  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
CurrentVersion поменяйте попробуйте
Старый 27.12.2005, 16:00   #15  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от kashperuk
CurrentVersion поменяйте попробуйте
PHP код:
class example extends SalesReport_Invoice_RU
{
    
#DEFINE.CurrentVersion(9)

Упала..
Старый 27.12.2005, 16:15   #16  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
там где падает _reportRun инициализирован?
Старый 27.12.2005, 16:20   #17  
Starling is offline
Starling
Участник
Дети Юза
 
530 / 76 (4) ++++
Регистрация: 20.10.2005
Адрес: Kiev
У меня было нечто похожее, когда я в CurrentList пытался запихнуть объект класса QueryRun. Как оказалось, его необходимо отдельно пакатовать

return [#CurrentVersion,#CurrentList,itemQueryRun.pack()];
За это сообщение автора поблагодарили: DreamCreator (2).
Старый 27.12.2005, 16:27   #18  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Для example можно так:

Код:
public container pack()
{
    return [#CurrentVersion, #CurrentList] + [super()];
}
Старый 27.12.2005, 16:30   #19  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от Wamr
там где падает _reportRun инициализирован?
Падает здесь (вверху уже упоминал -- это детализация)
PHP код:
//solution for client reports W98
client static QueryRun newQueryRun(ReportRun _reportRun)
{
    return new 
QueryRun(_reportRun);

Инициализирован -- в дебагере справа стоит new!

Цитата:
У меня было нечто похожее, когда я в CurrentList пытался запихнуть объект класса QueryRun.
Я вроде ничего явно не пакую..
Старый 27.12.2005, 16:32   #20  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
кинь еще xpo SalesPurchReport_Invoice_RU & SalesPurchReport_RU
За это сообщение автора поблагодарили: DreamCreator (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
финансовые аналитики в диалог longson DAX: Программирование 6 02.07.2008 03:23
Установка после установки : Пропал диалог с настройкой datasource Kolt DAX: Администрирование 2 11.11.2007 11:39
Переменные в наследнике класса longson DAX: Программирование 32 12.07.2007 00:09
Диалог открытия файлов NeveB DAX: Программирование 1 08.12.2003 11:48
Свой диалог фильтра Vadik DAX: Программирование 7 31.01.2003 19:20
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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