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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.05.2010, 09:58   #1  
AGRESSOR is offline
AGRESSOR
Сам.AX
Аватар для AGRESSOR
Самостоятельные клиенты AX
 
28 / 12 (1) ++
Регистрация: 26.04.2010
Адрес: Тюмень
? Открытие формы строк журнала спецификации
Уважаемые участники 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();
        }
И получаю ошибку из класса JournalFormTrans о том, что необходим активный буфер.
Она вываливается из метода new
X++:
    if (! formRun.args().caller() || ! formRun.args().dataset())
        throw error(strfmt("@SYS22678",formRun.name()));
Можно ли как-то это обойти?
Версия Аксапты - 4 SP2
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Amand: Видео: Спецификации (BOM) в Microsoft Dynamics AX 4.0 Часть 1-2 Настройка - Типы строк спецификаций. Blog bot DAX Blogs 0 24.01.2010 19:05
Очень маленькая высота строк в таблице формы (1-2 мм) Gustav DAX: Программирование 11 17.06.2006 11:57
Программное открытие формы строк журнала переноса ViV DAX: Программирование 13 09.11.2005 13:16
3.0, Модуль: ОС, операция: Разноска строк журнала ОС (с предварит просм проводок) MagisterLudi DAX: Функционал 2 07.10.2003 18:55
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:37.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.