powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как поменять фон дат в календаре
22 сообщений из 22, страница 1 из 1
Как поменять фон дат в календаре
    #37461406
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На форуме APEXа мне не помогли. Может тут кто-нить поможет.

Значит у меня следующая задача. Мне нужен календарь на котором были бы отмечены красным все выходные дни, то есть суббота, воскресенье и все праздники. У меня есть таблица, со всеми мне нужными данными, и функция которая возвращает 0 если выходной и 1 если будний, а также суммирует все рабочие дни. Как мне сделать такой календарь, при условии, что на календаре не должно быть видно прибинденых данных.

Помогите кто чем может.
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37461586
Ivandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какой APEX? 4?
Календарь нужен как объект APEX? Т.е. регион с изображением календаря?
Или же нужно что бы в Date Picker всплывал календарь измененный так как вы описали?
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37462219
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
APEX - v4.0.0.00.46
Browser - Internet Explorer 9
Data Base - Oracle 10g.

Нужен регион с календарём. В стиле Small Calendar желательно, но не обязательно.
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37462524
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На форуме APEX мне ответили. Ответ не помог, но идея мне понравилась. Может тут разберёмся.

Собственно код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
WITH logistics_calendar_sub
       AS (SELECT logistics_calendar_day_tbl.calendar_day_dt,
                  logistics_calendar_day_tbl.event_comments_txt
           FROM   logistics_calendar_day_tbl
           WHERE  logistics_calendar_day_tbl.public_ind = 'Y'),
    calendar_day_sub
       AS (SELECT calendar_day_tbl.calendar_day_dt, holiday_cde
           FROM   etaprd.calendar_day_tbl@etap, logistics_calendar_sub),
    pay_day_sub
       AS (SELECT calendar_day_tbl.calendar_day_dt, 'Pay Day' AS "PAYDAY"
           FROM   etaprd.calendar_day_tbl@etap
           WHERE  pay_week_ind = 'Y'
                  AND to_char (calendar_day_tbl.calendar_day_dt, 'DY') =
                        'FRI'),
    holiday_sub AS (SELECT holiday_cde, holiday_nme
                    FROM   etaprd.holiday_tbl@etap)
SELECT DISTINCT
       logistics_calendar_sub.calendar_day_dt,
        1  calendar_entry_type_cde,
       logistics_calendar_sub.event_comments_txt
FROM   logistics_calendar_sub
UNION
SELECT calendar_day_sub.calendar_day_dt calendar_day_dt,
        0  calendar_entry_type_cde,
          '<span style="color:660000;font-weight:bold">'
       || holiday_sub.holiday_nme
       || '</span>'
FROM   calendar_day_sub, holiday_sub
WHERE  holiday_sub.holiday_cde = calendar_day_sub.holiday_cde
UNION
SELECT calendar_day_sub.calendar_day_dt calendar_day_dt,
        0  calendar_entry_type_cde,
          '<span style="color:339933;font-weight:bold">'
       || pay_day_sub.payday
       || '</span>'
FROM   calendar_day_sub, pay_day_sub
WHERE  pay_day_sub.calendar_day_dt = calendar_day_sub.calendar_day_dt

Тут следующая проблема. Вставляя эту часть кода, где задаётся цвет,

Код: plaintext
1.
2.
3.
4.
5.
SELECT calendar_day_sub.calendar_day_dt calendar_day_dt,
        0  calendar_entry_type_cde,
          '<span style="color:660000;font-weight:bold">'
       || holiday_sub.holiday_nme
       || '</span>'
FROM   calendar_day_sub, holiday_sub

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

Может кто что поймёт и объяснит мне??
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37462770
Ivandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зачем такие заморочки когда в APEX есть регион типа Календарь?
можно даже воспользоваться пакетом этого региона и вывести этот же календарь в регион PL/SQL примерно так:
APEX_040000.wwv_render_calendar2.show('select sysdate, ''Это мой день'', null');

с помощью селекта, который передается в процедуру можно задать все ваши праздничные дни
удобней конечно настроить этот регион с помощью специально подготовленного региона Календарь, другой пример просто привел для понимания того как это работает
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37462808
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivandrзачем такие заморочки когда в APEX есть регион типа Календарь?
можно даже воспользоваться пакетом этого региона и вывести этот же календарь в регион PL/SQL примерно так:
APEX_040000.wwv_render_calendar2.show('select sysdate, ''Это мой день'', null');

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

Честно говоря я вас совсем не понял? Я могу с помощью селекта забить данные в календарь и покрасить, но мне нужно не это. Я хочу отметить красным циферки на календаре.
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37462936
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth, вообще, подкрашивание содержимого ячейки календаря - законное дело. Только дайте колонкам в запросе синонимы. У меня такой вариант работает. Всё-таки что вы хотите подкрасить в зависимости от дня - содержимое ячейки календаря или дату ячейки?
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37462951
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidDaedroth, вообще, подкрашивание содержимого ячейки календаря - законное дело. Я надеюсь что вы не пропустили частицу "не" :-)

А подкрасить я хочу именно дату. DaedrothЯ хочу отметить красным циферки на календаре.

non-apexoidТолько дайте колонкам в запросе синонимы

А здесь пожалуйста разъясните.
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37463032
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth, я имел в виду
Код: plaintext
select sysdate as dt, 'HolidayMark' as dtype, '<span>something</span>' as cell_content from dual;

