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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.11.2006, 11:26   #11  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
В общем, что-то типа этого:
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, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
[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, время: 10:52.