How to enhance mailing function ALV grid

Hello Experts!
I'm using the function 'REUSE_ALV_GRID_DISPLAY' to display some data in an ALV-list. Now, I want to send this information to the SAP Business Workplace to a specific distribution list. I've already created the distribution list using the transction SO15, but the thing is that I need to suggest this distribution list when the standard button "Send email" of the ALV is pressed.... Is there any way of suggest the distribution list when the standard email button is pressed? Or is it impossible and it will be necessary to create a Customer button in the toolbar program?
Thank you so much in advance,
Regards,
Rebeca

Hi Rebeca,
Please check the below link.
How to use distribution list and email functionality to notify business users on application errors
Regards
Avanida

Similar Messages

  • How to implement 'hypelink' in ALV GRID

    Hi,everybody,please tell me how to implement 'hypelink' in ALV GRID?
    I just try to design a ALV GRID report but I do not kown the way of using 'hypelink'.  I refer to some documents but failsed.     somebody can help me and give a example including entire code.

    1. Create a table where hyperlinks & corresponding handles are stored (TYpe LVC_T_HYPE)
    DATA ls_hype TYPE lvc_s_hype .
    data lt_hype type lvc_t_hype.
    ls_hype-handle = '1' .
    ls_hype-href = 'http://www.company.com/carrids/car1' .
    APPEND ls_hype TO lt_hype .
    2. In your list data table create additional field of type INT4 which will contain the handle of the hyper link (ex. '1' for above hyperlink)
    DATA carrid_handle TYPE int4 .
    3. For the field which shall contain the hyperlink, make an entry in the field catalog indicating the field name which contains handle for the hyperlink. This is done by setting the handle field name in WEB_FIELD.
    ls_fieldcat-fieldname = 'CARRID'
    ls_fieldcat-web_field = 'CARRID_HANDLE'.
    4. While calling set_table_for_first_display, pass the hyperlink table created in step 1 to parameter 'it_hyperlink'
    ~Piyush Patil

  • How to supress dialog while ALV Grid output is send to Spool

    Hi,
    I need to get the ALV grid output in spool.But when i am executing my program using ALV grid function module with print parameter passed,first its giving a popup with default printer and number of copies and when i press ok for the popup ,spool request is created.But i dont want this popup to come while executing my program.It should create the spool request directly. How to solve this issue.
    Regards
    Shibin

    Hi Shibin,
    Try the below parameter in IS_PRINT Structure:
    is_print-print = 'N'.
    This will Supress the Dialog and create a Spool with no Immeadiate Output.
    Hope This Helps you..
    Thanks & Regards,
    Suresh Karri

  • How to display rsa3 with ALV grid

    Hello,
    In some of tyhe systems i'm working with, RSA3 have a button to display the data in ALV grid. I checked and it's not because of the support package. Cab someone please advice how to add the ALV functionality.
    Thanks,
    Amir
    Edited by: Amir Dror on Jan 13, 2009 12:41 PM

    Hello,
    we had the same question and problem.
    SAP told us via OSS the following:
    "... The ALV grid in RSA3 will be supported with the PI_BASIS 2006_1_700.
    But you have PI_BASIS 2005_1_700
    Furthermore this software component PI_BASIS is independent from the
    BW releases so that you can upgrade the latest support packages of the
    PI_BASIS 2006_1_700 in source system"
    So if you have PI_BASIS 2005 you won't have the functionality of ALV grid in TC RSA3.
    (remark: At the moment I can not confirm that ALV grid in RSA3 is available with PI_BASIS 2006_x_xxx. We plan to upgrade in a few month.)
    Best regards

  • How to give space in ALV grid display

    Hi,
    I have developed one report using alv grid.
    Iam getting details like this.
    ABCD  |12345|34567|
    |35363|74567|
    but i want like this
    ABCD   <b>here i want space</b>
    |12345|34567|
    |35363|74567|
    how to give space?
    points guaranteed
    cheers
    kaki

    Hi experts,
    Iam trying to get the output like in this report
    BALVHD01
    for example: ID & No iam getting in the same line.I want to group the numbers for the particular ID.
    In my code ID is 'STEXT'
    and  NO is 'QMNUM'.
    this is my code.
    REPORT  YET_DISPLAYCOST
                MESSAGE-ID  ZM
                NO STANDARD PAGE HEADING
                LINE-SIZE 200.
    TYPE-POOLS: SLIS.
    TABLES: QPCT,
            QPGT,
            QMEL,
            QMMA,
            IHPA,
            JEST,
            HRP1000.
    DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          ITAB_EXTAB   TYPE SLIS_T_EXTAB.
    DATA :
      I_FIELDCAT         TYPE SLIS_T_FIELDCAT_ALV,
      S_FIELDCAT         TYPE SLIS_FIELDCAT_ALV  ,
      G_USER_COMMAND     TYPE SLIS_FORMNAME VALUE 'USER_COMMAND' ,
      G_TOP_OF_PAGE      TYPE SLIS_FORMNAME VALUE 'T_TOP_OF_PAGE',
      I_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER WITH HEADER LINE,
      I_EVENTS           TYPE SLIS_T_EVENT WITH HEADER LINE,
      S_EVENT            TYPE SLIS_ALV_EVENT ,
      S_LAYOUT           TYPE SLIS_LAYOUT_ALV,
      IT_SORT            TYPE SLIS_T_SORTINFO_ALV.
    *to remove sort buttons on the tool bar
    DATA : EX TYPE SLIS_T_EXTAB.
    DATA : EXWA TYPE SLIS_EXTAB.
    DATA: LS_LINE TYPE SLIS_LISTHEADER.
    DATA: I_FCALV TYPE SLIS_FIELDCAT_ALV OCCURS 0 WITH HEADER LINE.
    DATA:F_TDOBJECT LIKE THEAD-TDOBJECT,
         F_TDNAME   LIKE THEAD-TDNAME,
         F_TDID     LIKE THEAD-TDID,
         ITAB_LINES LIKE tline OCCURS 0 WITH HEADER LINE.
    DATA:BEGIN OF ITAB OCCURS 10,
          QMNUM LIKE QMEL-QMNUM,
            DESC(72),
         END OF ITAB.
    DATA: BEGIN OF T_HDR OCCURS 0,
           QMNUM LIKE QMEL-QMNUM,
          PARNR LIKE IHPA-PARNR,
          OBJID LIKE HRP1000-OBJID,
           STEXT LIKE HRP1000-STEXT,
          END OF T_HDR.
    DATA: BEGIN OF T_DET OCCURS 10,
           SNO TYPE I,
           QMNUM LIKE QMEL-QMNUM,
           QMTXT LIKE QMEL-QMTXT,
           QMGRP LIKE QMEL-QMGRP,
           QMCOD LIKE QMEL-QMCOD,
           PARNR LIKE IHPA-PARNR,
           OBJNR LIKE QMEL-OBJNR,
           STEXT LIKE HRP1000-STEXT,
           DESC(72),
           COST(20),
          END OF T_DET.
    DATA: T_FINAL LIKE T_DET OCCURS 0 WITH HEADER LINE.
    DATA: SNO(3).
    DATA: CHK2(4).
    DATA: V_REPID TYPE SY-REPID.
    SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS:S_QMNUM FOR QMEL-QMNUM,
                      S_QMART FOR QMEL-QMART,
                      S_QMDAT FOR  QMEL-QMDAT.
    SELECTION-SCREEN END OF BLOCK A1.
    START-OF-SELECTION.
      PERFORM GET_DATA.
      PERFORM DISPLAY_ALV.
    END-OF-SELECTION.
    *&      FORM  GET_DATA
          TEXT
    FORM GET_DATA.
      DATA: G_STEXT LIKE T_DET-STEXT.
    *TO GET DETAILS
      SELECT QMNUM REFNUM QMDAT QMTXT OBJNR QMGRP QMCOD FROM QMEL
        INTO CORRESPONDING FIELDS OF TABLE T_DET
                                  WHERE QMNUM IN S_QMNUM AND
                                        QMART IN S_QMART AND
                                        QMDAT IN S_QMDAT.
      LOOP AT T_DET.
        SELECT SINGLE * FROM IHPA WHERE OBJNR = T_DET-OBJNR and
                                        PARVW = 'AB'.
        IF SY-SUBRC = 0.
          T_DET-PARNR = IHPA-PARNR.
          MODIFY T_DET.
          CLEAR T_DET.
        ENDIF.
      ENDLOOP.
      LOOP AT T_DET.
        DELETE T_DET WHERE PARNR EQ ''.
        SELECT SINGLE * FROM JEST WHERE OBJNR = T_DET-OBJNR AND
                                        STAT  = 'I0072' AND
                                        INACT NE 'X'.
        IF SY-SUBRC NE 0.
          DELETE T_DET INDEX SY-TABIX.
        ENDIF.
      ENDLOOP.
      LOOP AT T_DET.
        SELECT SINGLE * FROM HRP1000 WHERE OBJID = T_DET-PARNR.
        IF SY-SUBRC = 0.
          T_DET-STEXT = HRP1000-STEXT.
          MODIFY T_DET.
          CLEAR T_DET.
        ENDIF.
      ENDLOOP.
      LOOP AT T_DET.
        CHK2 = T_DET-QMNUM+0(4).
        IF CHK2 NE '0002'.
          DELETE T_DET INDEX SY-TABIX.
        ENDIF.
      ENDLOOP.
    *--FOR HEADER
      LOOP AT T_DET.
        SELECT SINGLE * FROM HRP1000 WHERE OBJID = T_DET-PARNR AND
                                           STEXT NE ''.
        T_HDR-QMNUM = T_DET-QMNUM.
        T_HDR-STEXT = HRP1000-STEXT.
        APPEND T_HDR.
        CLEAR T_HDR.
      ENDLOOP.
      LOOP AT T_DET.
        F_TDID     = 'LTQM'.
        F_TDNAME   = T_DET-QMNUM.
        F_TDOBJECT = 'QMEL'.
        CALL FUNCTION 'READ_TEXT'
          EXPORTING
            CLIENT                  = SY-MANDT
            ID                      = F_TDID
            LANGUAGE                = SY-LANGU
            NAME                    = F_TDNAME
            OBJECT                  = F_TDOBJECT
          TABLES
            LINES                   = ITAB_LINES
          EXCEPTIONS
            ID                      = 1
            LANGUAGE                = 2
            NAME                    = 3
            NOT_FOUND               = 4
            OBJECT                  = 5
            REFERENCE_CHECK         = 6
            WRONG_ACCESS_TO_ARCHIVE = 7
            OTHERS                  = 8.
        DESCRIBE TABLE ITAB_LINES LINES SY-TFILL.
        IF SY-TFILL > 0.
          LOOP AT ITAB_LINES.
            ITAB-QMNUM = T_DET-QMNUM.
            ITAB-DESC = ITAB_LINES-TDLINE.
            APPEND ITAB.
            CLEAR ITAB.
          ENDLOOP.
        ENDIF.
      ENDLOOP.
      SORT T_DET.
      LOOP AT T_DET.
        SNO = SNO + 1.
        T_FINAL-SNO = SNO.
        T_FINAL-QMNUM = T_DET-QMNUM.
        T_FINAL-QMTXT =  T_DET-QMTXT.
        T_FINAL-COST = T_DET-COST.
       IF G_STEXT NE T_DET-STEXT.
         G_STEXT = T_DET-STEXT.
        T_FINAL-STEXT = T_DET-STEXT.
       ENDIF.
        LOOP AT ITAB WHERE QMNUM = T_DET-QMNUM.
          T_FINAL-DESC = ITAB-DESC.
          APPEND T_FINAL.
          CLEAR T_FINAL.
          IF T_FINAL-SNO = '0'.
            T_FINAL-SNO = ''.
          ENDIF.
        ENDLOOP.
      ENDLOOP.
    ENDFORM.                    "GET_DATA
    *&      FORM  DISPLAY_ALV
          TEXT
    FORM DISPLAY_ALV.
    V_REPID = SY-REPID.
      PERFORM FIELD_CATLOG.
      PERFORM EVENT.
      PERFORM LAYOUT.
      PERFORM SORT_T_FINAL.
      PERFORM TOP-OF-PAGE.
    PERFORM REMOVE_SORT.
      CALL FUNCTION <b>'REUSE_ALV_GRID_DISPLAY'</b>
        EXPORTING
          I_CALLBACK_PROGRAM = SY-CPROG     
          IS_LAYOUT          = S_LAYOUT
          IT_FIELDCAT        = I_FIELDCAT[]
          I_SAVE             = 'A'
          IT_SORT            = IT_SORT
          IT_EVENTS          = I_EVENTS[]
          IT_EXCLUDING       = EX
        TABLES
          T_OUTTAB           = T_FINAL
        EXCEPTIONS
          PROGRAM_ERROR      = 1
          OTHERS             = 2.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "DISPLAY_ALV
    *&      Form  FIELD_CATLOG
          text
    FORM FIELD_CATLOG .
      PERFORM FILL_FCAT USING:
                1 1  'STEXT'    'ATTRIBUTED DIV'           18 'T_FINAL' ' '
                1 2  'SNO'      'SR.NO'                    18 'T_FINAL' ' '
                1 3  'QMNUM'    'ET.REF.NO'                30 'T_FINAL' ' '
                1 4  'QMTXT'    'DESCRIPTION'              20 'T_FINAL' ' '
                1 4  'DESC'     'DEFECT'                   20 'T_FINAL' ' '
                1 5  'COST'     'COST'                    15 'T_FINAL'  'S'.
    ENDFORM.                    " FIELD_CATLOG
    *&      Form  FILL_FCAT
          text
         -->LEV        text
         -->POS        text
         -->FLD        text
         -->DES        text
         -->LEN        text
         -->TABLE      text
         -->F          text
    FORM FILL_FCAT  USING    LEV POS FLD DES LEN TABLE F.
      CLEAR I_FCALV.
      I_FCALV-COL_POS   = POS.
      I_FCALV-FIELDNAME = FLD.
      I_FCALV-SELTEXT_L = DES.
      I_FCALV-DDICTXT   = 'L'.
      I_FCALV-OUTPUTLEN = LEN.
      I_FCALV-TABNAME   = TABLE.
      IF F EQ 'S'.
        I_FCALV-DO_SUM    = 'X'.
      ENDIF.
      APPEND I_FCALV TO  I_FIELDCAT.
    ENDFORM.                    "FILL_FCAT
    *&      Form  SORT_T_FINAL
          text
    FORM SORT_T_FINAL.
      DATA: L_SORT LIKE LINE OF IT_SORT.
    REFRESH IT_SORT.
    CLEAR L_SORT.
    L_SORT-SPOS      = '1'.
    L_SORT-FIELDNAME = 'STEXT'.
    L_SORT-TABNAME   = 'T_FINAL'.
    L_SORT-UP        = 'X'.
    APPEND L_SORT TO IT_SORT.
    CLEAR L_SORT.
      L_SORT-SPOS      = '6'.
      L_SORT-FIELDNAME = 'COST'.
      L_SORT-TABNAME   = 'T_FINAL'.
      L_SORT-UP        = 'X'.
      L_SORT-SUBTOT    = 'X'.
      APPEND L_SORT TO IT_SORT.
      CLEAR L_SORT.
    S_LAYOUT-CELL_MERGE = 'X'.
    ENDFORM.                    "SORT_T_FINAL
    *&      Form  EVENT
          text
    FORM EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE = 0
        IMPORTING
          ET_EVENTS   = I_EVENTS[].
      LOOP AT I_EVENTS.
        IF I_EVENTS-NAME = SLIS_EV_TOP_OF_PAGE.
          I_EVENTS-FORM = 'T_TOP_OF_PAGE'.
        ENDIF.
        IF I_EVENTS-NAME = SLIS_EV_USER_COMMAND.
          I_EVENTS-FORM = 'USER_COMMAND'.
        ENDIF.
        MODIFY I_EVENTS.
      ENDLOOP.
    ENDFORM.                    " EVENT
    *&      Form  LAYOUT
          text
    FORM LAYOUT .
      S_LAYOUT-DETAIL_POPUP = 'X'.
    <b>  S_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.</b>
    ENDFORM.                    " LAYOUT
    *&      Form  TOP-OF-PAGE
          text
    FORM TOP-OF-PAGE .
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'H'.
      LS_LINE-INFO = 'Error Trouble -by cost'.
      APPEND LS_LINE TO I_LIST_TOP_OF_PAGE.
      CLEAR LS_LINE.
    ENDFORM.                    " TOP-OF-PAGE
    *&      Form  REMOVE_SORT
          text
    FORM REMOVE_SORT.
      EXWA-FCODE = '&ODN'.
      APPEND EXWA TO EX.
      EXWA-FCODE = '&OUP'.
      APPEND EXWA TO EX.
    ENDFORM.                    "REMOVE_SORT
    *&      Form  T_TOP_OF_PAGE
          text
    FORM T_TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY = I_LIST_TOP_OF_PAGE[].
    ENDFORM.                   " T_TOP_OF_PAGE

  • How to set variant for ALV grid from ABAP

    Hello,
    I have a program which displays some data with ALV grid. Then after some operation I would like to set different layout for the grid, but not by choosing it manually but by the program. I thought that it would be enough to use the method SET_VARIANT, so I'm setting DISVARIANT structure properly, using SET_VARIANT method and after that I'm calling REFRESH_TABLE_DISPLAY but layout is not changed. What else should I do? Is that possible?
    Best regards,
    Marcin

    Hi,
    Check this
    * While declaring select-options
    parameters: p_vari        like ltdx-variant.  " Layout
    * then add the following code in
    at selection-screen on value-request for p_vari.
      perform f_variant_f4 using p_vari.
    * Code for f_variant_f4
    form f_variant_f4 using  p_vari.
    * private variables
      data : v_exit    type c.
      clear gs_variantt.
      v_variant_save = 'U'.
      call function 'LVC_VARIANT_F4'
        exporting
          is_variant    = gs_variant
          i_save        = v_variant_save
        importing
          e_exit        = v_exit
          es_variant    = gs_variantt
        exceptions
          not_found     = 1
          program_error = 2
          others        = 3.
      if sy-subrc ne c_0.
        message i999(yscc) with text-064.    " No Layout Available for F4
      endif.
      if v_exit is initial.
        gs_variant-variant = gs_variantt-variant.
        p_vari             = gs_variantt-variant.
      endif.
    endform.                                 " F_variant_f4
    * In PBO
        call method grid1->set_table_for_first_display
          exporting
            is_layout                     = gs_layout
            is_variant                    = gs_variant
            i_save                        = 'A'
            it_toolbar_excluding          = i_exclude[]
          changing
            it_outtab                     = i_output[]
            it_fieldcatalog               = i_fieldcat[]
          exceptions
            invalid_parameter_combination = 1
            program_error                 = 2
            too_many_lines                = 3
            others                        = 4.

  • How to add radiobuttons in ALV Grid

    Hi,
    I refered the threads in SDN but i am not able to get proper solution for my requirement.
    I am displaying output in ALV Grid format. After displaying the output i mean in the output screen i need few buttons and radio buttons . when user selects the record and clicks the radio button accordingly my logic should work. Anybody can tell me how to add the radiobuttons in the output of the screen. Please find the below output format for the requirement is
    Push button1 Pushbutton2  Radiobutton1 Radio button2
    MY program output in Grid format.
    Anybody can suggest me how to approach.
    Regards,
    Maheedhar

    Check if this link helps..
    http://wiki.sdn.sap.com/wiki/display/Snippets/ABAP-RadioButtonsinALVGRIDREPORT

  • How to use Mail functionality OPTT in the Schema

    Dear All,
        We have a requirement where we need to send a mail to the Time Administrator if Time Evalution ends in Error.  We have implemented the functionality OPTT MAIL option in the schema, but it is not sending the mail to Time Administrator. We have maintained the Time Administrator table T526 with the SAP ID.
    Could anybody tell us, we have to do anyother configuration to enable the mail function
    Thanks in Advance
    Rajesh.S

    Hello Folks,
        Can anyone please let me know How to send a mail notification to the Time Administrator.
    In the Schema, OPTT MAIL 1 has declared.
    The Time Administrator is maintained in T526 table.
    Do we need to do other than above to send mail.
    Kindly let me know.
    Note. The COLER function is not used in the Schema.

  • How can i validate on ALV grid for the user

    Dear Freinds,
                     I have developed one custom report using ALV Grid program , as per the requirement i have to enter on the
    data and when i press the value save the program sumits the data into my custom table . Till here every thing is fine
    but one particular field i have declared as Char1 in my internal table , on the ALV output it is allowing me to enter
    more than one character   eg : it is allowing me to enter as Hyderabad .........even though i have declared as char 1 in the internal table ....however it is saving in the database table as H only that is correct.......but it is giving confusion to user
    i want to validate that user shouldnt allow to enter more than one character in the alv output of the input field .
    Please could any one let me know how can i validate.
    regard
    divya

    Hi,
    check  that field length in the final internal table .
    might be that filed lenth in final internal table declartion is more than 1 char.
    regards,
    Rama reddy
    Edited by: ram reddy on Jul 15, 2009 7:57 AM

  • How to upload logo for alv grid when we are using classes

    Hi am using cl_gui_alv_tree  for displaying alv grid. i want to upload logo in the heade section. as we do in simple alvs using resuse_alv_commentary_write.
    plz update me in this regard.
    regards
    venkat

    Welcome to SDN.
    Check the following threads -
    How To use TOP OF PAGE event in OOPS ALV?
    Logo & TOP_OF_PAGE in OO ALV
    Regards,
    Amit
    Reward all helpful replies.

  • How to Set Checkbox of ALV Grid Dark on Display Mode

        ABAP experts, I want to switch between display mode and edit mode for some columns of ALV Grid. So I set "LVC_S_FCAT-EDIT" "X" for the columns which need to switch mode, and use method "SET_READY_FOR_INPUT" to switch.
        Currently, the function of switch mode has been achieved. But icons of checkbox columns are light but not dark when display mode, although the columns can't be edited. (Please refer to the image below.) I want to make checkbox columns dark as other columns on display mode.
        I tried to use "CL_GUI_ALV_GRID=>MC_STYLE_ENABLED" and "CL_GUI_ALV_GRID=>MC_STYLE_DISABLED", but failed. I also studied sample program "BCALV_EDIT_05" which is related to checkbox in ALV Grid, and compared my program with this program. But I still have not found problems.
        Help me solve this problem, please.
        Part of my codes are as follows.
        Part 1:
    IF iv_is_create_group = abap_true OR iv_is_edit_group = abap_true.
           set_enable( iv_flag = 1 ).
           LOOP AT gt_acct_group_item ASSIGNING <lfs_acct_group_item>.
             CLEAR ls_celltab.
             IF <lfs_acct_group_item>-celltab IS INITIAL.
               CLEAR ls_celltab.
               ls_celltab-fieldname = 'CHECK_BOX'.
               ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
               APPEND ls_celltab TO <lfs_acct_group_item>-celltab.
               CLEAR ls_celltab.
               ls_celltab-fieldname = 'XPORE'.
               ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
               APPEND ls_celltab TO <lfs_acct_group_item>-celltab.
             ELSE.
               LOOP AT <lfs_acct_group_item>-celltab ASSIGNING <lfs_celltab>.
                 <lfs_celltab>-style = cl_gui_alv_grid=>mc_style_enabled.
               ENDLOOP.
             ENDIF.
           ENDLOOP.
         ELSE.
           set_enable( iv_flag = 0 ).
           LOOP AT gt_acct_group_item ASSIGNING <lfs_acct_group_item>.
             IF <lfs_acct_group_item>-celltab IS INITIAL.
               CLEAR ls_celltab.
               ls_celltab-fieldname = 'CHECK_BOX'.
               ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
               APPEND ls_celltab TO <lfs_acct_group_item>-celltab.
               CLEAR ls_celltab.
               ls_celltab-fieldname = 'XPORE'.
               ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
               APPEND ls_celltab TO <lfs_acct_group_item>-celltab.
             ELSE.
               LOOP AT <lfs_acct_group_item>-celltab ASSIGNING <lfs_celltab>.
                 <lfs_celltab>-style = cl_gui_alv_grid=>mc_style_disabled.
               ENDLOOP.
             ENDIF.
           ENDLOOP.
         ENDIF.
         CALL METHOD gr_grid->refresh_table_display
    *      EXPORTING
    *        is_stable      =
    *        i_soft_refresh =
           EXCEPTIONS
             finished       = 1
             OTHERS         = 2
         IF sy-subrc <> 0.
    *     Implement suitable error handling here
         ENDIF.
        Part 2:
    METHOD set_enable.
         gr_grid->set_ready_for_input(
             i_ready_for_input = iv_flag
    ENDMETHOD.

    Hi Liu,
        Please go through the below code.
    *& Report  YEDIT_DISPLAY
    REPORT  YEDIT_DISPLAY.
    TABLES : VBAK.
    TYPE-POOLS SLIS.
    TYPES : BEGIN OF TY_VBAK,
              VBELN TYPE VBAK-VBELN,
             END OF TY_VBAK,
             BEGIN OF TY_FINAL,
               BOX TYPE C,
               VBELN TYPE VBAK-VBELN,
             END OF TY_FINAL.
    DATA : IT_VBAK TYPE TABLE OF TY_VBAK,
            WA_VBAK TYPE TY_VBAK,
            IT_FINAL TYPE TABLE OF TY_FINAL,
            WA_FINAL TYPE TY_FINAL,
            IT_FCAT TYPE TABLE OF SLIS_FIELDCAT_ALV,
            WA_FCAT TYPE SLIS_FIELDCAT_ALV.
    START-OF-SELECTION.
       PERFORM FETCH_DATA.
       PERFORM FCAT_DATA.
       PERFORM DISPLAY.
    *&      Form  FETCH_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM FETCH_DATA .
       SELECT VBELN INTO TABLE IT_VBAK FROM VBAK UP TO 10 ROWS.
       LOOP AT IT_VBAK INTO WA_VBAK.
         WA_FINAL-VBELN = WA_VBAK-VBELN.
         APPEND WA_FINAL TO IT_FINAL.
         CLEAR : WA_FINAL , WA_VBAK.
       ENDLOOP.
    ENDFORM.                    " FETCH_DATA
    *&      Form  FCAT_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM FCAT_DATA .
       WA_FCAT-COL_POS = 1.
       WA_FCAT-FIELDNAME = 'BOX'.
       WA_FCAT-TABNAME = 'IT_FINAL'.
       WA_FCAT-OUTPUTLEN = '3'.
       WA_FCAT-SELTEXT_M = 'BOX'.
       wa_fcat-checkbox = 'X'.
       WA_FCAT-EDIT = 'X'.
       APPEND WA_FCAT TO IT_FCAT.
       CLEAR WA_FCAT.
       WA_FCAT-COL_POS = 2.
       WA_FCAT-FIELDNAME = 'VBELN'.
       WA_FCAT-TABNAME = 'IT_FINAL'.
       WA_FCAT-OUTPUTLEN = '3'.
       WA_FCAT-SELTEXT_M = 'Sales Document'.
       APPEND WA_FCAT TO IT_FCAT.
       CLEAR WA_FCAT.
    ENDFORM.                    " FCAT_DATA
    *&      Form  DISPLAY
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM DISPLAY .
       CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
    *   I_INTERFACE_CHECK                 = ' '
    *   I_BYPASSING_BUFFER                = ' '
    *   I_BUFFER_ACTIVE                   = ' '
          I_CALLBACK_PROGRAM                = SY-REPID
    *   I_CALLBACK_PF_STATUS_SET          = ' '
        I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
    *   I_CALLBACK_TOP_OF_PAGE            = ' '
          IT_FIELDCAT                       = IT_FCAT
    *   I_DEFAULT                         = 'X'
    *   I_SAVE                            = ' '
         TABLES
           T_OUTTAB                          = IT_FINAL
    * EXCEPTIONS
    *   PROGRAM_ERROR                     = 1
    *   OTHERS                            = 2
       IF SY-SUBRC <> 0.
    * Implement suitable error handling here
       ENDIF.
    ENDFORM.                    " DISPLAY
    FORM USER_COMMAND USING UCOMM TYPE SY-UCOMM
                             RTAB TYPE slis_selfield.
       CASE UCOMM.
         WHEN '&IC1'.
           MESSAGE 'SUCESSFUL' TYPE 'S'.
         WHEN '&DATA_SAVE'.
           PERFORM FIL_FCAT.
           PERFORM DISPLAY1.
         WHEN 'BACK'.
           LEAVE TO SCREEN 0.
         WHEN OTHERS.
           LEAVE TO SCREEN 0.
       ENDCASE.
    ENDFORM.
    *&      Form  FIL_FCAT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM FIL_FCAT .
    CLEAR IT_FCAT.
       WA_FCAT-COL_POS = 1.
       WA_FCAT-FIELDNAME = 'BOX'.
       WA_FCAT-TABNAME = 'IT_FINAL'.
       WA_FCAT-OUTPUTLEN = '3'.
       WA_FCAT-SELTEXT_M = 'BOX'.
       wa_fcat-checkbox = 'X'.
    **  WA_FCAT-EDIT = 'X'.
       APPEND WA_FCAT TO IT_FCAT.
       CLEAR WA_FCAT.
       WA_FCAT-COL_POS = 2.
       WA_FCAT-FIELDNAME = 'VBELN'.
       WA_FCAT-TABNAME = 'IT_FINAL'.
       WA_FCAT-OUTPUTLEN = '3'.
       WA_FCAT-SELTEXT_M = 'Sales Document'.
       APPEND WA_FCAT TO IT_FCAT.
       CLEAR WA_FCAT.
    ENDFORM.                    " FIL_FCAT
    *&      Form  DISPLAY1
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM DISPLAY1 .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
    *   I_INTERFACE_CHECK                 = ' '
    *   I_BYPASSING_BUFFER                = ' '
    *   I_BUFFER_ACTIVE                   = ' '
          I_CALLBACK_PROGRAM                = SY-REPID
    *   I_CALLBACK_TOP_OF_PAGE            = ' '
          IT_FIELDCAT                       = IT_FCAT
    *   I_DEFAULT                         = 'X'
    *   I_SAVE                            = ' '
         TABLES
           T_OUTTAB                          = IT_FINAL
    * EXCEPTIONS
    *   PROGRAM_ERROR                     = 1
    *   OTHERS                            = 2
       IF SY-SUBRC <> 0.
    * Implement suitable error handling here
       ENDIF.
    ENDFORM.                    " DISPLAY1
    Here i written code under the SAVE button , if requires you create your own status and apply.
    Regards,
    Krishna

  • How to remove repetition  in ALV GRID

    Dear freinds,
    In  ALV grid  iam getting repetitive for a feild Count (where iam giving count of the no of
    records .........i.e if i have four records i  have to give 4 but iam getting for all the 4 records as  4,4,4,4 in the output. Can i remove the repetation and get only once
    the value as 4 ...........Iam using the  data type for count as  INT3.
    CLEAR l_wa_sort.
    l_wa_sort-fieldname = 'COUNT'. "Field name in o/p inttable
    l_wa_sort-spos = '2'.
    l_wa_sort-tabname = 'fp_i_pyrol_final'. "Output Internal table
    l_wa_sort-up = 'X'. "Sort in ascending order
    l_wa_sort-down = ' '. "Sort in descending order
    APPEND l_wa_sort TO l_i_sort.
    However i tried changing the data type to Numc it working but total iam getting as 1 only
    not 4  which is wrong since i have four records.
    please can any one correct me what i can do in this case.
    regards
    syamla

    hi,
    REFRESH the count in the begin of the loop or at end of the loop.

  • How to display tooltip in ALV GRID CELL?

    Hello,
    I'm trying to display dynamic tootips for data in ALV GRID Cells.
    My ALV Gid Cells content does not display Icon or symbol or Exception but pure data (In my case dates).
    Is there a way to do display a toolip that will change dynamicaly according to a rule.
    I took a look at the BCALV_DEMO_TOOLTIP program
    but it does not answer my expectation since it display
    toltip for Icon or symbol or Exception.
    Can someone help on this case.
    Best regards
    Harry

    Hai Harry
    •     icon
    value set: SPACE, 'X'           'X' = column contents to be output as an icon.
    The caller must consider the printability of icons.
    •     symbol
    value set: SPACE, 'X'          'X' = column contents are to be output as a symbol.
    The internal output table column must be a valid symbol character.
    The caller must consider the printability of symbols.
    Symbols can usually be printed, but may not always be output correctly, depending on the printer configuration.
    Thanks & regards
    Sreenu

  • Based from my code, how do I implement an ALV grid using OO concept...

    Hello experts,
    I am currently practicing ABAP Objects and I would like to use alv in my report. Now, How can I implement ALV in my report in the simplest way possible. Sample codes will be highly appreciated. Thanks guys and take care!
    REPORT  z_aris_oo_practice_9
            NO STANDARD PAGE HEADING
            LINE-SIZE 0
            LINE-COUNT 0.
    TABLES: spfli.
    Selection screen
    SELECTION-SCREEN BEGIN OF BLOCK box1 WITH FRAME.
    SELECTION-SCREEN BEGIN OF BLOCK box2 WITH FRAME.
    PARAMETERS: p_carrid TYPE spfli-carrid,
                p_connid TYPE spfli-connid.
    SELECTION-SCREEN END OF BLOCK box2.
    SELECTION-SCREEN BEGIN OF BLOCK box3 WITH FRAME.
    PARAMETERS: p_sumdis AS CHECKBOX.
    SELECTION-SCREEN END OF BLOCK box3.
    SELECTION-SCREEN END OF BLOCK box1.
          INTERFACE status
    INTERFACE status.
      METHODS write.
    ENDINTERFACE.                    "status
          CLASS main DEFINITION
    CLASS main DEFINITION.
      PUBLIC SECTION.
        INTERFACES status.
        METHODS: get_data,
                 combine_data.
        CLASS-DATA: counter TYPE i.
      PRIVATE SECTION.
        TYPES: BEGIN OF t_spfli,
             carrid    TYPE spfli-carrid,
             connid    TYPE spfli-connid,
             countryfr TYPE spfli-countryfr,
             cityfrom  TYPE spfli-cityfrom,
             airpfrom  TYPE spfli-airpfrom,
             countryto TYPE spfli-countryto,
             cityto    TYPE spfli-cityto,
             airpto    TYPE spfli-airpto,
             fltime    TYPE spfli-fltime,
             deptime   TYPE spfli-deptime,
             arrtime   TYPE spfli-arrtime,
            END OF t_spfli.
        DATA: it_spfli        TYPE STANDARD TABLE OF t_spfli.
    ENDCLASS.                    "main DEFINITION
          CLASS main IMPLEMENTATION
    CLASS main IMPLEMENTATION.
      METHOD status~write.
        WRITE: / 'The number of records is:', counter.
      ENDMETHOD.                    "status~write
      METHOD get_data.
        SELECT carrid   connid   countryfr
               cityfrom airpfrom countryto
               cityto   airpto   fltime
               deptime  arrtime
        FROM spfli
        INTO TABLE it_spfli
        WHERE carrid = p_carrid.
      ENDMETHOD.                    "get_data
      METHOD combine_data.
        FIELD-SYMBOLS: <fs_spfli> LIKE LINE OF it_spfli.
        LOOP AT it_spfli ASSIGNING <fs_spfli>.
          ADD 1 TO counter.
          WRITE: / <fs_spfli>-carrid,
                   <fs_spfli>-connid,
                   <fs_spfli>-countryfr,
                   <fs_spfli>-cityfrom,
                   <fs_spfli>-airpfrom,
                   <fs_spfli>-countryto,
                   <fs_spfli>-cityto,
                   <fs_spfli>-airpto,
                   <fs_spfli>-fltime,
                   <fs_spfli>-deptime,
                   <fs_spfli>-arrtime.
        ENDLOOP.
      ENDMETHOD.                    "show_data
    ENDCLASS.                    "main IMPLEMENTATION
    START-OF-SELECTION.
      DATA: main TYPE REF TO main,
            status TYPE REF TO status.
      CREATE OBJECT main.
      CALL METHOD main->get_data.
      CALL METHOD main->combine_data.
      CALL METHOD main->status~write.

    Hi,
    Check this example..., In this i implemented so many functionalities like top_of_page, drop_down at cell level etc.., also Check the programs BCALVEDIT also
    Just check it.
    REPORT  ZTEST_ALV_OO    MESSAGE-ID ZZ                           .
    DATA: G_GRID TYPE REF TO CL_GUI_ALV_GRID.
    DATA: L_VALID TYPE C,
          V_FLAG,
          V_DATA_CHANGE,
          V_ROW TYPE LVC_S_ROW,
          V_COLUMN TYPE LVC_S_COL,
          V_ROW_NUM TYPE LVC_S_ROID.
    DATA: IT_ROW_NO TYPE LVC_T_ROID,
          X_ROW_NO TYPE LVC_S_ROID.
    DATA:BEGIN OF  ITAB OCCURS 0,
         VBELN LIKE LIKP-VBELN,
         POSNR LIKE LIPS-POSNR,
         CELLCOLOR TYPE LVC_T_SCOL, "required for color
         DROP(10),
         check,
         END OF ITAB.
    "The Below Definitions Must.....
    DATA:
    * Reference to document
           DG_DYNDOC_ID       TYPE REF TO CL_DD_DOCUMENT,
    * Reference to split container
           DG_SPLITTER          TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
    * Reference to grid container
           DG_PARENT_GRID     TYPE REF TO CL_GUI_CONTAINER,
    * Reference to html container
           DG_HTML_CNTRL        TYPE REF TO CL_GUI_HTML_VIEWER,
    * Reference to html container
           DG_PARENT_HTML     TYPE REF TO CL_GUI_CONTAINER.
    "up to here
    *       CLASS lcl_event_handler DEFINITION
    CLASS LCL_EVENT_HANDLER DEFINITION .
      PUBLIC SECTION .
        METHODS:
    **Hot spot Handler
        HANDLE_HOTSPOT_CLICK FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
                          IMPORTING E_ROW_ID E_COLUMN_ID ES_ROW_NO,
    **Double Click Handler
        HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
                                         IMPORTING E_ROW E_COLUMN ES_ROW_NO,
        TOP_OF_PAGE FOR EVENT TOP_OF_PAGE              "event handler
                             OF CL_GUI_ALV_GRID
                             IMPORTING E_DYNDOC_ID.
    *        END_OF_LIST FOR EVENT end_of_list              "event handler
    *                         OF CL_GUI_ALV_GRID
    *                         IMPORTING E_DYNDOC_ID.
    ENDCLASS.                    "lcl_event_handler DEFINITION
    *       CLASS lcl_event_handler IMPLEMENTATION
    CLASS LCL_EVENT_HANDLER IMPLEMENTATION.
    *Handle Hotspot Click
      METHOD HANDLE_HOTSPOT_CLICK .
        CLEAR: V_ROW,V_COLUMN,V_ROW_NUM.
        V_ROW  = E_ROW_ID.
        V_COLUMN = E_COLUMN_ID.
        V_ROW_NUM = ES_ROW_NO.
    *    MESSAGE I000 WITH V_ROW 'clicked'.
        CLEAR IT_ROW_NO[].
        X_ROW_NO-ROW_ID = V_ROW.
        APPEND X_ROW_NO TO IT_ROW_NO .
        CALL METHOD G_GRID->SET_SELECTED_ROWS
          EXPORTING
            IT_ROW_NO = IT_ROW_NO.
      ENDMETHOD.                    "lcl_event_handler
    *Handle Double Click
      METHOD  HANDLE_DOUBLE_CLICK.
        CLEAR: V_ROW,V_COLUMN,V_ROW_NUM.
        V_ROW  = E_ROW.
        V_COLUMN = E_COLUMN.
        V_ROW_NUM = ES_ROW_NO.
        IF E_COLUMN = 'VBELN'.
          SET PARAMETER ID 'VL' FIELD ITAB-VBELN.
          CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
        ENDIF.
        IF E_COLUMN = 'POSNR'.
          SET PARAMETER ID 'VL' FIELD ITAB-VBELN.
          CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN."
        ENDIF.
      ENDMETHOD.                    "handle_double_click
    *  METHOD END_OF_LIST.                   "implementation
    ** Top-of-page event
    *    PERFORM EVENT_TOP_OF_PAGE USING DG_DYNDOC_ID.
    *  ENDMETHOD.                            "top_of_page
        METHOD TOP_OF_PAGE.                   "implementation
    * Top-of-page event
        PERFORM EVENT_TOP_OF_PAGE USING DG_DYNDOC_ID.
      ENDMETHOD.                            "top_of_page
    ENDCLASS.                    "LCL_EVENT_HANDLER IMPLEMENTATION
    *&             Global Definitions
    DATA:      G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,"Container1
                G_HANDLER TYPE REF TO LCL_EVENT_HANDLER. "handler
    DATA: OK_CODE LIKE SY-UCOMM,
          SAVE_OK LIKE SY-UCOMM,
          G_CONTAINER1 TYPE SCRFNAME VALUE 'TEST',
          GS_LAYOUT TYPE LVC_S_LAYO.
    data: v_lines type i.
    data: v_line(3) type c.
    *- Fieldcatalog for First and second Report
    DATA: IT_FIELDCAT  TYPE  LVC_T_FCAT,
          X_FIELDCAT TYPE LVC_S_FCAT,
          LS_VARI  TYPE DISVARIANT.
    *                START-OF_SELECTION
    START-OF-SELECTION.
      SELECT VBELN
             POSNR
             FROM LIPS
             UP TO 20 ROWS
             INTO CORRESPONDING FIELDS OF TABLE ITAB.
    describe table itab lines v_lines.
    END-OF-SELECTION.
      IF NOT ITAB[] IS INITIAL.
        CALL SCREEN 100.
      ELSE.
        MESSAGE I002 WITH 'NO DATA FOR THE SELECTION'(004).
      ENDIF.
    *&      Form  CREATE_AND_INIT_ALV
    *       text
    FORM CREATE_AND_INIT_ALV .
      DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.
      "attention.....from here
      "split your container here...into two parts
      "create the container
      CREATE OBJECT G_CUSTOM_CONTAINER
               EXPORTING CONTAINER_NAME = G_CONTAINER1.
      "this is for top of page
    * Create TOP-Document
      CREATE OBJECT DG_DYNDOC_ID
                       EXPORTING STYLE = 'ALV_GRID'.
    * Create Splitter for custom_container
      CREATE OBJECT DG_SPLITTER
                 EXPORTING PARENT  = G_CUSTOM_CONTAINER
                           ROWS    = 2
                           COLUMNS = 1.
    * Split the custom_container to two containers and move the reference
    * to receiving containers g_parent_html and g_parent_grid
      "i am allocating the space for grid and top of page
      CALL METHOD DG_SPLITTER->GET_CONTAINER
        EXPORTING
          ROW       = 1
          COLUMN    = 1
        RECEIVING
          CONTAINER = DG_PARENT_HTML.
      CALL METHOD DG_SPLITTER->GET_CONTAINER
        EXPORTING
          ROW       = 2
          COLUMN    = 1
        RECEIVING
          CONTAINER = DG_PARENT_GRID.
    *  CALL METHOD DG_SPLITTER->GET_CONTAINER
    *    EXPORTING
    *      ROW       = 2
    *      COLUMN    = 1
    *    RECEIVING
    *      CONTAINER = DG_PARENT_HTML.
    *  CALL METHOD DG_SPLITTER->GET_CONTAINER
    *    EXPORTING
    *      ROW       = 1
    *      COLUMN    = 1
    *    RECEIVING
    *      CONTAINER = DG_PARENT_GRID.
      "you can set the height of it
    * Set height for g_parent_html
      CALL METHOD DG_SPLITTER->SET_ROW_HEIGHT
        EXPORTING
          ID     = 1
          HEIGHT = 5.
      "from here as usual..you need to specify parent as splitter part
      "which we alloted for grid
      CREATE OBJECT G_GRID
             EXPORTING I_PARENT = DG_PARENT_GRID.
    * Set a titlebar for the grid control
      CLEAR GS_LAYOUT.
      GS_LAYOUT-GRID_TITLE = TEXT-003.
      GS_LAYOUT-ZEBRA = SPACE.
      GS_LAYOUT-CWIDTH_OPT = 'X'.
      GS_LAYOUT-NO_ROWMARK = 'X'.
      GS_LAYOUT-CTAB_FNAME = 'CELLCOLOR'.
      CALL METHOD G_GRID->REGISTER_EDIT_EVENT
        EXPORTING
          I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER.
      CREATE OBJECT G_HANDLER.
      SET HANDLER G_HANDLER->HANDLE_DOUBLE_CLICK FOR G_GRID.
      SET HANDLER G_HANDLER->HANDLE_HOTSPOT_CLICK FOR G_GRID.
    *  SET HANDLER G_HANDLER->END_OF_LIST FOR G_GRID.
      SET HANDLER G_HANDLER->TOP_OF_PAGE FOR G_GRID.
      DATA: LS_CELLCOLOR TYPE LVC_S_SCOL. "required for color
      DATA: L_INDEX TYPE SY-TABIX.
      "Here i am changing the color of line 1,5,10...
      "so you can change the color of font conditionally
      LOOP AT ITAB.
        L_INDEX = SY-TABIX.
        IF L_INDEX = 1 OR L_INDEX = 5 OR L_INDEX = 10.
          LS_CELLCOLOR-FNAME = 'VBELN'.
          LS_CELLCOLOR-COLOR-COL = '6'.
          LS_CELLCOLOR-COLOR-INT = '0'.
          LS_CELLCOLOR-COLOR-INV = '1'.
          APPEND LS_CELLCOLOR TO ITAB-CELLCOLOR.
          MODIFY ITAB INDEX L_INDEX TRANSPORTING CELLCOLOR.
          LS_CELLCOLOR-FNAME = 'POSNR'.
          LS_CELLCOLOR-COLOR-COL = '6'.
          LS_CELLCOLOR-COLOR-INT = '0'.
          LS_CELLCOLOR-COLOR-INV = '1'.
          APPEND LS_CELLCOLOR TO ITAB-CELLCOLOR.
          MODIFY ITAB INDEX L_INDEX TRANSPORTING CELLCOLOR.
        ENDIF.
      ENDLOOP.
    * setting focus for created grid control
      CALL METHOD CL_GUI_CONTROL=>SET_FOCUS
        EXPORTING
          CONTROL = G_GRID.
    * Build fieldcat and set editable for date and reason code
    * edit enabled. Assign a handle for the dropdown listbox.
      PERFORM BUILD_FIELDCAT.
      PERFORM  SET_DRDN_TABLE.
    * Optionally restrict generic functions to 'change only'.
    *   (The user shall not be able to add new lines).
      PERFORM EXCLUDE_TB_FUNCTIONS CHANGING LT_EXCLUDE.
    **Vaiant to save the layout
      LS_VARI-REPORT      = SY-REPID.
      LS_VARI-HANDLE      = SPACE.
      LS_VARI-LOG_GROUP   = SPACE.
      LS_VARI-USERNAME    = SPACE.
      LS_VARI-VARIANT     = SPACE.
      LS_VARI-TEXT        = SPACE.
      LS_VARI-DEPENDVARS  = SPACE.
    **Calling the Method for ALV output
      CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY
        EXPORTING
          IT_TOOLBAR_EXCLUDING = LT_EXCLUDE
          IS_VARIANT           = LS_VARI
          IS_LAYOUT            = GS_LAYOUT
          I_SAVE               = 'A'
        CHANGING
          IT_FIELDCATALOG      = IT_FIELDCAT
          IT_OUTTAB            = ITAB[].
      "do these..{
    * Initializing document
      CALL METHOD DG_DYNDOC_ID->INITIALIZE_DOCUMENT.
    * Processing events
      CALL METHOD G_GRID->LIST_PROCESSING_EVENTS
        EXPORTING
          I_EVENT_NAME = 'TOP_OF_PAGE'
          I_DYNDOC_ID  = DG_DYNDOC_ID.
      "end }
    * Set editable cells to ready for input initially
      CALL METHOD G_GRID->SET_READY_FOR_INPUT
        EXPORTING
          I_READY_FOR_INPUT = 1.
    ENDFORM.                               "CREATE_AND_INIT_ALV
    *&      Form  EXCLUDE_TB_FUNCTIONS
    *       text
    *      -->PT_EXCLUDE text
    FORM EXCLUDE_TB_FUNCTIONS CHANGING PT_EXCLUDE TYPE UI_FUNCTIONS.
    * Only allow to change data not to create new entries (exclude
    * generic functions).
      DATA LS_EXCLUDE TYPE UI_FUNC.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_CUT.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE_NEW_ROW.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
    ENDFORM.                               " EXCLUDE_TB_FUNCTIONS
    *&      Form  build_fieldcat
    *       Fieldcatalog
    FORM BUILD_FIELDCAT .
      DATA: L_POS TYPE I.
      L_POS = L_POS + 1.
      X_FIELDCAT-SCRTEXT_M = 'Check'.
      X_FIELDCAT-FIELDNAME = 'CHECK'.
      X_FIELDCAT-TABNAME = 'IT_FINAL'.
      X_FIELDCAT-COL_POS    = L_POS.
      X_FIELDCAT-CHECKbox   = 'X'.
        X_FIELDCAT-EDIT = 'X'.
      X_FIELDCAT-OUTPUTLEN = '1'.
      APPEND X_FIELDCAT TO IT_FIELDCAT.
      CLEAR X_FIELDCAT.
      L_POS = L_POS + 1.
      X_FIELDCAT-SCRTEXT_M = 'Delivery'(024).
      X_FIELDCAT-FIELDNAME = 'VBELN'.
      X_FIELDCAT-TABNAME = 'IT_FINAL'.
      X_FIELDCAT-COL_POS    = L_POS.
      X_FIELDCAT-NO_ZERO    = 'X'.
      X_FIELDCAT-OUTPUTLEN = '10'.
      X_FIELDCAT-HOTSPOT = 'X'.
      APPEND X_FIELDCAT TO IT_FIELDCAT.
      CLEAR X_FIELDCAT.
      L_POS = L_POS + 1.
      X_FIELDCAT-SCRTEXT_M = 'Item'(025).
      X_FIELDCAT-FIELDNAME = 'POSNR'.
      X_FIELDCAT-TABNAME = 'IT_FINAL'.
      X_FIELDCAT-COL_POS    = L_POS.
      X_FIELDCAT-OUTPUTLEN = '5'.
      APPEND X_FIELDCAT TO IT_FIELDCAT.
      CLEAR X_FIELDCAT.
      L_POS = L_POS + 1.
      X_FIELDCAT-SCRTEXT_M = 'Drop'(025).
      X_FIELDCAT-FIELDNAME = 'DROP'.
      X_FIELDCAT-TABNAME = 'IT_FINAL'.
      X_FIELDCAT-COL_POS    = L_POS.
      X_FIELDCAT-OUTPUTLEN = '5'.
      X_FIELDCAT-EDIT = 'X'.
      X_FIELDCAT-DRDN_HNDL = '1'.
      X_FIELDCAT-DRDN_ALIAS = 'X'.
      APPEND X_FIELDCAT TO IT_FIELDCAT.
      CLEAR X_FIELDCAT.
    ENDFORM.                    " build_fieldcat
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS 'MAIN100'.
      SET TITLEBAR 'MAIN100'.
      IF G_CUSTOM_CONTAINER IS INITIAL.
    **Initializing the grid and calling the fm to Display the O/P
        PERFORM CREATE_AND_INIT_ALV.
      ENDIF.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    MODULE USER_COMMAND_0100 INPUT.
      CASE SY-UCOMM.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Form  SET_DRDN_TABLE
    *       text
    FORM SET_DRDN_TABLE.
      DATA:LT_DRAL TYPE LVC_T_DRAL,
            LS_DRAL TYPE LVC_S_DRAL.
      LOOP AT ITAB .
    * First listbox (handle '1').
        IF SY-INDEX = 1.
          LS_DRAL-HANDLE = '1'.
          LS_DRAL-VALUE =  ' '.
          LS_DRAL-INT_VALUE =  ' '.
        ELSE.
          LS_DRAL-HANDLE = '1'.
          LS_DRAL-VALUE =  ITAB-POSNR.
          LS_DRAL-INT_VALUE =  ITAB-POSNR.
        ENDIF.
        APPEND LS_DRAL TO LT_DRAL.
      ENDLOOP.
    **Setting the Drop down table for Reason Code
      CALL METHOD G_GRID->SET_DROP_DOWN_TABLE
        EXPORTING
          IT_DROP_DOWN_ALIAS = LT_DRAL.
    ENDFORM.                               " set_drdn_table
    *&      Form  EVENT_TOP_OF_PAGE
    *       text
    *      -->DG_DYNDOC_ID  text
    FORM EVENT_TOP_OF_PAGE USING   DG_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT.
      "this is more clear.....check it
      "first add text, then pass it to comentry write fm
      DATA : DL_TEXT(255) TYPE C.  "Text
    * Populating header to top-of-page
      CALL METHOD DG_DYNDOC_ID->ADD_TEXT
        EXPORTING
          TEXT      = 'Test Report'
          SAP_STYLE = CL_DD_AREA=>HEADING.
    * Add new-line
      CALL METHOD DG_DYNDOC_ID->NEW_LINE.
      CLEAR : DL_TEXT.
    * Move program ID
      CONCATENATE 'Program Name :' SY-REPID
             INTO DL_TEXT SEPARATED BY SPACE.
    * Add Program Name to Document
      PERFORM ADD_TEXT USING DL_TEXT.
    * Add new-line
      CALL METHOD DG_DYNDOC_ID->NEW_LINE.
      CLEAR : DL_TEXT.
    * Move User ID
      CONCATENATE 'User ID :' SY-UNAME INTO DL_TEXT SEPARATED BY SPACE
    * Add User ID to Document
      PERFORM ADD_TEXT USING DL_TEXT.
    * Add new-line
      CALL METHOD DG_DYNDOC_ID->NEW_LINE.
      CLEAR : DL_TEXT.
    * Move count (no of records).
      move v_lines to v_line.
      CONCATENATE 'No of records :' v_line INTO DL_TEXT SEPARATED BY SPACE.
    * Add Client to Document
      PERFORM ADD_TEXT USING DL_TEXT.
    * Add new-line
      CALL METHOD DG_DYNDOC_ID->NEW_LINE.
      CLEAR : DL_TEXT.
    * Move date
      WRITE SY-DATUM TO DL_TEXT.
      CONCATENATE 'Date :' DL_TEXT INTO DL_TEXT SEPARATED BY SPACE.
    * Add Date to Document
      PERFORM ADD_TEXT USING DL_TEXT.
    * Add new-line
      CALL METHOD DG_DYNDOC_ID->NEW_LINE.
      CLEAR : DL_TEXT.
    * Move time
      WRITE SY-UZEIT TO DL_TEXT.
      CONCATENATE 'Time :' DL_TEXT INTO DL_TEXT SEPARATED BY SPACE.
    * Add Time to Document
      PERFORM ADD_TEXT USING DL_TEXT.
    * Add new-line
      CALL METHOD DG_DYNDOC_ID->NEW_LINE.
    * Populating data to html control
      PERFORM HTML.
    ENDFORM.                    " EVENT_TOP_OF_PAGE
    *&      Form  ADD_TEXT
    *       To add Text
    FORM ADD_TEXT USING P_TEXT TYPE SDYDO_TEXT_ELEMENT.
    * Adding text
      CALL METHOD DG_DYNDOC_ID->ADD_TEXT
        EXPORTING
          TEXT         = P_TEXT
          SAP_EMPHASIS = CL_DD_AREA=>HEADING.
    ENDFORM.                    " ADD_TEXT
    *&      Form  HTML
    *       text
    FORM HTML.
      DATA : DL_LENGTH  TYPE I,                           " Length
             DL_BACKGROUND_ID TYPE SDYDO_KEY VALUE SPACE. " Background_id
    * Creating html control
      IF DG_HTML_CNTRL IS INITIAL.
        CREATE OBJECT DG_HTML_CNTRL
             EXPORTING
                  PARENT    = DG_PARENT_HTML.
      ENDIF.
    * Reuse_alv_grid_commentary_set
      CALL FUNCTION 'REUSE_ALV_GRID_COMMENTARY_SET'
        EXPORTING
          DOCUMENT = DG_DYNDOC_ID
          BOTTOM   = SPACE
        IMPORTING
          LENGTH   = DL_LENGTH.
    * Get TOP->HTML_TABLE ready
      CALL METHOD DG_DYNDOC_ID->MERGE_DOCUMENT.
    * Set wallpaper
      CALL METHOD DG_DYNDOC_ID->SET_DOCUMENT_BACKGROUND
        EXPORTING
          PICTURE_ID = DL_BACKGROUND_ID.
    * Connect TOP document to HTML-Control
      DG_DYNDOC_ID->HTML_CONTROL = DG_HTML_CNTRL.
    * Display TOP document
      CALL METHOD DG_DYNDOC_ID->DISPLAY_DOCUMENT
        EXPORTING
          REUSE_CONTROL      = 'X'
          PARENT             = DG_PARENT_HTML
        EXCEPTIONS
          HTML_DISPLAY_ERROR = 1.
      IF SY-SUBRC NE 0.
        MESSAGE I999 WITH 'Error in displaying top-of-page'(036).
      ENDIF.
    ENDFORM.                    " HTML
    Regards
    vijay

  • Hi, how to set printer to alv grid, please check my code

    Hi,
    Iam giving my code, please observe...
    DEFAULT PRINTER NAME "A909".
    NOW IAM SETTING OT "LP01".
    GS_PRINT-PRINT = 'X'.
    P_PRINTR = 'LP01'.
    CALL FUNCTION 'UPDATE_DEFAULT_PRINTPARAMS'
    EXPORTING
    USER = SY-UNAME
    DESTINATION = P_PRINTR
    IMMEDIATELY = ' '
    RELEASE = 'X'
    NEW_LIST_ID = 'X'.
    SY-BATCH = 'X'
    CALL METHOD GO_GRID->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
    I_BUFFER_ACTIVE =
    I_BYPASSING_BUFFER =
    I_CONSISTENCY_CHECK = G_CONSISTENCY_CHECK
    I_STRUCTURE_NAME = 'KNA1'
    IS_VARIANT = GS_VARIANT
    I_SAVE = 'A'
    I_DEFAULT = 'X'
    IS_LAYOUT = GS_LAYOUT
    IS_PRINT = GS_PRINT
    IT_SPECIAL_GROUPS =
    IT_TOOLBAR_EXCLUDING = GT_EXCLUDE
    IT_HYPERLINK =
    IT_ALV_GRAPHICS =
    IT_EXCEPT_QINFO =
    IR_SALV_ADAPTER =
    CHANGING
    IT_OUTTAB = ITAB2[]
    IT_FIELDCATALOG = GT_FIELDCAT
    IT_SORT =
    IT_FILTER =
    EXCEPTIONS
    INVALID_PARAMETER_COMBINATION = 1
    PROGRAM_ERROR = 2
    TOO_MANY_LINES = 3
    others = 4
    After running this program iam getting the default printer spool request number 'A909', Iam not getting printing form 'LP01'.
    Need is to send the print to given printer (LP01), here printer may varry accoring to the selection. So nee is to set the printer that which has choosen.
    Please give me the valuble solution as early as possible.
    Please solve this as early as possible.

    Hi Ravi,
    You can choose for the print version to be created as a PostScript file instead of a PDF document. The PostScript file is then sent directly to a printer of your choice
    If you do not specify an output device here, a PDF file is generated and displayed on the screen.
    You use the methods of the interface class IF_SALV_WD_PDF_SETTINGS for this (implementing class CL_SALV_WD_CONFIG_TABLE).
    <b>Function</b>                      <b>Method</b>
    Set ALV output to be printed immediately -->  SET_PRINT_IMMEDIATE
    Check whether the ALV output is to be printed immediately --> GET_PRINT_IMMEDIATE
    Set printer -->  SET_PRINTER
    Get printer --> GET_PRINTER
    See the below for SAP link
    http://help.sap.com/saphelp_nw04s/helpdata/en/43/27472def40601ee10000000a422035/content.htm
    see the thread also
    Re: How to set the printer in set_table_for_first_display
    mark all the helpful answers
    Regards
    Sudheer

Maybe you are looking for

  • Using select event for interlayer navigation

    Hi All,               I have two tables. The output of first table is input for the second one. When I select a row in the first table,the SELECT event is fired and the second table is populated based on the selection.              Now I have a scena

  • JRE 1.4.1_x version compatability.

    If I compile code using Java 1.4.1_02, will it run correctly under JRE 1.4.1_00? Thanks, Kieran Jones

  • SD reports, AS-IS TO-BEmodel

    Hi can i know about SD reports and AS-IS TO-BE model plz' thanks in advance

  • I forgot my security questions. How do I reset them?

    I want to make an in app purchase on my iPad, but need to answer the security questions I have, sadly, forgotten? Is there anyway I can reset them?

  • Unknown error (-50) when Importing a CD

    When I start a CD iTunes asks me whether I want to import it to the library. I click yes and then following error occures : 'Error occured while converting file 'songs name'. An unknown error occured (-50).' I checked already in Edit-Preferences-Adva