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

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

Запускаю печать ТОРГ-13 из job-а:
PHP код:
static void Job17(Args _args)
{
    
InventJournalTable inventJournaltable InventJournalTable::find("065251_090");
    
Args args = new Args();
    ;
    
args.record(inventJournalTable);
    
args.parmEnumType(enumNum(InventJournalReportType_RU));
    
args.parmEnum(InventJournalReportType_RU::Transfer);
    new 
MenuFunction(menuItemOutputStr(InventJournalRep_Transfer_RU),MenuItemType::Output).run(args);

Все OK!
Запускаю из своего класса наследника SalesReport_Invoice_RU.
Вылетает на методе
PHP код:
public void makeReportRun(ReportName reportName this.lastValueElementName()) 
класса RunBaseReport.

В чем может быть дело?? pack и unpack реализованы стандартно.
Старый 16.03.2006, 11:31   #2  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Ошибку выдает? Какую? Report стандартный используется (SalesPurchInvoice_RU)?
Старый 16.03.2006, 11:38   #3  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Ошибка в том что не найден метод lastValueElementName()

Report с доработками, и возможно немного запутал я печатаю ТОРГ-13 (InventJournalReport_Transfer_RU) из наследника класса который предназначен для печати ТОРГ-12(SalesPurchInvoice_RU) (тоже с доработками).

Вылетает даже если вызваю из статического метода другого класса. Если же вызывать просто job или самостоятельный класс (обрнутый job) то прекрасно печатается.
Старый 16.03.2006, 12:09   #4  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
А как запускаете отчет на выполнение, так же как написано в jobe? Обратите внимание, что у этих двух классов (вашего наследника от SalesPurchInvoice_RU и InventJournalReport_Transfer_RU) разная архитектура. Т.е. InventJournalReport_Transfer_RU не наследуется от RunBase.
Старый 16.03.2006, 12:16   #5  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Да, запускаю аналогично job-у.
Архитектура разная, но не вижу связи между запуском статического метода (нового, специально созданного класса) на наследнике SalesPurchInvoice_RU и печатью ТОРГ013 -- веь я в метод передаю только курсор InventJournalTable и процесс (ИМХО, по крайней мере ожидал) идет в другом месте не связанном с ТОРГ-12.

Возможно, для ТОРГ-13 распаковываются данные ТОРГ-12.
Старый 16.03.2006, 12:36   #6  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Цитата:
Сообщение от DreamCreator
Возможно, для ТОРГ-13 распаковываются данные ТОРГ-12.
Не думаю. Может классик выложишь.
Старый 16.03.2006, 12:53   #7  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Можно смоделировать ситуацию так:

В класс SalesReport_Invoice_RU в метод main, в самый конец добавить вызов

TORG13:rintReport(); // TODO После тестирования убрать

Тестовый класс TORG13 прилагаю (в нем надо проставить существующий складской журнал + можно запускать самостоятельно для проверки печати ТОРГ-13)
Вложения
Тип файла: xpo TORG13.xpo (1.9 Кб, 240 просмотров)
Старый 17.03.2006, 12:56   #8  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Сообщение об ошибке
---------------------------
Microsoft Business Solutions-Axapta Debugger
---------------------------
Ошибка времени выполнения. : InventJournalProforma_RU Объект не инициализирован.

Трассировка стека:
(C) \Classes\InventJournalProforma_RU\reportName
(C) \Classes\InventJournalProforma_Print_RU\lastValueElementName - line 3
(C) \Classes\RunBaseReport\makeReportRun - line 1
(C) \Classes\RunBaseReport\unpack - line 21
(C) \Classes\InventJournalProforma_Print_RU\unpack - line 17
(C) \Classes\RunBase\promptUnpack - line 4
(C) \Classes\RunBaseBatch\promptUnpack - line 7
...
(S) \Classes\WMTransferJourPost\main - line 23
(S) \Classes\MenuFunction\run
(S) \Classes\InvoiceCreator_WMSTransfer\run - line 20
(S) \Classes\InvoiceCreator\main - line 51
(S) \Classes\MenuFunction\runServer
(C) \Classes\FormFunctionButtonControl\Clicked
(C) \Classes\FormMenuButtonControl\Clicked
---------------------------
ОК
---------------------------
Старый 17.03.2006, 15:20   #9  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Работает. Почему-то у тебя вызывается reportName не в том классе, в котором нужно...
Изображения
 
За это сообщение автора поблагодарили: DreamCreator (1).
Старый 17.03.2006, 15:32   #10  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
У меня код на картинке тоже хорошо отрабатывает, а потом идет код приведенный мной -- т.е. мой -- это вторая распаковка.

(Отличие в стеке можно видеть ниже строки
(C) \Classes\InventJournalProforma_Print_RU\unpack - line 17)
Старый 17.03.2006, 15:33   #11  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Причина в том, что в первом случае запуск идет на клиенте, а во втором случае - на сервере.

Обрати внимение на реализацию метода Main() класса InventJournalProforma_Print_RU. В нем, после создания экземпляра класса, идет вызов метода initReportData(). В этом методе происходит инициализация Report

Так же обрати внимание на вызов runbase:romptOnClient() в методе PromptPrim() класса RunBase. Экземпляр этого класса так же создается на клиенте, но уже без вызова метода initReportData(), т.е. Report == null. И дальнейший вызов lastValueElementName() этого экземпляра приводит к возникновения ошибки
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: DreamCreator (1).
Старый 17.03.2006, 15:55   #12  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Большое Спасибо! То что надо!
 

Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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