17.11.2006, 10:33 | #61 |
Участник
|
1. Сделайте, пожалуйста, плагином
2. Переведите, пожалуйста, на английский 3. Выдрать ресурс можно при помощи калькулятора сидакса: X++: new Image(7665).saveImage(@'c:\test.bmp'); |
|
17.11.2006, 10:39 | #62 |
Axapta
|
Я еще сделал настройку, какие именно узлы создавать при создании нового пректа.
В Preferences можно задавать "значения по-умолчанию - чекбоксы на каждый из возможных узлов, а при нажатии на кнопку "CreateProject" соответствующие чекбоксы можно изменить. Кому-нить надо? |
|
17.11.2006, 11:26 | #63 |
Axapta
|
В общем, что-то типа этого:
X++: // [url]http://www.axaptapedia.com/index.php/Tabax[/url] public class FormRun extends ObjectRun { ... //for creating a new project NoYes createTables; NoYes createMaps; NoYes createViews; NoYes createEDTs; NoYes createEnums; NoYes createMacros; NoYes createClasses; NoYes createForms; NoYes createReports; NoYes createQueries; NoYes createMenues; NoYes createMenuItemsDisplay; NoYes createMenuItemsOutput; NoYes createMenuItemsAction; str 40 defaultProjectPrefix; #define.CurrentVersion(11) #localmacro.CurrentList maxCaptionSize, defaultProjectPrefix, createTables, createMaps, createViews, createEDTs, createEnums, createMacros, createClasses, createForms, createReports, createQueries, createMenues, createMenuItemsDisplay, createMenuItemsOutput, createMenuItemsAction #endmacro ... } X++: void clicked() { Dialog d = new Dialog('Tabax '+v+' preferences'); DialogField dialogMaxCaptionSize=d.addFieldValue(typeID(MaximumLength), maxCaptionSize, 'Maximal caption size'); DialogField dfProjectPrefix = d.addFieldValue(typeId(Name), defaultProjectPrefix, 'Default project prefix'); DialogGroup dg1 = d.addGroup(); DialogField dfTables = d.addFieldValue(typeId(NoYes), createTables, 'Tables'); DialogField dfMaps = d.addFieldValue(typeId(NoYes), createMaps, 'Maps'); DialogField dfViews = d.addFieldValue(typeId(NoYes), createViews, 'Views'); DialogField dfEDTs = d.addFieldValue(typeId(NoYes), createEDTs, 'EDTs'); DialogField dfEnums = d.addFieldValue(typeId(NoYes), createEnums, 'Enums'); DialogField dfMacros = d.addFieldValue(typeId(NoYes), createMacros, 'Macros'); DialogField dfClasses = d.addFieldValue(typeId(NoYes), createClasses, 'Classes'); DialogField dfForms = d.addFieldValue(typeId(NoYes), createTables, 'Forms'); DialogField dfReports = d.addFieldValue(typeId(NoYes), createReports, 'Reports'); DialogField dfQueries = d.addFieldValue(typeId(NoYes), createQueries, 'Queries'); DialogField dfMenues = d.addFieldValue(typeId(NoYes), createMenues, 'Menues'); DialogField dfMenuItemsDisplay = d.addFieldValue(typeId(NoYes), createMenuItemsDisplay, 'MenuItemsDisplay'); DialogField dfMenuItemsOutput = d.addFieldValue(typeId(NoYes), createMenuItemsOutput, 'MenuItemsOutput'); DialogField dfMenuItemsAction = d.addFieldValue(typeId(NoYes), createMenuItemsAction, 'MenuItemsAction'); super(); dg1.frameType(FormFrameType::None); dg1.columns(2); if(d.run()) { maxCaptionSize=dialogMaxCaptionSize.value(); defaultProjectPrefix = dfProjectPrefix.value(); createTables = dfTables.value(); createMaps = dfMaps.value(); createViews = dfViews.value(); createEDTs = dfEDTs.value(); createEnums = dfEnums.value(); createMacros = dfMacros.value(); createClasses = dfClasses.value(); createForms = dfForms.value(); createReports = dfReports.value(); createQueries = dfQueries.value(); createMenues = dfMenues.value(); createMenuItemsDisplay = dfMenuItemsDisplay.value(); createMenuItemsOutput = dfMenuItemsOutput.value(); createMenuItemsAction = dfMenuItemsAction.value(); } } X++: void createNewProject() { #AOT ProjectNode projNode; ProjectGroupNode dataDictNode; ProjectGroupNode MenuItemsNode; Common tbl; NoYes tables; NoYes maps; NoYes views; NoYes EDTs; NoYes enums; NoYes macros; NoYes classes; NoYes forms; NoYes reports; NoYes queries; NoYes menues; NoYes menuItemsDisplay; NoYes menuItemsOutput; NoYes menuItemsAction; //Method Creates a new Shared project TreeNode createNewSharedProject() { ProjectNode upgradeNode; TreeNode treeNodeProject; str projName; Dialog d = new Dialog('ProjectName'); DialogField dfProjectName = d.addFieldValue(typeId(Name), defaultProjectPrefix, 'ProjectName'); DialogGroup dg1 = d.addGroup(); DialogField dfTables = d.addFieldValue(typeId(NoYes), createTables, 'Tables'); DialogField dfMaps = d.addFieldValue(typeId(NoYes), createMaps, 'Maps'); DialogField dfViews = d.addFieldValue(typeId(NoYes), createViews, 'Views'); DialogField dfEDTs = d.addFieldValue(typeId(NoYes), createEDTs, 'EDTs'); DialogField dfEnums = d.addFieldValue(typeId(NoYes), createEnums, 'Enums'); DialogField dfMacros = d.addFieldValue(typeId(NoYes), createMacros, 'Macros'); DialogField dfClasses = d.addFieldValue(typeId(NoYes), createClasses, 'Classes'); DialogField dfForms = d.addFieldValue(typeId(NoYes), createTables, 'Forms'); DialogField dfReports = d.addFieldValue(typeId(NoYes), createReports, 'Reports'); DialogField dfQueries = d.addFieldValue(typeId(NoYes), createQueries, 'Queries'); DialogField dfMenues = d.addFieldValue(typeId(NoYes), createMenues, 'Menues'); DialogField dfMenuItemsDisplay = d.addFieldValue(typeId(NoYes), createMenuItemsDisplay, 'MenuItemsDisplay'); DialogField dfMenuItemsOutput = d.addFieldValue(typeId(NoYes), createMenuItemsOutput, 'MenuItemsOutput'); DialogField dfMenuItemsAction = d.addFieldValue(typeId(NoYes), createMenuItemsAction, 'MenuItemsAction'); ; treeNodeProject = SysTreeNode::getSharedProject(); //Swap next line with the line above to create a private project //treeNodeProject = SysTreeNode::getPrivateProject(); dg1.frameType(FormFrameType::None); dg1.columns(2); dfProjectName.limitText(40); if (d.run()) { projName = dfProjectName.value(); tables = dfTables.value(); maps = dfMaps.value(); views = dfViews.value(); EDTs = dfEDTs.value(); enums = dfEnums.value(); macros = dfMacros.value(); classes = dfClasses.value(); forms = dfForms.value(); reports = dfReports.value(); queries = dfQueries.value(); menues = dfMenues.value(); menuItemsDisplay = dfMenuItemsDisplay.value(); menuItemsOutput = dfMenuItemsOutput.value(); menuItemsAction = dfMenuItemsAction.value(); } else return null; if (!projName) projName = treeNodeProject.newObjectName(); if (!treeNodeProject.AOTfindChild(projName)) treeNodeProject.AOTadd(projName); upgradeNode = treeNodeProject.AOTfindChild(projName); return upgradeNode.getRunNode(); } //Methods creates sub groups in the Project Node ProjectGroupNode createGroup(str _nodeName, ProjectGroupNode parent) { TreeNodeName projNodeName = SysTreeNode::pathName(_nodeName); ProjectGroupNode child = parent.aotFindChild(projNodeName); GroupNodeType groupNodeType; boolean isGroupNode = false; ; if (!child) { if (classIdGet(parent) != classNum(ProjectNode)) { groupNodeType = parent.projectGroupType(); parent.projectGroupType(GroupNodeType::All); isGroupNode = true; } parent.aotAdd(projNodeName); child = parent.aotFindChild(projNodeName); if (child) child.projectGroupType(SysTreeNode::path2ProjectGroupNodeType(_nodeName)); if (isGroupNode) parent.projectGroupType(groupNodeType); } return child; } ; projNode = createNewSharedProject(); if (!projNode) return; projNode.lockUpdate(); if (menuItemsDisplay || menuItemsAction || menuItemsOutput) { menuItemsNode = createGroup(#MenuItemsPath, projNode); if (menuItemsAction) createGroup(#MenuItemsActionPath, menuItemsNode); if (menuItemsOutput) createGroup(#MenuItemsOutputPath, menuItemsNode); if (menuItemsDisplay) createGroup(#MenuItemsDisplayPath, menuItemsNode); } if (menues) createGroup(#MenusPath, projNode); if (reports) createGroup(#ReportsPath, projNode); if (forms) createGroup(#FormsPath, projNode); if (Classes) createGroup(#ClassesPath, projNode); if (tables || maps || views || enums || EDTs) { dataDictNode = createGroup(#DataDictionaryPath, projNode); if (enums) createGroup(#BaseEnumsPath, dataDictNode); if (EDTs) createGroup(#ExtendedDataTypesPath, dataDictNode); if (views) createGroup(#ViewsPath, dataDictNode); if (maps) createGroup(#TableMapsPath, dataDictNode); if (EDTs) createGroup(#ExtendedDataTypesPath, dataDictNode); if (tables) createGroup(#TablesPath, dataDictNode); } projNode.AOTsave(); projNode.unlockUpdate(); } |
|
17.11.2006, 17:56 | #64 |
Участник
|
0.2.10: AxPath
http://erpkb.com/Axapta/Tabax
0.2.10 *обозреватель таблиц вызывается для текущей выбранной таблицы *AxPath: *при вызове "Копировать" для текущей открытой формы копируется путь до записи *при вызове "Ctrl+Shift+Копировать" для AOT копируется путь до AOT *при вставке в поле ввода с нажатием Enter - переходит по пути *фикс переключения табов для Ax30Kr3 *если в поле ввода ввести ?<~X++ выражение> -- выполнится выражение и результат запишется в InfoLog *если в поле ввода ввести !<~X++ инструкция> -- выполнится инструкция |
|
20.11.2006, 10:51 | #65 |
Участник
|
Цитата:
Вот плагин. Скриншот прилагается. Update Пофиксил баг, указанный oip Добавил 2 параметра - Префикс названия проекта, Тип проекта (Shared, Private) Добавил валидацию названия проекта. Последний раз редактировалось kashperuk; 20.11.2006 в 13:45. |
|
|
За это сообщение автора поблагодарили: belugin (9). |
20.11.2006, 11:03 | #66 |
Axapta
|
Иван, проверь что будет, если ничего не отметить, например.
|
|
|
За это сообщение автора поблагодарили: kashperuk (2). |
20.11.2006, 11:11 | #67 |
Участник
|
А почему бы не сделать опцией - shared/private
|
|
20.11.2006, 11:12 | #68 |
Axapta
|
И префикс по-умолчнию добавьте!
|
|
20.11.2006, 11:13 | #69 |
Участник
|
Можно и опцией. Сделаем.
Update. Добавлено. Обновил скриншот и проект в посте выше Последний раз редактировалось kashperuk; 20.11.2006 в 13:35. |
|
21.11.2006, 13:22 | #70 |
Участник
|
Добавление поиска в AOT в тулбар. (сохранить в plugs)
|
|
22.11.2006, 16:40 | #71 |
Axapta
|
1. Заходим в трехзвенку.
2. Открываем ГК-Запросы-Обороты по счету-Оборотно-сальдовая ведомость. 3. Вводим параметры и нажимаем на ОК. 4. Закрываем открывшуюся форму. 5. Убеждаемся, что Аксапта падает. В двухзвенке - все нормально. При выключенном или запаузенном табаксе - все нормально. Что это? PS Ax 3.0 SP4. |
|
22.11.2006, 16:44 | #72 |
Участник
|
Там, кажется, создается таймер и не выключается - была доработка для корректировки этой ситуации
|
|
22.11.2006, 17:04 | #73 |
Участник
|
кстати выложил расширение для включения/выключение трассировки SQL
|
|
22.11.2006, 17:44 | #74 |
Axapta
|
Цитата:
PS Но Максим правильно заметил, что дело все же в чем-то подобном, так как при поиске по АОТУ Аксапта при запуске данного отчета не валится. |
|
23.11.2006, 08:16 | #75 |
Пенсионер
|
Кто о чем, а я о своем все пытаюсь наилучшее размещение найтить... вот что я попробовал сделать (см скриншоты) но когда уменьшаю ширину окна или открываю еще одно окно то с табами творится что-то не понятное, закладки пропадают и возникает то что показано на второй картинке может кто знает, что надо сделать?
А так я очень хочу создать метод переключения с горизонтального размещения в вертикальное...
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
23.11.2006, 09:09 | #76 |
Участник
|
а если не вызывать adjustTabPageSize
|
|
23.11.2006, 09:39 | #77 |
Пенсионер
|
При первом открытии табакс, получился на весь экран, уменьшил размер до нужного, все кравиво, вроде сработало, затем закрыл табакс, опять открыл (размеры сохранены) и все табы опять поплыли... Попробую еще потюнить параметры...
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
23.11.2006, 09:45 | #78 |
Пенсионер
|
Ага, если выставляю широкий размер, на некую критическую ширину, то закрыв-открыв, получаю нормальный вид, если меньше, то опять все сломано...
Как я понимаю, что-то со свойствам самих закладок ...
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
23.11.2006, 10:18 | #79 |
Пенсионер
|
Ага сработало, после того как убрал этот метод и в методе ApplayChanges
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
23.11.2006, 10:21 | #80 |
Участник
|
надо его (этот метод) с икса на игрек перевести. А еще лучше параметризовать
|
|
Теги |
tabax, taskbar, toolbar, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами |
|
|