|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
Есть бд из примерно 20000 строк, в ней около 25 столбцов. Необходимо: - на этой же странице править эти строки; - организовать поиск по нескольким (не менее 10-ти) фильтрам за раз. Если бы был обыкновенный report, то там поиск с фильтрами идет автоматически, что очень удобно, но нужна tabular form. Для неё добавила строку поиска. Как сделать поиск по одному критерию - понятно (легко получается через select... from... where...or), а вот как добавить несколько фильтров... Очень бы хотелось, чтобы это было похоже на поиск с фильтрами в обыкновенном репорте. Подскажите, пожалуйста, как это можно осуществить. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2013, 08:33 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
toorа вот как добавить несколько фильтров... Аналогично: поле для ввода/выбора фильтра, фильтрация по этому полю в запросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2013, 15:01 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
Добавила поле для фильтра с LOV, в нём при зажатии Ctrl можно выбрать несколько полей. Каким должен быть запрос в Region Source, чтобы при выборе нескольких пунктов в фильтре при написании запроса в строке поиска этот самый поиск выполнялся по нажатию кнопки поиска? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 01:51 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
toor, Код: plsql 1. 2. 3. 4. 5.
Чтобы было понятнее, можете посмотреть, какое значение в PL/SQL принимает поле-фильтр, когда в нём выбрано несколько значений: сабмит кнопкой, потом Session на панели разработчика в низу страницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 04:08 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
А что, если сделать чекбоксы в шапках таблицы? Тогда в зависимости от наличия галочки в чекбоксах по выбранным столбцам и фильтровать, написав соответствующий запрос. В Tabular Form ведь такое можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 02:58 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
Подскажите, пожалуйста, как добавить чекбоксы только в название каждого столбца (не на каждой строке)? Но при этом подразумевать, что при нажатии на чекбокс поиск будет вестись по всему столбцу. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 04:27 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
Товарищи! Очень надо! Помогите, пожалуйста, с данным вопросом. Как сделать чекбоксы только в название каждого столбца? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 12:00 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
Поиск рулит, я когда то тоже задавался этим вопросам! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 12:07 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
kasik, в том-то и дело, что форма табулированная, и поиска по умолчанию нет. Если бы было, как в интерактивном репорте, было бы счастье. Не подскажите, как сделать поиск с фильтрами по колонкам-столбцам в виде чекбоксов (всё, как выше описано)? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 01:17 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
toorkasik, в том-то и дело, что форма табулированная, и поиска по умолчанию нет. Если бы было, как в интерактивном репорте, было бы счастье. Не подскажите, как сделать поиск с фильтрами по колонкам-столбцам в виде чекбоксов (всё, как выше описано)?Сделайте лучше как suPPLer сказал... Код: plsql 1. 2. 3. 4. 5.
Такой запрос будет фильтроваться только по тем фильтрам, в которые введено значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 08:19 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
Подскажите ещё, пожалуйста, как сделать, чтобы каждый последующий фильтр отфильтровывал в найденном? Т.е. ввели значение в один фильтр - выдало сколько-то строк. Потом вводим значение в другой фильтр, и поиск производится в уже найденном и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2013, 02:18 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
Если одновременно вводить значения в несколько фильтров: select * from mytable where (col1 = :P_FILTER1 or :P_FILTER1 is null) or (col2 = :P_FILTER2 or :P_FILTER2 is null) or (col3 = :P_FILTER3 or :P_FILTER3 is null) , на выходе получаем не один единственный результат, удовлетворяющий всем фильтрам, а все возможные варианты, и они не пересекаются. Как это исправить? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2013, 02:30 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
toorЕсли одновременно вводить значения в несколько фильтров: select * from mytable where (col1 = :P_FILTER1 or :P_FILTER1 is null) and (col2 = :P_FILTER2 or :P_FILTER2 is null) and (col3 = :P_FILTER3 or :P_FILTER3 is null) , на выходе получаем не один единственный результат, удовлетворяющий всем фильтрам, а все возможные варианты, и они не пересекаются. Как это исправить?OR на AND заменить, вестимо... Извините, что в заблуждение ввел - опечатку сделал, но ведь suPPLer еще в третьем посте сверху все правильно написал - через AND... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2013, 08:10 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
Но ведь в случае AND, если один из полей фильтров останется пустым, поиск выдаст нулевой результат. Вполне возможен вариант, что известны не все искомые поля. Как тогда быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2013, 14:42 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
toorНо ведь в случае AND, если один из полей фильтров останется пустым, поиск выдаст нулевой результат. Вполне возможен вариант, что известны не все искомые поля. Как тогда быть?Еще раз внимательно вглядитесь в то, что написано в секции WHERE, и вы поймете, что ошибаетесь: Код: plsql 1. 2. 3. 4. 5.
Например, у вас - col1, col2 и col3 - это поля "ФИО". В поле P_FILTER1 вы ввели "Иванов", а остальные ва оставили пустыми. Какой будет результат? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2013, 15:39 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
Вы правы... Спасибо Вам большое! У меня ещё один вопрос: в SQl Commands всё хорошо запускается, ищет (ещё раз спасибо!), а когда перехожу на страницу репорта и там пытаюсь ввести значения в поля поиска, но не первого, а , скажем, второго поля, при сабмите пишет, что необходимо обязательно ввести значение в первое поле. С чем я напутала? Почему апекс ругается только на первое поле? А со всеми остальными, если они пустые, всё в порядке? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2013, 18:18 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
toorС чем я напутала? 0. Edit Page Item->User Interface->Template=Required [with help]? 1. Edit Page Item->Settings->Value Required=Yes? 2. Computations? PS: Пожалуйста, для разных вопросов создавайте разные темы. Не надо делать из темы свалку с кучей вопросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2013, 18:31 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
Возник ещё один вопрос по теме: если при поиске не вводить значения в фильтрах, а сделать в некоторых фильтрах выпадающие списки, как изменится запрос, чтобы по выбранному значению из списка осуществлялся поиск? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2013, 06:12 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
toorВозник ещё один вопрос по теме: если при поиске не вводить значения в фильтрах, а сделать в некоторых фильтрах выпадающие списки, как изменится запрос, чтобы по выбранному значению из списка осуществлялся поиск?Никак, ну или почти никак не изменится. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2013, 08:14 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
Если никак запрос не менять, то никак и не ищет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2013, 09:49 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
toorЕсли никак запрос не менять, то никак и не ищет.Ну потому что вы нам ничего не говорите... Что за выпадающие списки? Статические или динамические? Если динамические, какой там запрос? У вас есть справочная таблица - источник списка значений (LOV), и основная, связанная с ней по внешнему ключу? Или что-то другое? Как работало раньше, до перехода на Select List? Выкладывайте все, как врачам на медосмотре... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2013, 10:15 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
Итак, доктор, рассказываю: было, как мне здесь и посоветовали: select * from mytable where (col1 = :P_FILTER1 or :P_FILTER1 is null) and (col2 = :P_FILTER2 or :P_FILTER2 is null) and (col3 = :P_FILTER3 or :P_FILTER3 is null) Всё отлично ищется, если забивать значения в фильтры ручками. Для фильтра по дате изначально был аналогичный запрос, но понадобилось фильтровать за какой-то определенный период, и запрос поменялся на: and (mydate between :P_DATE1 and :P_DATE2 or :P_DATE1 is null or :P_DATE2 is null) После этого фильтровать по конкретной дате, а не за период, не выходит. Также для нескольких полей-фильтров есть определенные параметры, по которым надо фильтровать. Для этих параметров есть справочные таблицы, которые я и вставляю в поля-фильтры (Display as Select List). Поиск, если в фильтре выбрать какой-нибудь объект из списка, по данному параметру не идет, no data found. А хотелось бы ещё сделать так, чтобы можно было в одном фильтре выбирать одновременно несколько значений из LOV и одновременно по этим выбранным значениям осуществлять поиск. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2013, 11:13 |
|
фильтры в tabular form
|
|||
---|---|---|---|
#18+
toorДля фильтра по дате изначально был аналогичный запрос, но понадобилось фильтровать за какой-то определенный период, и запрос поменялся на: and (mydate between :P_DATE1 and :P_DATE2 or :P_DATE1 is null or :P_DATE2 is null) После этого фильтровать по конкретной дате, а не за период, не выходит.И не должно выходить. У вас в запросе - between, то есть "больше одной и меньше другой". Если надо выбрать именно конкретную дату, то надо как-то указать, что ищете именно по конкретной дате. Указать надо, во-первых, пользователю, чтобы он знал, куда что вводить, а во-вторых, указать в запросе, где использовать равенство, а где - неравенство. Для начала, попробуйте так. Для диапазона: Код: plsql 1. 2.
Если mydate содержит дату и время, то имеет смысл написать Код: plsql 1. 2.
Для конкретной даты. Например, есть поле P_DATE3 для выбора одной конкретной даты, тогда так: Код: plsql 1. 2. 3.
toorТакже для нескольких полей-фильтров есть определенные параметры, по которым надо фильтровать. Для этих параметров есть справочные таблицы, которые я и вставляю в поля-фильтры (Display as Select List). Поиск, если в фильтре выбрать какой-нибудь объект из списка, по данному параметру не идет, no data found. Таблицы Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Запрос в Select List (источник LOV) с названием P1_DEP: Код: plsql 1. 2.
Запрос для Tabular Form Код: plsql 1. 2. 3.
Если в выпадающем списке ничего не выбрано, Tabular Form покажет всех пользователей. Если выбран департамент - покажет всех пользователей из этого департамента. Если бы вы написали названия своих полей и таблиц, я бы вам с ними пример привел. toorА хотелось бы ещё сделать так, чтобы можно было в одном фильтре выбирать одновременно несколько значений из LOV и одновременно по этим выбранным значениям осуществлять поиск.Теоретически, Select List содержит опцию "выделять несколько строк". Как это работает на практике - не знаю пока. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2013, 11:44 |
|
|
start [/forum/topic.php?fid=50&msg=38157446&tid=1875807]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 155ms |
0 / 0 |