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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.08.2007, 21:47   #241  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Навреное надо закрывать табакс по симетричному событию - застра попробую
Старый 03.08.2007, 10:39   #242  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
падение не воспроизводится (4.0.2163)
Старый 03.08.2007, 10:52   #243  
Alex_K is offline
Alex_K
Участник
 
531 / 36 (3) +++
Регистрация: 07.02.2003
У меня сегодня тоже
Старый 07.08.2007, 15:57   #244  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
0.3.2:
http://erpkb.com/Axapta/Tabax
0.3.2:
  • Ax Path: теперь он пытается составлять условия по первичному ключу, а не по recID, название компании теперь dataAreaID
  • Французская локализация

AxPath://MenuItem/Display/VendTable?dataAreaId=dat&AccountNum=Монтаж
Старый 03.10.2007, 09:59   #245  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Табаксу - год
За это сообщение автора поблагодарили: blokva (3), oip (11), MikeR (3).
Старый 03.10.2007, 12:11   #246  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Thumbs up
Цитата:
Сообщение от belugin Посмотреть сообщение
Табаксу - год
Поздравляю с днем варенья "ребенка", классный он получился, спасибо!
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 03.10.2007, 12:21   #247  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Он не получился бы без многих людей, без AndyD в первую голову (на нем вся win32api магия), Также много полезного сделали Иван Кашперук, Олег (oip) и другие люди приславшие патчи, тестировавшие и предлагавшие фичи.
Старый 04.10.2007, 07:53   #248  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Цитата:
Сообщение от belugin Посмотреть сообщение
Он не получился бы без многих людей, без AndyD в первую голову (на нем вся win32api магия), Также много полезного сделали Иван Кашперук, Олег (oip) и другие люди приславшие патчи, тестировавшие и предлагавшие фичи.
Анназначна!
Большой респект всем "родителям и воспитателям!" и поздравления!
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 24.02.2008, 23:07   #249  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Иногда не работало определение текущего метода, текст которого был модифицирован.

Исправление:
\Forms\Tabax\Methods\getCurMethod
X++:
...
TreeNode fromMethods(TreeNode _parent, str _name)
    {
        TreeNode ret = _parent;
    ;
        if (this.strEndsWith(_name, ' *'))
            _name = subStr(_name, 1, strLen(_name) - 2);
        if (ret)
            ret = ret.AOTfindChild('methods');
        if (ret)
            ret = ret.AOTfindChild(_name);
        return ret;
    }
За это сообщение автора поблагодарили: jasper (1).
Старый 14.04.2008, 17:32   #250  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
\Forms\Tabax\Designs\Design\[Group:toolbar]\ButtonpenApplObjBut\Methods\clicked

Добавление обработки диалогов в стрелочке вверх
X++:
    str getCallerPath()
    {
        switch (true)
        {
            case SysdictClass::isEqualOrSuperClass(classidget(caller), classNum(SysSetupFormRun)):
                return #formsPath+'\\'+caller.name();
            case SysdictClass::isEqualOrSuperClass(classidget(caller), classNum(RunBase)):
                return #classesPath+'\\'+classId2Name(classIdGet(caller.runBase()));
            case SysdictClass::isEqualOrSuperClass(classidget(caller), classNum(DialogRunBase)):
                return #classesPath + '\\' + classId2Name(classIdGet(caller.runBase()));
            // ================== вот тута ==================================
            case SysdictClass::isEqualOrSuperClass(classidget(caller), classNum(Dialog)):
                return #classesPath + '\\' + classId2Name(classIdGet(caller.caller()));
            case SysdictClass::isEqualOrSuperClass(classidget(caller), classNum(ReportRun)):
                return #reportsPath + '\\' + caller.name();
            case SysdictClass::isEqualOrSuperClass(classidget(caller), classNum(QueryRun)):
                return #queriesPath + '\\' + caller.name();
            default:
                return #classesPath + '\\' + classId2Name(classIdGet(caller));
        }
    }
