Текущее время: Пт, авг 08 2025, 16:53

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Customer-Exit Variable
СообщениеДобавлено: Чт, окт 20 2011, 11:57 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, янв 28 2009, 16:12
Сообщения: 55
Пол: Мужской
Друзья добрый день, не могу разобраться с простой казалось бы ситуацией, нужно взять аналогичный период предыдущего года из интервала дат 0CALMONTH при помощи Customer-Exit переменной. Создал переменную, ссылочный признак OCALMONTH, переменная представляет интервал.

Код ФМ:
DATA: L_S_RANGE LIKE RRRANGESID.
DATA: WA_VAR_RANGE LIKE RRRANGEEXIT.
DATA: LOC_VAR_RANGE LIKE RRRANGEEXIT.

DATA: DATE_L TYPE D, DATE_H TYPE D.
DATA: I_YEAR TYPE N LENGTH 4, I_MONTH TYPE N LENGTH 3.
DATA YEAR_ TYPE I.
DATA YEAR_STR(4).

CASE I_STEP.
WHEN 2.
CLEAR E_T_RANGE[].
CLEAR L_S_RANGE.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE IOBJNM = '0CALMONTH'.
IF LOC_VAR_RANGE-HIGH IS NOT INITIAL.
YEAR_ = LOC_VAR_RANGE-LOW(4) - 1.
YEAR_STR = YEAR_.
CONCATENATE YEAR_STR LOC_VAR_RANGE-LOW+4(2) INTO LOC_VAR_RANGE-LOW.
YEAR_ = LOC_VAR_RANGE-HIGH(4) - 1.
YEAR_STR = YEAR_.
CONCATENATE YEAR_STR LOC_VAR_RANGE-HIGH+4(2) INTO LOC_VAR_RANGE-HIGH.

L_S_RANGE-LOW = LOC_VAR_RANGE-LOW.
L_S_RANGE-HIGH = LOC_VAR_RANGE-HIGH.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDIF.
ENDLOOP.
ENDCASE.

в отладчике все проверяю, переменной ограничиваю показатель, но в отчете выборка работает неправильно. В чем причина, какие варианты? Спасибо

_________________
Impossible is nothing


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Customer-Exit Variable
СообщениеДобавлено: Чт, окт 20 2011, 13:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Kubera написал:
L_S_RANGE-OPT = 'EQ'.

Может быть L_S_RANGE-OPT = 'BT' :?:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Customer-Exit Variable
СообщениеДобавлено: Чт, окт 20 2011, 14:07 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 18 2008, 07:37
Сообщения: 256
Что-то я не вижу в вашем коде названия Exit переменной и переменной для 0CALMONTH из значения которой должна расчитываться Exit переменная, а вижу только название признака.
Может быть вот так надо:
Code:
CASE I_VNAM.
WHEN 'ИМЯ EXIT ПЕРЕМЕННОЙ'.
IF i_step = 2.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
   WHERE IOBJNM = 'ИМЯ ПЕРЕМЕННОЙ ДЛЯ ВВОДА ДАТЫ'.
   CLEAR L_S_RANGE.
ИТД

_________________
The extent of reliability of the data affect on the quality of resource allocation.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Customer-Exit Variable
СообщениеДобавлено: Чт, окт 20 2011, 15:21 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, янв 28 2009, 16:12
Сообщения: 55
Пол: Мужской
без разницы, могу указать и VNAM = 'имя переменной для 0CALMONTH' вместо IOBJNM = '0CALMONTH', ФМ отрабатывает верно и в первом и во втором, проверяю в RSRT, значения переменная получает - минус 1 год, и саму переменную для 0CALMONTH вынес из глобального фильтра в запросе, пробовал устанавливать "Константа - выбор" для переменной ФМ-а, но пока fail

_________________
Impossible is nothing


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Customer-Exit Variable
СообщениеДобавлено: Чт, окт 20 2011, 17:02 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, янв 28 2009, 16:12
Сообщения: 55
Пол: Мужской
может еще кто советом поможет, какие еще варианты есть смещать интервал из переменной не ABAP-ом

_________________
Impossible is nothing


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Customer-Exit Variable
СообщениеДобавлено: Чт, окт 20 2011, 18:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Завести признак "месяц", без года :)

А что совет ROKO не помог?
Замена этого:
Code:
L_S_RANGE-LOW = LOC_VAR_RANGE-LOW.
L_S_RANGE-HIGH = LOC_VAR_RANGE-HIGH.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.

Вот на это:
Code:
L_S_RANGE-LOW = LOC_VAR_RANGE-LOW.
L_S_RANGE-HIGH = LOC_VAR_RANGE-HIGH.
L_S_RANGE-SIGN = LOC_VAR_RANGE-SIGN.
L_S_RANGE-OPT = LOC_VAR_RANGE-OPT.

Ну и прочие ошибки:
1. Если выбрать в переменной 01.2011 - 10.2011; 12.2011, то этот код отдаст только 01.2010 - 10.2010. Нехорошо, лучше убрать условие на пустоту HIGH.
2. Код, в таком виде как есть будет заполнять ВСЕ user-exit переменные значением месяца. Это очень плохо. Ken написал все очень правильно.

ЗЫ Левелап :)

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Customer-Exit Variable
СообщениеДобавлено: Чт, окт 20 2011, 21:20 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, сен 21 2010, 23:23
Сообщения: 83
Переменную нужно делать не типа интервал а типа опция выбора.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Customer-Exit Variable
СообщениеДобавлено: Пт, окт 21 2011, 15:45 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, сен 30 2011, 11:47
Сообщения: 62
Пол: Мужской
Если это для ограничения выбора, то почему не использовать Переменную 0CALMONTH - 12 ?


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

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


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

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


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

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