I_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'

Hi Experts
I am using an ALV Grid with the HTML functionality by basically
  CALL METHOD top->add_gap
    EXPORTING
      width = 155.
  CALL METHOD top->add_text
    EXPORTING
      text = l_text2.
12**********************
when i run the report it displays all my text at the top of page my problem arises when i print or do a print preview then it does display my text on the top of the page and prints the rest of the alv grid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            i_callback_pf_status_set = pf_status_formname
            i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
            i_callback_program       = pgm
            i_callback_user_command  = 'USER_COMMAND'
            is_layout                = ls_layo
            it_fieldcat              = i_fieldcat_alv
            i_save                   = 'A'
            is_variant               = disvariant
            it_events                = gt_events[]
            it_event_exit            = gt_event_exit[]
            it_excluding             = i_excluding[]
            it_sort                  = lt_sort[]
            it_filter                = i_filter[]
            is_print                  = w_print
       TABLES
            t_outtab                 = itab
       EXCEPTIONS
            program_error            = 1
            OTHERS                   = 2.

Hello,
What exactly is your problem? Does it not print your TOP_OF_PAGE ?
Plz revert back.
BR,
Suhas

Similar Messages

  • Printing the header of a report  and checking the join statement...

    Hi All,
    This report of mne is working fine but there are things that i want to include: when i print this report i want it to display heading of which is in the html_top_of_page but it does not print it, i am not familiar with smart forms so i won't be able to use smart forms.If anyone can help me out i will really appreciated and will immediately reward points......please help me guys as the due date is very close...and please check the joins on the select statement, not sure whether i've joined the tables properly!
    REPORT  Z_ORDER_AUDIT_NEW.
    TYPE-POOLS: SLIS.
                   LIST OF TABLES
    Tables: vbak, likp, vbrk, kna1, vbrp, nast.
                         DEFINITION OF FIELDS                               *
    DATA: itb_fieldcat TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          w_fieldcat TYPE slis_fieldcat_alv.
    DATA: w_cnt LIKE sy-tabix.
    DATA: lv_layout TYPE slis_layout_alv,
          lv_tab_group TYPE slis_t_sp_group_alv,
          lv_repid LIKE sy-repid,
          lv_events TYPE slis_t_event,
          lv_print  TYPE slis_print_alv,
          lv_user   TYPE slis_formname VALUE 'USER_COMMAND'.
             SELECTION SCREEN                                                 *
    SELECT-OPTIONS:
      s_lfdat FOR likp-lfdat,
      s_imwrk FOR likp-imwrk.
                 DEFINITION OF AN INTERNAL TABLE                              *
    DATA: Begin of i_ordertab occurs 0,
             audat  LIKE vbak-audat,
             vbeln  LIKE vbak-vbeln,
             lfdat  LIKE likp-lfdat,
             erdat  LIKE likp-erdat,
             vbeln1 LIKE likp-vbeln,
             vbeln2 LIKE vbrk-vbeln,
             erdat1 LIKE vbrk-erdat,
             kunrg  LIKE vbrk-kunrg,
             name1  LIKE kna1-name1,
             regio  LIKE vbrk-regio,
             inco1  LIKE vbrk-inco1,
             vrkme  LIKE vbrp-vrkme,
             ntgew  LIKE vbrp-ntgew,
             gewei  LIKE vbrp-gewei,
             volum  LIKE vbrp-volum,
             voleh  LIKE vbrp-voleh,
             netwr  LIKE vbrk-netwr,
           End of i_ordertab.
                   READ THE DATA                                               *
      SELECT vbakaudat vbakvbeln likplfdat likperdat likpvbeln vbrkvbeln
             vbrkerdat vbrkkunrg kna1name1 vbrkregio vbrkinco1 vbrpvrkme
             vbrpntgew vbrpgewei vbrpvolum vbrpvoleh vbrk~netwr
             FROM likp join kna1 on likpkunnr EQ kna1kunnr
                       join vbrk on kna1kunnr EQ vbrkkunrg
                       join vbrp on vbrkvbeln EQ vbrpvbeln
                       join vbak on kna1kunnr EQ vbakkunnr
             INTO i_ordertab
             WHERE likp~lfdat IN s_lfdat
             AND   likp~imwrk IN s_imwrk.
             APPEND i_ordertab.
      ENDSELECT.
                         PERFORM STATEMENTS                                   *
    PERFORM build_fieldcatalog.
    PERFORM build_layout.
    PERFORM build_event.
    PERFORM build_print.
    PERFORM display_alv_report.
    FORM build_fieldcatalog.
      w_cnt = 1.
      itb_fieldcat-fieldname = 'AUDAT'.
      itb_fieldcat-seltext_m = 'Document date'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      itb_fieldcat-key       = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'VBELN'.
      itb_fieldcat-seltext_m = 'S/O number'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'LFDAT'.
      itb_fieldcat-seltext_m = 'Deliv. date'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'ERDAT'.
      itb_fieldcat-seltext_m = 'Del. Crt Date'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'VBELN1'.
      itb_fieldcat-seltext_m = 'Delivery No.'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'VBELN2'.
      itb_fieldcat-seltext_m = 'Invoice No.'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'ERDAT1'.
      itb_fieldcat-seltext_m = 'Invoice Date'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'KUNRG'.
      itb_fieldcat-seltext_m = 'Payer'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'NAME1'.
      itb_fieldcat-seltext_m = 'Payer-Description'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'REGIO'.
      itb_fieldcat-seltext_m = 'Region'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'INCO1'.
      itb_fieldcat-seltext_m = 'Incoterms'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'VRKME'.
      itb_fieldcat-seltext_m = 'Billed Quantity'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'NTGEW'.
      itb_fieldcat-seltext_m = 'Net weight'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'GEWEI'.
      itb_fieldcat-seltext_m = 'Weight Unit'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'VOLUM'.
      itb_fieldcat-seltext_m = 'Volume'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'VOLEH'.
      itb_fieldcat-seltext_m = 'VOLUME UNIT'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
      w_cnt = w_cnt + 1.
      itb_fieldcat-fieldname = 'NETWR'.
      itb_fieldcat-seltext_m = 'Net Value'.
      itb_fieldcat-col_pos   = w_cnt.
      itb_fieldcat-emphasize = 'X'.
      itb_fieldcat-ref_tabname  = 'VBRK' .
      itb_fieldcat-ref_fieldname = 'NETWR' .
      itb_fieldcat-do_sum = 'X' .
      APPEND itb_fieldcat TO itb_fieldcat.
      CLEAR itb_fieldcat.
    ENDFORM.
    FORM build_layout.
        lv_layout-no_input           = 'X'.
        lv_layout-colwidth_optimize  = 'X'.
        lv_layout-totals_text        = 'Totals'(201).
        lv_layout-detail_popup       = 'X'.
    ENDFORM.
    FORM build_event.
      DATA i_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
         EXPORTING
           i_list_type = 0
         IMPORTING
           et_events   = lv_events[].
       READ TABLE lv_events WITH KEY name = slis_ev_user_command
                            INTO i_event.
       if sy-subrc = 0.
         MOVE lv_user TO i_event-form.
         APPEND i_event TO lv_events.
       endif.
    ENDFORM.
    FORM build_print.
         lv_print-reserve_lines = '2'.
         lv_print-no_coverpage  = 'X'.
    ENDFORM.
    *&          FUNCTION ALV DISPLAY
    FORM display_alv_report.
    lv_repid = sy-repid.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
       I_CALLBACK_PROGRAM             = lv_repid
       I_CALLBACK_USER_COMMAND        = slis_ev_user_command
       I_CALLBACK_HTML_TOP_OF_PAGE    = 'HTML_TOP_OF_PAGE' " see FORM
       I_CALLBACK_HTML_END_OF_LIST    = 'END_OF_LIST_HTML'   "see FORM
       IS_LAYOUT                      = lv_layout
       IT_FIELDCAT                    = itb_fieldcat[]
       IT_SPECIAL_GROUPS              = lv_tab_group
       I_SAVE                         = 'X'
       IT_EVENTS                      = lv_events
       IS_PRINT                       = lv_print
      TABLES
        t_outtab                      = i_ordertab
      EXCEPTIONS
        PROGRAM_ERROR                 = 1
        OTHERS                        = 2.
    IF sy-subrc <> 0.
    ENDIF.
    ENDFORM.
    *&      Form  html_top_of_page
    FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
      DATA: text TYPE sdydo_text_element.
      CALL METHOD document->add_gap
        EXPORTING
          width = 100.
      text =  'Cadbury: Daily Audit of Orders'.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'HEADING'.
      CALL METHOD document->new_line.
      CALL METHOD document->new_line.
      CALL METHOD document->new_line.
      text = 'User Name : '.
      CALL METHOD document->add_text
        EXPORTING
          text         = text
          sap_emphasis = 'Strong'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 6.
      text = sy-uname.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 50.
      text = 'Date : '.
      CALL METHOD document->add_text
        EXPORTING
          text         = text
          sap_emphasis = 'Strong'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 6.
      text = sy-datum.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 50.
      text = 'Time : '.
      CALL METHOD document->add_text
        EXPORTING
          text         = text
          sap_emphasis = 'Strong'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 6.
      text = sy-uzeit.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
    ENDFORM.
    FORM end_of_list_html USING end TYPE REF TO cl_dd_document.
    DATA: ls_text TYPE sdydo_text_element,
        l_grid TYPE REF TO cl_gui_alv_grid,
        f(14) TYPE c VALUE 'SET_ROW_HEIGHT',
        w_lines type i,
        w_lines1(9) type n.
    DESCRIBE TABLE i_ordertab LINES w_lines.
    w_lines1 = w_lines.
    concatenate: 'TOTAL NUMBER OF RECORDS SELECTED:  ' w_lines1 INTO ls_text
                                  SEPARATED BY space.
    adds test (via variable)
       CALL METHOD end->add_text
      EXPORTING
        text = ls_text
        sap_emphasis = 'strong'.
    adds new line (start new line)
       CALL METHOD end->new_line.
    *set height of this section
       CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
         e_grid = l_grid.
        CALL METHOD l_grid->parent->parent->(f)
        EXPORTING
          id = 3
          height = 14.
    ENDFORM. "end_of_list_html.
    --END OF THE REPORT--

    Hi
    1. first remove the ENDSELECT..use INTO table itab or INTO CORRESPONDING fields, Since you are joining the  more tables this will take lot of time.
    2. You are just using two fields from LIKP as selection screen  fields to fetch the so much data.
    see the table linkings apartfrom KUNNR between the tables
    LIKP-VBELN = LIPS-VBELN
    LIPS-VGBEL = VBAK-VBELN and  LIPS-VGPOS = VBAP-POSNR
    and
    VBRP-AUBEL = VBAK-VBELN and VBRP-AUPOS = VBAP-POSNR and
    VBRP-VGBEL = LIKP-VBELN  and VBRP-VGPOS = LIPS-POSNR
    use the above links and code again.
    <b>Reward points for useful Answers</b>
    Regards
    Anji

  • Issue in displaying header details in ALV report

    Hi,
    I have used slis_t_listheader and REUSE_ALV_COMMENTARY_WRITE to display the header details in ALV report.I want the details to be displayed as below.
    Requester : ----------------------                                                                               Page: 1
    Program: -----------------------                                                                                Date:---------
                                                                     Title of Report
    But when I use the structure slis_t_listheader to display the header details,all the fields are coming one below the other.
    How can I get the fields as shown in the above format
    Edited by: Abaper12345 on Jun 25, 2009 7:54 AM

    Hi,
    Go through following code... its showing the data exactly the way you want....
    REPORT  TEST3.
    TYPE-POOLS:slis.
    TABLES:MARA.
    *Type Declaration
    TYPES:BEGIN OF t_mara,
          matnr TYPE mara-matnr,
          ersda TYPE mara-ersda,
          ernam TYPE mara-ernam,
          END OF t_mara.
    *Internal Table
    data:it_mara type standard table of t_mara.
    *Work Area
    data:wa_mara type t_mara.
    DATA:i_repid TYPE sy-repid .
    i_repid = sy-repid.
    *Declaration for field catalog
    DATA : fcat TYPE slis_t_fieldcat_alv,
           wa_fcat TYPE slis_fieldcat_alv.
    *Declaration for Layout
    data : WA_LAYOUT type SLIS_LAYOUT_ALV.
    *Initializing ColumnWidth_Optimize For Layout
      WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    START-OF-SELECTION
    START-OF-SELECTION.
    *Fetching data into internal tables
      PERFORM get_data.
    *Buil Fieldcatalog
      PERFORM build_fcat.
    *Display ALV Report
      PERFORM alv_display.
    *Build Fieldcat
    FORM build_fcat .
      wa_fcat-tabname = 'IT_MARA'.
      wa_fcat-fieldname = 'MATNR'.
      wa_fcat-inttype = 'C'.
      wa_fcat-seltext_m = 'Material Number'.
      wa_fcat-outputlen = 25.
      wa_fcat-col_pos = 1.
      APPEND wa_fcat TO fcat.
      CLEAR wa_fcat.
      wa_fcat-tabname = 'IT_MARA'.
      wa_fcat-fieldname = 'ERSDA'.
      wa_fcat-inttype = 'C'.
      wa_fcat-seltext_m = 'Date'.
      wa_fcat-outputlen = 25.
      wa_fcat-col_pos = 1.
      APPEND wa_fcat TO fcat.
      CLEAR wa_fcat.
      wa_fcat-tabname = 'IT_MARA'.
      wa_fcat-fieldname = 'ERNAM'.
      wa_fcat-inttype = 'C'.
      wa_fcat-seltext_m = 'User'.
      wa_fcat-outputlen = 25.
      wa_fcat-col_pos = 1.
      APPEND wa_fcat TO fcat.
      CLEAR wa_fcat.
      endform.
    *&      Form  GET_DATA
          text
    -->  p1        text
    <--  p2        text
    form GET_DATA .
    select matnr ersda ernam from mara into table it_mara.
    endform.                    " GET_DATA
    *&      Form  ALV_DISPLAY
          text
    -->  p1        text
    <--  p2        text
    form ALV_DISPLAY .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = i_repid
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
       I_CALLBACK_HTML_TOP_OF_PAGE       = 'HTML_TOP_OF_PAGE'
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
       IT_FIELDCAT                       = fcat
      TABLES
        t_outtab                          = it_mara
    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.                    " ALV_DISPLAY
    *&      Form  html_top_of_page " I_CALLBACK_HTML_TOP_OF_PAGE  "
    FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
    CALL METHOD document->add_text
      EXPORTING
        text          = 'Program'
        sap_color     = document->list_group
        sap_fontstyle = document->standard
       sap_emphasis  = document->strong.
    CALL METHOD document->new_line
      EXPORTING
        repeat = 1
    CALL METHOD document->add_text
      EXPORTING
        text          = 'Requester'
        sap_color     = document->list_group
        sap_fontstyle = document->standard
       sap_emphasis  = document->strong.
    CALL METHOD document->new_line
      EXPORTING
        repeat = 1
    CALL METHOD document->add_gap
      EXPORTING
         width      = 125
    CALL METHOD document->add_text
      EXPORTING
        text          = 'This Is Test Data'
        sap_color     = document->list_group
       sap_fontsize  = document->LARGE
       sap_fontstyle = document->standard
       sap_emphasis  = document->strong.
    ENDFORM.                    "HTML_TOP_OF_PAGE
    Thanks & Regards
    Ashu SIngh

  • Reserved lines in ALV report

    Hi Experts,
    I have written few lines of code in "HTML_TOP_OF_PAGE" sub routine. This subroutine I am using in ALV. like below...
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM                  = G_REPID
          I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
          IS_LAYOUT                                       = GS_LAYOUT
          IT_FIELDCAT                                    = IT_FIELDS
          IT_SORT                                           = IT_SORT
          I_SAVE                                             = 'A'
          IS_VARIANT                                      = G_VARIANT
        TABLES
          T_OUTTAB                                        = ITAB
        EXCEPTIONS
          PROGRAM_ERROR                           = 1
          OTHERS                                           = 2.
    I would like to reserve some lines for the top of page. i mean After displaying the data in top of page, ITAB data should be displayed.Now we can only visible three lines data only. still there are six lines are there. After displaying another six lines the Itab data should be displayed in ALV table.
    Of course, we can drag down my data table. But user doesn't want to see without any efforts.
    Pls help me.
    Thanks in advance
    Raghu

    CALL METHOD document->add_gap
        EXPORTING
          width = 50. should help you..
    FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
      DATA: text TYPE sdydo_text_element.
      CALL METHOD document->add_gap
        EXPORTING
          width = 100.
      text =  'Jay custom ALV'.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'HEADING'.
      CALL METHOD document->new_line.
      CALL METHOD document->new_line.
      CALL METHOD document->new_line.
      text = 'User Name : '.
      CALL METHOD document->add_text
        EXPORTING
          text         = text
          sap_emphasis = 'Strong'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 6.
      text = sy-uname.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 50.
      text = 'Date : '.
      CALL METHOD document->add_text
        EXPORTING
          text         = text
          sap_emphasis = 'Strong'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 6.
      DATA: zword TYPE string, zdd TYPE string, zmmm TYPE string,
            zyyyy TYPE string, zfin TYPE string.
      CALL FUNCTION 'CONVERSION_EXIT_IDATE_OUTPUT'
        EXPORTING
          input  = sy-datum
        IMPORTING
          output = zword.
      zdd = zword+3(2).
      zmmm = zword+0(3).
      zyyyy = zword+7(2).
      CONCATENATE zdd '-' zmmm '-' zyyyy INTO zfin.
      text = zfin.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 50.
      text = 'Time : '.
      CALL METHOD document->add_text
        EXPORTING
          text         = text
          sap_emphasis = 'Strong'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 6.
      text = sy-uzeit.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
      CALL METHOD document->new_line.
      text = lv_count.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
      CALL METHOD document->new_line.
    ENDFORM.                    "HTML_TOP_OF_PAGE

  • The no of character in alv top of page

    i have to display k:
    Share\MM_SCUBCode_PDAtxt_Upload\OUT-1090000017-200903171823 - LY 2.txt
    in the alv top of page but it is taking k:
    Share\MM_SCUBCode_PDAtxt_Upload\OUT-1090000017-200903171823.
    any idea how to do it
    please check my code
    form top_of_page .
      DATA: wa_header TYPE slis_listheader.
    IF  p_file IS NOT  INITIAL.
      wa_header-typ = 'S'.
      wa_header-key = 'File Path:'.
      wa_header-info = p_file.
      APPEND wa_header TO it_header.
      CLEAR wa_header.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        it_list_commentary       = it_header.
    ENDIF.

    Hi,
         To overcome this limitation we can use dynamic document, which can be implemented through the class CL_DD_DOCUMENT. As dynamic documents use HTML viewer control so instead of triggering the TOP_OF_PAGE event we should trigger event of HTML TOP_OF_PAGE. 
    First create a subroutine for top of page in HTML format and send that name in I_CALLBACK_HTML_TOP_OF_PAGE parameter of ALV function module. The input parameter for this subroutine will be a variable of class CL_DD_DOCUMENT.   
    *       FORM html_top_of_page                                     *
    FORM html_top_of_page USING top TYPE REF TO cl_dd_document.
      data: l_text(255) type c.
    l_text = 'k:\\Share\MM_SCUBCode_PDAtxt_Upload\OUT-1090000017-200903171823 - LY 2.txt'.
      CALL METHOD top->add_text EXPORTING text = 'Hello world '
                                          sap_style = 'heading' .
      CALL METHOD top->add_gap EXPORTING width = 200.
      CALL METHOD top->add_picture EXPORTING picture_id = 'ENJOYSAP_LOGO'.
      CALL METHOD top->NEW_LINE( ).
      CALL METHOD top->add_text EXPORTING
      text = l_text.
    ENDFORM.
    * Display ALV grid
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
         EXPORTING
              i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
              i_callback_program          = g_repid
              i_structure_name            = 'STRUCTURE'
         TABLES
              t_outtab                    = gt_outtab.
    Regards
    Bala Krishna

  • Allignment in ALV top of page using oops

    I am displaying some fields with their values on top of page using Classes.but i am not able to get a proper alignment.
    i want the field and their respective values one-below the other with once the field description and the values below after the description. eg...
      field : 0125465
               0123654
               23654100
    sales : au01
               sd02
               GH26
    org    : 101
               102
               103

    Check this sample..
    Take the code from the HTML_TOP_OF_PAGE from the below report.
    REPORT  ztest_page.
    DATA : it_flight TYPE TABLE OF sflight WITH HEADER LINE.
    data: t type x.
    START-OF-SELECTION.
      SELECT * FROM sflight INTO TABLE it_flight.
    END-OF-SELECTION.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program          = sy-repid
          i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
          i_callback_top_of_page      = 'TOP_OF_PAGE'
          i_structure_name            = 'SFLIGHT'
        TABLES
          t_outtab                    = it_flight
        EXCEPTIONS
          program_error               = 1
          OTHERS                      = 2.
    *&      Form  TOP_OF_PAGE
    *       text
    FORM top_of_page.
      WRITE 'This is the Top of page which triggers in print'.
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  html_top_of_page
    FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
      DATA : dl_text(255) TYPE c.  "Text
    * Add new-line
      CALL METHOD document->new_line.
      CALL METHOD document->new_line.
      CLEAR : dl_text.
    * program ID
      dl_text = 'Program Name :'.
      CALL METHOD document->add_gap.
      CALL METHOD document->add_text
        EXPORTING
          text         = dl_text
          sap_emphasis = cl_dd_area=>heading
          sap_color    = cl_dd_area=>list_heading_int.
      CLEAR dl_text.
      dl_text = sy-repid.
      CALL METHOD document->add_text
        EXPORTING
          text         = dl_text
          sap_emphasis = cl_dd_area=>heading
          sap_color    = cl_dd_area=>list_negative_inv.
    * Add new-line
      CALL METHOD document->new_line.
      CLEAR : dl_text.
      dl_text = sy-uname.
      CALL METHOD document->add_gap
        EXPORTING
          width = 34.
      CALL METHOD document->add_text
        EXPORTING
          text         = dl_text
          sap_emphasis = cl_dd_area=>heading
          sap_color    = cl_dd_area=>list_negative_inv.
    * Add new-line
      CALL METHOD document->new_line.
      CLEAR : dl_text.
      CALL METHOD document->add_gap
        EXPORTING
          width = 34.
    * Move date
      WRITE sy-datum TO dl_text.
      CALL METHOD document->add_text
        EXPORTING
          text         = dl_text
          sap_emphasis = cl_dd_area=>heading
          sap_color    = cl_dd_area=>list_negative_inv.
    * Add new-line
      CALL METHOD document->new_line.
      CLEAR : dl_text.
    * Move time
      WRITE sy-uzeit TO dl_text.
      CALL METHOD document->add_gap
        EXPORTING
          width = 34.
      CALL METHOD document->add_text
        EXPORTING
          text         = dl_text
          sap_emphasis = cl_dd_area=>heading
          sap_color    = cl_dd_area=>list_negative_inv.
    * Add new-line
      CALL METHOD document->new_line.
    ENDFORM.                    "HTML_TOP_OF_PAGE
    same Code can be used in the class. you take the above code and see..

  • ALV Report Output Print

    Hi,
    I have  generated a ALV Report Output. Fine, but when I have selected 'Print' button or 'Download' button in Application Tool Bar I get dump 'GETWA_NOT_ASSIGNED'.
    What should I do to rectify the error?
    Thnx,
    Shivaa...

    This is my declaration....
    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          = gs_user_status
          i_callback_user_command           = gs_user_command
       i_callback_top_of_page            = 'TOP-OF-PAGE'
         I_CALLBACK_HTML_TOP_OF_PAGE       = 'HTML_TOP_OF_PAGE '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = 'ALV_BACKGROUND'
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
          is_layout                         = gs_layout
          it_fieldcat                       = itfc
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
          i_save                            = 'A'
      IS_VARIANT                        =
      IT_EVENTS                         =
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      I_HTML_HEIGHT_TOP                 =
      I_HTML_HEIGHT_END                 =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        tables
          t_outtab                          = it_alv
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
    Plz let me know the changes I have to do..

  • Displaying items in a single line in ALV grid using  ALV_TOP_OF_PAGE.

    Hello Guys,
    I am having a problem in displaying items in a single line in the ALV Grid using event ALV_TOP_OF_PAGE.
    My requirement is to group items on a single line i.e. in the example below, Vendor code and posting date are on the same line. The next line the prints Vendor Name and Document no.
    Vendor Code: 123123                               Posting Date : 01.01.2011
    Vendor Name: ABCD                                 Document No: 152246598.
    Here is my code in subroutine 'ALV_TOP_OF_PAGE', 
      wa_list_comments-typ = 'S'. 
      wa_list_comments-key = ''.
      wa_list_comments-info = 'Vendor Code'.
      APPEND wa_list_comments TO it_list_comments.
      wa_list_comments-typ = 'S'. 
      wa_list_comments-key = ''.
      wa_list_comments-info = 'Posting Date'.
      APPEND wa_list_comments TO it_list_comments.
    The above code prints in the following format i.e one below the other,
    Vendor Code: 123123                              
    Posting Date : 01.01.2011.
    I also tried using HTML_TOP_OF_PAGE, but it didn't work.
    Can anybody please help me out with this.
    Regards,
    Danish.

    Hi Danish,
    Your problem is with the alignment and you need some fix positions .
    The solution i feel is u can use as below :
    In CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    use 
    i_callback_html_top_of_page       = 'HTML_TOP_OF_PAGE'.
    Now on calling routine call use cl_dd_document class :
    FORM html_top_of_page USING document TYPE REF TO cl_dd_document .
    data : doctable TYPE REF TO cl_dd_table_element,
              col1_t1 TYPE REF TO cl_dd_area,
              col2_t1 TYPE REF TO cl_dd_area,
              col1_t2 TYPE REF TO cl_dd_area,
              col2_t2 TYPE REF TO cl_dd_area.
    add quick table with five columns
        CALL METHOD lw_document->add_table
          EXPORTING
            no_of_columns               = 2
            border                      = '0'
         cell_background_transparent = ' '
            width                       = '100%'
          IMPORTING
            table                       = doctable.
    Filling columns in row
        CALL METHOD doctable->add_column
          EXPORTING
            width  = '40%'
          IMPORTING
            column = col1_t1.
    Filling columns in row
        CALL METHOD doctable->add_column
          EXPORTING
            width  = '60%'
          IMPORTING
            column = col2_t1.* Filling columns in row
    Call method doctable->new_row.
        CALL METHOD doctable->add_column
          EXPORTING
            width  = '40%'
          IMPORTING
            column = col1_t2.
    Filling columns in row
        CALL METHOD doctable->add_column
          EXPORTING
            width  = '60%'
          IMPORTING
            column = col2_t2.
    *Now adding the texts
    lw_text1 = 'your first text'
    CALL METHOD col1_t1->add_text
          EXPORTING
            text = lw_text.
    *Similarly add text for other columns
    *Adujust % in width to adjust the column as required
    Endform.
    Hope this will solve your problem .

  • How to add the double headings in Alv Report.

    Hi All,
    Plz suggest me how to add the double headings in ALv Report.
    Ram

    Hi,
    Try out this program....
    REPORT  ypm_historycard_rep.
    TYPE-POOLS : slis.
    DATA : it_cbm TYPE STANDARD TABLE OF mara.
    DATA : it_layout TYPE STANDARD TABLE OF slis_layout_alv WITH HEADER LINE,
           wa_fcat TYPE slis_fieldcat_alv,
           it_fcat TYPE slis_t_fieldcat_alv.
    START-OF-SELECTION.
      SELECT  *
      FROM  mara
      INTO CORRESPONDING FIELDS OF TABLE  it_cbm
      where matnr = 'D80K7'.
    END-OF-SELECTION.
      it_layout-zebra = 'X'.
      it_layout-colwidth_optimize = 'X'.
      it_layout-f2code = '&ETA'.
      APPEND it_layout.
      DEFINE macro4fcat.
        wa_fcat-col_pos = &1.
        wa_fcat-fieldname = &2.
        wa_fcat-tabname = &3.
        wa_fcat-seltext_l = &4.
        append wa_fcat to it_fcat.
        clear wa_fcat.
      END-OF-DEFINITION.
      macro4fcat    '1'  'MATNR'         'IT_CBM'   'MATERIAL NO'    .
      DESCRIBE TABLE it_cbm.
      IF sy-ucomm = '&F03'.
        MESSAGE 'hi hello good morning "press enter button" this is quiz' TYPE 'S'.
      ENDIF.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
      i_callback_program                = sy-repid
    i_callback_html_top_of_page       = 'HTML_TOP_OF_PAGE'
      is_layout                         = it_layout
      it_fieldcat                       = it_fcat
       i_save                            = 'A'
      TABLES
      t_outtab                          = it_cbm
      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.
    *&      Form  html_top_of_page
    *       text
    *      -->TOP        text
    FORM html_top_of_page USING top TYPE REF TO cl_dd_document.
      DATA: l_text(255) TYPE c.
      DATA: text1(255)  TYPE c.
      DATA: t_header TYPE REF TO cl_dd_table_element ,
            wa_header TYPE REF TO cl_dd_table_area.
      CALL METHOD top->add_gap
        EXPORTING
          width = 10.
      CALL METHOD top->add_text
      EXPORTING
        text          = 'hello'
        sap_style     = 'HEADING'
    CALL METHOD top->add_gap
        EXPORTING
          width = 20.
      CALL METHOD top->add_text
      EXPORTING
        text          = 'HOW ARE YOU'
        sap_style     = 'HEADING'.
        CALL METHOD TOP->new_line
    *      EXPORTING
    *        repeat =
        CALL METHOD top->add_gap
        EXPORTING
          width = 50.
      CALL METHOD top->add_text
      EXPORTING
        text          = '____________________________________________________________'
        sap_style     = 'HEADING'.
        CALL METHOD TOP->new_line
    *      EXPORTING
    *        repeat =
        CALL METHOD top->add_gap
        EXPORTING
          width = 90.
      CALL METHOD top->add_text
      EXPORTING
        text          = 'YOU CAN TRY LIKE THIS'
        sap_style     = 'HEADING'.
    ENDFORM.                    "html_top_of_page
    Regards
    Debarshi

  • How to make top of page in alv  to be printed.

    hello expert:
    i used following function to output alv.
    but after been printed into spool, i cannot find the top of page.
    how to set the print parameter to print the top of ALV.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program          = w_repid
          i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
          is_layout                   = wa_layout
          it_fieldcat                 = it_fieldcat
        TABLES
          t_outtab                    = it_comp
        EXCEPTIONS
          program_error               = 1
          OTHERS                      = 2.
    thank you and best regards,
    Kevin Gao

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
       I_INTERFACE_CHECK           = ' '
         i_bypassing_buffer          = 'X'
       I_BUFFER_ACTIVE             = ' '
         i_callback_program          = sy-repid
       I_CALLBACK_PF_STATUS_SET    = ' '
       I_CALLBACK_USER_COMMAND     = ' '
       I_CALLBACK_TOP_OF_PAGE      = 'HTML_TOP_OF_PAGE'
        I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
       I_CALLBACK_HTML_END_OF_LIST = ' '
        i_structure_name            = <DYN_WA>
       I_BACKGROUND_ID             = ' '
       I_GRID_TITLE                =
       I_GRID_SETTINGS             =
         is_layout                   = gds_layout
         it_fieldcat                 = gdt_field_cata
       IT_EXCLUDING                =
       IT_SPECIAL_GROUPS           =
        it_sort                     = gdt_sortinfo
       IT_FILTER                   =
       IS_SEL_HIDE                 =
       I_DEFAULT                   = 'X'
         i_save                      = 'X'
         is_variant                  = gt_var
         it_events                   = gdt_eventcat
       IT_EVENT_EXIT               =
        IS_PRINT                    = gds_print
       IS_REPREP_ID                =
       I_SCREEN_START_COLUMN       = 0
       I_SCREEN_START_LINE         = 0
       I_SCREEN_END_COLUMN         = 0
       I_SCREEN_END_LINE           = 0
       I_HTML_HEIGHT_TOP           = 0
       I_HTML_HEIGHT_END           = 0
       IT_ALV_GRAPHICS             =
       IT_HYPERLINK                =
       IT_ADD_FIELDCAT             =
       IT_EXCEPT_QINFO             =
       IR_SALV_FULLSCREEN_ADAPTER  =
    IMPORTING
       E_EXIT_CAUSED_BY_CALLER     =
       ES_EXIT_CAUSED_BY_USER      =
       TABLES
         t_outtab                    = <dyn_table>
       EXCEPTIONS
         program_error               = 1
         OTHERS                      = 2 .
    *&      Form  html_top_of_page
    FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
      DATA: text TYPE sdydo_text_element.
      CALL METHOD document->add_gap
        EXPORTING
          width = 100.
      text =  'Company Code Data'.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'HEADING'.
      CALL METHOD document->new_line.
      CALL METHOD document->new_line.
      CALL METHOD document->new_line.
      text = 'User Name : '.
      CALL METHOD document->add_text
        EXPORTING
          text         = text
          sap_emphasis = 'Strong'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 6.
      text = sy-uname.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 50.
      text = 'Date : '.
      CALL METHOD document->add_text
        EXPORTING
          text         = text
          sap_emphasis = 'Strong'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 6.
      text = sy-datum.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 50.
      text = 'Time : '.
      CALL METHOD document->add_text
        EXPORTING
          text         = text
          sap_emphasis = 'Strong'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 6.
      text = sy-uzeit.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
      CALL METHOD document->new_line.
      CALL METHOD document->new_line.
    ENDFORM.                    "HTML_TOP_OF_PAGE

  • Issue in header display for reuse_alv_grid_display

    Hi All,
    I have a requirement to place the items as  shown below .
    Date:      29.03.2011                                     XXX text                                         System:  xxxx
    new text:   ZRV_XXX                                                                                some text : 
    User:      u15                           Report to display the material stock                               other comment :
    So it can be seen that the various text has to be placed as left aligned , centered and even right aligned in the top_of_page.
    But as im using grid display , im unable to place this data while using :
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = t_header.
    how can i populate the t_header table so that i can use the alignements a shown.
    I have read that I_CALLBACK_HTML_TOP_OF_PAGE can be used to align.
    Actually i want to make a function module which can be used in any report and FM make such alignements before using 'REUSE_ALV_COMMENTARY_WRITE'  in any object.
    Kindly help.

    Hi,
    Thanks for your replies. The problem is solved by using cl_dd_document class.
    I used tables of  TYPE REF TO cl_dd_table_element and coloumns of TYPE REF TO cl_dd_area.
    Such top of page can be achieved using
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
             i_callback_html_top_of_page       = 'HTML_TOP_OF_PAGE'
    and use the mentioned class in the form routine HTML_TOP_OF_PAGE.
    Edited by: ujjwal_d15 on Apr 12, 2011 11:57 AM

  • How to Open new screen for single click on ALV icon.

    Hi All,
    Can any body help me regarding the below ALV requirement.
    I need to create a executable program ZPROGRAM with a table having field to store long text.The ALV report should display records according to the selection screen parameters with a icon in each record when clicked should open a new screen with present data in the field and must be able to save the entered long text.
    Can any body give me the idea after displaying the simple ALV in the output,
    How to open new screen(not the Pop-up’s) after single click on the icon,
    in that I should be able to modify & save the long text in my ZTABLE and
    able to retrieve the same text for single clicked icon record.
    which function modules/Classes/Methods can we use for this requirement.
    And how retrieve the same text for this record.
    Thanks in advance.
    Regards,
    Kalam A.

    *& Report  ZTEST_ALV
    REPORT  ZTEST_ALV.
    TYPE-POOLS slis.
    DATA: gt_fieldcat TYPE TABLE OF slis_fieldcat_alv .
    DATA: gs_layout  TYPE slis_layout_alv.
    DATA: gt_list_top_of_page TYPE slis_t_listheader.
    DATA: gt_sortinfo_alv   TYPE  slis_t_sortinfo_alv.
    DATA: gs_print_alv TYPE slis_print_alv.
    DATA: gs_grid TYPE lvc_s_glay.
    DATA: gt_event TYPE slis_t_event.
    DATA: gs_event TYPE slis_alv_event.
    DATA: BEGIN OF GT_DISPLAY OCCURS 100.
       INCLUDE STRUCTURE MARA.
       DATA: BOX.
    DATA: END OF GT_DISPLAY.
    START-OF-SELECTION.
    SELECT * FROM MARA UP TO 50 ROWS
      INTO CORRESPONDING FIELDS OF TABLE GT_DISPLAY.
    End-of-Selection.
      PERFORM build_alv.
      PERFORM display_screen .
    FORM build_alv .
      DATA: ls_fieldcat LIKE LINE OF gt_fieldcat.
      DATA: ls_top TYPE LINE OF slis_t_listheader.
      DATA: ls_sort TYPE slis_sortinfo_alv.
      CLEAR: ls_fieldcat, gt_fieldcat[], ls_top,gt_list_top_of_page[],
             ls_sort,gs_grid,gs_print_alv,gt_sortinfo_alv[].
    *&-----gs_layout definition.
    gs_layout-zebra = 'X'.
    gs_layout-detail_popup = 'X'.          "ÊÇ·ñµ¯³öÏêϸÐÅÏ¢´°¿Ú
    gs_layout-f2code = '&ETA'.             "ÉèÖô¥·¢µ¯³öÏêϸÐÅÏ¢´°¿ÚµÄ¹¦ÄÜÂë,ÕâÀïÊÇË«»÷
      gs_layout-no_vline = ' '.              "ÉèÖÃÁмä¸ôÏß
      gs_layout-colwidth_optimize = 'X'.     "ÓÅ»¯Áпí
      gs_layout-detail_initial_lines = 'X'.
    gs_layout-coltab_fieldname = 'LINE_COLOR'. "Line_colorΪgt_displayµÄÒ»¸ö×Ö¶Î,¾ßÌåÑÕÉ«ÉèÖüûÏÂÃæ˵Ã÷.
      gs_layout-hotspot_fieldname = 'MATNR'.
    gs_layout-detail_titlebar = 'ÏêϸÄÚÈÝ'. "ÉèÖõ¯³ö´°¿ÚµÄ±êÌâÀ¸
    gs_layout-group_change_edit = 'X'.
    *&-----gs_grid definition.
      gs_grid-top_p_only = 'X'.
    *&-----gs_print_alv definition.
      gs_print_alv-prnt_title = 'X'.
      gs_print_alv-prnt_info = 'X'.
    *&-----gt_sortinfo_alv definition. С¼Æ
      ls_sort-fieldname = 'MTART'.
      ls_sort-tabname =  'GT_DISPLAY'.
      ls_sort-subtot = 'X'.
      ls_sort-spos      = 1.
      ls_sort-up        = 'X'.
    ls_sort-group = 'UL'.
      APPEND ls_sort TO gt_sortinfo_alv.
      ls_sort-fieldname = 'AENAM'.
      ls_sort-tabname =  'GT_DISPLAY'.
      ls_sort-subtot = 'X'.
      ls_sort-spos      = 1.
      ls_sort-up        = 'X'.
    ls_sort-group = 'UL'.
      APPEND ls_sort TO gt_sortinfo_alv.
    *&-----slis_t_listheader definition. title.
      CLEAR  ls_top.
      ls_top-key  = 'µ±Ç°ÈÕÆÚ:'.
      ls_top-typ  = 'S'.  " H = Header, S = Selection, A = Action
      CONCATENATE  sy-datum0(4)   '-' sy-datum4(2) '-' sy-datum+6(2) INTO ls_top-info .
      APPEND ls_top TO gt_list_top_of_page.
      CLEAR  ls_top.
      ls_top-key  = 'title'.
      ls_top-typ  = 'S'.  " H = Header, S = Selection, A = Action
      ls_top-info = space.
      APPEND ls_top TO gt_list_top_of_page.
    *&-----gs_print_alv definition.
      gs_print_alv-prnt_title = 'X'.
      gs_print_alv-prnt_info = 'X'.
    *&-----gt_fieldcat definition.
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
         i_program_name     = sy-repid
         i_internal_tabname = 'GT_DISPLAY'
          i_structure_name = 'MARA'
          I_CLIENT_NEVER_DISPLAY = 'X'
         i_inclname         = sy-repid
       CHANGING
         ct_fieldcat        = gt_fieldcat[]
       EXCEPTIONS
         inconsistent_interface = 1
         program_error          = 2
         OTHERS                 = 3.
      ls_fieldcat-hotspot = 'X'.
      MODIFY gt_fieldcat FROM ls_fieldcat INDEX 2.
    **-1. definition with macro.
      DEFINE macro.
       col_pos = col_pos + 1.
       ls_fieldcat-tabname   = 'it_typ_data'.
        ls_fieldcat-fieldname = '&1'.
        ls_fieldcat-seltext_l =  &2.
       ls_fieldcat-col_pos   =  col_pos.
        ls_fieldcat-outputlen =  '&3'.
       ls_fieldcat-datatype  =  '&4'.
       ls_fieldcat-do_sum    =  &5.
       ls_fieldcat-edit    =   &6.
       ls_fieldcat-checkbox  =   &7.
       ls_fieldcat-key   =   &9.
       ls_fieldcat-fix_column =  &10.
       ls_fieldcat-no_out =  &11.
        ls_fieldcat-ref_fieldname = &4.    " System F4 Effect.
        ls_fieldcat-ref_tabname   =  &5.   " System F4 Effect.
        ls_fieldcat-hotspot   =   &6.
        append ls_fieldcat to gt_fieldcat.
        clear ls_fieldcat.
      END-OF-DEFINITION.
      macro matnr     'matnr'            18   'MATNR'   'MARA'  'X'.
      macro MTART     'MTART'            18      'MTART' 'MARA'  ''.
      macro  AENAM    'AENAM'            18       'MAENAM'  'MARA'   ''.
    **-2. definition one-by-one.
    CLEAR ls_fieldcat.
    ls_fieldcat-fieldname = 'MATNR'.
    ls_fieldcat-seltext_s = 'ÎïÁÏ'.
    ls_fieldcat-ref_fieldname = 'ROLLNAME'.
    ls_fieldcat-ref_tabname   =  'DD03L'.
    APPEND ls_fieldcat TO gt_fieldcat.
    ENDFORM.                    "build_alv
    FORM display_screen .
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         i_list_type     = 0
       IMPORTING
         et_events       = gt_event
       EXCEPTIONS
         list_type_wrong = 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.
    READ TABLE gt_event INTO gs_event WITH KEY name = 'TOP_OF_PAGE'.
    IF sy-subrc EQ 0.
       gs_event-form = 'TOP_OF_PAGE'.
       MODIFY gt_event FROM gs_event INDEX sy-tabix.
    ENDIF.
      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          = 'PF_STATUS_SET '
         i_callback_user_command           = 'USER_COMMAND'
        i_callback_top_of_page            = 'TOP_OF_PAGE'
       I_CALLBACK_HTML_TOP_OF_PAGE       = 'HTML_TOP_OF_PAGE'
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
        I_BACKGROUND_ID                   = 'ALV_BACKGROUND'    "When top-of-page is initial.
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
         is_layout                         = gs_layout
         it_fieldcat                       = gt_fieldcat[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
        it_sort                           =  gt_sortinfo_alv[]
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
       I_SAVE                            = 'A'
      IS_VARIANT                        =
      IT_EVENTS                         = gt_event
      IT_EVENT_EXIT                     =
       IS_PRINT                          = gs_print_alv
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = gt_display
    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_screen
    FORM user_command          USING ucomm LIKE sy-ucomm
                               selfield TYPE slis_selfield.
    Data ref1 type ref to cl_gui_alv_grid.
      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' "Check Box need fieldcat-checkbox, input and edit.
         IMPORTING
           E_GRID = ref1.
      CASE ucomm.
        WHEN '&IC1'. " SAP standard code for double-clicking
    READ TABLE gt_display INTO gs_display INDEX  slis_selfield-tabindex.
    CHECK sy-subrc = 0.
         CASE  selfield-fieldname  .
           WHEN 'PLNUM'.
             SET PARAMETER ID 'PAF' FIELD gs_display-plnum.
             CALL TRANSACTION 'MD12' AND SKIP FIRST SCREEN.
           WHEN  'POSNR'.
           SUBMIT  rvscd100 USING SELECTION-SCREEN '1000' WITH vbeln = gs_display-vbeln
                                                          WITH posnr = gs_display-posnr
                                                          WITH zinfo = 'X'
                                                          AND RETURN.
         ENDCASE.
       IF selfield-sel_tab_field = 'OUT_ITAB-PI_SL'. " Line detail.
           READ TABLE i_output INTO pisl_itab INDEX selfield-tabindex.
           IF sy-subrc EQ 0.
       ENDIF.
        WHEN 'CHANGE'.
         CALL METHOD ref1->check_changed_data.
         CALL METHOD ref1->refresh_table_display.
    *5´Ë´¦´úÂë×èÖ¹'REUSE_ALV_GRID_DISPLAY´´½¨ÐµÄÆÁÄ»£¬Ôì³ÉÆÁÄ»¶à²ã
         selfield-refresh = 'X'.
        WHEN 'SWITCH'.
         PERFORM switch_edit_mode.
        WHEN OTHERS.
      ENDCASE.
    ENDFORM.                    "user_command
    Add your code in user_command form.
    WHEN you click matnr ucomm eq '&IC1'.
    Message was edited by:
            Chunhai Hu

  • Please help me with this code

    hi to all experts ,
    my requirement is print a barcode..The first part is an alv with two editable fields when user checks the checkbox and changes the second coloumn that no of prints are to be printed ....everything is fine but the problem is if suppose first 3 checkboxes are checked and qty to print is 3 for each .So the total no of prints should be 9 which im able to see in the print preview ......but the problem is when after seeing the print preview when we are back to the alv screen and uncheck one checkbox so now the pages should be 6 but it is still 9 what could be the problem here is my code since i cannot post full im sending in parts.......any help will greatly apprieciated ..........................thanks
    TYPE-POOLS: slis.
    *TYPES DECLARATIONS
    TYPES:BEGIN OF ty_output,
    cbox(1)  TYPE c,"selection checkbox
    menge1 TYPE char16,"QUANTITY TO PRINT
    mblnr  TYPE mkpf-mblnr,"MATERIAL DOCUMENT NUMBER
    bwart  TYPE mseg-bwart,"MOVEMENT TYPE
    btext  TYPE t156t-btext,"MOVEMENT TYPE DESCRIPTION
    matnr  TYPE mseg-matnr,"MATERIAL NUMBER
    maktx  TYPE makt-maktx,"MATERIAL DESCRIPTION
    menge2 TYPE mseg-menge,"QUANTITY
    meins  TYPE mseg-meins,"BASE UNIT OF MEASUREMENT
    werks TYPE mseg-werks,"PLANT
    lgort TYPE mseg-lgort,"STORAGE LOCATION
    ebeln TYPE mseg-ebeln,"PO DOCUMENT NUMBER
    lifnr TYPE mseg-lifnr,"VENDOR
    bldat TYPE mkpf-bldat,"DOCUMENT DATE
    budat TYPE mkpf-budat,"POSTING DATE
    usnam TYPE mkpf-usnam,"USER ID
    xblnr TYPE mkpf-xblnr,"MATERIAL SLIP
    END OF   ty_output.
    TYPES : BEGIN OF ty_data,
    menge TYPE mseg-menge,"QUANTITY
    mblnr TYPE mkpf-mblnr,"MATERIAL DOCUMENT NUMBER
    bwart TYPE mseg-bwart,"MOVEMENT TYPE
    matnr TYPE mseg-matnr,"MATERIAL NUMBER
    meins TYPE mseg-meins,"BASE UNIT OF MEASUREMENT
    werks TYPE mseg-werks,"PLANT
    lgort TYPE mseg-lgort,"STORAGE LOCATION
    ebeln TYPE mseg-ebeln,"PO DOCUMENT NUMBER
    lifnr TYPE mseg-lifnr,"VENDOR
    bldat TYPE mkpf-bldat,"DOCUMENT DATE
    budat TYPE mkpf-budat,"POSTING DATE
    usnam TYPE mkpf-usnam,"USER ID
    xblnr TYPE mkpf-xblnr,"MATERIAL SLIP
            END   OF ty_data.
    TYPES: BEGIN OF ty_btext,
       btext TYPE t156t-btext,
       bwart TYPE t156-bwart,
           END   OF ty_btext.
    TYPES : BEGIN OF ty_maktx,
              maktx TYPE makt-maktx,
              matnr TYPE makt-matnr,
            END OF  ty_maktx.
    TYPES: BEGIN OF ty_mard,
             matnr TYPE mard-matnr,
             lgpbe TYPE mard-lgpbe,
          END OF ty_mard.
    *INTERNAL TABLES
    DATA: it_output  TYPE  STANDARD TABLE OF ty_output,
          it_data     TYPE STANDARD TABLE OF ty_data,
          it_btext    TYPE STANDARD TABLE OF ty_btext,
          it_maktx    TYPE STANDARD TABLE OF ty_maktx,
          it_fieldcat TYPE STANDARD TABLE OF slis_fieldcat_alv,
          it_events   TYPE STANDARD TABLE OF slis_alv_event,
          it_header   TYPE  slis_t_listheader,
          it_smart    TYPE STANDARD TABLE OF zmm_im_001_struc,
          it_mard     TYPE STANDARD TABLE OF ty_mard.
    *WORK AREAS
    DATA: wa_output   TYPE  ty_output,
          wa_data     TYPE  ty_data,
          wa_btext    TYPE  ty_btext,
          wa_maktx    TYPE  ty_maktx,
          wa_fieldcat TYPE  slis_fieldcat_alv,
          wa_events   TYPE  slis_alv_event,
          wa_header   TYPE  slis_listheader,
          wa_smart    LIKE LINE OF it_smart,
          wa_layout   TYPE  slis_layout_alv,
          wa_mard     TYPE  ty_mard.
    *FLAGS AND CONSTANTS
    DATA: fl_sel TYPE flag.
    DATA: fl_del TYPE flag,
          gv_count TYPE i.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:
      so_mblnr FOR  mkpf-mblnr,
      so_bwart FOR  mseg-bwart,"MOVEMENT TYPE
      so_bldat FOR  mkpf-bldat,"DOCUMENT DATE
      so_budat FOR  mkpf-budat,"POSTING DATE
      so_matnr FOR  mseg-matnr,"MATERIAL ID
    so_meins FOR  mseg-meins,"BASE UNIT OF MEASUREMENT
      so_werks FOR  mseg-werks,"PLANT
      so_lgort FOR  mseg-lgort,"STORAGE LOCATION
      so_lifnr FOR  mseg-lifnr,"VENDOR
      so_xblnr FOR  mkpf-xblnr,"MATERIAL SLIP
      so_ebeln FOR  mseg-ebeln,"PURCHASE DOC
      so_usnam FOR  mkpf-usnam.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2
       WITH FRAME TITLE text-002.
    PARAMETERS : 1x3 RADIOBUTTON GROUP
                  grp1 DEFAULT 'X',
                 2x4 RADIOBUTTON GROUP
                 grp1.
    SELECTION-SCREEN END OF BLOCK b2.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT 1(82) text-007.
    *SELECTION-SCREEN COMMENT 89(4) text-008.   " First part of your comment
    *SELECTION-SCREEN END OF LINE.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_mblnr-low.
    *GETTING F4 HELP FOR THE
    >FIELD MBLNR( MATERIAL DOCUMENT NUMBER)
      PERFORM get_f4val .
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_mblnr-high.
    GETTING F4 HELP FOR THE
    FIELD MBLNR( MATERIAL DOCUMENT NUMBER)
      PERFORM get_f4val .
    AT SELECTION-SCREEN.
      PERFORM valid_bwart.
      PERFORM valid_selscreen.
    if no records are found displaying an error message
      IF sy-dbcnt EQ 0.
        MESSAGE e003(zmimr012).
      ENDIF.
    START-OF-SELECTION.
    PERFORM get_data.
      PERFORM populate_data.
      PERFORM get_fcat.
      PERFORM get_events.
      PERFORM populate_events.
      PERFORM get_layout.
      PERFORM display_alv.
    Refresh : it_output,
             it_data,
             it_smart.
    *&      Form  GET_DATA
    FORM get_data .
      SELECT  b~menge
              a~mblnr
              b~bwart
              b~matnr
              b~meins
              b~werks
              b~lgort
              b~ebeln
              b~lifnr
              a~bldat
              a~budat
              a~usnam
              a~xblnr
      INTO CORRESPONDING
        FIELDS OF TABLE it_data
      FROM    mkpf AS a
      INNER JOIN  mseg AS b ON
            amblnr = bmblnr
        AND amjahr = bmjahr
      WHERE  a~mblnr  IN so_mblnr
      AND    b~bwart  IN so_bwart
      AND    b~bwart  IN ('101', '105')
      AND    a~bldat  IN so_bldat
      AND    a~budat  IN so_budat
      AND    b~matnr  IN so_matnr
      AND    b~matnr  NE space
      AND    b~werks  IN so_werks
      AND    b~lgort  IN so_lgort
      AND    b~ebeln  IN so_ebeln
      AND    b~lifnr  IN so_lifnr
      AND    a~xblnr  IN so_xblnr
      AND    a~usnam  IN so_usnam.
        SELECT btext
               bwart
                FROM t156t
                INTO TABLE it_btext
                FOR ALL ENTRIES IN it_data
                WHERE spras EQ 'EN'
                  AND bwart   = it_data-bwart
                  AND sobkz   = ''
                  AND kzbew   = 'B'
                  AND kzzug   = ''
                  AND kzvbr   = ''.
        SELECT maktx
               matnr
             FROM makt INTO
             TABLE it_maktx
             FOR ALL ENTRIES IN it_data
             WHERE matnr EQ it_data-matnr
             AND  spras EQ 'E'.
        SELECT matnr
               lgpbe
               FROM mard INTO
               TABLE it_mard
               FOR ALL ENTRIES IN it_data
          WHERE matnr EQ it_data-matnr
           AND  werks EQ it_data-werks
           AND  lgort EQ it_data-lgort.
    ENDIF.
    ENDFORM.                    " GET_DATA
    *&      Form  GET_F4VAL
    FORM get_f4val .
      TYPES : BEGIN OF ly_mblnr,
                mblnr TYPE mkpf-mblnr,
              END OF  ly_mblnr.
      DATA: lc_mblnr   TYPE dfies-fieldname
               VALUE 'MBLNR',
             lc_s_mblnr TYPE help_info-dynprofld
                        VALUE 'SO_MBLNR-LOW',
             lc_dynnr
              TYPE sy-dynnr VALUE '1000',
             lc_repid   TYPE sy-repid.
      DATA: lt_mblnr TYPE STANDARD
               TABLE OF ly_mblnr,
            lv_mblnr TYPE ly_mblnr,
            lt_return TYPE STANDARD TABLE OF
              ddshretval WITH HEADER LINE.
      CLEAR:lt_mblnr[],lv_mblnr,lt_return[],lt_return.
      SELECT mblnr FROM mkpf
        INTO TABLE lt_mblnr.
      SORT lt_mblnr.
      DELETE ADJACENT DUPLICATES FROM lt_mblnr.
      lc_repid = sy-repid.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield        = lc_mblnr
          value_org       = 'S'
          dynpprog        = lc_repid
          dynpnr          = lc_dynnr
          dynprofield     = lc_s_mblnr
        TABLES
          value_tab       = lt_mblnr
          return_tab      = lt_return
        EXCEPTIONS
          parameter_error = 1
          no_values_found = 2
          OTHERS          = 3.
      IF sy-subrc <> 0.
      ELSE.
        lc_mblnr = lt_return-fieldval.
      ENDIF.
    ENDFORM.                                                    " GET_F4VAL
    Edited by: mozam khan on Feb 28, 2009 4:39 AM

    *&      Form  PF_STATUS
    FORM pf_status_set USING
            ex_tab TYPE  slis_t_extab .
      SET PF-STATUS 'ZMIMR012_GUI' EXCLUDING ex_tab.
    ENDFORM. " PF_STATUS
    *&      Form  user_command
          text
    FORM user_command USING r_ucomm TYPE sy-ucomm
                        rs_selfield TYPE slis_selfield  .
      DATA: p_ref1 TYPE REF TO cl_gui_alv_grid.
      CASE r_ucomm .
        WHEN 'EXEC' .
          CLEAR p_ref1.
          IF p_ref1 IS INITIAL.
            CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
              IMPORTING
                e_grid = p_ref1.
          ENDIF.
          IF p_ref1 IS NOT INITIAL.
            CALL METHOD p_ref1->check_changed_data.
          ENDIF.
          LOOP AT it_output INTO wa_output WHERE cbox EQ 'X'.
            READ TABLE it_mard INTO wa_mard WITH KEY matnr = wa_output-matnr.
            IF sy-subrc EQ 0.
              wa_smart-lgpbe = wa_mard-lgpbe.
            ENDIF.
            wa_smart-matnr =  wa_output-matnr.
            wa_smart-maktx =  wa_output-maktx.
            wa_smart-meins =  wa_output-meins.
            wa_smart-bldat =  wa_output-bldat.
            wa_smart-no_cop = wa_output-menge1.
            APPEND wa_smart TO it_smart.
            CLEAR: wa_smart,wa_output.
          ENDLOOP.
    CALL METHOD p_ref1->REFRESH_TABLE_DISPLAY.
         CHECK fl_del NE 'X'.
          IF 1x3 = 'X'.
            PERFORM print_smartform1x3.
          ELSE.
            PERFORM print_smartform2x4.
          ENDIF.
       WHEN 'SEL_ALL'.
         fl_sel = 'X'." setting up the flag for all selection.
         PERFORM sel_rec.
         rs_selfield-refresh = 'X'.
       WHEN  'DES_ALL'.
         fl_del = 'X'.
         PERFORM del_sel.
         rs_selfield-refresh = 'X'.
      ENDCASE.
    ENDFORM.                    " user_command
    " top_of_page
    *&      Form  display_alv
    FORM display_alv .
      DATA: l_repid TYPE sy-repid.
      l_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         i_callback_program                = l_repid
         i_callback_pf_status_set          = 'PF-STATUS_SET'
         i_callback_user_command           = 'USER_COMMAND'
        I_CALLBACK_TOP_OF_PAGE            = 'top_of_page'
         i_callback_html_top_of_page       = 'HTML_TOP_OF_PAGE'
        I_CALLBACK_HTML_END_OF_LIST       = ' '
        I_STRUCTURE_NAME                  =
        I_BACKGROUND_ID                   = ' '
        I_GRID_TITLE                      =
        I_GRID_SETTINGS                   =
          is_layout                         = wa_layout
          it_fieldcat                       = it_fieldcat
        IT_EXCLUDING                      =
        IT_SPECIAL_GROUPS                 =
        IT_SORT                           =
        IT_FILTER                         =
        IS_SEL_HIDE                       =
        I_DEFAULT                         = 'X'
        I_SAVE                            = ' '
        IS_VARIANT                        =
          it_events                         = it_events
        IT_EVENT_EXIT                     =
        IS_PRINT                          =
        IS_REPREP_ID                      =
        I_SCREEN_START_COLUMN             = 0
        I_SCREEN_START_LINE               = 0
        I_SCREEN_END_COLUMN               = 0
        I_SCREEN_END_LINE                 = 0
        I_HTML_HEIGHT_TOP                 = 0
        I_HTML_HEIGHT_END                 = 0
        IT_ALV_GRAPHICS                   =
        IT_HYPERLINK                      =
        IT_ADD_FIELDCAT                   =
        IT_EXCEPT_QINFO                   =
        IR_SALV_FULLSCREEN_ADAPTER        =
      IMPORTING
        E_EXIT_CAUSED_BY_CALLER           =
        ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = it_output
       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  get_layout
    FORM get_layout .
      wa_layout-box_fieldname         =  'CBOX' .
      wa_layout-box_tabname           =  'IT_OUTPUT'.
      wa_layout-colwidth_optimize     =  'X'.
    ENDFORM.                    " get_layout
    " print_smartform_1x3
    *&      Form  valid_bwart
          text
    -->  p1        text
    <--  p2        text
    FORM valid_bwart .
      TYPES:BEGIN OF ly_bwart,
              bwart TYPE mseg-bwart,
            END OF ly_bwart.
      DATA:it_bwart TYPE TABLE OF ly_bwart WITH  HEADER LINE.
      IF so_bwart[] IS NOT INITIAL.
        SELECT  bwart FROM mseg INTO TABLE it_bwart
                  FOR ALL ENTRIES IN so_bwart[]
                WHERE bwart <= so_bwart-high AND bwart => so_bwart-low.
        LOOP AT it_bwart.
          IF it_bwart-bwart NE '101' OR it_bwart-bwart NE '105' .
            CONTINUE.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " valid_bwart
    *&      Form  print_smartform2x4
          text
         -->P_WA_SMART  text
         -->P_IT_SMART  text
    FORM print_smartform1x3.
      DATA : fm_name TYPE rs38l_fnam,
             control_parameters TYPE ssfctrlop,
             wa_job_output_info TYPE ssfcrescl,
             ssfcompin TYPE ssfcompin,
             ssfcompop TYPE  ssfcompop.
      ssfcompin-dialog = 'X'.
      CALL FUNCTION 'SSF_OPEN'
      EXPORTING
        ARCHIVE_PARAMETERS       =
        USER_SETTINGS            = 'X'
        MAIL_SENDER              =
        MAIL_RECIPIENT           =
        MAIL_APPL_OBJ            =
        OUTPUT_OPTIONS           =
         control_parameters       = control_parameters
      IMPORTING
        JOB_OUTPUT_OPTIONS       =
       EXCEPTIONS
         formatting_error         = 1
         internal_error           = 2
         send_error               = 3
         user_canceled            = 4
         OTHERS                   = 5
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = 'ZMM_IM_001'
          variant            = ' '
          direct_call        = ' '
        IMPORTING
          fm_name            = fm_name
        EXCEPTIONS
          no_form            = 1
          no_function_module = 2
          OTHERS             = 3.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      control_parameters-no_open = 'X'.
      control_parameters-no_close = 'X'.
      LOOP AT it_smart INTO wa_smart.
        IF wa_smart-no_cop IS NOT INITIAL.
          MOVE wa_smart-no_cop TO gv_count.
        ENDIF.
        DO  gv_count TIMES.
          CALL FUNCTION fm_name
            EXPORTING
          ARCHIVE_INDEX              =
          ARCHIVE_INDEX_TAB          =
          ARCHIVE_PARAMETERS         =
              control_parameters         = control_parameters
          MAIL_APPL_OBJ              =
          MAIL_RECIPIENT             =
          MAIL_SENDER                =
              output_options             = ssfcompop
          USER_SETTINGS              = 'X'
              wa_display                 = wa_smart
        IMPORTING
          DOCUMENT_OUTPUT_INFO       =
          JOB_OUTPUT_INFO            =
          JOB_OUTPUT_OPTIONS         =
           EXCEPTIONS
             formatting_error           = 1
             internal_error             = 2
             send_error                 = 3
             user_canceled              = 4
             OTHERS                     = 5
          IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
        ENDDO.
        CLEAR gv_count.
        CLEAR   :   wa_smart.
      ENDLOOP.
      CALL FUNCTION 'SSF_CLOSE'
        IMPORTING
          job_output_info  = wa_job_output_info
        EXCEPTIONS
          formatting_error = 1
          internal_error   = 2
          send_error       = 3
          OTHERS           = 4.
      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.                    " print_smartform2x4
    *&      Form  print_smartform2x4
          text
    -->  p1        text
    <--  p2        text
    FORM print_smartform2x4 .
      DATA : fm_name TYPE rs38l_fnam,
             control_parameters TYPE ssfctrlop,
             wa_job_output_info TYPE ssfcrescl,
             ssfcompin TYPE ssfcompin,
             ssfcompop TYPE ssfcompop.
      ssfcompin-dialog = 'X'.
      CALL FUNCTION 'SSF_OPEN'
       EXPORTING
        ARCHIVE_PARAMETERS       =
        USER_SETTINGS            = 'X'
        MAIL_SENDER              =
        MAIL_RECIPIENT           =
        MAIL_APPL_OBJ            =
        OUTPUT_OPTIONS           =
          control_parameters       = control_parameters
      IMPORTING
        JOB_OUTPUT_OPTIONS       =
       EXCEPTIONS
         formatting_error         = 1
         internal_error           = 2
         send_error               = 3
         user_canceled            = 4
         OTHERS                   = 5
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = 'ZMM_IM_002'
          variant            = ' '
          direct_call        = ' '
        IMPORTING
          fm_name            = fm_name
        EXCEPTIONS
          no_form            = 1
          no_function_module = 2
          OTHERS             = 3.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      control_parameters-no_open = 'X'.
      control_parameters-no_close = 'X'.
      LOOP AT it_smart INTO wa_smart.
        IF wa_smart-no_cop IS NOT INITIAL.
          MOVE wa_smart-no_cop TO gv_count.
        ENDIF.
        DO  gv_count TIMES.
          CALL FUNCTION fm_name
            EXPORTING
          ARCHIVE_INDEX              =
          ARCHIVE_INDEX_TAB          =
          ARCHIVE_PARAMETERS         =
              control_parameters         = control_parameters
          MAIL_APPL_OBJ              =
          MAIL_RECIPIENT             =
          MAIL_SENDER                =
           OUTPUT_OPTIONS             = ssfcompop
          USER_SETTINGS              = 'X'
              wa_display                 = wa_smart
        IMPORTING
          DOCUMENT_OUTPUT_INFO       =
          JOB_OUTPUT_INFO            =
          JOB_OUTPUT_OPTIONS         =
           EXCEPTIONS
             formatting_error           = 1
             internal_error             = 2
             send_error                 = 3
             user_canceled              = 4
             OTHERS                     = 5
          IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
        ENDDO.
        CLEAR: gv_count.
      ENDLOOP.
      CALL FUNCTION 'SSF_CLOSE'
        IMPORTING
          job_output_info  = wa_job_output_info
        EXCEPTIONS
          formatting_error = 1
          internal_error   = 2
          send_error       = 3
          OTHERS           = 4.
      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.                    " print_smartform2x4
    *&      Form  valid_selscreen
          text
    -->  p1        text
    <--  p2        text
    FORM valid_selscreen .
      SELECT  b~menge
              a~mblnr
              b~bwart
              b~matnr
              b~meins
              b~werks
              b~lgort
              b~ebeln
              b~lifnr
              a~bldat
              a~budat
              a~usnam
              a~xblnr
      INTO CORRESPONDING
        FIELDS OF TABLE it_data
      FROM    mkpf AS a
      INNER JOIN  mseg AS b ON
            amblnr = bmblnr
        AND amjahr = bmjahr
      WHERE  a~mblnr  IN so_mblnr
      AND    b~bwart  IN so_bwart
      AND    b~bwart  IN ('101', '105')
      AND    a~bldat  IN so_bldat
      AND    a~budat  IN so_budat
      AND    b~matnr  IN so_matnr
      AND    b~matnr  NE space
      AND    b~werks  IN so_werks
      AND    b~lgort  IN so_lgort
      AND    b~ebeln  IN so_ebeln
      AND    b~lifnr  IN so_lifnr
      AND    a~xblnr  IN so_xblnr
      AND    a~usnam  IN so_usnam.
    ENDFORM.                    " valid_selscreen
    *&      Form  sel_rec
          text
    -->  p1        text
    <--  p2        text
    FORM sel_rec .
      DATA: lv_tabix TYPE sy-tabix.
      LOOP AT  it_output INTO wa_output.
        lv_tabix = sy-tabix.
        wa_output-cbox = 'X'.
        MODIFY it_output FROM wa_output TRANSPORTING cbox.
        CLEAR: wa_output.
      ENDLOOP.
    ENDFORM.                    " sel_rec

  • Reg : Gird Title In REUSE_ALV_GRID_DISPLAY

    Hi Friends,
    I am working with ALV Grid Display . In that my requirement is i need keep the grid title at 30th column out of 60 colums.
    So i am providing space infront of grid title like this : '  ALV Grid' but after 75 characters space it is going to dump.
    So how can i rectify this problem . Please help me.
    Thanks ,
    Laxmi

    Hi,
    Laxmi
    just go through the following piece of code..
    REPORT  alv_top_of_page.
    TABLES : t001.
    TYPE-POOLS: slis.
    DATA : w_repid LIKE sy-repid.
    TYPES : BEGIN OF ty_comp.
            INCLUDE STRUCTURE t001.
    TYPES : END OF ty_comp.
    DATA: wa_layout  TYPE slis_layout_alv.
    DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
          wa_fieldcat TYPE slis_fieldcat_alv.
    DATA : it_comp TYPE TABLE OF ty_comp.
    INITIALIZATION.
      w_repid = sy-repid.
    START-OF-SELECTION.
      SELECT * FROM t001 INTO TABLE it_comp.
    END-OF-SELECTION.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          i_program_name         = w_repid
          i_internal_tabname     = 'IT_COMP'
          i_inclname             = w_repid
        CHANGING
          ct_fieldcat            = it_fieldcat[]
        EXCEPTIONS
          inconsistent_interface = 1
          program_error          = 2
          OTHERS                 = 3.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program          = w_repid
          i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
          is_layout                   = wa_layout
          it_fieldcat                 = it_fieldcat
        TABLES
          t_outtab                    = it_comp
        EXCEPTIONS
          program_error               = 1
          OTHERS                      = 2.
    *&      Form  html_top_of_page
    FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
      DATA: text TYPE sdydo_text_element.
      CALL METHOD document->add_gap
        EXPORTING
          width = 100.
      text =  'Company Code Data'.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'HEADING'.
      CALL METHOD document->new_line.
      CALL METHOD document->new_line.
      CALL METHOD document->new_line.
      text = 'User Name : '.
      CALL METHOD document->add_text
        EXPORTING
          text         = text
          sap_emphasis = 'Strong'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 6.
      text = sy-uname.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 50.
      text = 'Date : '.
      CALL METHOD document->add_text
        EXPORTING
          text         = text
          sap_emphasis = 'Strong'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 6.
      text = sy-datum.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 50.
      text = 'Time : '.
      CALL METHOD document->add_text
        EXPORTING
          text         = text
          sap_emphasis = 'Strong'.
      CALL METHOD document->add_gap
        EXPORTING
          width = 6.
      text = sy-uzeit.
      CALL METHOD document->add_text
        EXPORTING
          text      = text
          sap_style = 'Key'.
      CALL METHOD document->new_line.
      CALL METHOD document->new_line.
    ENDFORM.                    "HTML_TOP_OF_PAGE
    i hope u will get the solution...
    Thansk
    Ashu

  • Vendor wise print on separate page

    Dear all,
                  I have an ALV Report which display vendor account statement for all the vendors entered in selection screen.
    I want to take a print for all vendors but each  vendor statement should display on separate page. For new Vendor print should be taken on new page.
    e.g.
    start page1
             Vendor1.
             Accno.             Amount             
             123                     50000
             234                     40000
    end page1
    start page2
             Vendor2.
             Accno.             Amount             
             123                     50000
             234                     40000
    end page2
    Pls, Suggest any good solution.
    Thanks & regards,
    Sandip Sonar

    For getting the vendor number page break you need to fill up the IT_SORT
    like
    PERFORM F_SORT USING 'LIFNR' 'T_OUTPUT' '' '*'.
    FORM F_SORT USING l_FIELD l_TABLE l_UP l_group.
      ADD 1 TO L_POS.
      w_SORT-SPOS = l_POS.
      w_SORT-FIELDNAME = l_FIELD.
      w_SORT-TABNAME = l_TABLE.
      w_SORT-UP = l_UP.
      w_sort-group = l_group.
    APPEND w_sort to IT_SORT.
    ENDFORM.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = sy-repid
      i_callback_top_of_page = 'TOP_OF_PAGE'
      I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
      IS_LAYOUT = ws_layout
      it_fieldcat = t_fieldcat
      IT_SORT = it_sort
      it_events = it_events
    TABLES
      t_outtab = T_OUTPUT.

Maybe you are looking for