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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.11.2009, 04:57   #1  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
DAX 4.2 Фильтры, возникающие в диалоге автоматически
Делаю отчет в котором много datasources.
Каждый из них в диалоге создает по умолчанию свой фильтр (range) и форма выглядит огромной.
Как сделать, чтобы не было этих фильтров? Все равно никто не будет их использовать.
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 11.11.2009, 06:15   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
RunBase.showQueryValues(), если я правильно помню, отвечает за это. Скорее всего вы его перекрыли и возвращаете true.
За это сообщение автора поблагодарили: Qaz Qwerty (1).
Старый 11.11.2009, 07:52   #3  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
как уже правильно написл Андре, RunBase.showQueryValues(). Если он будет возвращать false, фильтры будут невидимы в диалоге, но и недоступны для ввода.
__________________
С уважением, Вячеслав.
За это сообщение автора поблагодарили: Qaz Qwerty (1).
Старый 11.11.2009, 08:27   #4  
coolibin is offline
coolibin
Участник
 
264 / 68 (3) ++++
Регистрация: 07.04.2005
Цитата:
Сообщение от slava Посмотреть сообщение
как уже правильно написл Андре, RunBase.showQueryValues(). Если он будет возвращать false, фильтры будут невидимы в диалоге, но и недоступны для ввода.
Возможно, будет достаточно сделать, чтобы не showQueryValues(), а showIndexFields() возвращал false. А дипазоны выборочно можно сделать невидимыми и проще - с помощью свойства QueryBuildRange.status = RangeStatus::Hidden

PS: в отчете свойство Range = Hide

Последний раз редактировалось coolibin; 11.11.2009 в 08:29.
За это сообщение автора поблагодарили: S.Kuskov (1), JeS (1), Qaz Qwerty (1).
Старый 11.11.2009, 09:26   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
А можно немного оффтопика? Всегда интересовал один вопрос.

Почему эти самые значения фильтров, которые замечательным образом автоматически добавляются в диалог, сделаны readonly? Почему бы не дать возможность пользователю редактировать их прямо там на диалоге, а уже для остальных использовать расширенный фильтр по кнопке 'Выбор'?
Старый 11.11.2009, 09:36   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Почему эти самые значения фильтров, которые замечательным образом автоматически добавляются в диалог, сделаны readonly? Почему бы не дать возможность пользователю редактировать их прямо там на диалоге, а уже для остальных использовать расширенный фильтр по кнопке 'Выбор'?
мои предположения.
если разрешать редактирование в диалоге, то приклось бы делать программный lookup к каждому фильтру (см. как сделаны лукапы в форме критериев, которая взывается по кнопке Выбор). что, с одной стороны, наложило бы ограничения на программистские лукапы, а с другой стороны непомерно усложнило бы диалог.

кроме того, непременно надо было бы давать возможность управления видимостью и доступностью... Не говоря уже о добавлении новых фильтров...

поэтому я предполагаю, что это здоровая леность программистов.
я не думаю, что здесь заложен какой-то глубинный смысл.
__________________
полезное на axForum, github, vk, coub.
Старый 11.11.2009, 10:56   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от mazzy Посмотреть сообщение
программный lookup к каждому фильтру ...
А разве lookup не зависит от ExtendetDataType контрола? Мне так видится напротив реализация разных лукапов для одной и той же колонки грида - посложнее будет.

Самым сложным моментом мне сдесь представляется оперативная синхронизация значений фильтров в диалоге и на форме выбора. Т.е. необходим программный modified
Цитата:
Сообщение от mazzy Посмотреть сообщение
кроме того, непременно надо было бы давать возможность управления видимостью и доступностью
Вот про права пользователя я забыл. Спасибо. Но ведь это тоже вопрос решаемый.

Осталось только победить лень
Старый 11.11.2009, 11:08   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А разве lookup не зависит от ExtendetDataType контрола? Мне так видится напротив реализация разных лукапов для одной и той же колонки грида - посложнее будет.
А там не EDT контрола, а тип для критерия.

Если EDT контрола позволяет вводить максимум 20 символов, то никаким образом в него нельзя будет ввести длинный критерий (хотя бы в 200 символов).
В окошке ввода критериев используется тип Criterias, а не EDT

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Самым сложным моментом мне сдесь представляется оперативная синхронизация значений фильтров в диалоге и на форме выбора. Т.е. необходим программный modified
Это как раз не проблема. Модифицируйте QueryRun. Он везде отобразится.

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Осталось только победить лень
Не надо.
Разберитесь как работает форма критериев. Посмотрите на ее методы. Подумайте - а оно нужно?

