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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.09.2007, 10:26   #1  
PavelX is offline
PavelX
MCTS
MCBMSS
 
46 / 97 (4) ++++
Регистрация: 08.09.2006
Адрес: Красноярск
Использование Table Browser в момент отладки
Привет всем!

Часто в процессе отладки требуется знать что попало в таблицу а что нет, особенно если эта таблица временная. Пошарившись по форуму готового решения я не нашел, поэтому написал простейший класс-наследник SysTableBrowser.

Вызывается просто - в том месте кода где нужно вывести таблицу необходимо вызвать метод класса:

X++:
XTableBrowser::browse(< >);
Умеет работать как с обычными так и с временными таблицами.
Возможно кому-нибудь пригодится.

DAX 4.0 SP1
Вложения
Тип файла: xpo Class_XTableBrowser.xpo (4.8 Кб, 669 просмотров)
За это сообщение автора поблагодарили: mazzy (2), Prof (2), Lucky13 (2), lev (3), player (2), kornix (1).
Старый 07.09.2007, 11:47   #2  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
А можно в RAR-е выложить? У меня при сохранении видимо файл корячится..
Старый 07.09.2007, 11:52   #3  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
для 3.0
Вложения
Тип файла: xpo XTableBrowser_3_0.xpo (4.9 Кб, 621 просмотров)
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
За это сообщение автора поблагодарили: lev (1), nix0root (1).
Старый 07.09.2007, 11:54   #4  
PavelX is offline
PavelX
MCTS
MCBMSS
 
46 / 97 (4) ++++
Регистрация: 08.09.2006
Адрес: Красноярск
Можно и в RAR'е
Вложения
Тип файла: rar Class_XTableBrowser.rar (1.2 Кб, 163 просмотров)
За это сообщение автора поблагодарили: MironovI (3).
Старый 07.09.2007, 14:34   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Для DAX 3.0 описание как аналогичный обозреватель написать - было здесь.
Правда там предлагалось делать не наследник - а "пилить" класс SysTableBrowser и не прилагалось готового XPO. Но зато теперь есть решение для 4-рки и 3-шки.
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: player (2).
Старый 16.08.2010, 14:02   #6  
player is offline
player
Участник
 
107 / 69 (3) ++++
Регистрация: 25.08.2007
Еще бы "запилить" отображение временных таблиц не только из АОТ, но и ставших таковыми после setTmp...

(Чуть погодя)
Запилил - отображает. Спасибо предыдущему оратору за идею

Class_XTableBrowser_player_DAX2009.rar

Последний раз редактировалось player; 16.08.2010 в 14:23.
Старый 18.08.2010, 10:33   #7  
AlexArh is offline
AlexArh
Участник
 
26 / 25 (1) +++
Регистрация: 29.01.2006
To player
Спасибо.
Только кусок
X++:
    tableBrowserDS = formRun.dataSource();
    if (_table.isTmp())
    {
        tableBrowserDS.cursor().setTmp();
    }
нужно вызывать до formRun.Run()
За это сообщение автора поблагодарили: Lemming (7).
Старый 18.08.2010, 14:35   #8  
player is offline
player
Участник
 
107 / 69 (3) ++++
Регистрация: 25.08.2007
Я добавил только условие, первая строка уже была
Хотелось бы узнать почему только эти строки, а не весь кусок
X++:
formRun.run();

    tableBrowserDS = formRun.dataSource();
    if (_table.isTmp())
    {
        tableBrowserDS.cursor().setTmp();
    }
    tableBrowserDS.cursor().setTmpData(_table);
    tableBrowserDS.refresh();
    tableBrowserDS.research();

    formRadioControl = formRun.getRadioControl();
    formRadioControl.visible(dictTable.fieldGroupCnt() != 0);

    formGridControl = formRun.control(idx);
и в чём принципиальная разница?
Старый 19.08.2010, 09:53   #9  
AlexArh is offline
AlexArh
Участник
 
26 / 25 (1) +++
Регистрация: 29.01.2006
Попробуй job
X++:
static void Job5(Args _args)
{
    LedgerTable ledgerTable;
    int         i;
    ;

    ledgerTable.setTmp();

    for (i = 1; i <= 5; i++)
    {
        ledgerTable.clear();
        ledgerTable.initValue();
        ledgerTable.AccountNum = 'A'+ int2str(i);
        ledgerTable.insert();
    }
    xTableBrowser::browse(ledgerTable);
}
и посмотри результат в обоих вариантах.
Выставлять признак setTmp на датасорс надо до того как отработает executeQuery и будет создан QueryRun. Иначе изменение источника данных запроса на него никак не повлияет и он будет обращаться к основной, а не временной таблице.
За это сообщение автора поблагодарили: player (1).
Старый 19.08.2010, 14:35   #10  
player is offline
player
Участник
 
107 / 69 (3) ++++
Регистрация: 25.08.2007
Тестировал на другой таблице, выводилось нормально...
Но, твой job феерически расставил точки
Актуальный вариант для Dax2009

Class_XTableBrowser_player_2009_v2.rar
Теги
debugger, download, временная таблица, законченный пример, обозреватель таблиц, отладка, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
X++: Using the Cross company feature from the Business Connector and table browser. Blog bot DAX Blogs 1 21.12.2008 01:17
SysDictCoder: Table browser with field groups Blog bot DAX Blogs 6 09.08.2007 09:56
Axapta Lessons: Export a table to a file Blog bot DAX Blogs 0 28.10.2006 18:22
PatrickChua: Temporary table Blog bot DAX Blogs 0 28.10.2006 18:14
Browser table - програмно? Silence DAX: Программирование 3 25.10.2006 15:45

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

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

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