16.04.2009, 16:55 | #281 |
Боец
|
Цитата:
DSPIC, так будет долго и нарушится позиционирование
|
|
16.04.2009, 18:44 | #282 |
Administrator
|
2DSPIC: То, что Вы указали - абсолютно верно. Потенциально действительно все известно.
Но реально - получить эту информацию (особенно актуально для временных таблиц либо таблиц, на которые пользователи наложили свой фильтр) - может только человек, который окунется в дебри Х++. Мне такая фишка потребовалась при обработке и итерационной выверке данных - где нужно быстро оценивать - сколько осталось необработанных данных, сколько можно пройтись джобиком, сколько можно пройтись вручную. Ваш пример очень быстро "сломается" при оценке даже порядка 500 записей. А мой пример - нет. Плюс он легко вставляется в табакс (или оформляется плагином - по желанию) и превращается в одну легкую универсальную кнопочку, которой может пользоваться человек, не залезая в дебри Х++. При этом учитываются все (как я себе представляю) "особые" ситуации вроде диналинков или временных таблиц. Кстати - по поводу временных таблиц. Я с определенной уверенностью считаю, что штатное отсутствие возможности посмотреть их содержимое или посчитать кол-во записей - есть неудобство в системе. Можно конечно сказать что с т.з. идеологии это неверно и т.д. Но учитывая, как легко (!) делается квери по временной таблице или как легко таблица как бы "копируется" в датасорс - можно только удивляться - почему такое несложное расширение не было реализовано. Но... оставим филисофские рассуждения. Я лично считаю идеологически правильной расширение SysQuery::countTotal для временных таблиц.
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 16.04.2009 в 18:53. |
|
|
За это сообщение автора поблагодарили: DSPIC (3). |
16.04.2009, 18:59 | #283 |
Боец
|
2Sukhanchik. Всё-всё, молчу. Я просто предложил. Производительность не учел - каюсь. Не реагируйте так остро.
|
|
16.04.2009, 20:03 | #284 |
Administrator
|
2DSPIC: Это просто вылилось... Извините. В свое время просто это была больная мозоль - когда делал себе какой-нибудь инструмент.... А его не разрешали оставить в версии, но при этом говорили "Работай".
Поэтому получился столь резкий ответ. А вообще - я мирный И за мир во всем мире . И за (фут,волей,пейнт ..)бол после работы
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 16.04.2009 в 20:05. |
|
17.04.2009, 12:37 | #285 |
Пенсионер
|
ага вот это было бы здорово
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
17.04.2009, 12:54 | #286 |
Administrator
|
"Это" - это что? как кнопка - это оформляется легко - достаточно создать кнопку и в метод clicked скопировать мой код.
А чтобы плагин сделать - это нужно сделать класс с методом main (+соответствующий пункт меню), куда выложить сей код и заменить строку element.currentFormRun() на infolog.setLastActivatedForm(). После чего - положить иконку с соответствующим названием в папочку плагинов. 2belugin: Я правильно понял что нужно доделать чтобы эта кнопка в плагин переросла?
__________________
Возможно сделать все. Вопрос времени |
|
17.04.2009, 13:05 | #287 |
Участник
|
Цитата:
Сделать пункт меню Сделать класс, форму или джоб поюзать currentFormRun из табакса как тут: http://erpkb.com/Axapta/Tabax/files?...estructure.zip X++: public void init() { TableID tableID; super(); if (this.args().caller() && classIdGet(this.args().caller())==classNum(SysSetupFormRun) && conFind(['Tabax', 'GDL_Tabax'], this.args().caller().name()) ) { tableID = this.args().caller().currentTable(); if (tableID) element.tableName(true, tableID2Name(tableID)); } else { element.tableName(true, (this.args() && this.args().parm())? this.args().parm() : tableStr(InventTable) ); } } |
|
|
За это сообщение автора поблагодарили: sukhanchik (3). |
17.04.2009, 21:23 | #288 |
Участник
|
|
|
18.04.2009, 08:45 | #289 |
Administrator
|
Плагин
Оформил сие плагином.
FormCountRecords.zip
__________________
Возможно сделать все. Вопрос времени |
|
05.08.2009, 14:15 | #290 |
Участник
|
что-то не работает в 4.0SP2ЕЕ функция urlEscape() из формы Tabax. Скопировал в job, также не работает; в 3.0 все ОК. В 4.0 выводит пустую строку.
X++: static void JobTabaxUrlEscape(Args _args) { str _s = "dsfsdfsdf ndfghghdf"; DLL dll = new DLL("shlwapi.dll"); DLLFunction URLEscape = new DLLFunction(dll, "UrlEscapeA"); Binary escaped = new Binary(strlen(_s)+1); Binary cnt = new Binary(4); #define.E_POINTER(0x80004003) ; URLEscape.arg(ExtTypes::String, ExtTypes::Pointer, ExtTypes::Pointer, ExtTypes::DWord); URLEscape.returns(ExtTypes::DWord); cnt.dWord(0, strlen(_s)+1); if (URLEscape.call(_s, escaped, cnt, 0) == #E_POINTER) { escaped = new Binary(cnt.dWord(0)+1); URLEscape.call(_s, escaped, cnt, 0); } info(escaped.string(0)); } X++: if (URLEscape.call(_s, escaped, cnt, 0) == #E_POINTER) X++: if (URLEscape.call(_s, escaped, cnt, 0) == any2int(#E_POINTER)) Последний раз редактировалось Denicce; 05.08.2009 в 14:53. |
|
|
За это сообщение автора поблагодарили: belugin (3). |
07.08.2009, 12:10 | #291 |
Участник
|
Забыл добавить, с чего я вообще в этот метод полез: не работала функция "Reopen recently closed window" в табаксе, если открывался редактор методов таблиц. В мапе открытых форм и их АОТ адресов хранился путь с "Data dictionary", а этот метод должен пробелы заменить на "%20", чего он не делал (возвращал пустую строку). Поэтому хранился путь только к АОТ.
В 4.0 новый появился тип int64, в который и переводился #E_POINTER при сравнении. А URLEscape.call() возвращает int. |
|
27.08.2009, 17:34 | #292 |
Участник
|
Цитата:
Сообщение от sukhanchik
Можно (по идее) попробовать обойтись и без правки класса Info.
Основная задача - послать окну Editora сообщение (окно найти через WinAPI) Alt+M (ну или какое другое) для того, чтобы ядро запустило метод showScripts. Далее - задача передать из Tabax информацию о том, какой метод запускать и задача определить в showScripts что его вызвали из Tabax. Передать можно через Infolog.globalcache, а определить - опять-таки - по наличию команды в globalcache. По крайней мере такой способ не затронет системные классы. |
|
27.08.2009, 19:10 | #293 |
Administrator
|
Так написать-то уже давно все написано - идею предлагал уже видя код и зная что он работает
Просто непосредственно код посыла окну Editor-а собщения для запуска showScripts (для 3.0) или getApplicableScripts (для 4.0 и 2009) автор кода посыла сообщения (а это был не я) просил меня не выкладывать данный код на форум - поэтому я и ограничился лишь идеей - по принципу - кто захочет - тот докопается, зная идею.
__________________
Возможно сделать все. Вопрос времени |
|
27.08.2009, 19:19 | #294 |
Боец
|
Цитата:
Сообщение от Denicce
что-нибудь получилось написать, чтобы в табакс передать editor на 4.0? Кстати, в 4.0 вроде основной метод скриптов не ShowScripts, а getApplicableScripts, как я понял. Попытался использовать [ANN] Tabax 0.1 -- панель задач для Axapta, не получилось. Глюки какие-то лезут.
А здесь Получение экземпляра текущего Editor описан принцип. Последний раз редактировалось DSPIC; 27.08.2009 в 19:22. |
|
16.09.2013, 00:42 | #295 |
MCTS
|
После стольких лет совместной жизни с Tabax для 2009-ой, мне неожиданно стало очень не хватать функции закрепления окон для их исключения при обработке по нажатию "Закрыть все, кроме". Обычно работаю с 2-3-мя табами постоянно, хотелось их сохранять постоянно открытыми. Допилил код на коленке - жить стало лучше, жить стало веселей.
Идея простая - собираем ID-ки табов в Set по дополнительному контекстному меню Pin tab и передаем в контейнере в функцию закрытия. Мысли по теме приветствуются. |
|
|
За это сообщение автора поблагодарили: belugin (5). |
18.04.2016, 15:17 | #296 |
Участник
|
Друзья, как я понимаю erpkb прикрыли и скачать последний tabax не получается, могли бы вы поделиться сием чудом здесь на форуме? Спасибо!
|
|
19.04.2016, 07:38 | #297 |
Участник
|
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
|
За это сообщение автора поблагодарили: rumpleteazer (1), gl00mie (2), andy.plsql (1). |
19.04.2016, 16:40 | #298 |
Участник
|
|
|
20.04.2016, 01:03 | #299 |
Британский учённый
|
Есть для 2009 своя кастомная версия. Уже давно не работаю в 2009 и что там менял не помню.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
|
За это сообщение автора поблагодарили: Logger (1), andy.plsql (1). |
22.07.2016, 16:41 | #300 |
Участник
|
Цитата:
Та что выше - у меня не хочет импортироваться! Ошибки какие-то сыпет.
__________________
Axapta 3.0 sp - хз какой, kr2 |
|
Теги |
tabax, taskbar, toolbar, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами |
|
|