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

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


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

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


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

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