Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как поменять фон дат в календаре / 22 сообщений из 22, страница 1 из 1
29.09.2011, 15:46
    #37461406
Daedroth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поменять фон дат в календаре
На форуме APEXа мне не помогли. Может тут кто-нить поможет.

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

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

Нужен регион с календарём. В стиле Small Calendar желательно, но не обязательно.
...
Рейтинг: 0 / 0
30.09.2011, 11:31
    #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
30.09.2011, 13:19
    #37462770
Ivandr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поменять фон дат в календаре
зачем такие заморочки когда в APEX есть регион типа Календарь?
можно даже воспользоваться пакетом этого региона и вывести этот же календарь в регион PL/SQL примерно так:
APEX_040000.wwv_render_calendar2.show('select sysdate, ''Это мой день'', null');

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

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

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

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

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

А здесь пожалуйста разъясните.
...
Рейтинг: 0 / 0
30.09.2011, 15:21
    #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
30.09.2011, 15:57
    #37463123
Daedroth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поменять фон дат в календаре
non-apexoid, спасибо. Но тут есть загвоздка, если я меняю месяц а потом возвращаюсь обратно то цвет пропадает.
...
Рейтинг: 0 / 0
30.09.2011, 16:10
    #37463149
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поменять фон дат в календаре
Daedroth, у меня подсветка не исчезает.
1. Как вы меняете месяц и возвращаетесь обратно?
2. Куда вы вставили javascript подсветки дат?
...
Рейтинг: 0 / 0
30.09.2011, 16:32
    #37463189
Daedroth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поменять фон дат в календаре
non-apexoidDaedroth, у меня подсветка не исчезает.
1. Как вы меняете месяц и возвращаетесь обратно?
2. Куда вы вставили javascript подсветки дат?

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

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

Помогите спасите последняя надежда умирает!!!!!!!!!!!!!
...
Рейтинг: 0 / 0
30.09.2011, 22:03
    #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
30.09.2011, 22:17
    #37463660
Daedroth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поменять фон дат в календаре
non-apexoid, всё именно так и сделано. При первом запуске страницы радость, ибо все выходные дни и праздники отмечены красным. Но как только я хочу посмотреть предыдущий месяц (Август), то там уже ничего не подсвечивается и в Сентябре также перестаёт подсвечиваться. Выходим заходим и всё опять работает до первых действий с календарём. У меня есть сомнения в том, что поскольку кнопки "Назад", "Вперёд", "Сегодня" и т.д. выполняют Redirect to URL при помощи джаваскрипа - это как то влияет на написанный в фуере джаваскрипт.

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

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


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