Вернемся к первоосновам:
1. dialog - простой класс для работы с простыми динамически создаваемыми диалогами.
2. если нужен сложный диалог (в том числе со сложной логикой), то лучше нарисовать отдельное окно, объявить его диалогом и... (см. методику работы с диалогами)

если в простом диалоге появится возможность вводить критерии непосредственно, то придется такую же возможность вводить и в диалоги-отдельные-окна.
А судя по вопросам на форуме народ и так предпочитает извращаться и усложнять простые диалоги, чтоы просто нарисовать свой было бы намного проще. А тут еще один усложняющий момент появится...
__________________
полезное на axForum, github, vk, coub.
Старый 11.11.2009, 11:43   #9  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от mazzy Посмотреть сообщение
А там не EDT контрола, а тип для критерия
Это всё понятно. Хочешь сложный фильтр - используй форму выбора. А простой можно и непосредственно на дилоге задать.

Просто бывает, что для удобства пользователей часто используемые фильтры ради быстроты заполнения искусственно выносятся на диалог. Значения этих критериев затем тупо переписываются в query.

Цитата:
Сообщение от mazzy Посмотреть сообщение
dialog - простой класс для работы с простыми динамически создаваемыми диалогами
Ну так никто и не предлагает возлагать работу по реализации этой функциональность на конечных потребителей калсса dialog. Нужно научить dialog самостоятельно всё это дело прокручивать. Справляется же он сам с отображением критериев. Так и пусть будет для программистов помимо showQueryValues() ещё и например alowEditQueryValues().

Цитата:
Сообщение от mazzy Посмотреть сообщение
если в простом диалоге появится возможность вводить критерии непосредственно, то придется такую же возможность вводить и в диалоги-отдельные-окна.
а что такое 'диалоги-отдельные-окна'?
Старый 11.11.2009, 12:21   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Это всё понятно. Хочешь сложный фильтр - используй форму выбора. А простой можно и непосредственно на дилоге задать.
КАТЕГОРИЧЕСКИ ПРОТИВ.

Представим, что я тупой пользователь.
Я вбиваю фильтр в эту глупую программу... И вдруг она не дает записать последний символ моего фильтра?
Я как тупой пользователь ищу инструкцию, нажимаю кнопку Выбор, перевбиваю свой фильтр заново...
При этом постоянно матерюсь и чертыхаюсь.

Нет уж! Если давать возможность вводить, то единообразно. Как и в критериях.

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Просто бывает, что для удобства пользователей часто используемые фильтры ради быстроты заполнения искусственно выносятся на диалог. Значения этих критериев затем тупо переписываются в query.
Вот-вот. Видел такое неоднократно. Поубивал бы.

Во-первых, пользователь не может ввести нормальные критерии через звездочку (а потом удивляемся почему пользователи такие тупые)
Во-вторых, значения в этих "часто используемых фильтрах" не совпадают с теми, что используются в критериях
В-третьих, не запоминаются (поскольку разработчики тупо не используют xSaveLast)
В-четвертых, ...
В-пятых, ...
...
В-мамнадцатых.

Интерфейс должен быть предсказуем. А для этого он должен быть единообразным.

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
а что такое 'диалоги-отдельные-окна'?
Э-э-э...
М-м-м...

В общем...
Черт, не ожидал я такого поворота разговора.

Пример - диалог, который выскакивает при создании заказа на продажу, заказа на закупку, заказа на производство.
__________________
полезное на axForum, github, vk, coub.
Старый 16.11.2009, 05:09   #11  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Цитата:
Сообщение от slava Посмотреть сообщение
как уже правильно написл Андре, RunBase.showQueryValues(). Если он будет возвращать false, фильтры будут невидимы в диалоге, но и недоступны для ввода.
У меня отчет наследован от RunBaseReport, так что может это там что то перекрыто, но в любом случае - заработало! Спасибо все большое!
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Теги
dialog, querybuildrange

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
msdynamicsax: DAX 2009 and MS SQL 2008 Blog bot DAX Blogs 0 09.08.2008 14:05
dax-lessons: Generate XML Documentation Files for a project - DAX 2009 Blog bot DAX Blogs 0 08.08.2008 19:06
dax-lessons: Active directory in Axapta Blog bot DAX Blogs 0 27.08.2007 23:00
Kashperuk Ivan: AxPaint - make your DAX look cool :) Blog bot DAX Blogs 0 26.06.2007 21:00
Kashperuk Ivan: (DAX 3.0) SysExportDialog form extension Blog bot DAX Blogs 1 15.05.2007 19:16

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

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

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