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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.05.2008, 11:04   #1  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
RunBase + query
День добрый. Вопрос такой: есть класс - наследник от RunBase, в метод dialog добавлена кнопочка
X++:
dialog.addMenuItemButton(MenuItemType::Display,identifierstr(RunBaseQueryDialog),DialogMenuItemGroup::RightGrp);
Добавлена еще такая строчка
X++:
this.queryRun().query(qr);
Т.е. я пытался создать кнопку добавления фильтров в датасорс, как это делается в наследниках от RunBaseReport.
Кнопка выбора у меня появилась, по ее нажатию вызывается стандартная форма, выбираю там фильтры, нажимаю OK, и все, дальше ничего не происходит , range не накладывается. Как с этим бороться?
Вариант наследовать класс от RunBaseReport не подходит, т.к. отчет должен потом выводится в Excel.
Старый 08.05.2008, 11:19   #2  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
А зачем такой трюк ? Если правильно инициализировать наследник от RunBase то кнопка Select появится автоматически, и никакого дополнительного кода не нужно.
Посмотрите, например, как устроен класс BOMChangeItem. Там много лишнего, но Вам нужны методы
new, buildQueryRun, queryRun, showQueryValues.

Последний раз редактировалось DSPIC; 08.05.2008 в 11:26.
Старый 08.05.2008, 11:22   #3  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Цитата:
Сообщение от DSPIC Посмотреть сообщение
А зачем такой трюк ? Если правильно инициализировать наследник от RunBase то кнопка Select появится автоматически, и никакого дополнительного кода не нужно
Насколько я знаю если наследовать от RunBase то кнопочка не появится, а если и появится, не факт, что у вас к тому моменту есть какой нибудь датасорс.

Если я не прав, докажите это кодом.
Старый 08.05.2008, 11:29   #4  
Alexei S is offline
Alexei S
Участник
 
21 / 14 (1) ++
Регистрация: 15.12.2006
Адрес: Новосибирск
Цитата:
Сообщение от greench Посмотреть сообщение
Насколько я знаю если наследовать от RunBase то кнопочка не появится, а если и появится, не факт, что у вас к тому моменту есть какой нибудь датасорс.

Если я не прав, докажите это кодом.
Посмотрите класс Tutorial_RunbaseForm - это то, что вам нужно. При инициализированном QueryRun за кнопочку отвечает метод showQueryValues(). Не нужно лишних сложностей - все проще.
За это сообщение автора поблагодарили: greench (1).
Старый 08.05.2008, 11:49   #5  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Насколько я знаю если наследовать от RunBase то кнопочка не появится
Появится, если все сделать правильно. Это одна из главных задач RunBase
Цитата:
не факт, что у вас к тому моменту есть какой нибудь датасорс.
Почему не факт? Вы же сами програмно этот датасорс инициализировать и должны.
За это сообщение автора поблагодарили: greench (1).
Старый 12.05.2008, 10:35   #6  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Спасибо за подсказки, действительно помогло.
Старый 13.05.2008, 15:33   #7  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Возник еще вопрос. Дело в том, что выбор данных мне нужно производить из нескольких компаний. Я выбираю данные в одной компании, программно переключаюсь в следующую, вызываю queryRun.reset(), затем опять в цикле выбираю данные, но получаю записи из первой компании. Попробовал создавать новый экземпляр QueryRun, но как перенести на него все ограничения с предыдущего ума не приложу. Может кто подскажет как можно скопировать все ограничения?
Старый 13.05.2008, 15:38   #8  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
\Classes\KMKnowledgeStatistics\buildQueryWithDynalinks
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
За это сообщение автора поблагодарили: DSPIC (1).
Старый 13.05.2008, 15:55   #9  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Цитата:
Сообщение от ivas Посмотреть сообщение
\Classes\KMKnowledgeStatistics\buildQueryWithDynalinks
У меня AX 4.0. SP2, нет там такого класса.
Старый 13.05.2008, 16:08   #10  
e@gle is offline
e@gle
MCTS
MCBMSS
 
164 / 72 (3) ++++
Регистрация: 11.04.2005
Адрес: Минск
В Query у DataSource в свойствах есть поле - Company.
Если вы создаете запрос кодом то: queryBuildDataSource.company("");
Если не ошибаюсь, тут можно указывать компании через запятую.
__________________
С уважением, Павел Цераниди.
На пути к совершенству нет конца. Каждое новое достижение является отправной точкой для следующего крупного шага.
Старый 13.05.2008, 16:11   #11  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
X++:
static void Job(Args _args)
{
    LedgerJournalTable  lt;
    Query               q;
    QueryRun            qr;
    ;
    q = new Query();
    q.addDataSource(tableNum(LedgerJournalTable));
    qr = new QueryRun(q);
    while (qr.next())
    {
        lt = qr.get(tableNum(LedgerJournalTable));
        print(lt.JournalNum);
        break;
    }
    changecompany('ccc')
    {
        qr = new QueryRun(q);
        while (qr.next())
        {
            lt = qr.get(tableNum(LedgerJournalTable));
            print(lt.JournalNum);
            break;
        }
    }
    pause;
}
Теги
query, runbase, как правильно, программно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX: QueryRun and Query Objects - Binding operation failed to allocate buffer space Blog bot DAX Blogs 0 03.04.2009 08:05
palleagermark: Sample union query from AX 2009 Blog bot DAX Blogs 0 11.07.2008 20:05
Inside Dynamics AX 4.0: RunBase Framework Extension Part IV Blog bot DAX Blogs 0 02.10.2007 04:49
Inside Dynamics AX 4.0: RunBase Framework Extension Part I Blog bot DAX Blogs 0 30.09.2007 09:20
Dynamics AX Geek: Using query() Blog bot DAX Blogs 0 28.10.2006 16:40

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

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

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