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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.07.2013, 15:58   #1  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Не отображаются данные в Grid'е из tmp-датасорса
Есть простая форма
(stringEdit_inventJournalId (не привязан к датасорсу),
Grid_tmpInventJournalTrans,
button_FillGrid),
где можно выбрать номер журнала проводок, нажать кнопку "заполнить" и информация о строках журнала сохраняется во временной таблице и отображается в гриде. (обработку сейчас не рассматриваем).
Форму можно вызвать из меню и из другой формы(журнал проводок).
Используется один и тот же номер журнала (т.е. при вызове из журнала мы получаем строку журнала проводок, но пока нигде ее не используем)

Проблема заключается в том, что при вызове из меню строки отображаются на гриде, при вызове из журнала-нет.
Также при вызове из журнала после нажатия кнопки "заполнить" поле выбора номера журнала (а оно не привязано к датасорсу!) становится неактивным.

X++:
void FillGrid()
{
    InventJournalTrans iTrans;
    InventDim          inventDim_;

    ;

    ttsbegin;
    while select forupdate tmpInventJournalTrans
    {
        tmpInventJournalTrans.delete();
    }
    ttscommit;

   // ijourTo=InventJournalTable::find(stringEdit_JournalId.text());
    ijourTo=InventJournalTable::find('itj0023561');
    while select ITrans
      where iTrans.JournalId == ijourTo.JournalId
    {
       select forupdate tmpInventJournalTrans;
       ttsbegin;
       
       tmpInventJournalTrans.clear();
       tmpInventJournalTrans.ItemId = itrans.ItemId;
       tmpInventJournalTrans.Qty    = abs(itrans.Qty);
       tmpInventJournalTrans.InventDimId                = itrans.inventDimId;
       tmpInventJournaltrans.LedgerAccountIdOffset = itrans.LedgerAccountIdOffset;

       tmpInventJournaltrans.insert();

       ttscommit;
//info(tmpInventJournalTrans.ItemId);
    }
    tmpInventJournalTrans_ds.research();
//info(tmpInventJournalTrans.ItemId);
}
Вывод инфобокса при вызове из меню:
Info Сообщение (14:53:52) ПлиткаБой
Info Сообщение (14:53:52) Костюм
Info Сообщение (14:53:52) Костюм
Info Сообщение (14:53:52) Футболка
Info Сообщение (14:53:52) Футболка
Info Сообщение (14:53:52) ПлиткаБой


Вывод инфобокса при вызове из журнала:
Info Сообщение (14:55:15) ПлиткаБой
Info Сообщение (14:55:15) Костюм
Info Сообщение (14:55:15) Костюм
Info Сообщение (14:55:15) Футболка
Info Сообщение (14:55:15) Футболка
Info Сообщение (14:55:15)


В чем может быть проблема???
Старый 28.07.2013, 20:53   #2  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
код - жесть. бедный клиент, а потом говорят, что аксапта - говно.
вы бы книжку по программированию прочли для начала
Старый 28.07.2013, 21:13   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от alicedr Посмотреть сообщение
В чем может быть проблема???
Думаю, вы уже нашли ответ в блоке "Похожие темы", которые отображаются внизу страницы
данные из временной таблицы - в Grid
Старый 29.07.2013, 09:42   #4  
ansoft is offline
ansoft
Участник
Аватар для ansoft
 
123 / 37 (2) +++
Регистрация: 20.10.2005
Строчка...
X++:
select forupdate tmpInventJournalTrans;
Наверное лишняя... хотя это не имеет отношения к сути вопроса.
Если, как вы выражаетесь с меню работает, а с журнала нет, то скорее всего... связь с журналом все таки есть и она динамическая. Можно попробывать ее разорвать в init датасоурса временной таблицы прописав после super() примерно следующее:
X++:
this.query().dataSourceNo(1).clearDynalinks();
Вдруг поможет

P.S. Попробуйте еще сменить...
X++:
tmpInventJournalTrans_ds.research();
На...
X++:
tmpInventJournalTrans_ds.executeQuery();
За это сообщение автора поблагодарили: alicedr (1).
Старый 29.07.2013, 22:43   #5  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Спасибо за советы!
Моя невнимательность. После добавления
X++:
ijTrans.JournalId             = iJourTo.journalId;
все заработало как следует.
Старый 30.07.2013, 08:49   #6  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Попробуйте также улучшить код.
Например конструкцию
X++:
    while select forupdate tmpInventJournalTrans
    {
        tmpInventJournalTrans.delete();
    }
замените на
X++:
    delete_from tmpInventJournalTrans;
Помимо удаления select forupdate используется, когда вы хотите обновить запись через метод update(). Используя вставку записей через метод insert(), вам незачем что-либо выбирать оператором select.
Поэтому в этом куске кода выборка для обновлений будет лишней.
X++:
    while select ITrans
      where iTrans.JournalId == ijourTo.JournalId
    {
       select forupdate tmpInventJournalTrans; // <- лишний код
       ttsbegin;
       
       tmpInventJournalTrans.clear();
       tmpInventJournalTrans.ItemId = itrans.ItemId;
       tmpInventJournalTrans.Qty    = abs(itrans.Qty);
       tmpInventJournalTrans.InventDimId                = itrans.inventDimId;
       tmpInventJournaltrans.LedgerAccountIdOffset = itrans.LedgerAccountIdOffset;

       tmpInventJournaltrans.insert();

       ttscommit;
//info(tmpInventJournalTrans.ItemId);
    }
__________________
// no comments

Последний раз редактировалось dech; 30.07.2013 в 08:56.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: Filter-by-Grid Blog bot DAX Blogs 2 30.05.2012 13:39
ax-erp: Temporary table in datasource of grid Blog bot DAX Blogs 0 22.05.2012 13:11
Не отображаются данные при вызове меню айтема с формы zemius DAX: Программирование 3 21.10.2009 10:54
данные из временной таблицы - в Grid Vadik DAX: Программирование 31 12.08.2005 07:43
Данные из Tmp таблицы в QueryRun на форме Berty Wooster DAX: Программирование 1 23.09.2003 10:10

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

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

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