Текущее время: Пн, июл 21 2025, 06:04

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


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

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


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

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