Показать сообщение отдельно
Старый 02.08.2012, 09:01   #1  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
:( Меняется Tab
У формы один датасорс и 2 закладки.
На обоих закладках используется один и тот же датасорс, фильтрую его в tabChanged подставляя значение в qbrange и вызывая executeQuery:
X++:
    if (_ToTab == 2)
    {

        qbrGroupId.value(sysQuery::valueEmptyString());
        MyTable_ds.executeQuery();
    }
    if (_ToTab == 1)
    {
        qbrGroupId.value(sysQuery::valueNotEmptyString());
        MyTable_ds.executeQuery();
    }
Проблема возникает при создании записи на закладке №2 - почему-то автоматически перемещаюсь на закладку №1.

В отладчике такая картина:
(C) \Forms\MyForm\Designs\Design\[Group:Group]\[Tab:Tab]\Methods\TabChanged - line 3
(C) \Classes\FormStringControl\enter
(C) \Classes\FormRun\selectControl
(C) \Classes\FormDataSource\create
(C) \Forms\MyForm\Data Sources\MyTable\Methods\create - line 7
(C) \Classes\FormRun\task
(C) \Classes\SysSetupFormRun\task - line 20

Перекрыл метод create() на датасорсе, чтобы посмотреть номера закладок:
X++:
public void create(boolean _append = false)
{
    ;

    info(Tab.tab());

    super(_append);

    info(Tab.tab());
}
При создании записи на закладке №2 результат инфолога: 2, 1 - т.е. перепрыгнул сам.

Понимаю что можно сдублировать датасорс для закладки №2 и не париться, но ведь мы не ищем лёгких путей =)