Текущее время: Вс, июл 20 2025, 23:32

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


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Скрыть поля на selection-screen
СообщениеДобавлено: Пт, июл 13 2007, 10:22 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 16 2007, 19:00
Сообщения: 168
Откуда: город
Заранее прошу прощения за такой простой вопрос. Не могу понять, почему программа ведет себя не так, как я хочу :) А хочу я того, чтобы с селекшн-скрина убирались все блоки, кроме одного, который будет выбираться дропдаунбоксом, код которого ниже:
Code:
SELECTION-SCREEN BEGIN OF BLOCK b_auswahl WITH FRAME TITLE text-s01.
PARAMETER p_auswhl TYPE aus AS LISTBOX VISIBLE LENGTH 20
  USER-COMMAND change_view.
SELECTION-SCREEN END OF BLOCK b_auswahl.


Здесь я перехватываю событие выбора и пытаюсь скрыть все, что не нужно, код отрабатывает, но ничего не происходит:
Code:
AT SELECTION-SCREEN OUTPUT.
  CASE sscrfields-ucomm.
    WHEN 'CHANGE_VIEW'.
      CASE p_auswhl.
        WHEN '1'.
          LOOP AT SCREEN.
            IF screen-name = 'P_LIFNR'.
              screen-active = '1'.
              screen-invisible = '0'.
              screen-input = '1'.
              MODIFY SCREEN.
            ELSE.
              screen-active = '0'.
              screen-invisible = '1'.
              screen-input = '0'.
              MODIFY SCREEN.
            ENDIF.
          ENDLOOP.
        WHEN '2'.
        WHEN '3'.
        WHEN '4'.
        WHEN '5'.
        WHEN '6'.
      ENDCASE.
  ENDCASE.


Посоветуйте что, а то наверное у меня затуп. :?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 13 2007, 11:10 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 09 2007, 15:40
Сообщения: 56
Откуда: Поволжье
ЧТО-то не понял, в какой момент хочешь скрыть блок?

_________________
Важно качество, а не количество. Ибо стремясь за количесвом можно серьезно пожертвовать качеством ... ;)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 13 2007, 11:53 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 16 2007, 19:00
Сообщения: 168
Откуда: город
Сразу же, как только был выбран один из вариантов в лист-боксе.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 13 2007, 12:15 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Отлавливай свой sscrfields-ucomm в AT SELECTION-SCREEN. В AT SELECTION-SCREEN OUTPUT он уже пустой... По крайней мере у меня (сейчас проверял).
Ну или в дебаг иди...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрыть поля на selection-screen
СообщениеДобавлено: Пт, июл 13 2007, 13:05 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
влад написал(а):
...
Здесь я перехватываю событие выбора и пытаюсь скрыть все, что не нужно, код отрабатывает, но ничего не происходит:
Code:
AT SELECTION-SCREEN OUTPUT.
  CASE sscrfields-ucomm.
    WHEN 'CHANGE_VIEW'.
      CASE p_auswhl.
        WHEN '1'.
...

Посоветуйте что, а то наверное у меня затуп. :?



Первое, как верно заметил John Doe, комманду следует отлавливать в событии AT SELECTION-SCREEN. и сохранять где-либо соответствующий признак, указывающий на соответствующий режим отображения.
Второе. Проверять и изменять атрибуты у полей надо всегда при выполнении события AT SELECTION-SCREEN OUTPUT. Так как в момент начала работы данного события все изменения атрибутов сбрасываются на дефолтные. Пример:

Code:
parameters: P_P type I.
at selection-screen output.
  if P_P eq 1 or P_P eq 3 .
    loop at screen.
      case SCREEN-NAME.
        when 'P_P'.
          SCREEN-INPUT = 0.
          SCREEN-INVISIBLE = 1.
          modify screen.
      endcase.
    endloop.
  endif.
at selection-screen.
  P_P = P_P + 1.
start-of-selection.
  exit.
Достаточно просто нажимать ENTER на экране и будет всё очевидно.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрыть поля на selection-screen
СообщениеДобавлено: Пт, июл 13 2007, 14:11 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 16 2007, 19:00
Сообщения: 168
Откуда: город
Спасибо всем, кто откликнулся. Теперь программа работает так, как я хочу! :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 13 2007, 14:33 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 12:44
Сообщения: 305
Откуда: Жайрем -> Астана
P.S:
как мне кажется в примере влада, проверять код функ. на CHANGE_VIEW вообщем и не надо, лишне все это ИМХО


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

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


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

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


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

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