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

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


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

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


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

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