AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 16.03.2006, 10:20   #1  
DreamCreator ist offline
DreamCreator
Moderator
Benutzerbild von DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Registriert seit: 04.11.2004
Ort: Казань
lastValueElementName
Доброе утро!

Запускаю печать ТОРГ-13 из job-а:
PHP-Code:
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-Code:
public void makeReportRun(ReportName reportName this.lastValueElementName()) 
класса RunBaseReport.

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

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

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

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

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

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

Тестовый класс TORG13 прилагаю (в нем надо проставить существующий складской журнал + можно запускать самостоятельно для проверки печати ТОРГ-13)
Angehängte Dateien
Dateityp: xpo TORG13.xpo (1,9 KB, 252x aufgerufen)
Alt 17.03.2006, 12:56   #8  
DreamCreator ist offline
DreamCreator
Moderator
Benutzerbild von DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Registriert seit: 04.11.2004
Ort: Казань
Сообщение об ошибке
---------------------------
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
---------------------------
ОК
---------------------------
Alt 17.03.2006, 15:20   #9  
KMV ist offline
KMV
Участник
 
201 / 25 (1) +++
Registriert seit: 11.10.2002
Ort: Москва
Работает. Почему-то у тебя вызывается reportName не в том классе, в котором нужно...
Angehängte Grafiken
 
This post has been rated by: DreamCreator (1).
Alt 17.03.2006, 15:32   #10  
DreamCreator ist offline
DreamCreator
Moderator
Benutzerbild von DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Registriert seit: 04.11.2004
Ort: Казань
У меня код на картинке тоже хорошо отрабатывает, а потом идет код приведенный мной -- т.е. мой -- это вторая распаковка.

(Отличие в стеке можно видеть ниже строки
(C) \Classes\InventJournalProforma_Print_RU\unpack - line 17)
Alt 17.03.2006, 15:33   #11  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2499 (89) +++++++++
Registriert seit: 20.08.2005
Причина в том, что в первом случае запуск идет на клиенте, а во втором случае - на сервере.

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

Так же обрати внимание на вызов runbase:romptOnClient() в методе PromptPrim() класса RunBase. Экземпляр этого класса так же создается на клиенте, но уже без вызова метода initReportData(), т.е. Report == null. И дальнейший вызов lastValueElementName() этого экземпляра приводит к возникновения ошибки
__________________
Axapta v.3.0 sp5 kr2
This post has been rated by: DreamCreator (1).
Alt 17.03.2006, 15:55   #12  
DreamCreator ist offline
DreamCreator
Moderator
Benutzerbild von DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Registriert seit: 04.11.2004
Ort: Казань
Большое Спасибо! То что надо!
 


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 21:04 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.