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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.11.2006, 10:33   #61  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,219 / 2410 (89) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
1. Сделайте, пожалуйста, плагином
2. Переведите, пожалуйста, на английский
3. Выдрать ресурс можно при помощи калькулятора сидакса:
X++:
new Image(7665).saveImage(@'c:\test.bmp');
__________________
https://axcoder.github.io
Старый 17.11.2006, 10:39   #62  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,516 / 1331 (50) ++++++++
Регистрация: 28.11.2005
Адрес: Московская область
Я еще сделал настройку, какие именно узлы создавать при создании нового пректа.
В Preferences можно задавать "значения по-умолчанию - чекбоксы на каждый из возможных узлов, а при нажатии на кнопку "CreateProject" соответствующие чекбоксы можно изменить. Кому-нить надо?
__________________
С уважением,
Олег.
Старый 17.11.2006, 11:26   #63  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,516 / 1331 (50) ++++++++
Регистрация: 28.11.2005
Адрес: Московская область
В общем, что-то типа этого:
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  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,219 / 2410 (89) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
0.2.10: AxPath
http://erpkb.com/Axapta/Tabax

0.2.10
*обозреватель таблиц вызывается для текущей выбранной таблицы
*AxPath:
*при вызове "Копировать" для текущей открытой формы копируется путь до записи
*при вызове "Ctrl+Shift+Копировать" для AOT копируется путь до AOT
*при вставке в поле ввода с нажатием Enter - переходит по пути
*фикс переключения табов для Ax30Kr3
*если в поле ввода ввести ?<~X++ выражение> -- выполнится выражение и результат запишется в InfoLog
*если в поле ввода ввести !<~X++ инструкция> -- выполнится инструкция
__________________
https://axcoder.github.io
Старый 20.11.2006, 10:51   #65  
kashperuk is offline
kashperuk
Senior SDE, Dynamics AX
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,353 / 2052 (77) +++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
Цитата:
Сообщение от belugin Посмотреть сообщение
1. Сделайте, пожалуйста, плагином
2. Переведите, пожалуйста, на английский
3. Выдрать ресурс можно при помощи калькулятора сидакса

Вот плагин.
Скриншот прилагается.

Update
Пофиксил баг, указанный oip
Добавил 2 параметра - Префикс названия проекта, Тип проекта (Shared, Private)
Добавил валидацию названия проекта.
Изображения
 
Вложения
Тип файла: zip AxCreateNewProject_v2.zip (11.7 Кб, 83 просмотров)

Последний раз редактировалось kashperuk; 20.11.2006 в 13:45.
За это сообщение автора поблагодарили: belugin (9).
Старый 20.11.2006, 11:03   #66  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,516 / 1331 (50) ++++++++
Регистрация: 28.11.2005
Адрес: Московская область
Иван, проверь что будет, если ничего не отметить, например.
__________________
С уважением,
Олег.
За это сообщение автора поблагодарили: kashperuk (2).
Старый 20.11.2006, 11:11   #67  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,219 / 2410 (89) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
А почему бы не сделать опцией - shared/private
__________________
https://axcoder.github.io
Старый 20.11.2006, 11:12   #68  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,516 / 1331 (50) ++++++++
Регистрация: 28.11.2005
Адрес: Московская область
И префикс по-умолчнию добавьте!
__________________
С уважением,
Олег.
Старый 20.11.2006, 11:13   #69  
kashperuk is offline
kashperuk
Senior SDE, Dynamics AX
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,353 / 2052 (77) +++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
Цитата:
Сообщение от belugin Посмотреть сообщение
А почему бы не сделать опцией - shared/private
Можно и опцией. Сделаем.

Update.
Добавлено.
Обновил скриншот и проект в посте выше

Последний раз редактировалось kashperuk; 20.11.2006 в 13:35.
Старый 21.11.2006, 13:22   #70  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,219 / 2410 (89) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Добавление поиска в AOT в тулбар. (сохранить в plugs)
Изображения
Тип файла: bmp Display_SysAOTFind.bmp (822 байт, 158 просмотров)
__________________
https://axcoder.github.io
Старый 22.11.2006, 16:40   #71  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,516 / 1331 (50) ++++++++
Регистрация: 28.11.2005
Адрес: Московская область
1. Заходим в трехзвенку.
2. Открываем ГК-Запросы-Обороты по счету-Оборотно-сальдовая ведомость.
3. Вводим параметры и нажимаем на ОК.
4. Закрываем открывшуюся форму.
5. Убеждаемся, что Аксапта падает.

В двухзвенке - все нормально. При выключенном или запаузенном табаксе - все нормально. Что это?

PS Ax 3.0 SP4.
__________________
С уважением,
Олег.
Старый 22.11.2006, 16:44   #72  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,219 / 2410 (89) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Там, кажется, создается таймер и не выключается - была доработка для корректировки этой ситуации
__________________
https://axcoder.github.io
Старый 22.11.2006, 17:04   #73  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,219 / 2410 (89) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
кстати выложил расширение для включения/выключение трассировки SQL
__________________
https://axcoder.github.io
Старый 22.11.2006, 17:44   #74  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,516 / 1331 (50) ++++++++
Регистрация: 28.11.2005
Адрес: Московская область
Цитата:
Сообщение от belugin Посмотреть сообщение
Там, кажется, создается таймер и не выключается - была доработка для корректировки этой ситуации
Конкретно в данном отчете вроде таймер не создается... Хотя может кто поправит, может я просто не заметил.

PS Но Максим правильно заметил, что дело все же в чем-то подобном, так как при поиске по АОТУ Аксапта при запуске данного отчета не валится.
__________________
С уважением,
Олег.
Старый 23.11.2006, 08:16   #75  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Кто о чем, а я о своем все пытаюсь наилучшее размещение найтить... вот что я попробовал сделать (см скриншоты) но когда уменьшаю ширину окна или открываю еще одно окно то с табами творится что-то не понятное, закладки пропадают и возникает то что показано на второй картинке может кто знает, что надо сделать?
А так я очень хочу создать метод переключения с горизонтального размещения в вертикальное...
Миниатюры
Нажмите на изображение для увеличения
Название: MyTabax.jpg
Просмотров: 164
Размер:	17.4 Кб
ID:	2252   Нажмите на изображение для увеличения
Название: MyTabaxBad.jpg
Просмотров: 175
Размер:	13.0 Кб
ID:	2253  

__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 23.11.2006, 09:09   #76  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,219 / 2410 (89) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
а если не вызывать adjustTabPageSize
__________________
https://axcoder.github.io
Старый 23.11.2006, 09:39   #77  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Цитата:
Сообщение от belugin Посмотреть сообщение
а если не вызывать adjustTabPageSize
При первом открытии табакс, получился на весь экран, уменьшил размер до нужного, все кравиво, вроде сработало, затем закрыл табакс, опять открыл (размеры сохранены) и все табы опять поплыли... Попробую еще потюнить параметры...
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 23.11.2006, 09:45   #78  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Ага, если выставляю широкий размер, на некую критическую ширину, то закрыв-открыв, получаю нормальный вид, если меньше, то опять все сломано...
Как я понимаю, что-то со свойствам самих закладок ...
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 23.11.2006, 10:18   #79  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Ага сработало, после того как убрал этот метод и в методе ApplayChanges
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 23.11.2006, 10:21   #80  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,219 / 2410 (89) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
надо его (этот метод) с икса на игрек перевести. А еще лучше параметризовать
__________________
https://axcoder.github.io
Теги
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, время: 15:00.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.