17.11.2006, 11:26 | #11 |
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(); }
__________________
С уважением, Олег. |
|
Теги |
tabax, taskbar, toolbar, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами |
|
|