|
![]() |
#1 |
Сам.AX
|
![]()
Уважаемые участники axforum.info!
Никак не получается программно открыть форму строк журнала спецификации. Делаю так: Функция insertInventJour создает журнал и строку в ней и возвращает код журнала: X++: //формируем строку inventJournalTable.Description descr = strfmt("к заказу %1", SalesTable.SalesId); //ищем тип журнала спецификация select firstonly inventJournalName where inventJournalName.JournalNameId == 'Спецификация'; //ищем журнал спецификации к этому заказу select firstonly inventJournalTable where (inventJournalTable.JournalNameId == inventJournalName.JournalNameId) && (inventJournalTable.Description == descr); //если не нашли, создаем журнал и строку в нем с приходом номенклатуры-спецификации if (!inventJournalTable) { ttsbegin; inventJournalTable.initFromInventJournalName(inventJournalName); inventJournalTable.Description = descr; inventJournalTable.isDocOutput = NoYes::Yes; inventJournalTable.Dimension = SalesLine.Dimension; inventJournalTable.insert(); ttscommit; select firstonly inventTable where inventTable.ItemId == 'НОМ1'; ttsbegin; inventJournalTrans.initFromInventJournalTable(inventJournalTable); inventJournalTrans.initFromInventTable(inventTable); inventJournalTrans.TransDate = today(); inventJournalTrans.Dimension = SalesLine.Dimension; inventJournalTrans.insert(); ttscommit; } //возвращаем код журнала спецификации ret = InventJournalTable.JournalId; X++: inventJournalTableT = InventJournalTable::find(element.insertInventJour()); if(inventJournalTableT) { select inventJournalTransT where inventJournalTransT.JournalId == inventJournalTableT.JournalId; args.record(inventJournalTransT); args.parm(inventJournalTableT.JournalId); frmInventJournalTrans = new MenuFunction(menuItemDisplayStr(InventJournalTransBOM), menuItemType::Display).create(args); frmInventJournalTrans.run(); } Она вываливается из метода new X++: if (! formRun.args().caller() || ! formRun.args().dataset()) throw error(strfmt("@SYS22678",formRun.name())); Версия Аксапты - 4 SP2 |
|
![]() |
#2 |
Участник
|
Цитата:
Как вариант, могу посоветовать в фоне создать форму самих журналов InventJournalTable и передать её в качестве caller в форму строк. |
|
![]() |
#3 |
Сам.AX
|
Цитата:
X++: args.record(inventJournalTableT); frmInventJournalTable = new MenuFunction(menuItemDisplayStr(InventJournalTableBOM), menuItemType::Display).create(args); args.caller(frmInventJournalTable); JournalTableData Объект не инициализирован. Трассировка стека (C)\Classes\JournalTableData\journalTable (C)\Classes\InventJournalFormTrans\formInitPost - line 6 (C)\Forms\InventJournalBOM\Methods\init - line 15 (C)\Classes\SysSetupFormRun\init - line 5 (C)\Classes\MenuFunction\create (C)\Classes\FormButtonControl\Clicked - line 48 Я в замешательстве... |
|
![]() |
#4 |
Участник
|
Сделайте frmInventJournalTable.init() перед тем как его использовать
|
|
![]() |
#5 |
Сам.AX
|
не помогло
![]() X++: : JournalTableData . (C)\Classes\JournalTableData\journalStatic (C)\Classes\JournalFormTable\formInitPost - line 8 (C)\Classes\InventJournalFormTable\formInitPost - line 4 (C)\Forms\InventJournalTable\Methods\init - line 27 (C)\Classes\SysSetupFormRun\init - line 5 (C)\Classes\FormButtonControl\Clicked - line 45 |
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Участник
|
X++: args.record(inventJournalTableT); args.caller(this); frmInventJournalTable = new MenuFunction(menuItemDisplayStr(InventJournalTableBOM), menuItemType::Display); frmInventJournalTable.run(args); Последний раз редактировалось Roman N. Krivov; 12.05.2010 в 11:19. |
|
![]() |
#8 |
Сам.AX
|
Цитата:
при вызове run все конечно будет инициализировано, но и форма журналов появится, а мне это не нужно. Можно конечно потом сразу ее закрыть, но мне не нравятся эти мельтешения на экране ![]() Последний раз редактировалось AGRESSOR; 12.05.2010 в 11:25. |
|
![]() |
#9 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: AGRESSOR (1). |
|
|