Старый 02.06.2008, 15:52   #251  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Очень понравился Tabax. Не знаю как я без него обходился.
Правда для себя я контрол tab сделал не видимым и код не много изменил в методе autoHeight
X++:
        //WINAPI::setWindowPos(this.Hwnd(),0,0, w - x, ht - y, true,false,
        WINAPI::setWindowPos(this.Hwnd(),0,0, w - x, 25, true,false,
Как то не очень удобно когда вкладки попадаются на пути мышки. Лучше если они снизу.
Плюс некоторые кнопки тоже сделал невидимыми, которыми тоже особенно не буду пользоваться.
Если кто-то хочет добавить дополнительные кнопки для работы с функциями EditorScripts, то можно
1) В класс Info добавить описание Editor curEditor;
2) Создать метод в классе Info
X++:
Editor editor(Editor _e = curEditor)
{
;
    curEditor = _e;
    return curEditor;
}
3) В классе EditorScripts метод showScripts закоментировал потому что не особенно он мне нужен. Оставил только.
X++:
infolog.editor(e);
4) В формe Tabax перекрыть метод activate().
X++:
public void activate(boolean _active)
{
    DLL winApiDLL = new DLL('User32');
    DLLFunction keybd_event = new DLLFunction(winApiDLL, 'keybd_event');
    ;

    keybd_event.arg(ExtTypes::Byte, ExtTypes::Byte, ExtTypes::DWord, ExtTypes::DWord);

    keybd_event.call('18', 0, 0, 0);
    keybd_event.call('77', 0, 0, 0);
    keybd_event.call('77', 0, 2, 0);
    keybd_event.call('18', 0, 2, 0);
    super(_active);
}
5) В методе clicked вашей кнопки написать код
X++:
void clicked()
{
    EditorScripts es;
    Editor        e;
;
    super();
    e = infolog.editor();
    es = new EditorScripts();
    es.NewWindow(e);//ваш script
}
За это сообщение автора поблагодарили: belugin (5), alex55 (0).
Старый 05.06.2008, 17:07   #252  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
А еще можно реализовать автозапуск Tabax'а без модификации стандартных классов

Делается это достаточно просто...
1) Нужно создать простенький XMLчик вида:

<?xml version="1.0" encoding="utf-8" ?>

<AxaptaAutoRun exitWhenDone="false" version="4.0" logFile="C:\Program Files\Microsoft Dynamics AX\40\Application\Share\Include\tabax\AutoRun\AxOpenTabax.log">
<Run type="displayMenuItem" name="Tabax"/>
</AxaptaAutoRun>

2) Далее в папке где лежат картинки для кнопочек(ну можно канешно в любую, но для удобства наверное лучше там), создал папку AutoRun и кинул XMLку(параметр logFile в XML'е еще по этому пути создаст текстовичок с логом).

3) Ну и осталось прописать эту XMLку при запуске...
Для этого открываем Конфигурационную утилиту клиента, видим на 1ой закладке поле "Command to run at application startup". Сюда нам необходимо забить строчку вида: AutoRun_полный путь к файлу XML

В моем случае это выглядит так:

AutoRun_C:\Program Files\Microsoft Dynamics AX\40\Application\Share\Include\tabax\AutoRun\openTabax.xml

и ВСЁ...

Наслаждаемся Tabax'ом при открытии
За это сообщение автора поблагодарили: sukhanchik (6).
Старый 05.06.2008, 17:39   #253  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,309 / 3546 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от miklenew Посмотреть сообщение
Если кто-то хочет добавить дополнительные кнопки для работы с функциями EditorScripts, то можно
1) В класс Info добавить описание Editor curEditor;
2) Создать метод в классе Info
Можно (по идее) попробовать обойтись и без правки класса Info.
Основная задача - послать окну Editora сообщение (окно найти через WinAPI) Alt+M (ну или какое другое) для того, чтобы ядро запустило метод showScripts.
Далее - задача передать из Tabax информацию о том, какой метод запускать и задача определить в showScripts что его вызвали из Tabax.
Передать можно через Infolog.globalcache, а определить - опять-таки - по наличию команды в globalcache.
По крайней мере такой способ не затронет системные классы.
__________________
Возможно сделать все. Вопрос времени
Старый 11.07.2008, 09:14   #254  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Можно (по идее) попробовать обойтись и без правки класса Info.
Основная задача - послать окну Editora сообщение (окно найти через WinAPI) Alt+M (ну или какое другое) для того, чтобы ядро запустило метод showScripts.
Далее - задача передать из Tabax информацию о том, какой метод запускать и задача определить в showScripts что его вызвали из Tabax.
Передать можно через Infolog.globalcache, а определить - опять-таки - по наличию команды в globalcache.
По крайней мере такой способ не затронет системные классы.
На днях поковыряю. Посмотрю.
Есть новая кнопочка которую можно при желании повесить в tabax.
Стоим в коде на каком-нибудь поле таблицы, жмём кнопку "Справка по полю".
Открывается форма с help-ом по полю и с путями в каких формах используется это поле для ввода данных или для просмотра.
Если жмём на этот путь открывается в новом окне эта форма.
В классе SysHelpBook изменить construct
Добавить
X++:
        case 'a':
            return new SysHelpBookField(sysHelp, url);
