|
![]() |
#1 |
Участник
|
\Forms\Tabax\Designs\Design\[Group:toolbar]\Button
![]() Добавление обработки диалогов в стрелочке вверх 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)); } } |
|
![]() |
#2 |
Участник
|
Очень понравился 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;
} X++: infolog.editor(e); 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); } X++: void clicked() { EditorScripts es; Editor e; ; super(); e = infolog.editor(); es = new EditorScripts(); es.NewWindow(e);//ваш script } |
|
|
За это сообщение автора поблагодарили: belugin (5), alex55 (0). |
![]() |
#3 |
Administrator
|
Цитата:
Основная задача - послать окну Editora сообщение (окно найти через WinAPI) Alt+M (ну или какое другое) для того, чтобы ядро запустило метод showScripts. Далее - задача передать из Tabax информацию о том, какой метод запускать и задача определить в showScripts что его вызвали из Tabax. Передать можно через Infolog.globalcache, а определить - опять-таки - по наличию команды в globalcache. По крайней мере такой способ не затронет системные классы.
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от 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 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); } } Последний раз редактировалось miklenew; 21.07.2008 в 13:21. |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от miklenew
![]() Есть новая кнопочка которую можно при желании повесить в tabax.
Стоим в коде на каком-нибудь поле таблицы, жмём кнопку "Справка по полю". Открывается форма с help-ом по полю и с путями в каких формах используется это поле для ввода данных или для просмотра. Если жмём на этот путь открывается в новом окне эта форма. добавить ещё и CheckBox.(забыл про галку) ![]() В исходном хро исправил. |
|
![]() |
#6 |
Участник
|
Цитата:
Сообщение от sukhanchik
![]() Можно (по идее) попробовать обойтись и без правки класса Info.
Основная задача - послать окну Editora сообщение (окно найти через WinAPI) Alt+M (ну или какое другое) для того, чтобы ядро запустило метод showScripts. Далее - задача передать из Tabax информацию о том, какой метод запускать и задача определить в showScripts что его вызвали из Tabax. Передать можно через Infolog.globalcache, а определить - опять-таки - по наличию команды в globalcache. По крайней мере такой способ не затронет системные классы. |
|
![]() |
#7 |
Боец
|
Цитата:
Сообщение от Denicce
![]() что-нибудь получилось написать, чтобы в табакс передать editor на 4.0? Кстати, в 4.0 вроде основной метод скриптов не ShowScripts, а getApplicableScripts, как я понял. Попытался использовать [ANN] Tabax 0.1 -- панель задач для Axapta, не получилось. Глюки какие-то лезут.
![]() А здесь Получение экземпляра текущего Editor описан принцип. Последний раз редактировалось DSPIC; 27.08.2009 в 19:22. |
|
Теги |
tabax, taskbar, toolbar, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами |
|
|