Problems in at selection-screen output - setting pushbutton invisible

Hello,
I hope I can get some help here
I have a problem with setting a pushbutton invisible
i have a field (long-text) in my screen - and behind this a pushbutton for calling the editor
if in a variant the parameters field is set invisible i also want to set the pushbutton invisible
i have no idea why in the at selection-screen output event screen-invisible is always 0 - but in the variant the field is set invisible.
i need to know if the parameters field is invisible to set the pushbutton the same
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) S_TXB_L1.
PARAMETERS S_TXT_L1 TYPE ZHR_FC_STRING.
SELECTION-SCREEN PUSHBUTTON 79(15) P_LTX_1 USER-COMMAND YLTXT1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) S_TXB_L2.
PARAMETERS S_TXT_L2 TYPE ZHR_FC_STRING.
SELECTION-SCREEN PUSHBUTTON 79(15) P_LTX_2 USER-COMMAND YLTXT2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) S_TXB_L3.
PARAMETERS S_TXT_L3 TYPE ZHR_FC_STRING.
SELECTION-SCREEN PUSHBUTTON 79(15) P_LTX_3 USER-COMMAND YLTXT3.
SELECTION-SCREEN END OF LINE.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
    IF SCREEN-NAME(7) = 'S_TXT_L'.
      MERK_INVISIBLE = SCREEN-INVISIBLE.
    ENDIF.
    IF SCREEN-NAME(6) = 'P_LTX_'.
     SCREEN-INVISIBLE = MERK_INVISIBLE.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
Thanks very much...
Helmut

I agree - there seems to be some confusion here. In the variant the field can only be "hidden" while in the code it is possible to make the field completely invisible. 'Hiding' the field in the variant merely hides it by default and adds a 'plus' button to the toolbar, by clicking which the hidden elements can be exposed.
As far as changing the screen fields goes, I find it usefull to use MODIF ID. Perhaps this blog could be helpful:
http://friendlyabaper.blogspot.com/2009/07/my-super-awesome-selection-screen.html
P.S. Please use the code tags for the code, per Forum Rules.

Similar Messages

  • Problem on  "at selection-screen output." command

    Hi ,
    in my programe a part of code is :-
    selection-screen : begin of block b0 with frame title text-000.
       selection-screen:  skip 1.
      parameters: s_box1  radiobutton group g1 user-command u1  default            'X',
                  s_box2 radiobutton group g1.
    selection-screen : end of block b0 .
    selection-screen : begin of block b2 with frame title text-002.
    select-options  : s_vend for bseg-lifnr modif id m1 .
    selection-screen : end of block b2 .
    selection-screen : begin of block b3 with frame title text-003.
    select-options  : s_budat for bkpf-budat modif id m2 .
    selection-screen : end of block b3 .
    at selection-screen output.
    if s_box1 = 'X'.
    loop at screen.
    if screen-group1 = 'M2'.
    screen-active = '0'.
    modify screen.
    elseif  screen-group1 = 'M1'  .
    screen-active = '1'.
    modify screen.
    endif.
    endloop.
    elseif s_box2 = 'X'.
    loop at screen.
    if screen-group1 = 'M2'  .
    screen-active = '1'.
    modify screen.
    elseif  screen-group1 = 'M1'.
    screen-active = '0'.
    modify screen.
    endif.
    endloop.
    endif.
    while executing this one...
    while clicking S_BOX2 from S_BOX1 , S_VEND is changing to S_BUDAT but if I click again S_BOX1 this program goes to infinite loop.
    Please help me to correct this problem.
    Thankx in adv.
    Biswajit
    N.B:- This is a test code. no coding convention  is followed.

    I just copied your code and Tested it is working fine with out any problem.
    REPORT  zscreen_test_.
    TABLES:bseg,bkpf.
    SELECTION-SCREEN : BEGIN OF BLOCK b0 WITH FRAME TITLE text-000.
    SELECTION-SCREEN: SKIP 1.
    PARAMETERS: s_box1 RADIOBUTTON GROUP g1 USER-COMMAND u1 DEFAULT 'X',
    s_box2 RADIOBUTTON GROUP g1.
    SELECTION-SCREEN : END OF BLOCK b0 .
    SELECTION-SCREEN : BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    SELECT-OPTIONS : s_vend FOR bseg-lifnr MODIF ID m1 .
    SELECTION-SCREEN : END OF BLOCK b2 .
    SELECTION-SCREEN : BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    SELECT-OPTIONS : s_budat FOR bkpf-budat MODIF ID m2 .
    SELECTION-SCREEN : END OF BLOCK b3 .
    AT SELECTION-SCREEN OUTPUT.
      IF s_box1 = 'X'.
        LOOP AT SCREEN.
          IF screen-group1 = 'M2'.
            screen-active = '0'.
            MODIFY SCREEN.
          ELSEIF screen-group1 = 'M1' .
            screen-active = '1'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ELSEIF s_box2 = 'X'.
        LOOP AT SCREEN.
          IF screen-group1 = 'M2' .
            screen-active = '1'.
            MODIFY SCREEN.
          ELSEIF screen-group1 = 'M1'.
            screen-active = '0'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ENDIF.
    "If you have any code next to this place that under appropriate
    "events.

  • Problem in using at selection-screen output

    Hai Frnds,
    I am using 5 parameters in the selection screen . I am entering data in the 4 input fields. Then I am doing concatenate 4 fileds data into the 5th field in the event AT SELECTION-SCREEN OUTPUT, but my problem is When ever i click ENTER , then only 5th field is updating. With out ENTER key , Is it possible update 5th filed.
    Thanks,
    Kiran.

    Hi,
    We can restrict the functionality of ENTER.
    User the Concatenation in AT SELECTION-SCREEN EVENT
    because AT SELECTION-SCREEN OUTPUT is triggered before
    selection screen is displayed.Below code will definitly work.
    Ex:
    Tables:SSCRFIELDS.
    At selection-screen.
    IF SY-ucomm = ' '.
    Clear SSCRFIELDS-UCOMM.
    ENDIF.
    CHECK  SSCRFIELDS-UCOMM EQ 'ONLI'.
    CONCATENATE <FIELDS> INTO PARAMETER5.
    ONLI is Function code of F8
    ' ' is for enter.
    The above code will surely work.
    Thanks.

  • 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.

  • 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 and radio button together

    Hi all,
    I want to make  a screen with radio buttons and a drop down menu on selection screen as soon as I check any button and click on Open from drop down menu the output should come according to the button cheked but the problem is that desired output is not coming.
    Please see if something could be done.
    Thanks,
    Shweta

    Hi,
    Here is the code see y it didnt responds,
    I made ZMENU2 in SE41 with Menu bar as OPEN , also activated buttons BACK and EXIT.
    tables : sscrfields.
    CONSTANTS : buttonselected TYPE c LENGTH 1 VALUE 'X'.
    DATA: ok_code LIKE sy-ucomm.
    SELECTION-SCREEN BEGIN OF BLOCK frame1 WITH FRAME TITLE text-001.
    SELECTION-SCREEN ULINE /1(60).
    PARAMETERS: first RADIOBUTTON GROUP rad DEFAULT 'X',
    second RADIOBUTTON GROUP rad,
    third RADIOBUTTON GROUP rad,
    fourth RADIOBUTTON GROUP rad,
    fifth RADIOBUTTON GROUP rad.
    SELECTION-SCREEN END OF BLOCK frame1.
    AT SELECTION-SCREEN OUTPUT.
      SET PF-STATUS 'ZMENU2'.
      If first = buttonselected and ok_code = 'OPEN'..
             WRITE 'You selected first button'.
        ELSEIF second = buttonselected and ok_code = 'OPEN'..
            WRITE 'You selected second button'.
        ELSEIF third = buttonselected and ok_code = 'OPEN'.
            WRITE 'You selected third button'.
        ELSEIF fourth = buttonselected and ok_code = 'OPEN'.
            WRITE 'You selected fourth button'.
        ELSEIF fifth = buttonselected and ok_code = 'OPEN'.
            WRITE 'You selected fifth button'.
        ELSEIF ok_code ='BACK'.
           LEAVE PROGRAM.
        ELSEIF ok_code ='EXIT'.
          LEAVE PROGRAM.
      ENDIF.

  • 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>

  • Problem in Report selection screen

    Hi friends,
    I have a requirement to change the selection screen dynamically .
    My actual requirement is, i have there radio buttons in the selection screen ,
    based on the click of the radio button the input blocks should get changed.
    I am able to achieve that by looping the screen in the event of selection screen output.
    My problem is if i execute the report defaultly the first radio button is selected ,
    so my first selection screen block should display but this is not displaying.
    If i write code in initilization event , this works , but this event is triggering every time
    so i am unable to use this event and i am unable to set flags also to solve this  .
    Kindly Provide me a solution.
    Thanks & Regards,
    Arun.

    Hi Arun,
    I think may be you have misssed the part user command which is to be used as follows:
    PARAMETERS RAD1 RADIOBUTTON GROUP RAD
                                          DEFAULT 'X' USER-COMMAND flag.
    If its already there, kindly copy and paste your code here so that we can help you...

  • Selection icons destroyed by AT SELECTION SCREEN OUTPUT

    Hello
    I have a following code excerpt:
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF screen-name = 'CUSTORDS' OR
           screen-name = 'TRNSORDS' OR
           screen-name = 'REASONCD'.      
          screen-input = '1'.
        ELSEIF ( screen-group1 = 'ONE'
                 AND custords = set_x ) OR
               ( screen-group1 = 'TWO'
                 AND trnsords = set_x ).
          screen-input = '1'.
        ELSE.
          screen-input = '0'.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    The problem is, that when user gives special selection criteria for select-option field, the icon which appears to the left ('=', '>', etc) next to the affected select-option field inherits the screen-group from the select-option and the coding sets screen-input = 1 for this icon thus destroying it. Instead of an icon a text appears, just like this: '@20\QSelect: Equal to@'.
    How can this behavoiur be prevented ?

    Add screen-group3 ne 'OPU' to the elseif statement:
    ELSEIF ( screen-group1 = 'ONE' and screen-group3 ne 'OPU'
    AND custords = set_x ) OR
    ( screen-group1 = 'TWO' and screen-group3 ne 'OPU'
    AND trnsords = set_x ).
    Regards
    Sridhar

  • 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 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 in batch job

    Hi guys,
    is at selection-screen output event being triggered in batch job?
    Thanks!

    Yes it will, We set the value using a variant during scheduling the job but that values can also be false. You can check that yourself and look for job log then.
    Thanks,
    Jayant

  • 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

  • At selection screen output validation

    Hi to all experts.
    i have requirement when user selects the download radio button then only the file path should be made mandatory . can be done

    Hi Dude,
    For screen fields handling we have a structure called SCREEN..by using this structure we have to handle this...
    parameters: ps_parm as listbox visible length 10
                              user-command abc.
    * Radio buttons
    parameters: rb1 radiobutton group ab modif id bl2,
                rb2 radiobutton group ab modif id bl2,
                rb3 radiobutton group ab modif id bl3.
    initialization.
    * Populate list box values
      name = 'PS_PARM'.
      value-key = '1'. value-text = 'Line 1'. append value to list.
      value-key = '2'. value-text = 'Line 2'. append value to list.
      at selection-screen output.
    * Set list box with value
      call function 'VRM_SET_VALUES'
        exporting
          id     = name
          values = list.
    * Control the display of screen components
      loop at screen.
        if ps_parm = 1.
          if screen-name = 'RB1' or screen-name = 'RB2' .
            screen-invisible = 0.
          elseif screen-name = 'RB3'.
            screen-invisible = 1.
          endif.
          modify screen.
        elseif ps_parm = 2.      if screen-name = 'RB1' or screen-name = 'RB2' .
            screen-invisible = 1.
          elseif screen-name = 'RB3'.
            screen-invisible = 0.
          endif.
          modify screen.
        elseif ps_parm = space.
          rb1 = 'X'.
          clear: rb2,rb3.
          if screen-name = 'RB1' or screen-name = 'RB2' or
             screen-name = 'RB3'.        screen-invisible = 0.
            modify screen.
          endif.
        endif.  endloop.
    at selection-screen.
      if sscrfields-ucomm = 'ABC'.  endif.
      start-of-selection.
      write: / 'Parameter:', ps_parm.

Maybe you are looking for