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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.04.2005, 09:42   #1  
Smith is offline
Smith
Участник
 
76 / 10 (1) +
Регистрация: 02.09.2004
queryRun в рамках RunBaseBatch
Доброе утро!

Есть класс - потомок RunBaseBatch. В нем перекрыт метод QueryRun:
PHP код:
public QueryRun queryRun()
{
    
qr = new QueryRun("eGrad");

    return 
qr;

eGrad - это Query в AOT. В нем 2 датасорса InventTrans и InventDim.
Для чего все это нужно: хочу бегать по проводкам в зависимости от заданных складов и ячеек (их может быть задано несколько, поэтому стандартные поля в диалоге не подходят).
Что не получается:
1) В диалоге выводятся ненужные рейнджи по проводкам. Мне там вообще рейнджи не нужны, но если все убираешь, то выводится какой-то стандартный набор. Как их убрать? ShowQueryValues действует на все рейнджи, а потому использовать я его не могу.
2) Рейнджи по складской аналитике (склад и ячейка) в диалоге отображаются, но изменение их значений не запоминается. Причем не запоминается прям на диалоге.
Естесственно и дальше они нигде не учитываются. Надо чтобы менялись.

В прилагаемом проекте есть класс и запрос. По-моему я не знаю какой-то элементарной вещи
Вложения
Тип файла: xpo egrad.xpo (7.6 Кб, 338 просмотров)
Старый 26.04.2005, 10:14   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Слушай, а зачем QueryRun корячить?

Ты потом ведь запрашиваешь у пользователя доп. параметры?
Ну, так перекрой просто query и посмотри на параметры в диалоге.
Предварительно можно попробовать clearВсеЧтоМожно сделать (Ranges/Links)

C Уважением,
Георгий.
Старый 26.04.2005, 10:47   #3  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
1.) Если не указан ни один рейндж в запросе, то выводится по умолчанию
В query в свойствах рейнджа ItemId стоит Hiddenб т.е. не отображать

2.) А это потому что вы их не сохраняете
Попробуйте так:

PHP код:
public QueryRun queryRun()
{
    ;

    if (!
qr)
        
qr = new QueryRun(querystr(eGrad));

    return 
qr;

P.S.
Ещё, у вас в query нет релейшна, или так задумано.
Статайтесь так не писать:
PHP код:
new QueryRun("eGrad"); 
Если сделаете опечатку, замучаетесь потом искать. И перекрёстные ссылки не будут работать.
__________________
С уважением, Игорь Ласийчук.
Старый 26.04.2005, 10:48   #4  
Smith is offline
Smith
Участник
 
76 / 10 (1) +
Регистрация: 02.09.2004
То ли голова с утра не работает то ли я с баяном.. прочитал раз 10 твой ответ да так и не понял где надо перекрыть query. В классе такого метода для перекрытияя не обнаружил.
QueryRun я перекрываю, чтобы на диалоге появилась кнопка "Выбор" через которую пользователь будет задавать фильтры. Можно по-моему и через dialogModify к этому прийти, но так проще.
Старый 26.04.2005, 10:48   #5  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Re: queryRun в рамках RunBaseBatch
Цитата:
Изначально опубликовано Smith
1) В диалоге выводятся ненужные рейнджи по проводкам. Мне там вообще рейнджи не нужны, но если все убираешь, то выводится какой-то стандартный набор. Как их убрать? ShowQueryValues действует на все рейнджи, а потому использовать я его не могу.
Вообще все Range убрать не получится. Если их убрать, то на диалог будут выводиться поля, входящие в индексы. Попробуй добавить в Query Range и установить для него Status = Hidden.
Цитата:
Изначально опубликовано Smith
2) Рейнджи по складской аналитике (склад и ячейка) в диалоге отображаются, но изменение их значений не запоминается. Причем не запоминается прям на диалоге.
Естесственно и дальше они нигде не учитываются. Надо чтобы менялись.
Дело в том, что для того, чтобы обновить диалог, все время вызывается метод runBase.queryRun(). А у тебя в этом методе все время делается queryRun = new QueryRun(). То есть ты каждый раз создаешь новый queryRun. Поэтому и Range не сохраняются. Посмотри в RunBase.queryRun(). Там написано, как должен выглядеть этот метод в наследниках.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 26.04.2005, 10:59   #6  
vic_z is offline
vic_z
Участник
 
26 / 30 (2) +++
Регистрация: 11.12.2003
Привет!
Еще есть одна интересная статейка в BestPractise. Чтобы найти ее, в поле "search" набери слово RunBase.
Старый 26.04.2005, 11:03   #7  
Smith is offline
Smith
Участник
 
76 / 10 (1) +
Регистрация: 02.09.2004
Большое спасибо за объяснения!

Цитата:
Дело в том, что для того, чтобы обновить диалог, все время вызывается метод runBase.queryRun(). А у тебя в этом методе все время делается queryRun = new QueryRun(). То есть ты каждый раз создаешь новый queryRun. Поэтому и Range не сохраняются. Посмотри в RunBase.queryRun(). Там написано, как должен выглядеть этот метод в наследниках.
PHP код:
public QueryRun queryRun()
{
    ;

    if (!
qr)
        
qr = new QueryRun(querystr(eGrad));

    return 
qr;

Это именно то, чего мне не хватало. С рейнджами я тоже пришел к такому выводу, хотя это немного странно: зачем вывоить неизменяемый рендж, если он там вообще не нужен и будет только смущать почем зря? Но это аксапта и тут ничего не попишешь

relation поставил, упустил раньше.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 04.04.2009 22:05
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 31.03.2009 06:06
OZKA's DAX Journal: Join между временной и постоянной таблицей через QueryRun. Blog bot DAX Blogs 12 14.01.2009 17:34
PatrickChua: Change the combobox options in RunbaseBatch class Blog bot DAX Blogs 0 28.10.2006 18:14
Fred Shen: Change the combobox options in RunbaseBatch class Blog bot DAX Blogs 0 28.10.2006 16:40
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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