Последовательное заполнение фильтра в grid | |
---|---|
MERFLOW Автор Сообщений: 2 Дата регистрации: 20.11.2018 |
Здравствуйте.
Задача: таблица, подгружаемая в грид, состоит из 18 столбцов, нужно сделать 4 фильтра по 4 стоблцам типа (от, до), сами границы прописываются в эдитбоксах, после нажатия на кнопку, должна происходить фильтрация. Она может быть из абсолютно любых комбинаций . Вопрос: я сделал проверку эдитбоксов на empty в отдельных конструкциях, дабы можно было знать какая из границ есть, либо есть обе. после каждой проверки условия у меня идет set filter to , но каждая новая конструкция фильтра обнуляет фильтр предыдущей. Можно ли как-нибудь сделать что-то наподобие накопительного фильтра с границами? конструкции: IF EMPTY(thisform.edit3.Value) IF EMPTY(thisform.edit4.Value) ELSE SET FILTER TO table.a1<=VAL(ALLTRIM(thisform.edit4.Value)) GO TOP ENDIF ELSE IF EMPTY(thisform.edit4.Value) SET FILTER TO table.a1=>VAL(ALLTRIM(thisform.edit3.Value)) GO TOP ELSE SET FILTER TO table.a1=>VAL(ALLTRIM(thisform.edit3.Value)) AND table.a1<=VAL(ALLTRIM(thisform.edit4.Value)) GO TOP endif ENDIF IF EMPTY(thisform.edit7.Value) IF EMPTY(thisform.edit8.Value) ELSE SET FILTER TO table.a2<=VAL(ALLTRIM(thisform.edit8.Value)) GO TOP ENDIF ELSE IF EMPTY(thisform.edit8.Value) SET FILTER TO table.a2=>VAL(ALLTRIM(thisform.edit7.Value)) GO TOP ELSE SET FILTER TO table.a2=>VAL(ALLTRIM(thisform.edit7.Value)) AND table.a2<=VAL(ALLTRIM(thisform.edit8.Value)) GO TOP endif ENDIF Можно сделать, конечно сложную конструкцию, но это бред. Может есть какой-то вариант, буду очень благодарен за помощь. Исправлено 1 раз(а). Последнее : MERFLOW, 20.11.18 02:39 |
Re: Последовательное заполнение фильтра в grid | |
---|---|
1793 Сообщений: 290 Откуда: Озерск Дата регистрации: 17.10.2001 |
это ?
Исправлено 1 раз(а). Последнее : 1793, 20.11.18 06:04 |
Re: Последовательное заполнение фильтра в grid | |
---|---|
MERFLOW Автор Сообщений: 2 Дата регистрации: 20.11.2018 |
да, именно это, спасибо большое)
|
Re: Последовательное заполнение фильтра в grid | |
---|---|
XAndy Сообщений: 3803 Откуда: Киев Дата регистрации: 05.02.2004 |
Только thisform в выражение фильтра не засовывайте
|
Re: Последовательное заполнение фильтра в grid | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
А ещё лучше вообще не использовать SET FILTER, а сгенерировать и исполнить SELECT-SQL команду с полным набором такого рода "условий".
------------------ WBR, Igor |
Re: Последовательное заполнение фильтра в grid | |
---|---|
AndyNigmatec Сообщений: 1574 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Ну почему так категорично, в определенных рамках SET FILTER простое и быстро работающее решение ... ну ежели конечно не охулиард записей тянем и затем фильтруем
|
Re: Последовательное заполнение фильтра в grid | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Потому что через ж*пу работает этот самый фильтр Как только заходит речь о "листании" а не об однократном прогоне. Зачем делать 100 раз поиск одной и той же "подходящей" записи, если можно за 1 раз её найти, положить в курсор и далее не иметь никаких проблем с её показом.
Впрочем, т.к. зачастую "фильтруют" так что под условие попадает 100500 записей, и потом весело листают это дело в гриде, то разницы практически нет - и так и так г*но получается ------------------ WBR, Igor |
Re: Последовательное заполнение фильтра в grid | |
---|---|
AndyNigmatec Сообщений: 1574 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Ну про 100500 понятно - тут нет возражений, но например на справочнике даже порядка 10 тыс записей тормозов нет, зато скорость - "не успел дописать" ))) - а ежели выбирать из этих же 10 с сервака - то уже задержка ... если логика не предполагает слишком частого использования - то и фиг с ней с задержкой, а ежели в режиме "постоянно" - то как раз простой как топор фильтр самое то. Ну особенности его работы при "листании" - да, есть такое, тут по задаче смотреть нуна, на практике у меня обычно под фильтром оказывалось 5-10 записей - как раз то что нужно )))
Исправлено 1 раз(а). Последнее : AndyNigmatec, 22.11.18 07:16 |
Re: Последовательное заполнение фильтра в grid | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Если под фильтром оказывается 5-10 записей, то по скорости отбора нет решительно никакой разницы между SET FILTER и SELECT - НО SET FILTER будет снова и снова делать этот отбор - при перерисовках грида, скроллинге (даже бессмысленном - просто подёргать скролбар) и т.п.
Единственный плюс SET FILTER в том, что он "останавливается" при заполнении видимой части грида - т.е. как раз для ситуаций когда под условие попадает 100500 записей, SELECT будет добросовестно их все в курсор гнать (ну если там какой TOP не дописать), а SET FILTER вынимет первые 20-30 записей и остановится до того как грид начнут "крутить". ------------------ WBR, Igor |
© 2000-2024 Fox Club  |