Текущее время: Вт, июл 22 2025, 10:15

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Количество дней между двумя датами
СообщениеДобавлено: Ср, янв 16 2008, 09:10 
Специалист
Специалист

Зарегистрирован:
Вс, фев 26 2006, 14:33
Сообщения: 171
Всем привет!

Как можно расчитать количество дней между двумя датами в бексе?
Одна дата задается через переменную, вторая - лежит в кубе и выбирается в отчет.

Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Количество дней между двумя датами
СообщениеДобавлено: Ср, янв 16 2008, 16:03 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, авг 10 2005, 09:24
Сообщения: 1023
Mugunhwa написал(а):
Всем привет!

Как можно расчитать количество дней между двумя датами в бексе?
Одна дата задается через переменную, вторая - лежит в кубе и выбирается в отчет.

Заранее спасибо.


Вычитать пробовал?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 17 2008, 12:07 
Специалист
Специалист

Зарегистрирован:
Вс, фев 26 2006, 14:33
Сообщения: 171
где в бексе вычитать даты? через переменные-формулы? вообще пробовала, но получается фигня, потому что если из 20071001 вычесть 20070501, то получится 500


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

Зарегистрирован:
Чт, июл 14 2005, 13:55
Сообщения: 181
Откуда: Moscow
вот примерный код для вычисления кол-ва дней в периодах ( месяц, квартал, год)

WHEN 'ZS_QDAY'.
data: l_day type /BI0/OICALDAY,
last_day type /BI0/OICALDAY,
l_year type /BI0/OICALYEAR.
IF i_step = 2. "after the popup
loop AT i_t_var_range INTO l_var_range
WHERE vnam = '0P_CALYE'.

l_year = l_var_range-low.
endloop.

LOOP AT i_t_var_range INTO l_var_range
WHERE vnam = 'ZS_CMONT'.

CONCATENATE l_year l_var_range-low '01' into l_day.

CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
EXPORTING
DAY_IN = l_day
IMPORTING
LAST_DAY_OF_MONTH = last_day
EXCEPTIONS
DAY_IN_NOT_VALID = 1
OTHERS = 2.

g_s_range-low = last_day+6(2).
g_s_range-sign = 'I'.
g_s_range-opt = 'EQ'.
APPEND g_s_range TO e_t_range.
EXIT.

ENDLOOP.
if sy-subrc <> 0.
LOOP AT i_t_var_range INTO l_var_range
WHERE vnam = 'ZS_CQRT'.
case l_var_range-low.
when '1'.
CONCATENATE l_year '02' '01' into l_day.
CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
EXPORTING
DAY_IN = l_day
IMPORTING
LAST_DAY_OF_MONTH = last_day
EXCEPTIONS
DAY_IN_NOT_VALID = 1
OTHERS = 2.
g_s_range-low = last_day+6(2) + 62.
when '2'.
g_s_range-low = 91.
when '3' or '4'.
g_s_range-low = 92.
endcase.
g_s_range-sign = 'I'.
g_s_range-opt = 'EQ'.
APPEND g_s_range TO e_t_range.
EXIT.
endloop.
if sy-subrc <> 0.
CONCATENATE l_year '02' '01' into l_day.
CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
EXPORTING
DAY_IN = l_day
IMPORTING
LAST_DAY_OF_MONTH = last_day
EXCEPTIONS
DAY_IN_NOT_VALID = 1
OTHERS = 2.
g_s_range-low = last_day+6(2) + 337.
g_s_range-sign = 'I'.
g_s_range-opt = 'EQ'.
APPEND g_s_range TO e_t_range.
EXIT.
endif.
endif.
endif.

_________________
SAP is a diagnosis...


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

Зарегистрирован:
Вт, янв 30 2007, 17:10
Сообщения: 488
А не проще дату в DEC перевести и вычесть одну из другой - вот вам разница? :)
И кода на 3 строчки...

_________________
Карма - это суперпозиция граблей, на которые мы уже успели наступить, но которые еще не долетели...


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

Зарегистрирован:
Ср, авг 10 2005, 09:24
Сообщения: 1023
unique_saper написал(а):
вот примерный код для вычисления кол-ва дней в периодах ( месяц, квартал, год)



Если из одной переменной типа Дата вычесть другую пременную типа Дата, то получится количество дней...


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

Зарегистрирован:
Ср, авг 10 2005, 09:24
Сообщения: 1023
Mugunhwa написал(а):
где в бексе вычитать даты? через переменные-формулы? вообще пробовала, но получается фигня, потому что если из 20071001 вычесть 20070501, то получится 500


Тогда может положить в куб еще одну цифру - число дней от Р.Х. до даты в кубе. Далее в эксите считаем новую переменную - количе6ство дней от Р.Х. до даты, введенной юзером. Далее в бексе вычитаем одно из другого...

Но это в случае, если вычитание двух дат в бексе не дает количество дней между ними... Сам не пробовал, а попробовать лениво...


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

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


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

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


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

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