Текущее время: Сб, июл 19 2025, 15:47

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Ограничение признака в BEx
СообщениеДобавлено: Чт, май 06 2010, 14:20 
Ассистент
Ассистент

Зарегистрирован:
Пн, мар 16 2009, 18:03
Сообщения: 49
Откуда: Самара
Пол: Мужской
Приветствую, коллеги!

Мне необходимо в web отчете при проваливании ограничить признак 0DATE двумя датами (интервал с.. по..). Обе даты передаются из отчета. Беда в том, что нижняя граница даты всегда известна, а вот верхняя может быть пустой. В таком случае верхняя граница должна равняться текущей (сегодняшней) дате.
Каким образом можно осуществить такую проверку??
Есть предчувствие, что нужно через customer-exit переменные делать, но как?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ограничение признака в BEx
СообщениеДобавлено: Чт, май 06 2010, 14:24 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Вт, дек 12 2006, 23:57
Сообщения: 1002
Откуда: London
Пол: Мужской
Ммм. Всмысле, как?
customer-exit, где верхняя граница всегда будет равна sy-datum.
В чем вопрос?

P.S. Может быть я не правильно понял вопрос, но посутплю как наши любимые индусы с sdn :)
По поводу customer-exit-ов:

Часть 1-я (как раз пример с датами):
https://www.sdn.sap.com/irj/servlet/prt ... 0-%201.pdf

Часть 2.
https://www.sdn.sap.com/irj/servlet/prt ... rt%202.pdf

Часть 3.
http://www.sdn.sap.com/irj/scn/index?ri ... ayout=true

Часть 4.
http://www.sdn.sap.com/irj/scn/go/porta ... ayout=true


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ограничение признака в BEx
СообщениеДобавлено: Чт, май 06 2010, 15:28 
Ассистент
Ассистент

Зарегистрирован:
Пн, мар 16 2009, 18:03
Сообщения: 49
Откуда: Самара
Пол: Мужской
Vadoid написал:
Ммм. Всмысле, как?
customer-exit, где верхняя граница всегда будет равна sy-datum.
В чем вопрос?


Верхняя граница равна sy-datum только в том случае если она не передается из запроса при проваливании. Т.е. существует первый запрос (Z_REP_1) и второй (Z_REP_2). в первом есть признаки ZDATE_LS и ZDATE_NX. При проваливании во второй запрос из первого передаются эти признаки и ограничивают 0DATE (с ZDATE_LS по ZDATE_NX). Нужно сделать так, чтобы если ZDATE_NX пуста (не опраделена, BEx представляет как #), то равнялась sy-datum


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ограничение признака в BEx  Тема решена
СообщениеДобавлено: Чт, май 06 2010, 16:47 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Вт, дек 12 2006, 23:57
Сообщения: 1002
Откуда: London
Пол: Мужской
По логике, тебе нужно считывать значение переменной по такому типу:

Code:
when 'ZDATE_NX_NEW'.

    clear l_s_var.

    if I_STEP = 2. "- > тут не уверен, наверное STEP 1 все же.
       
      read table I_T_VAR_RANGE with key vnam = 'ZDATE_NX' into l_s_var.

      if sy-subrc = 0.

         If l_s_var is initial.

         l_s_range-LOW= sy-datum.
        l_s_range-SIGN   = 'I'.
        l_s_range-OPT    = 'EQ'.
        append l_s_range to E_T_RANGE.
       
         else.

         l_s_range-LOW= l_s_var-low.
        l_s_range-SIGN   = 'I'.
        l_s_range-OPT    = 'EQ'.
        append l_s_range to E_T_RANGE.

       endif.
      endif.
    endif.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ограничение признака в BEx
СообщениеДобавлено: Пт, май 07 2010, 13:46 
Ассистент
Ассистент

Зарегистрирован:
Пн, мар 16 2009, 18:03
Сообщения: 49
Откуда: Самара
Пол: Мужской
Vadoid написал:
По логике, тебе нужно считывать значение переменной по такому типу:

Этот вариант подошел. Естественно доработал его до своей задачи.
Правда некоторые вещи пришлось изменить:
Vadoid написал:
Code:
If l_s_var is initial.

Так не работало. пришлось изменить на
Code:
If l_s_var-low = '#'.


И с переменной i_step: пока еще не совсем понял зачем и как она работает. При использовании кода Vadoid у меня в web
заработало при i_step=2, хотя в отладчик в RSRT показывал i_step=1.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ограничение признака в BEx
СообщениеДобавлено: Пт, май 07 2010, 14:05 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Вт, дек 12 2006, 23:57
Сообщения: 1002
Откуда: London
Пол: Мужской
Я рад :)
"#" потому что, видимо, значение все же не initial, а именно "#" - моя логика на пустое значение была построена.

Что касается степов -

i_step = 1

Вызов переменных в этом степе происходит до появления экрана ввода переменных.

i_step = 2

Вызов происходит сразу после ввода переменных на экране ввода (если только эта же самая переменная не отработала в степе 1)

i_step = 3

Самый таинственный и неиспользуемый, на мой взгляд, степ -
Здесь можно проверять значения переменных. Если заспихаем сюда RAISE, то экран ввода переменных еще раз появится,
ну и после этого снова все переменные отработают по степу 2.

i_step = 0

Используется только для проверки авторизаций.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ограничение признака в BEx
СообщениеДобавлено: Пт, май 07 2010, 14:09 
Ассистент
Ассистент

Зарегистрирован:
Пн, мар 16 2009, 18:03
Сообщения: 49
Откуда: Самара
Пол: Мужской
Спасибо, теперь стало более понятно.
Всех с наступающим праздником!!!


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

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


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

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


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

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