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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.06.2005, 13:15   #1  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Сортировка и/или фильтры в lookup форме - howto.
Доброго времени суток!

В какой-то момент перед человеком, редко писавшим lookup формы, встала задача отсортировать её по нужному полю, да еще и фильтров навешать. Стандартные методы не срабатывали, поскольку datasource_q был все время null (поскольку у формы AutoQuery = No) и модифицировать его не получалось - тетка Аксапта, ессно, ругалась.
Поиск по конференция ничего не дал и в ФАКах было пусто.
Пришлось идти к сэнсеям. Как оказалось, сэнсеи уже не раз отвечали на этот вопрос и задолбались уже на него отвечать.

Так вот - для того, чтобы восполнить этот пробел, я решил написать этот топик.
Кстати, штука довольно неочевидная...

В общем, если стоит задача сделать фильтрацию и/или сортировку данных в собственной lookup форме ( не забывать - AutoQuery = No !), то сделать это стандартными методами (взять у datasource формы Query, добавить поля сортировки, добавить фильтры) в init'е, скажем, datasource'а формы не получится.

Вместо этого следует сделать следующее:

В init'е datasource'а формы создать новый "левый" Query.
PHP код:
Query    _query;
;
_query = new Query();
_query.addDataSource(....... 
Далее, как обычно, добавить в него нужные datasource'ы(таблицы).
Затем нафаршировать его нужными сортировками и фильтрами.
Далее - сказать магическое сочетание:

PHP код:
this.Query(_query); 
(это в случае, если пишем все в init datasource'а).

Далее остается вызвать super();

Участие в написании принимали Lexx, Aand, и ваш покорный слуга.
Всё. Комментарии - welcome.
Старый 03.06.2005, 17:44   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: Сортировка и/или фильтры в lookup форме - howto.
Небольшой рефекторинг...
Создать query в AOT. Нафаршировать его всевозможной байдой.
в Коде указать две строчки
PHP код:
Query    _query = new Query(queryStr(mySuperLookupQuery));
this.Query(_query); 
Если честно, то не понял зачем вы выключили autoQuery...
__________________
полезное на axForum, github, vk, coub.
Старый 03.06.2005, 18:17   #3  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Нет у меня доверия к всяким WYSIWYG-прибамбасам, тем более, Аксаптовским.
Так что предпочитаю написать ручками.

Вообще, проблема была не у меня - такие начальные условия (AutoQuery = No) были мне поставлены. Видимо, нужно было главной таблицей иметь не ту, в которой лежит поле, по которому нужно сделать lookup.
Вообще - надо будет переспросить....
Старый 03.06.2005, 18:30   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Maximin
Нет у меня доверия к всяким WYSIWYG-прибамбасам, тем более, Аксаптовским.
Так что предпочитаю написать ручками.
1. Там не wysiwig.
2. Ручками вы будете предпочитать до первого апгрейда.
При апгрейде каждую строчку кода проверять и продумывать надо.
Объекты AOT же обновляются без особых раздумий.

Стремитесь уменьшить ваш код настолько насколько это возможно.
Перекладывайте на ядро и на АОТ.
Вам же легче будет. Ей богу. Крест на пузе!
__________________
полезное на axForum, github, vk, coub.
Старый 03.06.2005, 18:31   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Maximin
Вообще, проблема была не у меня - такие начальные условия (AutoQuery = No) были мне поставлены.
Вот-вот... Один напрогал.
Теперь другой вынужден прогать еще и еще.
__________________
полезное на axForum, github, vk, coub.
Старый 07.06.2005, 11:06   #6  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Цитата:
Изначально опубликовано mazzy

Вот-вот... Один напрогал.
Теперь другой вынужден прогать еще и еще.
Напрогали, кстати, в Navision/Damgaard. Нужно было переделать одну из стандартных форм.

Честно говоря, не вижу разницы - анализировать код при апгрейде или ходить по объектам. Насчет же WYSIWYGа - нуу, как сказать... ) Я считаю, что, применительно к Аксапте, любые средства хоть какой-то визуальной разработки - это уже практически WYSIWYG... Хотя тоска по Access (хотя бы за возможностью перевести проектируемый запрос в режим "таблица"), иногда появляется...

Вообще - давно есть мысль допилить SysTableBrowser для отображения любых запросов. Никак руки не доходят.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
How-to. Слетание пользовательских настроек в формах после вызова lookup, или MS - suxx. Maximin DAX: База знаний и проекты 2 29.06.2007 12:16
Набор однотипных lookup() методов на форме johny77 DAX: Программирование 1 10.04.2007 13:12
lookup фильтр в произвольной lookup форме 111andrei DAX: Программирование 4 05.10.2005 11:28
О Lookup-форме и FormFrame::Border NIMERE DAX: Программирование 3 22.03.2004 13:04
Фильтрация в Lookup-форме Rem DAX: Программирование 5 27.04.2002 08:27

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

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

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