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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2021, 13:10   #1  
oleggy is offline
oleggy
Участник
 
256 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
вопрос про RunBaseBatch::queryBuild при showQueryValues = true
Привет всем.
Подскажите имеется такой класс:

X++:
class MyClassRunBaseBatch extends RunBaseBatch
{
	...
	QueryRun        queryRun;
	...
}

...

public boolean init()
{
    return true;
}

public void initParmDefault()
{
    super();

    this.queryBuild(true);
}

public Object dialog()
{
    DialogRunbase       dialog = super();
    ;

    return dialog;
}

protected void queryBuild(boolean _reWrite)
{
    Query                   query = new Query();
    QueryBuildDataSource    qbds;
    QueryBuildRange         qbr;
    ;

    if (!queryRun || _reWrite)
    {
        qbds = query.addDataSource(tablenum(MyTable));

        qbr = qbds.addRange(fieldnum(Table1, Field1)); 
        qbr.value(sysQuery::value('Value1'));

        qbr = qbds.addRange(fieldnum(Table1, Field1)); 
        qbr.value(sysQuery::valueNot('Value2'));

        qbr = qbds.addRange(fieldnum(Table1, Field2));
        qbr.value(sysQuery::valueNotEmptyString());

        qbr = qbds.addRange(fieldnum(Table1, Field3));
        qbr.value(queryValue(NoYes::No));

        qbr = qbds.addRange(fieldnum(Table1, Field4));
        qbr.value(queryValue(MyEnum::Enum1));

        queryRun = new SysQueryRun(query);
    }
}	

public QueryRun queryRun()
{
    return queryRun;
}

public boolean showQueryValues()
{
    return true;
}

void new()
{
    super();
}

static void main(Args args)
{
    MyClassRunBaseBatch myClassRunBaseBatch;
    ;

    myClassRunBaseBatch = MyClassRunBaseBatch ::construct();

    if (myClassRunBaseBatch.prompt())
        myClassRunBaseBatch.run();
}
...

// ну и остальные методы ...
public void run()
public boolean validate()
server static MyClassRunBaseBatch construct()
static ClassDescription description()
static void main(Args args)


Вопрос:
1. Почему при вызове диалогового окна отображаются фильтры только полей Field1 и Field4 ?
Хотя по логике должны отображается все поля для которых я задаю фильтры в методе queryBuild. Т.е. должно быть отображено 4 фильтра: Field1 / Field2 / Field3 / Field4

2. Как сделать так что бы в окне диалогового окна (когда showQueryValues возвращает true) были заданы значение установленные как раз в методе queryBuild ? У меня почему то там выводит последнее сохраненное значение но для полей Field1 и Field4 (см. вопрос 1)

3. Почему initParmDefault не вызывается? Например в стоковом классе APMUpdateObjectLocation вот такой стек вызовов:
Цитата:
[s] \Classes\APMUpdateObjectLocation\queryBuild 6
[s] \Classes\APMUpdateObjectLocation\initParmDefault 5
[s] \Classes\xSysLastValue\getLast 23
[s] \Classes\RunBase\getLast 9
[s] \Classes\RunBaseBatch\getLast 12
[s] \Classes\RunBase\promptPrim 9
[s] \Classes\RunBase\prompt 12
[s] \Classes\RunBaseBatch\prompt 32
[s] \Classes\APMUpdateObjectLocation\main 8

Похоже я что то упустил раз у меня не происходит этого вызова.

Последний раз редактировалось oleggy; 18.10.2021 в 13:27.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не создается экземпляр SysMailer в RunBaseBatch pvito DAX: Программирование 3 21.10.2011 15:30
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 04.04.2009 22:05
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 31.03.2009 06:06
Вопрос по Проектам PSA DAX: Функционал 35 19.01.2007 22:26
PatrickChua: Change the combobox options in RunbaseBatch class Blog bot DAX Blogs 0 28.10.2006 18:14

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:34.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.