Метод кнопки
X++:
void clicked()
{
    EditorScripts es;
    Editor        e;
;
    super();
    e = infolog.editor();
    es = new EditorScripts();
    es.helpField(e);
}
Как editor получить писал выше.
Метод в класс Editor
X++:
void helpField(Editor e)
{
    TreeNode            treeNode = TreeNode::findNode(e.path());
    TmpxRefReferences   tmpxRefReferences;
    Column              nCol = e.columnNo() + 1;
    Line                nLine = e.currentLineNo() + 1;
    ;

    treeNode.AOTmakeXref(1);
    tmpxRefReferences = xRefCreate::makeTmp(infolog.lastxRef());

    select firstonly tmpxRefReferences
        order by Column desc
        where tmpxRefReferences.line == nLine &&
              tmpxRefReferences.Column <= nCol;

    if (!tmpxRefReferences)
        return;

    treeNode = TreeNode::findNode(tmpxRefReferences.path());

    if (treeNode && tmpxRefReferences.Kind == xRefKind::TableField)
    {
        HelpField::checkPost(tmpxRefReferences.parentName, tmpxRefReferences.name);
    }
}
Миниатюры
Нажмите на изображение для увеличения
Название: 1.JPG
Просмотров: 219
Размер:	39.9 Кб
ID:	3565   Нажмите на изображение для увеличения
Название: 2.JPG
Просмотров: 349
Размер:	61.7 Кб
ID:	3566  

Нажмите на изображение для увеличения
Название: 3.JPG
Просмотров: 476
Размер:	68.0 Кб
ID:	3567  
Вложения
Тип файла: xpo HelpFieldEditor.xpo (12.3 Кб, 231 просмотров)

Последний раз редактировалось miklenew; 21.07.2008 в 13:21.
Старый 11.07.2008, 12:06   #255  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,309 / 3546 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
А насколько сие жизнеспособно в 4-ке? Там же много чего потерли из хелпа.... Ну... в смысле "перенесли в отдельный chm-файл")
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 11.07.2008 в 12:08.
Старый 11.07.2008, 12:47   #256  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
А насколько сие жизнеспособно в 4-ке? Там же много чего потерли из хелпа.... Ну... в смысле "перенесли в отдельный chm-файл")
К своему стыду четвёрку ещё не поставил. Всё собераюсь, но воз и ныне там.
Через две недели будет отпуск, поставлю.
Так что не знаю будет оно там работать или нет.
Но уверен адаптировать можно.
MS вроде редко отчего то отказываются, обычно дописывают.
Старый 11.07.2008, 15:25   #257  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,309 / 3546 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от miklenew Посмотреть сообщение
Но уверен адаптировать можно.
А... ну-ну... сразу скажу - не пробовал... но отдельная доля скепсиса у меня присутствует.
В конкретно этом случае - МС действительно отказалась от интегрированного хелпа.
Остаолсь лишь то, до чего руки "не дошли" видимо...
Ну посмотрим.. Будет время - сам гляну
__________________
Возможно сделать все. Вопрос времени
Старый 11.07.2008, 18:29   #258  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Sidax & Tabax for Ax 2009 beta


Tabax Работает с окнами вне главного окна аксапты (ну кроме функций управления окнами - имеется ввиду кнопки типа браузера таблиц)

У Sidax изменился способ вызова пунктов меню, чтобы вызванное окно оставалось активным

http://erpkb.com/Axapta/Tabax/files?...ax2009beta.zip
Старый 21.07.2008, 13:23   #259  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от miklenew Посмотреть сообщение
Есть новая кнопочка которую можно при желании повесить в tabax.
Стоим в коде на каком-нибудь поле таблицы, жмём кнопку "Справка по полю".
Открывается форма с help-ом по полю и с путями в каких формах используется это поле для ввода данных или для просмотра.
Если жмём на этот путь открывается в новом окне эта форма.
Ошибочку нашёл в класс HelpField метод label()
добавить ещё и CheckBox.(забыл про галку)
В исходном хро исправил.
Старый 05.09.2008, 13:17   #260  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Небольшой баг - если название контрола или дс == названию формы, редактор не воспринимался

X++:
/// returns control from form _form with the name _name
TreeNode controlByName(TreeNode _form, str _name)
{
    TreeNodeTraverser i = new TreeNodeTraverser(_form, false);
    TreeNode node = i.next();
    while (node)
    {
        if (match(@": +name: +#"+_name+': +', node.AOTgetProperties()))
            return node;
        node = i.next();
    }
    return null;
}
Теги
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, время: 14:09.