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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Работа с Listbox (Dropdown Box)
СообщениеДобавлено: Чт, фев 17 2011, 17:04 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, май 05 2010, 11:22
Сообщения: 69
Всем доброго. подскажите пожалуйста как сделать на селекционном экране список от значений которого появлялись (исчезали) дополнительные поля выбора.
т.е. выбрал из списка пункт1 появилось поле1 для выбора, выбрал из списка пункт 2 - исчезло поле1 для выбора. причем без нажатия ентера.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Работа с Listbox (Dropdown Box)
СообщениеДобавлено: Чт, фев 17 2011, 17:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
На параметр, для которого определяется Dropdown box указывается USER-COMMAND.
Обработку видимости нужно сделать в AT SELECTION-SCREEN OUTPUT.

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Listbox (Dropdown Box)
СообщениеДобавлено: Пт, фев 18 2011, 12:15 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, май 05 2010, 11:22
Сообщения: 69
Спасибо за наводку, только работает такая схема по "Enter", а мне необходимо по клику в ListBox (т.е. выбрал пункт - и привет)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Работа с Listbox (Dropdown Box)
СообщениеДобавлено: Пт, фев 18 2011, 12:27 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
userID написал(а):
Спасибо за наводку, только работает такая схема по "Enter", а мне необходимо по клику в ListBox (т.е. выбрал пункт - и привет)

Вы help посмотрите и прочитайте:
AS LISTBOX VISIBLE LENGTH vlen [USER-COMMAND fcode]

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Listbox (Dropdown Box)
СообщениеДобавлено: Пт, фев 18 2011, 13:45 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, май 05 2010, 11:22
Сообщения: 69
Что не так? кроме того что все не так.
Code:
TYPE-POOLS: vrm.
DATA: name TYPE vrm_id,
      list TYPE vrm_values,
      VALUE LIKE LINE OF list.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
  PARAMETERS: mblnr TYPE zmblnr-mblnr, "НОМЕР ДОКУМЕНТА МАТЕРИАЛА
              mjahr TYPE mseg-mjahr,   "ГОД ДОКУМЕНТА МАТЕРИАЛА
              ps_parm AS LISTBOX VISIBLE LENGTH 20 USER-COMMAND zcc01 OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.
  PARAMETERS: lifnr type lfa1-lifnr MODIF ID bl2.
SELECTION-SCREEN END OF BLOCK b2.
AT SELECTION-SCREEN.
CASE sy-ucomm.
WHEN 'ZCC01'.  "СОБЫТИЯ ПРИ ИЗМЕНЕНИИ ps_parm
  LOOP AT SCREEN.
    IF ps_parm <> '4' AND SCREEN-group1 = 'BL2'.
      SCREEN-active = '0'.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.
ENDCASE.

AT SELECTION-SCREEN OUTPUT.

CLEAR: VALUE-KEY, VALUE-TEXT, list.
name = 'ps_parm'.
VALUE-KEY = '1'.
VALUE-TEXT = 'Пункт1'.
APPEND VALUE TO list.
VALUE-KEY = '2'.
VALUE-TEXT = 'Пункт2'.
APPEND VALUE TO list.
VALUE-KEY = '3'.
VALUE-TEXT = 'Пункт3'.
APPEND VALUE TO list.
VALUE-KEY = '4'.
VALUE-TEXT = 'Пункт4'.
APPEND VALUE TO list.
VALUE-KEY = '5'.
VALUE-TEXT = 'Пункт5'.
APPEND VALUE TO list.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
  ID = name
  values = list.
START-OF-SELECTION.
WRITE ps_parm TO ps_parm.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Работа с Listbox (Dropdown Box)
СообщениеДобавлено: Пт, фев 18 2011, 14:24 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
userID написал(а):
Что не так? кроме того что все не так.
Code:
TYPE-POOLS: vrm.
DATA: name TYPE vrm_id,
      list TYPE vrm_values,
      VALUE LIKE LINE OF list.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
  PARAMETERS: mblnr TYPE zmblnr-mblnr, "НОМЕР ДОКУМЕНТА МАТЕРИАЛА
              mjahr TYPE mseg-mjahr,   "ГОД ДОКУМЕНТА МАТЕРИАЛА
              ps_parm AS LISTBOX VISIBLE LENGTH 20 USER-COMMAND zcc01 OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.
  PARAMETERS: lifnr type lfa1-lifnr MODIF ID bl2.
SELECTION-SCREEN END OF BLOCK b2.
AT SELECTION-SCREEN.
CASE sy-ucomm.
WHEN 'ZCC01'.  "СОБЫТИЯ ПРИ ИЗМЕНЕНИИ ps_parm
  LOOP AT SCREEN.
...

LOOP AT SCREEN. надо делать в PBO-логике (т.е. в AT SELECTION-SCREEN OUTPUT), т.к. перед началом PBO все атрибуты сбрасываются в дефолтные

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Listbox (Dropdown Box)
СообщениеДобавлено: Пт, фев 18 2011, 15:02 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, май 05 2010, 11:22
Сообщения: 69
Цитата:
LOOP AT SCREEN. надо делать в PBO-логике (т.е. в AT SELECTION-SCREEN OUTPUT), т.к. перед началом PBO все атрибуты сбрасываются в дефолтные

Все равно не работает, а именно при выборе параметра4 (пункт4 в ListBox) должно появлятся BLOCK b2 на селекционном экране, а в остальных случаях исчезать. а у меня он всегда висит.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Работа с Listbox (Dropdown Box)
СообщениеДобавлено: Пт, фев 18 2011, 15:05 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
userID написал(а):
Цитата:
LOOP AT SCREEN. надо делать в PBO-логике (т.е. в AT SELECTION-SCREEN OUTPUT), т.к. перед началом PBO все атрибуты сбрасываются в дефолтные

Все равно не работает, а именно при выборе параметра4 (пункт4 в ListBox) должно появлятся BLOCK b2 на селекционном экране, а в остальных случаях исчезать. а у меня он всегда висит.

Приведите код целиком - что не работатет?

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Listbox (Dropdown Box)
СообщениеДобавлено: Пт, фев 18 2011, 15:32 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, май 05 2010, 11:22
Сообщения: 69
Цитата:
Приведите код целиком - что не работатет?

Логика выполнения экрана должна быть следующая: при запуске на экране отображаются только три поля (mblnr,mjahr,ps_parm). Далеее при выборе определенного пункта из списка (ps_parm = 4) - должно появляться поле lifnr. и соответственно при смене (ps_parm <> 4) это поле должно исчезать. а у меня оно всегда вивит на экране независимо от моих действий.
Code:
type-pools: vrm.
data: name type vrm_id,
      list type vrm_values,
      value like line of list.
selection-screen begin of block b1 with frame title text-001.
  parameters: mblnr type zmblnr-mblnr, "НОМЕР ДОКУМЕНТА МАТЕРИАЛА
              mjahr type mseg-mjahr,   "ГОД ДОКУМЕНТА МАТЕРИАЛА
              ps_parm as listbox visible length 20 user-command zcc01 obligatory.
selection-screen end of block b1.

selection-screen begin of block b2 with frame title text-002.
  parameters: lifnr type lfa1-lifnr modif id bl2.
selection-screen end of block b2.
at selection-screen.

at selection-screen output.
case sy-ucomm.
when 'ZCC01'.  "СОБЫТИЯ ПРИ ИЗМЕНЕНИИ ps_parm
  loop at screen.
    if ps_parm <> '4' and screen-group1 = 'BL2'.
      screen-active = '0'.
    endif.
    modify screen.
  endloop.
endcase.

clear: value-key, value-text, list.
name = 'ps_parm'.
value-key = '1'.
value-text = 'Пункт1'.
append value to list.
value-key = '2'.
value-text = 'Пункт2'.
append value to list.
value-key = '3'.
value-text = 'Пункт3'.
append value to list.
value-key = '4'.
value-text = 'Пункт4'.
append value to list.
value-key = '5'.
value-text = 'Пункт5'.
append value to list.
call function 'VRM_SET_VALUES'
exporting
  id = name
  values = list.
start-of-selection.
write ps_parm to ps_parm.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Работа с Listbox (Dropdown Box)  Тема решена
СообщениеДобавлено: Пт, фев 18 2011, 15:42 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Прав на отладчик то нету что-ли?
Code:
at selection-screen output.
case sy-ucomm.

Ни к чему оно тут.

Code:
AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF screen-group1 = 'BL2'.
      IF ps_parm = '4' .
        screen-active = '1'.
      ELSE.
        screen-active = '0'.
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Listbox (Dropdown Box)
СообщениеДобавлено: Пт, фев 18 2011, 15:44 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
userID написал(а):
Цитата:
Приведите код целиком - что не работатет?

Логика выполнения экрана должна быть следующая: при запуске на экране отображаются только три поля (mblnr,mjahr,ps_parm). Далеее при выборе определенного пункта из списка (ps_parm = 4) - должно появляться поле lifnr. и соответственно при смене (ps_parm <> 4) это поле должно исчезать. а у меня оно всегда вивит на экране независимо от моих действий.
...
Очень и очень странно. Не удивился если бы поле не появлялось на экране, а вот то что всегда висит???
У меня всё работает по вашему алгоритму:
Code:
type-pools: VRM.
data: NAME type VRM_ID,
      LIST type VRM_VALUES,
      VALUE like line of LIST.
selection-screen begin of block B1 with frame title TEXT-001.
parameters: MBLNR type MSEG-MBLNR, "НОМЕР ДОКУМЕНТА МАТЕРИАЛА
            MJAHR type MSEG-MJAHR,   "ГОД ДОКУМЕНТА МАТЕРИАЛА
            PS_PARM as listbox visible length 20 user-command ZCC01 obligatory.
selection-screen end of block B1.

selection-screen begin of block B2 with frame title TEXT-002.
parameters: LIFNR type LFA1-LIFNR modif id BL2.
selection-screen end of block B2.

at selection-screen.
  case SY-UCOMM.
    when 'ZCC01'.  "СОБЫТИЯ ПРИ ИЗМЕНЕНИИ ps_parm
  endcase.

at selection-screen output.

  loop at screen.
    if PS_PARM <> '4' and SCREEN-GROUP1 = 'BL2'.
      SCREEN-ACTIVE = '0'.
    endif.
    modify screen.
  endloop.

  clear: VALUE-KEY, VALUE-TEXT, LIST.
  NAME = 'ps_parm'.
  VALUE-KEY = '1'.
  VALUE-TEXT = 'Пункт1'.
  append VALUE to LIST.
  VALUE-KEY = '2'.
  VALUE-TEXT = 'Пункт2'.
  append VALUE to LIST.
  VALUE-KEY = '3'.
  VALUE-TEXT = 'Пункт3'.
  append VALUE to LIST.
  VALUE-KEY = '4'.
  VALUE-TEXT = 'Пункт4'.
  append VALUE to LIST.
  VALUE-KEY = '5'.
  VALUE-TEXT = 'Пункт5'.
  append VALUE to LIST.
  call function 'VRM_SET_VALUES'
    exporting
      ID     = NAME
      VALUES = LIST.

start-of-selection.
  write PS_PARM to PS_PARM.

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Listbox (Dropdown Box)
СообщениеДобавлено: Пт, фев 18 2011, 15:57 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, май 05 2010, 11:22
Сообщения: 69
все получилось. Спасибо всем огромное заработало с вариантом от Rokhay без case


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

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


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

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


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

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