Автор Тема: AT SELECTION-SCREEN ON VALUE-REQUEST FOR  (Прочитано 10342 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sed0Y

  • ECC 7.0 (ERP/CRM), EHP
  • Newbie
  • *
  • Сообщений: 121
  • Репутация: +7/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
AT SELECTION-SCREEN ON VALUE-REQUEST FOR
« : Февраль 15, 2012, 01:41:35 pm »
столкнулся с проблемкой, никак не знаю как ее решить

Проблема в том, что при вызове "AT SELECTION-SCREEN ON VALUE-REQUEST FOR" в процедуре я не могу получить какой radiobutton чекнут
подскажите плз ?!

вот часть кода:

Код: You are not allowed to view links. Register or Login
REPORT  ZTEST_PROG.

TABLES: aufk.

DATA:
      gstsma TYPE tj30t-stsma,
      gloc, gkorp TYPE char1 VALUE ''.


SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.

*      SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE blok1.
*          SELECT-OPTIONS       p_tordok FOR aufk-kdauf NO INTERVALS NO-EXTENSION MODIF ID bl1 .
*                  parameters:
*                               p_dd1 radiobutton group 1 modif id bl1,
*                               p_ss1 radiobutton group 1 modif id bl1.
*      SELECTION-SCREEN END OF BLOCK b1.
*      ...............
*      .............
*      ..........
*      .......

      SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE blok4.
          PARAMETERS:
                      p_filter TYPE bapi_user_status_text MODIF ID bl4,
                      p_dd4 radiobutton group STAT modif id bl4,
                      p_ss4 radiobutton group STAT modif id bl4.
      SELECTION-SCREEN END OF BLOCK b4.

SELECTION-SCREEN END OF SCREEN 100.

SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,
                  END OF BLOCK mytab.



INITIALIZATION.
          mytab-prog = sy-repid.
          mytab-dynnr = 100.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_filter .
  PERFORM setstatuslist USING 'P_FILTER'.



FORM setstatuslist USING p_type TYPE help_info-dynprofld.

  DATA:
        lt_status TYPE TABLE OF tj30t,
        lt_fields TYPE TABLE OF dfies,
        ls_field TYPE dfies,
        lv_repid LIKE sy-repid,
        lv_dynnr LIKE sy-dynnr.

  lv_repid = sy-repid.
  lv_dynnr = sy-dynnr.

[b]*  IF .
*            тут(или в каком-то другом месте) мне неужно в зависимости от того какой радиобутон чекнут присваивать параметру [b]STSMA [/b]значение
*        gstsma = 'DDDDP002'.
*  ELSE.
*        gstsma = 'DDDDP001'.
*  ENDIF.
[/b]
  SELECT *
    FROM tj30t
    INTO CORRESPONDING FIELDS OF TABLE lt_status
   WHERE stsma = 'DDDDP002'. " gstsma

  SORT lt_status BY estat.

  ls_field-tabname    = 'TJ30T'.
  ls_field-fieldname  = 'TXT04'.
  APPEND ls_field TO lt_fields.

  ls_field-fieldname  = 'TXT30'.
  APPEND ls_field TO lt_fields.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'TXT04'
      dynpprog    = lv_repid
      dynpnr      = lv_dynnr
      dynprofield = p_type
      value_org   = 'S'
    TABLES
      value_tab   = lt_status
      field_tab   = lt_fields.

ENDFORM.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 780
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: AT SELECTION-SCREEN ON VALUE-REQUEST FOR
« Ответ #1 : Февраль 15, 2012, 01:50:39 pm »
Что-то я не понял в чем проблема, ну проверь p_dd4 = 'X' значит он нажать, если p_ss4 = 'X', тогда этот нажат и всех проблем.

Оффлайн Sed0Y

  • ECC 7.0 (ERP/CRM), EHP
  • Newbie
  • *
  • Сообщений: 121
  • Репутация: +7/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: AT SELECTION-SCREEN ON VALUE-REQUEST FOR
« Ответ #2 : Февраль 15, 2012, 01:55:25 pm »
You are not allowed to view links. Register or Login
Что-то я не понял в чем проблема, ну проверь p_dd4 = 'X' значит он нажать, если p_ss4 = 'X', тогда этот нажат и всех проблем.

а то, что в "FORM setstatuslist..."  (p_dd4 и  p_ss4) <> 'X'

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 780
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: AT SELECTION-SCREEN ON VALUE-REQUEST FOR
« Ответ #3 : Февраль 15, 2012, 02:12:53 pm »
You are not allowed to view links. Register or Login
а то, что в "FORM setstatuslist..."  (p_dd4 и  p_ss4) <> 'X'
Ну напиши p_dd4 radiobutton group STAT modif id bl4 default 'X', для первой кнопки. И если это не поможет, тогда добавь для каждой строки еще и типа USER-COMMAND rbt.
« Последнее редактирование: Февраль 15, 2012, 02:15:31 pm от Uukrul »

Оффлайн Sed0Y

  • ECC 7.0 (ERP/CRM), EHP
  • Newbie
  • *
  • Сообщений: 121
  • Репутация: +7/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: AT SELECTION-SCREEN ON VALUE-REQUEST FOR
« Ответ #4 : Февраль 15, 2012, 02:50:33 pm »
You are not allowed to view links. Register or Login
Ну напиши p_dd4 radiobutton group STAT modif id bl4 default 'X', для первой кнопки. И если это не поможет, тогда добавь для каждой строки еще и типа USER-COMMAND rbt.

default 'X' - мне явно не нужен, т.к. в PERFORM setstatuslist  я должен в зависимости от того какой радиобутон чекнут выбирать данные ....
плюс остается не изменяемым при вызове "VALUE-REQUEST "

а вот если добавить в для каждой строки USER-COMMAND rbt то пишет "USER-COMMAND" may only occur in the first parameter of a radio button group ."
а если добавить в одной (и первой) то тоже нет результата, помогло такой вариант:

Код: You are not allowed to view links. Register or Login
......
          PARAMETERS:
                      p_filter TYPE bapi_user_status_text MODIF ID bl4,
                      p_dd4 radiobutton group STAT modif id bl4 [b]USER-COMMAND rbt1[/b],
                      p_ss4 radiobutton group STAT modif id bl4 [b]DEFAULT 'X'[/b].
.....
Получается, что на один radiobutton group можно только 1 USER-COMMAND?


2Uukrul - и снова СПАСИБО.

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: AT SELECTION-SCREEN ON VALUE-REQUEST FOR
« Ответ #5 : Февраль 15, 2012, 02:54:41 pm »
Вот так нужно объявлять:
Код: You are not allowed to view links. Register or Login
PARAMETERS: p_dd4 RADIOBUTTON GROUP stat MODIF ID bl4 USER-COMMAND xxx DEFAULT 'X'.Без USER-COMMAND положение бегунка в п/п можно отловить только в том случае, если после перемещения переключателя нажать Enter (т.е. записать значения в поля экрана, а не просто ввести в поля), а уже затем нажимать F4 в нужном поле для вызова SH. Если использовать просто ... DEFAULT 'X', то без нажатия Enter программа всегда будет показывать значение, присвоенное по умолчанию, даже если бегунок перевели в положение P_SS4.

P.S. Да, верно. USER-COMMAND вешается на группу положений переключателя.
UPD: А без DEFAULT, просто с USER-COMMAND, если переключатель не трогать и Enter не нажимать, то программа значений "не видит" (например, первый запуск и сразу F4 в первом поле). ;)
« Последнее редактирование: Февраль 15, 2012, 02:59:46 pm от Dmitriy »

Оффлайн Sed0Y

  • ECC 7.0 (ERP/CRM), EHP
  • Newbie
  • *
  • Сообщений: 121
  • Репутация: +7/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: AT SELECTION-SCREEN ON VALUE-REQUEST FOR
« Ответ #6 : Февраль 15, 2012, 03:22:48 pm »
и 2Dmitriy - СПАСИБО.

теперь все отлично работает!

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 780
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: AT SELECTION-SCREEN ON VALUE-REQUEST FOR
« Ответ #7 : Февраль 15, 2012, 03:33:09 pm »
You are not allowed to view links. Register or Login
P.S. Да, верно. USER-COMMAND вешается на группу положений переключателя.
А ну да я это забыл.. а по поводу DEFAULT это только предустановка значения при запуске, дальше переключай как хочешь.