Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обсудим "Как сделать Редактор "Условий отбора" [D7, dBase, FoxPro]


Страницы:   1 2

azamatufa ©   (2008-05-23 10:37:00) 

Привет, Мастера!

Вот не знаю как быть, с чего начать. Кажется для меня задача не из легких. Прошу помощи, совета.

Задача Учет-кадров.
И так, у работника имеется множество различных характеристик:
- пол (муж,жен)
- дата рождения (Date)
- образование(высш,серд,нач.),
- категория (рук-ель, рабочий, служ.),
- воинское звание (генерал,полк-ник, майор, лейт....)
и так далее...

Так вот, надо сделать "Редактор "Условий отбора".

Например:

"Возраст" "больше" 30 И "Возраст" "меньше или равно" 50
И ("Звание" "равно" "Майор" ИЛИ"Звание" "равно" "лейтенант" )

Может кто сталкивался с подобными делами?
Какова структура базы данных?


Reindeer Moss Eater   (2008-05-23 13:03:00) [21]

а поверх датасета, в котором и видны эти самые "данные".

дай угадаю. и она канешна прозрачна как слеза младенца.


Reindeer Moss Eater   (2008-05-23 13:02:00) [22]

см. [17] чем еще.


MsGuns   (2008-05-23 13:00:00) [23]

>Reindeer Moss Eater ©   (23.05.08 12:52) [16]
>тем что у меня юзер видит сам набор данных и введенные условия, а у тебя отдельную форму оторванную от данных которая к тому же исчезает когда надо наложить фильтр.

У тебя кроме телепатора есть еще и телевизор ? У меня формочка открывается не у горы, а поверх датасета, в котором и видны эти самые "данные". Так в чем отличие (кроме фанфарного трУба и фейерверков) ?


Reindeer Moss Eater   (2008-05-23 12:56:00) [24]

Что происходит у тебя, если обнаруживается, что юзер ввел не совсем то, что ему надо?
Как ты в своей чудо-форме восстановишь текущие условия фильтрации введенные на предыдущем этапе?
"привет, тетеньки, вводите все заново!"

ага?


Reindeer Moss Eater   (2008-05-23 12:52:00) [25]

И чем это отличается от моего способа

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


Reindeer Moss Eater   (2008-05-23 12:50:00) [26]

Кто сказал, что лайка нету?
Если условие введено в заголовке стрингового поля, то формируется like вместо равенства.


MsGuns   (2008-05-23 12:44:00) [27]

>Reindeer Moss Eater ©   (23.05.08 12:41) [13]
>он просто вводит значения или выражения > <
>причем видит в какие колонки вводит, видит как они называются и что в них находится.

И чем это отличается от моего способа, кроме того, что у тебя только 2 условия и напрочь отстутствует условия выбора подобных (Like) ? Подсветкой ? Может, он еще шепчет слова любви ?

Ладно, уговорил, твоя пипи ширше


Reindeer Moss Eater   (2008-05-23 12:41:00) [28]

у меня-то он не пишет sql.
он просто вводит значения или выражения > <
причем видит в какие колонки вводит, видит как они называются и что в них находится.


MsGuns   (2008-05-23 12:36:00) [29]

Тогда самое лучшее решение предлагал ИШ - нефиг писать какие-либо прибамбасы, -дать юзеру в зубы учебник по сиквелю и окошко с мемо.


Reindeer Moss Eater   (2008-05-23 12:10:00) [30]

Это все к тому, что наглядность и интуитивная понятность таких решений уступает приведенному мной выше.
Условие фильтра введенное в заголовке всегда видно пользователю.
Если же он отбирает по "или" то все записи попадающие в фильтр сразу же подсвечиваются еже до того, как будет применен сам фильтр.


Reindeer Moss Eater   (2008-05-23 12:02:00) [31]

тетеньки у всех разные.


MsGuns   (2008-05-23 11:59:00) [32]

Мои "тетеньки" учатся ловко шуровать фильтрами за неделю максимум. И только ПЕРВЫЙ раз. Все последующие проги имеют тот же интерфейс фильтрации и вопросов не вызывают изначально.


Reindeer Moss Eater   (2008-05-23 11:57:00) [33]

сначала повозиться с формой, потом отправить всех "тетенек" получать второе высшее чтобы научились с ней обращаться.


MsGuns   (2008-05-23 11:52:00) [34]

Задачка несложная сама по себе, но реально усложняется, если ее универсализировать.

Надо соорудить некую формочку (можно динамически в библиотечной процедуре), куда передавать указатель на датасет. По открытию формочка рисует на себе две панельки - на левой - список доступных для фильтрации полей датасета, на правой - стрингрид из трех колонок: в первой имя выбранного в фильтр поля, во второй тип операции (я ограничивался "джентльментским" набором из ">", "<", ">=", "<=", "NOT" и "LIKE", в третий - значение маски. Ну и функционал добавления-удаления в фильтре.

Сложнее с добавлением введенных условий в запрос, тут сложно дать какие-либо ОБЩИЕ рекомендации, т.к. сильно зависит от SQL сервера и исходного запроса, в который может входить что угодно, начиная от Where и заканчивая всякими юнионами и группировками. Если ADO, то там проще. Исходный запрос вставляется в результирующий как подзапрос. Правда, если у него был Order By, то его надо вынести также вовне.

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


Stas   (2008-05-23 11:25:00) [35]

cxGRID


Reindeer Moss Eater   (2008-05-23 11:25:00) [36]

http://img394.imageshack.us/img394/9882/gridls7.jpg

на запрос наложены пользовательские условия :
номер документа > 1 and номер документа < 700
and
(счет = x или счет равен y)

первое реализовано в ehlib'ом (ввод условия в заголовках столбца)
второе добавлено в наследнике (выбор по "или" по значению поля на котором стоит курсор в момент выбора)

во втором окне виден результирующий sql (первые четыре строки запроса от дизайнтайма)


Игорь Шевченко   (2008-05-23 11:08:00) [37]


> рук-ель


Не сокращ.


Reindeer Moss Eater   (2008-05-23 10:59:00) [38]

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


Sergey13   (2008-05-23 10:50:00) [39]

> [0] azamatufa ©   (23.05.08 10:37)

> dBase, FoxPro
Вот это, ИМХО, ни в какие ворота не лезет. Особенно для такой конфиденциальной штуки как кадровая БД.


Sergey13   (2008-05-23 10:45:00) [40]

А причем тут структура БД и "Условия отбора"? Какая между ними связь?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо