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

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


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

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


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

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