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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.04.2009, 16:55   #281  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
DSPIC, так будет долго и нарушится позиционирование
Про быстродействие согласен, будет медленно при очень большом кол-ве записей. Но позиционирование не нарушает. Вы, наверное, спутали _ds.getFirst с _ds.first(), и для next соотв-но ?
Старый 16.04.2009, 18:44   #282  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
2DSPIC: То, что Вы указали - абсолютно верно. Потенциально действительно все известно.
Но реально - получить эту информацию (особенно актуально для временных таблиц либо таблиц, на которые пользователи наложили свой фильтр) - может только человек, который окунется в дебри Х++.

Мне такая фишка потребовалась при обработке и итерационной выверке данных - где нужно быстро оценивать - сколько осталось необработанных данных, сколько можно пройтись джобиком, сколько можно пройтись вручную.

Ваш пример очень быстро "сломается" при оценке даже порядка 500 записей. А мой пример - нет. Плюс он легко вставляется в табакс (или оформляется плагином - по желанию) и превращается в одну легкую универсальную кнопочку, которой может пользоваться человек, не залезая в дебри Х++. При этом учитываются все (как я себе представляю) "особые" ситуации вроде диналинков или временных таблиц.

Кстати - по поводу временных таблиц. Я с определенной уверенностью считаю, что штатное отсутствие возможности посмотреть их содержимое или посчитать кол-во записей - есть неудобство в системе. Можно конечно сказать что с т.з. идеологии это неверно и т.д. Но учитывая, как легко (!) делается квери по временной таблице или как легко таблица как бы "копируется" в датасорс - можно только удивляться - почему такое несложное расширение не было реализовано.
Но... оставим филисофские рассуждения. Я лично считаю идеологически правильной расширение SysQuery::countTotal для временных таблиц.
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 16.04.2009 в 18:53.
За это сообщение автора поблагодарили: DSPIC (3).
Старый 16.04.2009, 18:59   #283  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
2Sukhanchik. Всё-всё, молчу. Я просто предложил. Производительность не учел - каюсь. Не реагируйте так остро.
Старый 16.04.2009, 20:03   #284  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
2DSPIC: Это просто вылилось... Извините. В свое время просто это была больная мозоль - когда делал себе какой-нибудь инструмент.... А его не разрешали оставить в версии, но при этом говорили "Работай".
Поэтому получился столь резкий ответ.

А вообще - я мирный И за мир во всем мире . И за (фут,волей,пейнт ..)бол после работы
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 16.04.2009 в 20:05.
Старый 17.04.2009, 12:37   #285  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
...Плюс он легко вставляется в табакс (или оформляется плагином - по желанию) и превращается в одну легкую универсальную кнопочку...
ага вот это было бы здорово
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 17.04.2009, 12:54   #286  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от blokva Посмотреть сообщение
ага вот это было бы здорово
"Это" - это что? как кнопка - это оформляется легко - достаточно создать кнопку и в метод clicked скопировать мой код.
А чтобы плагин сделать - это нужно сделать класс с методом main (+соответствующий пункт меню), куда выложить сей код и заменить строку element.currentFormRun() на infolog.setLastActivatedForm().
После чего - положить иконку с соответствующим названием в папочку плагинов.

2belugin: Я правильно понял что нужно доделать чтобы эта кнопка в плагин переросла?
__________________
Возможно сделать все. Вопрос времени
Старый 17.04.2009, 13:05   #287  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
2belugin: Я правильно понял что нужно доделать чтобы эта кнопка в плагин переросла?
Сделать иконку
Сделать пункт меню
Сделать класс, форму или джоб

