powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как сделать фильтр по датам в отчёте?
10 сообщений из 10, страница 1 из 1
Как сделать фильтр по датам в отчёте?
    #39332690
Фотография Pastic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужно сделать фильтр по дате в журнале ошибок на APEX 4.2.2.00.11.
В Region Source я написал:
Код: plsql
1.
2.
3.
4.
select err_log_id, err_msg, err_date, request_id, err_info
from err_log
where (err_date>=:P9_D1 or nvl(:P9_D1, '-1')='-1') 
  and (err_date<=:P9_D2 or nvl(:P9_D2, '-1')='-1')



На страницу, соответственно, добавил кнопку "Поиск" и два поля для дат (Items). Определил динамическое действие OnClick:
Event - Click
Selection Type - Button
Button - P9_BTNSRCH (Поиск)

True Action:
Action - Refresh
Fire When Event Result is - True

Но проблема в том, что значения с полями с датами не передаются в сессию - см. скриншот.

Передачу значений дат в сессию я пытался сделать так: в динамическое действие OnClick я добавил ещё одно True Action (Sequence=10) со следующим кодом на JavaScript (jQuery):
Код: javascript
1.
2.
3.
4.
5.
6.
$('#P9_D1').change(function)(){
  $x("P9_D1").value = $v("P9_D1");
});
$('#P9_D2').change(function)(){
  $x("P9_D2").value = $v("P9_D2");
});



Но значения дат в сессию не передаются, и, соответственно, фильтр не работает. Что я сделал не так?
...
Рейтинг: 0 / 0
Как сделать фильтр по датам в отчёте?
    #39332719
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pastic,

Page Items to Submit(P9_D1,P9_D2) укажите в регионе.
Это указание значения каких айтемов требуется отправить на сервер перед обновлением.

Динамик экшн снесите.
Теперь познавательная инфа:
Если хочется отправлять значение на сервер при изменении айтема или ещё какому-то событию - На айтем вешаете DA с типом PL/SQL в коде null; в Items to Submit прописываете какие вам нужны.

То что вы написали в джаваскрипте это масло масляное. Функции работают примерно так:
$x(id)-получить элемент c id, $v(id) это $x(id).value, $s(id,val) это $x(id).value=val

Главное их достоинство, что они для разных типов айтемов правильно ставят и возвращают значения. а так - jquery $('#P9_D1').attr('value',val); прекрасно работает для текстовых(датных в том числе) айтемов.
...
Рейтинг: 0 / 0
Как сделать фильтр по датам в отчёте?
    #39332732
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heavyside,
+1
Ещё есть программно устанавливаемые фильтры в IR на даты.
Если почему то не нравится юзверю самому ставить фильтр в колонке.
...
Рейтинг: 0 / 0
Как сделать фильтр по датам в отчёте?
    #39332812
Фотография Pastic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heavysidePastic,

Page Items to Submit(P9_D1,P9_D2) укажите в регионе.
Это указание значения каких айтемов требуется отправить на сервер перед обновлением.

Сделал.

heavysideДинамик экшн снесите.

Сделал.

heavysideТеперь познавательная инфа:
Если хочется отправлять значение на сервер при изменении айтема или ещё какому-то событию - На айтем вешаете DA с типом PL/SQL в коде null;

Я сделал так: в дата пикере в разделе source указал следующее:
Source Used - Always, replacing any existing value in session state
Source Type - PL/SQL Expression
Maintain session state - Per session
Source value or expression - null;

heavysideв Items to Submit прописываете какие вам нужны.

Я так понял, что здесь имелось в виду "Page Items to Submit(P9_D1,P9_D2) укажите в регионе", поэтому нигде их более не указывал.

И результат тот же - не фильтруются даты. В чём проблема?
...
Рейтинг: 0 / 0
Как сделать фильтр по датам в отчёте?
    #39332830
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PasticЯ сделал так: в дата пикере в разделе source указал следующее:
Source Used - Always, replacing any existing value in session state
Source Type - PL/SQL Expression
Maintain session state - Per session
Source value or expression - null;
делайте что вам говорят, а не наоборот.
...
Рейтинг: 0 / 0
Как сделать фильтр по датам в отчёте?
    #39332840
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pastic,

Так, всё что сделали по познавательной инфе - убираете. Там информация на будущее, пока что без неё обойдётесь.
Тем более, что всё равно не туда запихнули.

Вам надо: В Page Items to Submit (поле в регионе под SQL Query, куда вы забивали запрос) ввести через запятую, без двоеточий, пробелов и чего-либо ещё два своих айтема: P9_D1,P9_D2
Сохраняете. Всё. Должно работать. Если не работает- меняйте запрос на select :P9_D1 d1, :P9_D2 from dual
Проверяете что выводится. Может у вас плохо настроен формат и вам надо явно делать преобразование to_date(:P9_D1,'ВАШФОРМАТДАТЫ') прям в запросе.
...
Рейтинг: 0 / 0
Как сделать фильтр по датам в отчёте?
    #39332846
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heavysideВам надо: В Page Items to Submit (поле в регионе под SQL Query, куда вы забивали запрос) ввести через запятую, без двоеточий, пробелов и чего-либо ещё два своих айтема: P9_D1,P9_D2
Сохраняете. Всё. Должно работать.
+1
...
Рейтинг: 0 / 0
Как сделать фильтр по датам в отчёте?
    #39332884
Фотография Pastic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heavysidePastic,

Так, всё что сделали по познавательной инфе - убираете. Там информация на будущее, пока что без неё обойдётесь.
Тем более, что всё равно не туда запихнули.

Убрал.

heavysideВам надо: В Page Items to Submit (поле в регионе под SQL Query, куда вы забивали запрос) ввести через запятую, без двоеточий, пробелов и чего-либо ещё два своих айтема: P9_D1,P9_D2

Сделал.

heavysideСохраняете. Всё. Должно работать.

Не работает.

heavysideЕсли не работает- меняйте запрос на select :P9_D1 d1, :P9_D2 from dual
Проверяете что выводится.

Ничего не выводится - видимо, запрос возвращает пустое множество. При этом вместо старых полей добавилось два строковых.

heavysideМожет у вас плохо настроен формат и вам надо явно делать преобразование to_date(:P9_D1,'ВАШФОРМАТДАТЫ') прям в запросе.

В Region Source вставил:
Код: plsql
1.
2.
3.
4.
select err_date, err_msg, request_id, err_info
from err_log
where (err_date>=to_date(:P9_D1, 'dd.mm.yyyy') or nvl(:P9_D1, '-1')='-1') 
  and (err_date<=to_date(:P9_D2, 'dd.mm.yyyy') or nvl(:P9_D2, '-1')='-1')



heavysideВ Page Items to Submit (поле в регионе под SQL Query, куда вы забивали запрос) ввести через запятую, без двоеточий, пробелов и чего-либо ещё два своих айтема: P9_D1,P9_D2

Сделал. Всё равно почему-то не работает.
...
Рейтинг: 0 / 0
Как сделать фильтр по датам в отчёте?
    #39332908
Фотография Pastic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заработало когда я добавил вышеприведённое динамическое действие OnClick:
Event - Click
Selection Type - Button
Button - P9_BTNSRCH (Поиск)

True Action:
Action - Refresh
Fire When Event Result is - True
Selection Type - Region

Большое спасибо за помощь.
...
Рейтинг: 0 / 0
Как сделать фильтр по датам в отчёте?
    #39332966
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pastic,

Тьфу, я думал вы поиск в гриде жмете(у IR). Да, правильно сделали.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как сделать фильтр по датам в отчёте?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]