|  07.09.2007, 10:26 | #1 | 
| MCTS | Использование Table Browser в момент отладки 
			
			Привет всем! Часто в процессе отладки требуется знать что попало в таблицу а что нет, особенно если эта таблица временная. Пошарившись по форуму готового решения я не нашел, поэтому написал простейший класс-наследник SysTableBrowser. Вызывается просто - в том месте кода где нужно вывести таблицу необходимо вызвать метод класса: X++: XTableBrowser::browse(< >); Возможно кому-нибудь пригодится. DAX 4.0 SP1 | 
|  | |
| За это сообщение автора поблагодарили: mazzy (2), Prof (2), Lucky13 (2), lev (3), player (2), kornix (1). | |
|  07.09.2007, 11:47 | #2 | 
| Участник | 
			
			А можно в RAR-е выложить? У меня при сохранении видимо файл корячится..
		 | 
|  | 
|  07.09.2007, 11:52 | #3 | 
| MCTS | 
			
			для 3.0
		 
				__________________  В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню | 
|  | |
| За это сообщение автора поблагодарили: lev (1), nix0root (1). | |
|  07.09.2007, 11:54 | #4 | 
| MCTS | 
			
			Можно и в RAR'е    | 
|  | |
| За это сообщение автора поблагодарили: MironovI (3). | |
|  07.09.2007, 14:34 | #5 | 
| Administrator | 
			
			Для DAX 3.0 описание как аналогичный обозреватель написать - было здесь. Правда там предлагалось делать не наследник - а "пилить" класс SysTableBrowser и не прилагалось готового XPO. Но зато теперь есть решение для 4-рки и 3-шки. 
				__________________ Возможно сделать все. Вопрос времени | 
|  | |
| За это сообщение автора поблагодарили: player (2). | |
|  16.08.2010, 14:02 | #6 | 
| Участник | 
			
			Еще бы "запилить" отображение временных таблиц не только из АОТ, но и ставших таковыми после setTmp... (Чуть погодя) Запилил - отображает. Спасибо предыдущему оратору за идею  Class_XTableBrowser_player_DAX2009.rar Последний раз редактировалось player; 16.08.2010 в 14:23. | 
|  | 
|  18.08.2010, 10:33 | #7 | 
| Участник | 
			
			To player Спасибо. Только кусок X++:     tableBrowserDS = formRun.dataSource();
    if (_table.isTmp())
    {
        tableBrowserDS.cursor().setTmp();
    } | 
|  | |
| За это сообщение автора поблагодарили: Lemming (7). | |
|  18.08.2010, 14:35 | #8 | 
| Участник | 
			
			Я добавил только условие, первая строка уже была   Хотелось бы узнать почему только эти строки, а не весь кусок 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 | 
| Участник | 
			
			Попробуй 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 | 
| Участник | 
			
			Тестировал на другой таблице, выводилось нормально... Но, твой job феерически расставил точки  Актуальный вариант для Dax2009 Class_XTableBrowser_player_2009_v2.rar | 
|  | 
| Теги | 
| debugger, download, временная таблица, законченный пример, обозреватель таблиц, отладка, полезное | 
|  | 
| 
 |