поюзать 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  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от belugin Посмотреть сообщение
X++:
...
    if (this.args().caller() && classIdGet(this.args().caller())==classNum(SysSetupFormRun) &&
...

Вот так, кстати, неправильно - не будет работать с таксрекордером и русскими адресами в четверке. Надо SysDictClass::is
Старый 18.04.2009, 08:45   #289  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Плагин
Оформил сие плагином.
FormCountRecords.zip
__________________
Возможно сделать все. Вопрос времени
Старый 05.08.2009, 14:15   #290  
Denicce is offline
Denicce
Участник
 
62 / 54 (2) ++++
Регистрация: 22.03.2005
Адрес: Москва
что-то не работает в 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  
Denicce is offline
Denicce
Участник
 
62 / 54 (2) ++++
Регистрация: 22.03.2005
Адрес: Москва
Забыл добавить, с чего я вообще в этот метод полез: не работала функция "Reopen recently closed window" в табаксе, если открывался редактор методов таблиц. В мапе открытых форм и их АОТ адресов хранился путь с "Data dictionary", а этот метод должен пробелы заменить на "%20", чего он не делал (возвращал пустую строку). Поэтому хранился путь только к АОТ.
В 4.0 новый появился тип int64, в который и переводился #E_POINTER при сравнении. А URLEscape.call() возвращает int.
Старый 27.08.2009, 17:34   #292  
Denicce is offline
Denicce
Участник
 
62 / 54 (2) ++++
Регистрация: 22.03.2005
Адрес: Москва
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Можно (по идее) попробовать обойтись и без правки класса Info.
Основная задача - послать окну Editora сообщение (окно найти через WinAPI) Alt+M (ну или какое другое) для того, чтобы ядро запустило метод showScripts.
Далее - задача передать из Tabax информацию о том, какой метод запускать и задача определить в showScripts что его вызвали из Tabax.
Передать можно через Infolog.globalcache, а определить - опять-таки - по наличию команды в globalcache.
По крайней мере такой способ не затронет системные классы.
что-нибудь получилось написать, чтобы в табакс передать editor на 4.0? Кстати, в 4.0 вроде основной метод скриптов не ShowScripts, а getApplicableScripts, как я понял. Попытался использовать [ANN] Tabax 0.1 -- панель задач для Axapta, не получилось. Глюки какие-то лезут.
Старый 27.08.2009, 19:10   #293  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Так написать-то уже давно все написано - идею предлагал уже видя код и зная что он работает
Просто непосредственно код посыла окну Editor-а собщения для запуска showScripts (для 3.0) или getApplicableScripts (для 4.0 и 2009) автор кода посыла сообщения (а это был не я) просил меня не выкладывать данный код на форум - поэтому я и ограничился лишь идеей - по принципу - кто захочет - тот докопается, зная идею.
__________________
Возможно сделать все. Вопрос времени
Старый 27.08.2009, 19:19   #294  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от Denicce Посмотреть сообщение
что-нибудь получилось написать, чтобы в табакс передать editor на 4.0? Кстати, в 4.0 вроде основной метод скриптов не ShowScripts, а getApplicableScripts, как я понял. Попытался использовать [ANN] Tabax 0.1 -- панель задач для Axapta, не получилось. Глюки какие-то лезут.
Здесь HK Framework реализован совершенно иной путь отлова Editor'a, и ещё куча разных вкусностей

А здесь Получение экземпляра текущего Editor описан принцип.

Последний раз редактировалось DSPIC; 27.08.2009 в 19:22.
Старый 16.09.2013, 00:42   #295  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
После стольких лет совместной жизни с Tabax для 2009-ой, мне неожиданно стало очень не хватать функции закрепления окон для их исключения при обработке по нажатию "Закрыть все, кроме". Обычно работаю с 2-3-мя табами постоянно, хотелось их сохранять постоянно открытыми. Допилил код на коленке - жить стало лучше, жить стало веселей.

Идея простая - собираем ID-ки табов в Set по дополнительному контекстному меню Pin tab и передаем в контейнере в функцию закрытия.

Мысли по теме приветствуются.
Вложения
Тип файла: xpo Tabax_0916.xpo (170.8 Кб, 302 просмотров)
За это сообщение автора поблагодарили: belugin (5).
Старый 18.04.2016, 15:17   #296  
andy.plsql is offline
andy.plsql
Участник
 
2 / 10 (1) +
Регистрация: 11.09.2014
Друзья, как я понимаю erpkb прикрыли и скачать последний tabax не получается, могли бы вы поделиться сием чудом здесь на форуме? Спасибо!
Старый 19.04.2016, 07:38   #297  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Цитата:
Сообщение от andy.plsql Посмотреть сообщение
Друзья, как я понимаю erpkb прикрыли и скачать последний tabax не получается, могли бы вы поделиться сием чудом здесь на форуме? Спасибо!
Можно качнуть отсюда вместе с другими тулзами -

https://dax2012toolset.codeplex.com/
__________________
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  
andy.plsql is offline
andy.plsql
Участник
 
2 / 10 (1) +
Регистрация: 11.09.2014
Цитата:
Сообщение от Alex_KD Посмотреть сообщение
Можно качнуть отсюда вместе с другими тулзами -

https://dax2012toolset.codeplex.com/
Для 2009ой хотелось бы tabax, может есть в закромах?
Старый 20.04.2016, 01:03   #299  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 513 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от andy.plsql Посмотреть сообщение
Для 2009ой хотелось бы tabax, может есть в закромах?
Есть для 2009 своя кастомная версия. Уже давно не работаю в 2009 и что там менял не помню.
Вложения
Тип файла: zip PrivateProject_DEV_Tabax.zip (64.5 Кб, 107 просмотров)
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
За это сообщение автора поблагодарили: Logger (1), andy.plsql (1).
Старый 22.07.2016, 16:41   #300  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
Цитата:
Сообщение от Link Посмотреть сообщение
Есть для 2009 своя кастомная версия. Уже давно не работаю в 2009 и что там менял не помню.
А оригинальная версия Tabax для 2009 ни у кого не завалялась? Скачать можно еще где-нибудь?
Та что выше - у меня не хочет импортироваться! Ошибки какие-то сыпет.
__________________
Axapta 3.0 sp - хз какой, kr2
Теги
tabax, taskbar, toolbar, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
[ANN] Sidax 0.3.6 - многоцелевая боковая панель для Axapta belugin DAX: База знаний и проекты 104 30.06.2008 11:32
axaptafreak: Tabax: tabbed Axapta interface !!!! Blog bot DAX Blogs 0 10.11.2006 01:14
Панель задач в Аксапте wb DAX: Программирование 14 18.04.2006 17:13
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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