
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.09.2010, 20:27:45
|
|||
|---|---|---|---|
|
|||
Ищу стандартный подход/паттерн (SQL + фильтры) |
|||
|
#18+
Имеется форма (много похожих форм) и панель фильтров. На панели располагаются эдиты, чекбоксы, комбобоксы, радиокнопки и т.п. Совокупность заполнения этих контролов дает фильтр в условие "WHERE" SELECT-запроса. При чем, некоторые контролы имеют приоритет (если заполнен, то другие контролы игнорируются) Имеются зависимые контролы (чекбокс + эдит). В итоге, по нажатию кнопки все контролы проверяются на заполнение и клеится фильтр. Ну, вот в общих словах. Теперь вопрос. Существует ли готовое решение или паттерн для подобного хозяйства? Инструмент разработки - C++ Builder. Поэтому проектирование превратилось в анти-паттерн "Магическая кнопка". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.09.2010, 21:08:38
|
|||
|---|---|---|---|
Ищу стандартный подход/паттерн (SQL + фильтры) |
|||
|
#18+
TFrame? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.09.2010, 05:46:51
|
|||
|---|---|---|---|
|
|||
Ищу стандартный подход/паттерн (SQL + фильтры) |
|||
|
#18+
Почему TFrame? Я имел в виду, подход, который упростит формирование фильтра для SELECT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.09.2010, 13:31:12
|
|||
|---|---|---|---|
Ищу стандартный подход/паттерн (SQL + фильтры) |
|||
|
#18+
belykhПочему TFrame? Я имел в виду, подход, который упростит формирование фильтра для SELECT поищите в инете, был раньше PuterSoft SDK. Один из его компонентов как раз этим занимается. Для C++ Builder, была версия, если не ошибаюсь. Выглядит примерно так . Пользователь формирует список условий, на выходе - WHERE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.09.2010, 13:33:19
|
|||
|---|---|---|---|
|
|||
Ищу стандартный подход/паттерн (SQL + фильтры) |
|||
|
#18+
Могу поделиться идеей реализации. При разработке приложения оказалось, что подавляющее большинство контролов, задающих условия выбора, являются комбобоксами и списками. Т.е. экозитка типа групп опшионов с эдитами около некоторых оказалась не востребована. Вернее там, где она есть, сделана конкретная кодировка "в лоб". А вот все остальное привелось к следующему виду: 1. Имеется словарь пользовательских источников данных - VIEW, табличные FUNC, процедуры PROC 2. Имеется реестр пользовательских форм разных видов * вложенный грид * карточка (содержит на вкладках вложенный грид с набором фильтрующие контролов, оределяющих WHERE его источника данных) * табличная форма (окно, содержащее грид с набором фильтрующие контролов, оределяющих WHERE его источника данных * структура с деревом слева и таблицей (для корневых узлов) либо карточкой (для обычных узлов) справа 3. Имеется реестр всех фильтрующих контролов - комбо и списков. Каждый контрол содержит баунд столбец, один или более столбцов для наглядного вывода и скрытый столбец условий, задающий кусочек WHERE, который будет использоваться для фильтрации источника, с которым будет связан фильтрующий контрол. Несколько фильтрующих контролов, связанных с одним и тем же источником в пределах пользовательской формы, соединяются через AND. Для процедур фильтрующие контролы обеспечиват подстановку параметров. Для табличных функций фильтрующие контролы обеспечиват подстановку параметров или куски WHERE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.09.2010, 13:35:52
|
|||
|---|---|---|---|
Ищу стандартный подход/паттерн (SQL + фильтры) |
|||
|
#18+
belykhПочему TFrame? Я имел в виду, подход, который упростит формирование фильтра для SELECT ну да, я уже понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.09.2010, 14:33:22
|
|||
|---|---|---|---|
|
|||
Ищу стандартный подход/паттерн (SQL + фильтры) |
|||
|
#18+
iscrafm поищите в инете, был раньше PuterSoft SDK. Видел уже похожую реализацию - встречается довольно часто. Как я понял, можно неограниченно увеличивать сложность фильтра (динамически добавляя всё новые условия). Плюсы - возможность создавать гибкие и разнообразные фильтры Минусы - малая скорость взаимодействия с пользователем Сейчас уже реализованный интерфейс (куча этитов и комбобоксов) и сотрудники к нему привыкли. Программист-ЛюбительМогу поделиться идеей реализации. При разработке приложения оказалось, что подавляющее большинство контролов, задающих условия выбора, являются комбобоксами и списками. Т.е. экозитка типа групп опшионов с эдитами около некоторых оказалась не востребована. Вернее там, где она есть, сделана конкретная кодировка "в лоб". А вот все остальное привелось к следующему виду: 1. Имеется словарь пользовательских источников данных - VIEW, табличные FUNC, процедуры PROC 2. Имеется реестр пользовательских форм разных видов * вложенный грид * карточка (содержит на вкладках вложенный грид с набором фильтрующие контролов, оределяющих WHERE его источника данных) * табличная форма (окно, содержащее грид с набором фильтрующие контролов, оределяющих WHERE его источника данных * структура с деревом слева и таблицей (для корневых узлов) либо карточкой (для обычных узлов) справа 3. Имеется реестр всех фильтрующих контролов - комбо и списков. Каждый контрол содержит баунд столбец, один или более столбцов для наглядного вывода и скрытый столбец условий, задающий кусочек WHERE, который будет использоваться для фильтрации источника, с которым будет связан фильтрующий контрол. Несколько фильтрующих контролов, связанных с одним и тем же источником в пределах пользовательской формы, соединяются через AND. Для процедур фильтрующие контролы обеспечиват подстановку параметров. Для табличных функций фильтрующие контролы обеспечиват подстановку параметров или куски WHERE. Надо обмозговать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.09.2010, 14:58:53
|
|||
|---|---|---|---|
|
|||
Ищу стандартный подход/паттерн (SQL + фильтры) |
|||
|
#18+
belykhНадо обмозговать :)Это точно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.09.2010, 19:02:42
|
|||
|---|---|---|---|
Ищу стандартный подход/паттерн (SQL + фильтры) |
|||
|
#18+
belykh, Алгеброй он называется. Если помните школьный курс маитематики то там были (a+b)^2 да и вся тригонометрия на этом построена. Пишете список фильтров. Пишете SQL-ные условия. Пишем возможные преобразования одно а другое. Сидим и потихоньку на бумажке упрощаем. ТеорКат. и прочию тяжелую математику уж не предлагаю. Пролог мог бы помочь, но тоже требует соответвующих знаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.09.2010, 19:37:05
|
|||
|---|---|---|---|
Ищу стандартный подход/паттерн (SQL + фильтры) |
|||
|
#18+
belykhИмеется форма (много похожих форм) и панель фильтров. На панели располагаются эдиты, чекбоксы, комбобоксы, радиокнопки и т.п. Совокупность заполнения этих контролов дает фильтр в условие "WHERE" SELECT-запроса. Плохо. Сразу отсекаются потребности умных пользователей. belykhПри чем, некоторые контролы имеют приоритет (если заполнен, то другие контролы игнорируются) Просто кошмар. Надеюсь, они хоть визуально дисейблятся. belykhИнструмент разработки - C++ Builder. Поэтому проектирование превратилось в анти-паттерн "Магическая кнопка". Он инструмента тут ничего не зависит. belykhСуществует ли готовое решение или паттерн для подобного хозяйства? Именно для такого - инструмента не встречал. Стандартные решения фильтров обычно делаются на основе QBE или expression builder. Паттерн - в любом случае начать следует с того, что отделить "формирователь фильтров", "условие фильтрации" и GUI, который эти условия формирует. То есть, к примеру, желание изменить интерфейс с "панель с кучей всего" на "листбокс фильтруемых полей и справа панелька с контролами для этого поля" не должно быть заметно для "собственно фильтров". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.09.2010, 06:13:27
|
|||
|---|---|---|---|
|
|||
Ищу стандартный подход/паттерн (SQL + фильтры) |
|||
|
#18+
softwarerПлохо. Сразу отсекаются потребности умных пользователей. В большей массе умные пользователи встречаются редко, поэтому делается под основную массу. softwarerПросто кошмар. Надеюсь, они хоть визуально дисейблятся. С визуализацией более или менее (приоритетные с жирным лейблом). Пользователи привыкли. Собственно, что дали - с тем и пришлось работать. Идея не моя - теперь приходится разгребать готовое. По началу я был в шоке от проекта. Коментариев ноль (абсолютно). Все имена контролов типа Edit1, ..., Edit105... Оформления кода просто не существует... softwarerПаттерн - в любом случае начать следует с того, что отделить "формирователь фильтров", "условие фильтрации" и GUI, который эти условия формирует. То есть, к примеру, желание изменить интерфейс с "панель с кучей всего" на "листбокс фильтруемых полей и справа панелька с контролами для этого поля" не должно быть заметно для "собственно фильтров". Так что от кучи контролов не уйти (на переделку сотни интерфейсов времени нет). -- Идея с алгеброй - супер! Вот отвертку по-больше найду и прикручу тригонометрию к SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=16&tablet=1&tid=1343473]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
187ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 501ms |

| 0 / 0 |
