Текущее время: Чт, июл 24 2025, 06:46

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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