Текущее время: Сб, июл 26 2025, 11:38

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Проверка дня с помощью ФМ HOLIDAY_CHECK_AND_GET_INFO
СообщениеДобавлено: Ср, мар 05 2008, 10:02 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 26 2007, 08:42
Сообщения: 175
Нужно проверить, является дата праздничным днем или нет.
Проверяю с помощью ФМ HOLIDAY_CHECK_AND_GET_INFO, но проблема в том, что 23 февраля в этом году попадает на субботу - праздничный день. В связи с переносом выходного на 25 февраля - ФМ возвращает признак праздничного дня.
Как мне определить только праздничные дни?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 11:00 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
Надот вызывать ФМ с WITH_HOLIDAY_ATTRIBUTES = 'X'.
И затем анализировать HOLIDAY_ATTRIBUTES.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 11:23 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 26 2007, 08:42
Сообщения: 175
Так и сделал - совершенно одинаковые атрибуты праздника вернул для 23 и 25 февраля :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 12:08 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 26 2007, 08:42
Сообщения: 175
Ничего умнее не придумал, чем:
Code:
CALL FUNCTION 'HOLIDAY_CHECK_AND_GET_INFO'
  EXPORTING
    date                    = datum
    holiday_calendar_id     = 'RU'
    with_holiday_attributes = 'X'
*   IMPORTING
*   HOLIDAY_FOUND           =
  TABLES
    holiday_attributes      = holiday.

day = datum+6(2).
IF sy-subrc = 0 AND            " Праздничный день

   holiday-motag = day.       " Праздник не перенесен на другой день

ENDIF.

Bully: Это же так просто - выделил текст и нажал на code


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 12:29 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
w_f написал(а):
Так и сделал - совершенно одинаковые атрибуты праздника вернул для 23 и 25 февраля :(

А почему должны быть разные, как раз и должны быть одинаковые. Вы должны увидеть, что 25-е было сгенерировано из 23.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 12:46 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 26 2007, 08:42
Сообщения: 175
Задача была именно отловить праздничные дни.
Очередной отпуск, попадающий на эти дни (например 23 февраля) в табеле проставляется как В, а перенесенные выходные (например 25 февраля) как ОТ.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 14:23 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
w_f написал(а):
Задача была именно отловить праздничные дни.
Очередной отпуск, попадающий на эти дни (например 23 февраля) в табеле проставляется как В, а перенесенные выходные (например 25 февраля) как ОТ.

Вы запускаете ФМ за 25 число , а в HOLIDAY_ATTRIBUTES видите 23,
отсюда и понимаете, что он перенесен.
И наоборот если запустить на 23, а в HOLIDAY_ATTRIBUTES видите 23,
значит это и есть праздник.
Так что все ФМ показывает.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 14:53 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 26 2007, 08:42
Сообщения: 175
Спасибо!
Именно так и работает мой кусок кода!
:)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 16:54 
Ассистент
Ассистент

Зарегистрирован:
Вт, фев 27 2007, 12:10
Сообщения: 45
Пол: Мужской
Попробуйте ФМ DAY_ATTRIBUTES_GET. Для праздника в поле HOLIDAY будет стоять 'X'.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 19:51 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
w_f написал(а):
Спасибо!
Именно так и работает мой кусок кода!
:)

прошу прощения, код не смотрел, больно некрасиво начал
Цитата:
Ничего умнее не придумал, чем:
:)
Зачем придумывать что-то умнее?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 20:01 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
Да и советы по коду.
1. Никогда не вызывай CALL FUNCTION без EXCEPTION, если в ФМ они есть. Будут очень вероятно дампы.
2. Лучше возвращать и проверять HOLIDAY_FOUND (а не sy-subrc).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 06 2008, 14:22 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 26 2007, 08:42
Сообщения: 175
Murzik написал(а):
Да и советы по коду.
1. Никогда не вызывай CALL FUNCTION без EXCEPTION, если в ФМ они есть. Будут очень вероятно дампы.
2. Лучше возвращать и проверять HOLIDAY_FOUND (а не sy-subrc).


Дельное замечание!
Пасиб!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 06 2008, 16:00 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 26 2007, 08:42
Сообщения: 175
konvk написал:
Попробуйте ФМ DAY_ATTRIBUTES_GET. Для праздника в поле HOLIDAY будет стоять 'X'.

А ведь работает! :D
Положим ФМ в копилочку знаний :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot], Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB