Selection screen output obligatory field

Hi all,
I have two radio buttons, if i selected one radio button one selection screen will come for entries another will be invisible.
in that selection screen i have all are mandatory fields. so it is not allowing to another radio button with out entering the values
Chek my code.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text001.
PARAMETERS     : p_aut RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND ac.
PARAMETERS     : p_man RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text002.
PARAMETERS     : p_zbukr   TYPE reguh-zbukr  MODIF ID aut.
SELECT-OPTIONS : s_laufi   FOR  reguh-laufi  MODIF ID aut OBLIGATORY,              
                 s_laufd   FOR  reguh-laufd  MODIF ID aut OBLIGATORY,               
                 s_hbkid   FOR  reguh-hbkid  MODIF ID aut OBLIGATORY,          
                 s_hktid   FOR  reguh-hktid  MODIF ID aut OBLIGATORY.              
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text003.
PARAMETERS     : p_bukrs   TYPE bsak-bukrs   MODIF ID man DEFAULT 'LTGI'.
SELECT-OPTIONS : s_augbl   FOR  bsak-augbl   MODIF ID man OBLIGATORY, 
                             s_augdt   FOR  bsak-augdt   MODIF ID man OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b3.
Will it move from one radion button to another even those are obligatory.
Regards,
Sri
Edited by: Thomas Zloch on Sep 14, 2010 2:34 PM - please use code tags!

Hi,
True. There are some variables to keep track of.
So, I have two radio buttons. P_UPL and P_DNL. If P_DNL is selected and gv_mode has already been set to "download status", then I do the check. AT SELECTION-SCREEN OUTPUT happens after AT SELECTION-SCREEN so my gv_mode variable won't be set on the first AT SELECTION-SCREEN when the radio button is selected.
* SELECTION SCREEN EVENTS
AT SELECTION-SCREEN OUTPUT.
  DATA: lv_type(3).
  IF p_upl = 'X'.
    gv_mode = c_screen_upload.
  ELSE.
    gv_mode = c_screen_download.
  ENDIF.
  LOOP AT SCREEN.
    IF NOT screen-group1 IS INITIAL.
      IF screen-group1 = gv_mode.
        screen-active = 1.
      ELSE.
        screen-active = 0.
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.
AT SELECTION-SCREEN.
  IF p_dnl = 'X' and gv_mode = c_screen_download.
    IF p_aland is INITIAL.
      MESSAGE text-m03 type 'E'.
    ENDIF.
    IF so_azone[] is INITIAL.
      MESSAGE text-m04 TYPE 'E'.
    ENDIF.
  endif.

Similar Messages

  • At selection screen output problem when a field is obligatory

    Hi All,
    I have two radiobuttons on the selection screen and when I select first radiobutton one screen should display and the other should not be displayed and vice-versa. It is working fine if I do not have a mandatory field.I am pasting my code here.Can anyone please help me how to handle this situation when we have some mandatory fields on one of these screens.
    TABLES : mara,marc.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS : p_meth1 RADIOBUTTON GROUP g1 USER-COMMAND g1,
                 p_meth2 RADIOBUTTON GROUP g1.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK matnr WITH FRAME TITLE text-002.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS : so_matnr FOR marc-matnr MODIF ID m1 obligatory.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS : so_werks FOR marc-werks MODIF ID m1 .
    SELECTION-SCREEN END OF BLOCK matnr.
    SELECTION-SCREEN BEGIN OF BLOCK file WITH FRAME TITLE text-003.
    SELECTION-SCREEN SKIP 1.
    PARAMETERS: p_fpath TYPE ibipparms-path MODIF ID m2 LOWER CASE.
    SELECTION-SCREEN END OF BLOCK file.
    SELECTION-SCREEN BEGIN OF BLOCK date WITH FRAME TITLE text-004.
    SELECTION-SCREEN SKIP 1.
    PARAMETERS : p_date TYPE datuv.
    SELECTION-SCREEN END OF BLOCK date.
    AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
    CASE screen-group1.
    WHEN 'M1'.
    IF p_meth1 = 'X'.
    screen-active = 1.
    ENDIF.
    IF p_meth2 = 'X'.
    screen-active = 0.
    ENDIF.
    WHEN 'M2'.
    IF p_meth2 = 'X'.
    screen-active = 1.
    ELSE.
    screen-active = 0.
    ENDIF.
    IF p_meth1 = 'X'.
    screen-active = 0.
    ENDIF.
    ENDCASE.
    MODIFY SCREEN.
    ENDLOOP.
    Thanks in advance
    Sandeep

    Obligatory fields with your requirement will not work, reason : The GUI checks obligatory fields before passing the control back to the program (i.e Before triggering the PAI )
    If you check for empty fields and give appropriate error message in the PAI, the program will not allow you to switch to the other radio button until you fill something in the fields because the moment you select a radiobutton, it will validate the field and issue the error message.
    So it is like a catch 22 situation.
    All you can really do is to check see which radio button is clicked and then do your processing. Also make sure to assign a user command to the radiobutton and query it in the AT SELECTION SCREEN and based on the radiobutton selected, decide which fields should be validated.
    " Additon...
    INITIALIZATION  " Default values
    p_meth1 = 'X'.
    AT SELECTION-SCREEN.  " General PAI
    if p_meth1 EQ 'X'.
    "validate fields for meth1.
    elseif p_meth2 EQ 'X'.
    " validate fields for meth2.
    endif.
    regards,
    Advait

  • At selection screen output problem

    Hi all,
    I am trying to make a few fields disabled based on the selection of a radio button. I have done it in dialog programming, but in report its not working. Please tell me where i have gone wrong. My code:
    * Selection Screen
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
    PARAMETER : rb_dwld RADIOBUTTON GROUP radi DEFAULT 'X',
                rb_upld RADIOBUTTON GROUP radi.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.
    SELECT-OPTIONS : so_cctrl FOR /dceur/z_crconar-crdt_ctrldsa MODIF ID
                                             sc1 NO INTERVALS OBLIGATORY,
                     so_cusno FOR /dceur/z_crdtlmt-dealer MODIF ID sc1.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-t03.
    SELECT-OPTIONS : so_ctrl1 FOR /dceur/z_crconar-crdt_ctrldsa MODIF ID
                                             sc2 NO INTERVALS OBLIGATORY.
    PARAMETER pa_fname TYPE rlgrap-filename MODIF ID sc2.
    SELECTION-SCREEN END OF BLOCK b3.

    Hi,
    Please check the below code.
    This is one of my requirement.
    * Creation of two blocks with parameter fields for create and update
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME.
    PARAMETER p_create LIKE rlgrap-filename MODIF ID crt.
    SELECTION-SCREEN: END OF BLOCK b1.
    SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME.
    PARAMETER p_update LIKE rlgrap-filename MODIF ID upt.
    SELECTION-SCREEN: END OF BLOCK b2.
    * Making one parameter field active at a time
    AT SELECTION-SCREEN OUTPUT.
      IF rb_crt = 'X'.                              "CREATE BUTTON IS SELECTED
        PERFORM hide_rb_options.
        CLEAR p_create.
      ELSE.                                         "UPDATE BUTTON IS SELECTED
        PERFORM hide_rb_options.
        CLEAR p_update.
      ENDIF.
    *&      Form  hide_rb_options
    FORM hide_rb_options .
      IF rb_crt = 'X'    .
        LOOP AT SCREEN.
          CASE screen-group1.
            WHEN 'CRT'.
              screen-active = 1.
              MODIFY SCREEN.
            WHEN 'UPT'.
              screen-active = 0.
              MODIFY SCREEN.
          ENDCASE.
        ENDLOOP.
      ELSE.
        LOOP AT SCREEN.
          CASE screen-group1.
            WHEN 'UPT'.
              screen-active = 1.
              MODIFY SCREEN.
            WHEN 'CRT'.
              screen-active = 0.
              MODIFY SCREEN.
          ENDCASE.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " hide_rb_options
    May it helps you.
    Regards.
    DS.

  • Enforcing event AT-SELECTION-SCREEN OUTPUT

    Hi Gurus
    Does anybody know how to force event AT-SELECTION-SCREEN OUTPUT ?
    What I'm aiming for is changing screen somewere outside of this event. For example.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_param.
      IF p_param = 'change'.
        changes_in_screen = 'X'.
        *???*   "forcing AT-SELECTION-SCREEN OUTPUT event
      ENDIF.
    AT-SELECTION-SCREEN OUTPUT.
      IF changes_in_screen = 'X'.
        LOOP AT SCREEN.
          "do something
        ENDLOOP.
      ENDIF.
    I would be grateful for any hints.

    One alternative to define two selection screens.  First selection screen (default selection screen of report #1000) having Client_type.  After user hits execute (F8) then show the second selection screen with corresponding parameters.
    PARAMETERS: p_client(1).
    SELECTION-SCREEN BEGIN OF SCREEN 9000 AS WINDOW.
    PARAMETERS: p_name(20),
                p_lname(20),
                p_cname(20),
                p_oname(20).
    SELECTION-SCREEN END OF SCREEN 9000.
    AT SELECTION-SCREEN OUTPUT.
      CHECK sy-dynnr = '9000'.
    *  Hide corresponding fields on second selection screen
    *  based on values of P_CLIENT.
    *  Also should make key parameters obligatory!
    START-OF-SELECTION.
      CALL SELECTION-SCREEN 9000 STARTING AT 5 5.
    Another alternative is to use a dialog/module pool program to handle this.  Such screen field controlling can easily be done in dialog programs because you have full PAI/PBO control, unlike report program selection screen 1000.  Unfortunately in a dialog program it is not easy to reproduce the functionality of a select-option.

  • Query related to at selection screen event & at selection-screen output

    Hi all,
    thanks in advance
    i have two radio buttons say rd1 & rd2
    on my selection screen i have date,period,year and these fields r mandatory fields
    when i try to select the radio button rd2 then it is not disabling the fields period and year rather it is checking the fields for mandatory and vicevesr
    here is the code plz help me out
    AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
        IF rd1 = 'X'.
          IF screen-group1  = 'GR1'.
            screen-input  = '0'.
            MODIFY SCREEN.
          ENDIF.
        ENDIF.
        IF rd2 = 'X'.
          IF screen-group1  = 'GR2'.
            screen-input  = '0'.
            MODIFY SCREEN.
          ENDIF.
        ENDIF.
      ENDLOOP.
    AT SELECTION-SCREEN.
    blank period is not allowed
        IF monat[] IS INITIAL.
          MESSAGE e008.
        ENDIF.
    blank fiscal year is not allowed
        IF gjahr[] IS INITIAL.
          MESSAGE e009.
        ENDIF.
    blank document date is not allowed
        IF bldat[] IS INITIAL.
          MESSAGE e020.
        ENDIF.
    awiting for all u r replies

    I UNDERSTOOD Y U HAVE GIVE ERROR MESSAGE,
    WHEN U R DECLARING THE VALUES AS OBLIGATORY BEFORE, THEN NO NEED TO GIVE MESSAGES IN AT SELECTION SCREEN.
    BUT BASED ON SOME CONDITIONS, IF U WANT TO MAKE THEM OBLIGATORY DYNAMICALLY THEN GIVE THE CONDITION ALSO
    EXAMPLE
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF a = 'X'.
          IF screen-group1 = 'GR2'.
            screen-input = 0.
                 ELSE.
           SCREEN-INPUT = 1.
          ENDIF.
          MODIFY SCREEN.
        ENDIF.
        IF c = 'X'.
          IF screen-group1 = 'GR1'.
            screen-input = 0.
         ELSE.
           SCREEN-INPUT = 1.
          ENDIF.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
    AT SELECTION-SCREEN.
    IF  d is initial.
    MESSAGE e009.
    ENDIF.
    start-of-selection.
    write b.
    2ND EXAMPLE:
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF a = 'X'.
          IF screen-group1 = 'GR2'.
            screen-input = 0.
                 ELSE.
           SCREEN-INPUT = 1.
          ENDIF.
          MODIFY SCREEN.
        ENDIF.
        IF c = 'X'.
          IF screen-group1 = 'GR1'.
            screen-input = 0.
         ELSE.
           SCREEN-INPUT = 1.
          ENDIF.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
    AT SELECTION-SCREEN.
    IF B = 5 AND d is initial.
    MESSAGE e009.
    ENDIF.
    start-of-selection.
    write b.
    I HAVE SENT U TWO EXAMPLES, IN THE SEOND EXMAPLE, IT WORKS FINE AS U HAVE GIVEN SOME OTHER CONDITION.
    IN THE FIRST EXAMPLE, AS IT WILL NOT WORK AS IAM CHECKING ONLY INITIAL CONDITION.
    FOR CHECKING ONLY INITIAL CONDITION, NO NEED TO WRITE IT AT SELECTION SCREEN , U CAN DIRECTLY DECLARE AS OBLIGATORY IN THE BEGINING IT SELF.
    JUST COPY AND PASTE MY TWO PROGRAMS AND FIND OUT THE DIFFERENCE IAM EXPLAINING
    Message was edited by: Hymavathi Oruganti

  • Using Selection screen and selection screen output

    Hi All,
    I am trying to execute AT SELECTION-SCREEN and AT SELECTION-SCREEN output. Both the para's working fine seperately. But when I execute them together AT SELECTION-SCREEN output is not working. Please let me know how to solve this problem. Please see below for the code.
    PARAMETERS:  p_werks LIKE marc-werks OBLIGATORY MEMORY ID WRK,
                 p_lgort LIKE mard-lgort OBLIGATORY,
                 p_rlgort LIKE mard-lgort OBLIGATORY.
        PARAMETERS: p_boml TYPE c RADIOBUTTON GROUP mode user-command flag.
            SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
                PARAMETERS: p_aufnr LIKE aufk-aufnr MODIF ID cp2.
            SELECTION-SCREEN: END OF BLOCK b1.
    *SELECTION-SCREEN COMMENT 1(44) text-004 FOR FIELD p_cmpl.
        PARAMETERS: p_cmpl TYPE c RADIOBUTTON GROUP mode.
           SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
                PARAMETERS: p_matnr type marc-matnr MODIF ID cp1,
                            p_verid type afpo-verid MODIF ID cp1,
                            p_labst type mard-labst MODIF ID cp1.
           SELECTION-SCREEN: END OF BLOCK b2.
       PARAMETERS: p_mstr TYPE c RADIOBUTTON GROUP mode.
    AT SELECTION-SCREEN output.
      LOOP AT SCREEN.
        IF p_boml <> 'X' AND
           screen-group1 = 'CP1'.
           screen-active = '1'.
           MODIFY SCREEN.
        ENDIF.
        IF p_cmpl <> 'X' AND
           screen-group1 = 'CP2'.
           screen-active = '1'.
           MODIFY SCREEN.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    AT SELECTION-SCREEN.
      IF p_boml EQ 'X'.
        IF p_AUFNR EQ space.
            MESSAGE e000(z1) WITH 'Please fill Production Order.'.
        ENDIF.
      endif.
      IF p_cmpl EQ 'X'.
        IF p_MATNR EQ space  OR p_verid EQ space OR p_labst EQ space.
            MESSAGE e000(z1) WITH text-003 'Production Version & Quantity. '.
        ENDIF.
      endif.
    Thanks,
    Senthil

    Hi Senthil,
    As far as my knowledge is concerned AT Selection-Screen output and AT Selection-Screen wont work together.In this code you are trying to do the validation in AT Selection-Screen. Instead of that try doin your validations in Start-of-selection Event.
    i,e., modify your code as follows:
    PARAMETERS: p_werks LIKE marc-werks OBLIGATORY MEMORY ID WRK,
    p_lgort LIKE mard-lgort OBLIGATORY,
    p_rlgort LIKE mard-lgort OBLIGATORY.
    PARAMETERS: p_boml TYPE c RADIOBUTTON GROUP mode user-command flag.
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_aufnr LIKE aufk-aufnr MODIF ID cp2.
    SELECTION-SCREEN: END OF BLOCK b1.
    *SELECTION-SCREEN COMMENT 1(44) text-004 FOR FIELD p_cmpl.
    PARAMETERS: p_cmpl TYPE c RADIOBUTTON GROUP mode.
    SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS: p_matnr type marc-matnr MODIF ID cp1,
    p_verid type afpo-verid MODIF ID cp1,
    p_labst type mard-labst MODIF ID cp1.
    SELECTION-SCREEN: END OF BLOCK b2.
    PARAMETERS: p_mstr TYPE c RADIOBUTTON GROUP mode.
    AT SELECTION-SCREEN output.
    LOOP AT SCREEN.
    IF p_boml <> 'X' AND
    screen-group1 = 'CP1'.
    screen-active = '1'.
    MODIFY SCREEN.
    ENDIF.
    IF p_cmpl <> 'X' AND
    screen-group1 = 'CP2'.
    screen-active = '1'.
    MODIFY SCREEN.
    ENDIF.
    MODIFY SCREEN.
    ENDLOOP.
    START-OF-Selection.
    Perform validation.
    form validation.
    IF p_boml EQ 'X'.
    IF p_AUFNR EQ space.
    MESSAGE e000(z1) WITH 'Please fill Production Order.'.
    ENDIF.
    endif.
    IF p_cmpl EQ 'X'.
    IF p_MATNR EQ space OR p_verid EQ space OR p_labst EQ space.
    MESSAGE e000(z1) WITH text-003 'Production Version & Quantity. '.
    ENDIF.
    endif.
    endform.
    Kindly reward if useful.
    Thanks,
    pavithra

  • SELECTION-SCREEN disable OBLIGATORY

    Hi all,
    at the moment I'm building a selection-screen which, has a radiobutton group with two options. When one radiobutton is been selected, a couple of fields are disabled for input, or could be hidden. What I want to accomplish is to make some of these fields OBLIGATORY when they're ready for input.
    All ok, but when the other radio buttons is pressed, the OBLIGATORY check already set an error message before the AT SELECTION-SCREEN OUTPUT is been triggered, so I can not suppress the 'required' parameter.
    Suggestions are welcome, if it's not possible, it's also ok to state that here, I'm afraid that will be the conclusion.
    Some reference code:
    PARAMETERS p_dele TYPE boolean RADIOBUTTON GROUP a USER-COMMAND SELECT.
    SELECTION-SCREEN COMMENT /1(79) s01.
    PARAMETERS p_geraet TYPE gernr  OBLIGATORY MODIF ID del.
    PARAMETERS p_equnr  TYPE equnr  OBLIGATORY MODIF ID del.
    PARAMETERS p_logik  TYPE logiknr OBLIGATORY MODIF ID del.
    PARAMETERS p_ins1  TYPE anlage  OBLIGATORY MODIF ID del.
    PARAMETERS p_ins2  TYPE anlage MODIF ID del.
    SELECTION-SCREEN ULINE.
    PARAMETERS p_rest  TYPE boolean RADIOBUTTON GROUP a.
    PARAMETERS p_uname  TYPE uname  MODIF ID res.
    PARAMETERS p_time  TYPE TIMESTAMP MODIF ID res.
    DATA go_report TYPE REF TO lcl_report.
    INITIALIZATION.
      LOOP AT SCREEN.
       CASE screen-group1.
       WHEN 'RES'.
         screen-INPUT   = '0'.
         screen-OUTPUT   = '1'.
         screen-invisible = '0'.
         MODIFY SCREEN.
       WHEN 'DEL'.
         screen-INPUT   = '1'.
         screen-OUTPUT   = '1'.
         screen-invisible = '0'.
         MODIFY SCREEN.
       ENDCASE.
      ENDLOOP.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
       IF p_dele EQ 'X'.
       CASE screen-group1.
       WHEN 'RES'.
         screen-INPUT   = '0'.
         screen-OUTPUT   = '1'.
         screen-invisible = '0'.
         screen-required  = '0'.
         MODIFY SCREEN.
       WHEN 'DEL'.
         screen-INPUT   = '1'.
         screen-OUTPUT   = '1'.
         screen-invisible = '0'.
         MODIFY SCREEN.
       ENDCASE.
       ENDIF.
       IF p_rest EQ 'X'.
       CASE screen-group1.
       WHEN 'DEL'.
         screen-INPUT   = '0'.
         screen-OUTPUT   = '1'.
         screen-invisible = '0'.
         MODIFY SCREEN.
       WHEN 'RES'.
         screen-INPUT   = '1'.
         screen-OUTPUT   = '1'.
         screen-invisible = '0'.
         MODIFY SCREEN.
       ENDCASE.
       ENDIF.
      ENDLOOP.
    START-OF-SELECTION.

    Hi ,
    please ref following code  it may help you .
    ***********constants***********
    CONSTANTS : C_YES TYPE C VALUE '1' ,
                 C_NO TYPE C VALUE '0' .
    SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS p_dele TYPE C RADIOBUTTON GROUP a DEFAULT 'X' USER-COMMAND DEL.
    PARAMETERS p_rest  TYPE C RADIOBUTTON GROUP a.
    SELECTION-SCREEN: END OF BLOCK B1.
    SELECTION-SCREEN: BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-002.
    PARAMETERS p_geraet TYPE gernr   OBLIGATORY MODIF ID DEL.
    PARAMETERS p_equnr  TYPE equnr   OBLIGATORY MODIF ID DEL.
    PARAMETERS p_logik  TYPE logiknr OBLIGATORY MODIF ID DEL.
    PARAMETERS p_ins1  TYPE anlage   OBLIGATORY MODIF ID DEL.
    PARAMETERS p_ins2  TYPE anlage   OBLIGATORY MODIF ID DEL.
    PARAMETERS p_uname  TYPE uname    MODIF ID RES.
    PARAMETERS p_time  TYPE TIMESTAMP MODIF ID RES.
    SELECTION-SCREEN: END OF BLOCK B3.
    AT SELECTION-SCREEN OUTPUT .
    LOOP AT SCREEN .
         IF SCREEN-GROUP1 = 'DEL'.
           IF p_dele = 'X' .
             SCREEN-INVISIBLE = C_NO .
             SCREEN-ACTIVE    = C_YES .
             screen-required = 2 .
             MODIFY SCREEN.
           ENDIF.
         ENDIF.
         IF SCREEN-GROUP1 = 'DEL'.
           IF p_REST = 'X' .
             SCREEN-INVISIBLE = C_YES .
             SCREEN-ACTIVE    = C_NO .
             screen-required = 2 .
             MODIFY SCREEN.
           ENDIF.
         ENDIF.
         IF SCREEN-GROUP1 = 'RES'.
           IF p_DELE  = 'X' .
             SCREEN-INVISIBLE = C_YES  .
             SCREEN-ACTIVE    = C_NO .
             MODIFY SCREEN.
             CLEAR : p_geraet,
                     p_equnr ,
                     p_logik ,
                     p_ins1  ,
                     p_ins2  .
             ENDIF.
         ENDIF.
         IF SCREEN-GROUP1 = 'RES'.
           IF p_REST  = 'X' .
             SCREEN-INVISIBLE = C_NO  .
             SCREEN-ACTIVE    = C_YES .
    *        screen-required = 2.
    *        SCREEN-INPUT = 0 .
             MODIFY SCREEN.
             CLEAR : p_geraet,
                     p_equnr ,
                     p_logik ,
                     p_ins1  ,
                     p_ins2  .
           ENDIF.
         ENDIF.
    ENDLOOP.

  • Dynamically calling selection screens with obligatory

    TABLES :
    ******selection-screen: begin of block bal with frame title txt3.
    ******parameters: RB1  radiobutton group rd1 user-command abc default 'X'.
    ******parameters: RB2  radiobutton group rd1.
    ******selection-screen: end of block bal.
    ******selection-screen: begin of block B1 with frame title txt1.
    ******SELECT-OPTIONS  : s_cust  FOR KNA1-kunnr OBLIGATORY  MODIF ID r1.
    ******SELECT-OPTIONS  : s_plant  FOR plko-werks OBLIGATORY MODIF ID r1 .
    ******selection-screen: end of block val.
    ******selection-screen: begin of block upd with frame title txt2.
    ******SELECT-OPTIONS:  s_vend  FOR lfa1-lifnr OBLIGATORY modif id r2.
    ******SELECT-OPTIONS: s_plan  FOR plko-werks OBLIGATORY modif id r2.
    ******selection-screen: end of block upd.
    Here i need to call these two selection screens dynamically depends on radio buttion selection.
    But
    Problem is a arising when when both are obligatory in selection screen ( with out obligatory , it is working fine)
    I need to call screens dynamically, ecen though we have obligatory
    Let me know procedure , the possibility of same funcationality in tabstips & selection screen.
    Madhu

    Hi Madhu,
    You have to write code in AT SELECTION-SCREEN OUTPUT event.
    First of all remove obligatory from select-options declaration. Do it dynamically in AT SELECTION-SCREEN OUTPUT event.
    You enable or disable the block depending upon the rediobutton selected. Then in the venet AT SELECTION-SCREEN ON field, you can check whethere user has entered data into that field or not depending upon the radiobutton selected.
    TABLES : kna1,
             plko,
             lfa1.
    SELECTION-SCREEN: BEGIN OF BLOCK bal WITH FRAME TITLE txt3.
    PARAMETERS: rb1 RADIOBUTTON GROUP rd1 USER-COMMAND abc DEFAULT 'X'.
    PARAMETERS: rb2 RADIOBUTTON GROUP rd1.
    SELECTION-SCREEN: END OF BLOCK bal.
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE txt1.
    SELECT-OPTIONS : s_cust FOR kna1-kunnr  MODIF ID r1.
    SELECT-OPTIONS : s_plant FOR plko-werks MODIF ID r1 .
    SELECTION-SCREEN: END OF BLOCK b1.
    SELECTION-SCREEN: BEGIN OF BLOCK upd WITH FRAME TITLE txt2.
    SELECT-OPTIONS: s_vend FOR lfa1-lifnr MODIF ID r2.
    SELECT-OPTIONS: s_plan FOR plko-werks MODIF ID r2.
    SELECTION-SCREEN: END OF BLOCK upd.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF rb1 EQ 'X'.
          IF ( screen-name EQ 'S_CUST-LOW'
            OR screen-name EQ 'S_CUST-HIGH'
            OR screen-name EQ 'S_PLANT-LOW'
            OR screen-name EQ 'S_PLANT-HIGH') .
            screen-active = '1' .
          ENDIF.
          IF ( screen-name EQ 'S_VEND-LOW'
            OR screen-name EQ 'S_VEND-HIGH'
            OR screen-name EQ 'S_PLAN-LOW'
            OR screen-name EQ 'S_PLAN-HIGH') .
            screen-active = '0' .
          ENDIF.
        ELSEIF rb2 EQ 'X'.
          IF ( screen-name EQ 'S_VEND-LOW'
            OR screen-name EQ 'S_VEND-HIGH'
            OR screen-name EQ 'S_PLAN-LOW'
            OR screen-name EQ 'S_PLAN-HIGH') .
            screen-active = '1' .
          ENDIF.
          IF ( screen-name EQ 'S_CUST-LOW'
            OR screen-name EQ 'S_CUST-HIGH'
            OR screen-name EQ 'S_PLANT-LOW'
            OR screen-name EQ 'S_PLANT-HIGH') .
            screen-active = '0' .
          ENDIF.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    Regards,
    Anil Salekar

  • AT SELECTION-SCREEN OUTPUT.

    Hi All,
    I have a selection screen which i need to influence before it is shown in the screen after the transaction is executed.
    I want the user to influence one of the fields in selection screen by an user exit.So if in the user exit the parameter is set by the user ,then only that particular field should be enabled or else it should be disabled.
    I know i can use AT SELECTION-SCREEN OUTPUT.
    but i am not sure that i can influence it with an user exit.
    Could anybody let me know the logic or code to write this.
    It would be very much help full.
    Regards,
    Priya.

    Hi Priya,
    you can make properly for loop at screen. with modify screen..
    it applied for enabled or disabled screen proceed.
    thx,
    s.suresh

  • AT SELECTION-SCREEN OUTPUT not working!

    Hi,
    I am useing the statement AT SELECTION-SCREEN OUTPUT to disable some input fields based on a check box(PR_FILE).however when I execute the program the changes on the screen are not reflected!I have written the AT SELECTION-SCREEN OUTPUT stmt immediately after SELECTION-SCREEN stmt .
    Defination for the screen elements is  as  follows:
    SELECT-OPTIONS s_plants FOR  ls_selected_plant-plant
                                                         NO INTERVALS.
    SELECTION-SCREEN BEGIN OF BLOCK filesel WITH FRAME TITLE text-012.
    PARAMETERS pr_file TYPE xfeld .
    PARAMETER : pr_path LIKE rlgrap-filename .
    SELECTION-SCREEN END OF BLOCK filesel.
    AT SELECTION-SCREEN OUTPUT.
      IF pr_file = 'X'.
        LOOP AT SCREEN.
          IF screen-name = 's_plants'.
            screen-input    = '0'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ELSE.
        LOOP AT SCREEN.
          IF screen-name = 'pr_path'.
            screen-input    = '0'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ENDIF.
    Can anybody suggest what wrong i have done??

    You need to use the User Command for the checkbox and the Modificaiton ID (Group) for the fields.
    Try like this:
    TABLES: VBRP.
    SELECT-OPTIONS S_PLANTS FOR VBRP-WERKS NO INTERVALS MODIF ID GP1.
    SELECTION-SCREEN BEGIN OF BLOCK FILESEL WITH FRAME TITLE TEXT-012.
    PARAMETERS PR_FILE TYPE XFELD USER-COMMAND USR1.
    PARAMETER : PR_PATH LIKE RLGRAP-FILENAME MODIF ID GP2 .
    SELECTION-SCREEN END OF BLOCK FILESEL.
    AT SELECTION-SCREEN OUTPUT.
        IF PR_FILE = 'X'.
          LOOP AT SCREEN.
            if screen-group1 = 'GP1'.
              SCREEN-active = '0'.
              MODIFY SCREEN.
            ENDIF.
          ENDLOOP.
        ELSE.
          LOOP AT SCREEN.
            IF SCREEN-group1 = 'GP2'.
              SCREEN-active = '0'.
              MODIFY SCREEN.
            ENDIF.
          ENDLOOP.
        ENDIF.
    Regards,
    Naimesh Patel

  • At selection- screen output issue

    Hi,
    I have a issue regarding at selection-screen output event with radio buttons, 
    Fields are like,
    Block B1
      RB1
    Block B2
    RB2
       field 1 (Check box)
       field 2 (Check box)
    User can select one radio button at a time. If the user clicks on radio button RB1 then fields under Block B2 will be disabled. If user click on RB2 field 1 and fields 2 will be input enabled. Could you please give the solution asap
    Note: Radio buttons are in different selection screen blocks.

    Check this code -
    *SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME.
    *PARAMETERS:
    *Pi1 TYPE C  RADIOBUTTON GROUP G1 DEFAULT 'X',
    *Pi2 TYPE CHAR25,
    *Pi3 TYPE C  RADIOBUTTON GROUP G1,
    *Pi4 TYPE CHAR25.
    *SELECTION-SCREEN END OF BLOCK B.
    *PARAMETERS check AS CHECKBOX.
    *PARAMETERS show_all AS CHECKBOX USER-COMMAND flag.
    *SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
    *PARAMETERS: ip1(10) TYPE c,
               ip2(10) TYPE c,
               ip3(10) TYPE c.
    *SELECTION-SCREEN END OF BLOCK b1.
    *SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
    *PARAMETERS: ip4(10) TYPE c MODIF ID bl2,
               ip5(10) TYPE c MODIF ID bl2,
               ip6(10) TYPE c MODIF ID bl2.
    *SELECTION-SCREEN END OF BLOCK b2.
    *AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
       IF show_all <> 'X' AND
          screen-group1 = 'BL2'.
          screen-active = '0'.
       ENDIF.
       MODIFY SCREEN.
    ENDLOOP.
    Regards,
    Amit Khare
    reward all helpful replies.

  • At selection-screen output probelm

    Hi ,
    I am using 4 parameters in the selection screen . I am entering data in the 3 input fields. Then I am doing concatenate 3 fileds data into the 4 th field in the event AT SELECTION-SCREEN OUTPUT, bur my problem is  When ever i click ENTER , then only 4th field is updating. With out ENTER key , Is it possible update 4th filed.
    regards,
    ramajay reddy

    Hi,
    This is not possible without a user action on the screen, unless your fields are drop down lists, check box or radiobutton respectively, Reason is that the SAP Screen processing will not trigger the PAI event unless there is a user action on the screen like pushing a button, radiobutton , checkbox or selecting a value from a dropdown list. And hence PBO will not get triggered either. Thus entering value in input fields and pressing the tab key is not enough. The user must press 'Enter' if the PAI--PBO should be triggered.
    Pressing 'Enter' is much more user friendly and convinient than adding a button/radiobutton/checkbox on the selection screen to update other fields on the selection screen as in your scenario.
    regards,
    Advait

  • At selection-screen output and  at selection-screen on

    Hi Experts,
    I had coded in both at selection-screen output for disabling input of certain fields and at selection-screen for validation like this:
    AT SELECTION-SCREEN output.
      IF p_amt = 'X'.
        LOOP AT SCREEN.
          CASE screen-name.
            WHEN 'P_AMT'.
              screen-input = '1'.
            WHEN 'P_TST'.
              screen-input = '1'.
            WHEN 'P_B4C'.
              screen-input = '1'.
            WHEN 'P_AFC'.
              screen-input = '1'.
            WHEN 'P_COM'.
              screen-input = '1'.
            WHEN 'P_COM1'.
              screen-input = '1'.
            WHEN 'P_COM2'.
              screen-input = '1'.
            WHEN OTHERS.
              screen-input = '0'.
          ENDCASE.
          MODIFY SCREEN.
        ENDLOOP.
      ENDIF.
      IF p_amt = 'X'.
        LOOP AT SCREEN.
          CASE screen-name.
            WHEN 'P_AMT'.
              screen-input = '1'.
            WHEN 'P_TST'.
              screen-input = '1'.
            WHEN 'P_B4C'.
              screen-input = '1'.
            WHEN 'P_AFC'.
              screen-input = '1'.
            WHEN 'P_COM'.
              screen-input = '1'.
            WHEN 'P_COM1'.
              screen-input = '1'.
            WHEN 'P_COM2'.
              screen-input = '1'.
            WHEN OTHERS.
              screen-input = '0'.
          ENDCASE.
          MODIFY SCREEN.
        ENDLOOP.
      ENDIF.
      IF p_pdf = 'X'.
        LOOP AT SCREEN.
          CASE screen-name.
            WHEN 'P_PDF'.
              screen-input = '1'.
            WHEN 'P_TST'.
              screen-input = '1'.
            WHEN 'P_PATH'.
              screen-input = '1'.
            WHEN OTHERS.
              screen-input = '0'.
          ENDCASE.
          MODIFY SCREEN.
        ENDLOOP.
      ENDIF.
      IF p_afc = 'X'.
        LOOP AT SCREEN.
          CASE screen-name.
            WHEN 'P_TST'.
              screen-input = '1'.
            WHEN 'S_FID-LOW' OR 'S_FID-HIGH'.
              screen-input = '0'.
            WHEN 'S_ORG-LOW' OR 'S_ORG-HIGH'.
              screen-input = '0'.
            WHEN 'S_OFF-LOW' OR 'S_OFF-HIGH'.
              screen-input = '0'.
            WHEN 'S_DAT-LOW' OR 'S_DAT-HIGH'.
              screen-input = '0'.
          ENDCASE.
          MODIFY SCREEN.
        ENDLOOP.
      ENDIF.
    AT selection-screen on block b5.
    if p_tst is initial.
      message text-016 type 'E'.
    endif.
    AT selection-screen on block b2.
    if p_amt ne 'X' and p_pdf ne 'X'.
    if s_fid is initial and s_org is initial.
    message text-000 type 'E'.
    endif.
    if s_dat is initial.
    message text-000 type 'E'.
    endif.
    endif.
    when i comment out at selection-screen validations the input is disabled for the screen fields as set, else the validations are executed first.
    Any solution for this???
    Thanks in advance.

    AT SELECTION-SCREEN
    Syntax
    AT SELECTION-SCREEN selscreen_event.
    Effect
    This statement defines event blocks for different events selscreen_event that are triggered by the ABAP runtime environment during selection screen processing.
    Selection screen events occur immediately before sending a selection screen and after certain user actions on a displayed selection screen. They assist in selection screen processing in the ABAP program.
    AT SELECTION-SCREEN is triggered at least twice during actions on selection screens that are linked into another selection screen as a subscreen - first for the linked selection screen itself, and then for the linking selection screens.
    Note
    The event blocks after AT SELECTION-SCREEN are implemented internally as procedures. Declarative statments in these event blocks create local data.

  • At selection screen output not responding

    Hi ppl,
    I've 4 selection options in my screen. however I just need user to insert only 1 of the 4 for searching. Therefore i included 4 radio buttons. when user select <i>rbf</i>, <i>sfileno</i> will activer and other 3 will be grayed out, when user select <i>rbi</i>, <i>sidnum</i> will active and other will not be active and so forth. You can see the codes below.
    However, during the program running, I found out when i select <i>rbf,</i> the other select options fields - <i>sfileno</i>, <i>sidnum</i> n <i>scompsno</i> are not inactive/grayed. It is the same when I seledt the other radio button. I just seem that i receive no response from the program. What have i done wrong here. please help. TQ
    SELECTION-SCREEN BEGIN OF BLOCK frm1 WITH FRAME TITLE text-t01 .
    SELECT-OPTIONS : sfileno FOR zlic_masterdb-nofailpermohonan modif id f01
                      sidnum FOR zcustomer-idnumber modif id i01,
                      sconame FOR zcustomer-contactname modif id n01,
                      scompsno FOR zcom_compdhdr-compsno modif id c01.
    PARAMETERS: rbf RADIOBUTTON GROUP g1 ,
    rbi RADIOBUTTON GROUP g1,
    rbn RADIOBUTTON GROUP g1,
    rbc RADIOBUTTON GROUP g1.
    SELECTION-SCREEN END   OF BLOCK frm1.
    INITIALIZATION.
    sfileno = '00001'.
                     AT SELECTION-SCREEN OUTPUT
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
      CHECK SCREEN-GROUP1 = 'f01' OR
    SCREEN-GROUP1 = 'i01' OR
    SCREEN-GROUP1 = 'n01' OR
    SCREEN-GROUP1 = 'c01'.
    IF rbf = 'X'.
      IF SCREEN-GROUP1 EQ 'f01'.
        SCREEN-ACTIVE = 1.
      ELSEIF SCREEN-GROUP1 EQ 'i01'.
        SCREEN-ACTIVE = 0.
      ELSEIF SCREEN-GROUP1 EQ 'n01'.
        SCREEN-ACTIVE = 0.
      ELSEIF SCREEN-GROUP1 EQ 'c01'.
        SCREEN-ACTIVE = 0.
      ENDIF.
    ELSEIF rbi = 'X'.
      IF SCREEN-GROUP1 EQ 'i01'.
        SCREEN-ACTIVE = 1.
      ELSEIF SCREEN-GROUP1 EQ 'f01'.
        SCREEN-ACTIVE = 0.
      ELSEIF SCREEN-GROUP1 EQ 'n01'.
        SCREEN-ACTIVE = 0.
      ELSEIF SCREEN-GROUP1 EQ 'c01'.
        SCREEN-ACTIVE = 0.
      ENDIF.
    ELSEIF rbn = 'X'.
      IF SCREEN-GROUP1 EQ 'n01'.
        SCREEN-ACTIVE = 1.
      ELSEIF SCREEN-GROUP1 EQ 'f01'.
        SCREEN-ACTIVE = 0.
      ELSEIF SCREEN-GROUP1 EQ 'i01'.
        SCREEN-ACTIVE = 0.
      ELSEIF SCREEN-GROUP1 EQ 'c01'.
        SCREEN-ACTIVE = 0.
      ENDIF.
    ELSEIF rbc = 'X'.
      IF SCREEN-GROUP1 EQ 'c01'.
        SCREEN-ACTIVE = 1.
      ELSEIF SCREEN-GROUP1 EQ 'f01'.
        SCREEN-ACTIVE = 0.
      ELSEIF SCREEN-GROUP1 EQ 'n01'.
        SCREEN-ACTIVE = 0.
      ELSEIF SCREEN-GROUP1 EQ 'i01'.
        SCREEN-ACTIVE = 0.
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
    continue.
    ENDLOOP.

    hi Enzo
    Check my sample code
    TABLES: eban,
            SSCRFIELDS.
    SELECTION-SCREEN BEGIN OF SCREEN 100 TITLE title.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
    PARAMETER:rad1 RADIOBUTTON GROUP rad USER-COMMAND frad1 DEFAULT 'X',
              rad2 RADIOBUTTON GROUP rad .
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.
    PARAMETER: mtr AS CHECKBOX MODIF ID g3 USER-COMMAND chk1,
               p_matnr TYPE eban-matnr MODIF ID g1,
               sloc AS CHECKBOX MODIF ID g3 USER-COMMAND chk2,
               str_loc TYPE eban-lgort MODIF ID g4.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-t03.
    SELECT-OPTIONS: matnr1 FOR eban-matnr MODIF ID g2.
    SELECTION-SCREEN END OF BLOCK b3.
    SELECTION-SCREEN PUSHBUTTON /20(10) name USER-COMMAND UCOM.
    SELECTION-SCREEN END OF SCREEN 100.
    name = 'FETCH'.
    title = 'Test Report'.
    CALL SELECTION-SCREEN '100'.
    TYPE-POOLS slis.
    * declaration of internal tables and work areas to be used
    DATA: BEGIN OF it_pr OCCURS 0,
          banfn TYPE eban-banfn,
          bnfpo TYPE eban-bnfpo,
          loekz TYPE eban-loekz,
          statu TYPE eban-statu,
          ekgrp TYPE eban-ekgrp,
          matnr TYPE eban-matnr,
          werks TYPE eban-werks,
          lgort TYPE eban-lgort,
          preis TYPE eban-preis,
          peinh TYPE eban-peinh,
          END OF it_pr.
    DATA: BEGIN OF it_mat OCCURS 0,
          matnr TYPE eban-matnr,
          END OF it_mat.
    *DATA:BEGIN OF ITAB1 OCCURS 0,
      DATA: l_answer.
    DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
          wa_fieldcat LIKE LINE OF it_fieldcat,
          it_event TYPE slis_t_event,
          wa_event TYPE slis_alv_event.
    * declaration of variables to be used
    DATA: r_ucomm TYPE sy-ucomm,
          mat_no TYPE eban-matnr,
          len TYPE i VALUE 1,
          count TYPE i VALUE IS INITIAL,
          iflag TYPE i VALUE IS INITIAL,
          iflag1 TYPE i VALUE 0.
    DATA :pr_id TYPE sy-repid,
    rt_extab TYPE slis_t_extab.
    INITIALIZATION.
      pr_id = sy-repid.
    probably it would sol;ve ur problem
    regards
    ravish
    <b>plz dont forget to reward points if helpful</b>

  • AT SELECTION-SCREEN OUTPUT event of standard tcode

    Hi
    I need User-exit or BADI or Enhancment spot in AT SELECTION-SCREEN OUTPUT event of ME55.
    I need to populate the default cost center into the cost center field from user parameters with pid 'KOS' when i execute the ME55.
    I maintained the PID in user parameters but the value is not getting populated in ME55.
    Please let me know
    Govi

    Thanks Benedict
    Creating Module %_S_KOSTL and write our own logic to bring the parameter id value of Cost center from User profiles is NOT possible in program RM06BF00,  screen 1000.
    We can do that in Copied program of RM06BF00 ..which is the very last option.
    I wanted to do that with User-exits or BADI or Enhancement spot etc...which i Couldn't do it so far...
    The alternate might be Zprog and Ztcode or an SNOTE..
    if you ALL think its NOT possible with User-exits or BADI or Enhancement spot or SNOTE etc..Then i will close this Thread...
    Please let me know ASAP...
    Thanks
    Govi

Maybe you are looking for

  • How to uninstall a license in ACS 5.1

    Hi everyone, We have two ACS 5.1 appliances. By mistake we install the same license in both devices and when we tried to register the secondary ACS to the primary ACS it says the the license is already in used in the deployment. Furthermore, it is no

  • Checking for business area while posting

    i have to check for business areas balancing during posting document eg., when we get interest income from a bank account under business area X it should be credited to an account with same business area X. Dr Bank - X Cr Interest income - Y this sho

  • Question; is anyone else having problems using photo Booth?

    Hi Lion users!  I have been looking through the forum posts looking for anwsers to some of the wrinkles that I have come across after installing OS Mac os x v10.7. Not that it is my biggest worry but for some reason when I launch Photo Booth, I get a

  • Console cannot connect to ldap after SSL config

    Hi, I configured our iplanet DS 5.0 to use SSL (requested cert from DS, signed and created a new cert with openSSL, verified that DS could read that cert, and turned on ssl). Restarted DS and admin-serv. The ldap is working but ldaps is not. The cons

  • SetAttribute causing performance issue.

    Hi , I am using 11.1.1.4.0 Code:::         DCIteratorBinding itr=ADFUtil.findIterator(iterator);         RowSetIterator rsi=itr.getRowSetIterator();         Row currRow=rsi.getCurrentRow();         currRow.setAttribute(id,null); If i call setAttribut