А вообще для подсвечивания даты не обойтись без javascript. Вот know-how для приведённого выше запроса: не стоит в запросе рисовать всякие html, а вот в календаре выберите Display Type custom, в поле Column Format<span class="#DTYPE#"></span>#CELL_CONTENT#, затем в футере региона-календаря нарисуйте
Код: plaintext
1.
2.
3.
<script type="text/javascript">
$("span.HolidayMark").prev().css("color", "red");
</script>
Приведённый способ работает для small календаря. Для другого типа м.б. частности в поиске элемента DOM, содержащего дату.
Результат в приложении.
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37463123
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid, спасибо. Но тут есть загвоздка, если я меняю месяц а потом возвращаюсь обратно то цвет пропадает.
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37463149
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth, у меня подсветка не исчезает.
1. Как вы меняете месяц и возвращаетесь обратно?
2. Куда вы вставили javascript подсветки дат?
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37463189
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidDaedroth, у меня подсветка не исчезает.
1. Как вы меняете месяц и возвращаетесь обратно?
2. Куда вы вставили javascript подсветки дат?

1. Кнопками "Вперёд" "Назад"
2. В ReginFooter, региона календаря.

А также вопрос, что мне писать в джаваскрипте если я получаю значения функцией? Писать функцию как в SQL или просто имя функции?
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37463263
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любая работа с кнопками календаря приводят к сбросу цвета.

Помогите спасите последняя надежда умирает!!!!!!!!!!!!!
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37463649
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth,
Daedrothчто мне писать в джаваскрипте если я получаю значения функцией
Вопрос не понятен. Скрипт можно не менять. Попытаюсь подробнее:
По большому счету, календарь - это специфический report, и я предложил воспользоваться стандартным для report способом подсветки. Суть его в том, что в запрос отчета добавляется скрытый столбец, в зависимости от значения которого изменяется стиль подсвечиваемого элемента. В вашем случае (кстати, в стандартном календаре выходные подсвечиваются - но предположим, у вас какой-то особый календарь) запрос должен возвращать 3 колонки: дату, содержимое ячейки, признак выходного. Мне не очень хочется разбираться в названиях ваших таблиц, поэтому придумаю запрос сам:
Код: plaintext
1.
select dt,  cell_content, decode(holiday,  1 , 'HolidayMark', null) dtype from sometable
, здесь dt - дата, cell_content - содержимое ячейки для даты, м.б. пустым, holiday - признак выходного. Подставьте свои таблицы и поля. Суть - в результатах запроса в колонке dtype будет строка (литерал) HolidayMark, если dt - выходной.
Затем вы изменяете шаблон вывода значения в ячейке календаря, как я описал выше. Шаблон будет такой; <span class="#DTYPE#"></span>#CELL_CONTENT# Теперь если запустите приложение и посмотрите содержимое ячеек календаря отладчиком, например, firebug-м, увидите, что для обычных дней ячейка календаря будет содержать <span class=""></span>содержимое..., а для выходных <span class="HolidayMark"></span>содержимое...
Далее в футере региона календаря отрабатывает javascript (для small календаря пойдет тот, что я привел ранее). Суть - с помощью jQuery на странице ищутся элементы типа span с классом HolidayMark, и у элементов, предшествующим им, а это div с датой ячейки, изменяется стиль.
Всё.
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37463660
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid, всё именно так и сделано. При первом запуске страницы радость, ибо все выходные дни и праздники отмечены красным. Но как только я хочу посмотреть предыдущий месяц (Август), то там уже ничего не подсвечивается и в Сентябре также перестаёт подсвечиваться. Выходим заходим и всё опять работает до первых действий с календарём. У меня есть сомнения в том, что поскольку кнопки "Назад", "Вперёд", "Сегодня" и т.д. выполняют Redirect to URL при помощи джаваскрипа - это как то влияет на написанный в фуере джаваскрипт.

Снова повторяю, любая манипуляция с календарём приводит к патере стиля. То есть возвращается старый стиль.
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37463679
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, давайте сделаем тестовое приложение на apex.oracle.com с каким-нибудь тестовым примером, и разберёмся.
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37463685
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid, согласен. Вот тут можно Workspace - beginapex4; User - Daedroth; password - aaaaaa . Там приложение StateTest
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37463694
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth, с этими данными не залогиниться. Больше пытаться не буду, чтобы не заблокировать аккаунт. Подожду, пока не откроют доступ мне.
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37463737
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid, не знаю. Я так вхожу. Только что попробовал, тоже зашел. У вас не там акка?
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37463873
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth, отправил данные учетки на e-mail из вашего профиля. На apex.oracle.com сейчас версия 4.1, календарь там отличается от 4.0.2. на которой я проверял подсветку, поэтому пришлось изменить javascript. В этом минус подхода - так как внутренности компонентов меняются, при обновлении версий м.б. проблемы. Как выход - можно подумать над более сложным, но универсальным скриптом, или сделать свой плагин, или подумать об отказе от подсветки. Кстати, так как есть штатный механизм подсветки выходных, можно подумать, как использовать его.
...
Рейтинг: 0 / 0
Как поменять фон дат в календаре
    #37464996
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid, Большое при большое спасибо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как поменять фон дат в календаре
    #38964154
Фотография l_kator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid,

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


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