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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.03.2012, 22:50   #21  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Ar Посмотреть сообщение
Да не вопрос! Сделал маленький тест... т.к. оригинальный проект выкладывать будет тяжко... много всего.
респект и уважуха за проект.
проверяю на ax2009 (5.0.1500.4570)

в вашем проекте простая форма с четко указанными таблицами.
в коде вы добавляете только вкладку и на ней размещаете поля из таблиц, заранее указанных в форме

Название: 1.PNG
Просмотров: 1398

Размер: 27.9 Кб
Нажмите на изображение для увеличения
Название: 2.PNG
Просмотров: 508
Размер:	80.5 Кб
ID:	7610 Нажмите на изображение для увеличения
Название: 3.PNG
Просмотров: 549
Размер:	77.6 Кб
ID:	7611
X++:
public void init()
{
    int                     fds = form.design().dataSource(tableStr(InventItemLocation));
    FormBuildTabControl     ftc;
    FormBuildTabPageControl ftpc;
    FormBuildGroupControl   fgc;

    void addGroup(str _name)
    {
        fgc = ftpc.addControl(FormControlType::Group, _name);
        fgc.dataSource(fds);
        fgc.dataGroup(_name);
    }
    ;

    ftc = form.design().control('Tab');
    ftpc = ftc.addControl(FormControlType::TabPage, 'TabPage_New');
    ftpc.caption('New');
    ftpc.columns(2);

    addGroup('Identification');
    addGroup('System');
    addGroup('PickingLocation');
    addGroup('Counting');

    super();
}

разберем.
вы выполняете добавление полей ДО вызова супера.
поэтому проверка прав, диналинки и прочее (включая пользовательские правки форм) вполне нормально выполняет ядро.
поэтому сообщения после 4го к этому проекту не относятся

Цитата:
Сообщение от Ar Посмотреть сообщение
Не проверял только автоотчёт и выгрузку в XL. Всё остальное работает
угу. потому что проблема возникает если в качестве датасорсов в АОТ указаны common и/или добавление полей/датасорсов выполнять после супера в init

вы таки посмотрите на форму sysTableBrowser о которой здесь шла речь.
именно эта форма является отдельно стоящей. именно на ней не работают большинство механизмов Аксапты.
не делайте пользовательский функционал в стиле sysTableBrowser, делайте в стиле вашего проекта - конкретные таблицы, инициализация до супера.
причем желательно СКРЫВАТЬ, а не добавлять.
__________________
полезное на axForum, github, vk, coub.
Старый 01.03.2012, 22:59   #22  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Ar Посмотреть сообщение
Да не вопрос! Сделал маленький тест... т.к. оригинальный проект выкладывать будет тяжко... много всего.
вот, как на мой взгляд, надо:
X++:
public void init()
{
    super();
    
    Identification.visible(true); // или ваше условие бизнеслогики
    System.visible(true); // или ваше условие бизнеслогики
    PickingLocation.visible(true); // или ваше условие бизнеслогики
    Counting.visible(true); // или ваше условие бизнеслогики
}
1. минимум программирования. и только "по делу" (только бизнес-логика)
2. свойства и всевозможные атрибуты легко сопровождать и модифицировать (гораздо легче, чем в коде)
3. совершенно прозрачная работа с метками
4. если все группы скрыты, то и вкладка автоматически исчезнет (это поведение определяется обычными свойствами таба)
5. работают всевозможные модификаторы и аддоны по обработке форм

попробуйте поставить false вместо true
Вложения
Тип файла: xpo Form_TestingRuntimeCreatedDataGroups_tobe.xpo (6.5 Кб, 454 просмотров)
__________________
полезное на axForum, github, vk, coub.
Старый 02.03.2012, 00:14   #23  
Ar is offline
Ar
Участник
Аватар для Ar
Злыдни
 
21 / 20 (1) +++
Регистрация: 27.06.2005
Адрес: Москва
Так я ж говорю, я не хочу искать слишком сложных путей - иначе выше вероятность ошибок.
Однако, отсутствие изменений на формах - была приоритетной задачей. Поэтому я ограничился только добавлением источника данных. Всё остальное делаю вне формы в наследнике класса FormRunListener_W. Я не раз говорил, что Common не использую, и не собираюсь, - это сильно усложнит проект.
В любом случае, очень много интересного узнал из этой ветки. Спасибо!
Теги
autodatagroup, autodeclaration, datasource, run-time, добавление группы полей, как правильно, форма

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
sumitsaxfactor: Dimension Provider Class and Run-time dimension ranges [AX 2012] Blog bot DAX Blogs 1 28.08.2013 12:42
Динамическое добавление контролов на форму erudit DAX: Программирование 14 28.02.2013 07:05
axaptapedia: Current Time Blog bot DAX Blogs 1 29.11.2010 22:11
Добавление таблицы на форму PurchTable Rect DAX: Программирование 3 21.09.2008 17:54
Malaysia: How to Run Time Add Code to AOT Blog bot DAX Blogs 0 18.09.2007 15:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:01.