Repeat group header on every page before group footer as group spans across

I have a group which spans across multiple pages.In group there are two subreports in Group footer.I have set all the required parameters to repeat group header on every page in group expert,but not getting desired results,please help....

I have following structure in my report.
I have two group headers at the top,first one contains name of the site & site number,second header contains Site-Admin as heading,below which i have kept details section of report which displays name of administrator which repeats details section in case there are more than one adminstrators.
Below this i have two group footers which individually contain each of the two sub-reports.
As per data,these individual subreport may or may not begin at the beginning of the new page every
time,therefore fake group header put at the beginning of these sub-reports may come in middle of the page sometime,so thet cant be done.
Thank you,please reply if you have another solution....

Similar Messages

  • Repeating Group header on each page

    Hello Everybody,
    I have two groups in my report. For my first group value, i have given report - group expert - options and checked "Repeat group header on each page" assuming that my first group values will appear on each page. But it is not doing so. In one of the page the group footer values are appearing without my first group values.
    I belive my problem is my second group values are ending in one page and first group values are  extended to next page . Can any one please hep me.

    if that is the case Narukonda 1, there are several sap notes dealing with this issue...please see this sap note [here |http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_erq/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes%7B6163636573733d36393736354636443646363436353344333933393338323636393736354637333631373036453646373436353733354636453735364436323635373233443330333033303331333233313333333133373339%7D.do]which deals with both orphaned group footers and group headers.

  • How to repeat group head on each page

    I have problem with repeat group heaf on each page, I've ticked the option 'Repeat group head on each page' from the Change Group Option. But the group head didn't appear on each page when I previewed the report. Does anyone have a solution/explaination to this?
    Cheeers

    Sorry Gents, I did't make my porblem clear.
    To James Terry
    Yes, My reports contain one or more sub-groups (only group 1's group header needs to be repeat on each page).
    To Graham Cunningham
    I found pages , containing only group 1's group footer summarized info, don't display group 1's group header. Just like what you said ' It will only repeat on pages that display group information'. Is this a bug or sort of default rule? What else can I do if I want the group header to repeat on each page no matter whether there is group info or not, besides moving the info from group header to pager header?
    Thanks a lot.
    Regards
    Joseph

  • Repeat Group Header On Each Page not working

    Hi,
    I have a report that have 3 subreport, and in the Subreport, there is Group Headers that enabled the option "Repeat Group Header On Each Page". It works fine in the CR10 preview. However, the header won't repeat in the PDF generated by JRC.
    Any Idea?
    Thanks a lot!!

    Hi,
    Doesthe JRC engine uses CR10 jars or XI\R2 jars? Can you possibly try it with latest set of Eclipse jars? You can download it from Diamond.
    Thanks
    Aasavari

  • Repeat Group Header on Each Page in Subreport won't reflect when generate by JRC

    Hi All,
    I have a report that contain several Subreports. Inside the Subreport, there are Group Header section. I have checked the option of "Repeat Group Header on Each Page". It works fine when I preview in Crystal Report. But when I using JRC to generate the report result. The group header only display on the first page of the group details.
    More, Crystal 10 Common Monthly Hot Fix (English) already installed.
    Any idea?
    Thanks a lot for your help!
    Donald

    Hi,
    Doesthe JRC engine uses CR10 jars or XI\R2 jars? Can you possibly try it with latest set of Eclipse jars? You can download it from Diamond.
    Thanks
    Aasavari

  • Repeat Group Header on Every Column

    Hello all.  I have a simple two column layout report with three groups.  I would like the group headers to repeat at the top of each column similar to the way they repeat on each page when the "Repeat Group Header On Each Page" check box is clicked.  Any suggestions?

    Zilla Eh, thank you for your help. The column headers are indeed in the group headers, however they do not repeat on each column. For clarification, I've posted a sample page of the report on our website: http://lehivalley.com/catalog09example.pdf. There are three groups on the report. Candy represents Group1, Chocolate represents Group2, and the Product Name (ex. Chocolate Banana Chips) represents Group3. Referencing the example, on the top of the second column I'd like to see Candy (group1), Chocolate (group2), and Chocolate Covered Cookie Dough (group3), repeated prior to the rest of the details being listed.
    Let me know if you have any ideas. By the way, I'm using Crystal Reports XI if that matters. Thanks

  • Group Footer to be repeated on each and every page.

    hi all. i designed a crystal report with a  group on department. within department i have 20 records and hence the group is carry forwarding to next page and i get group footer on the last page of the group. but i want group footer to be on every page. i created an additional group with a formula which has code just pagenumber so that since page number changes on every page i will get group footer on every page but unfortunately i get error message. grouped on recurring value.
    please advise how to get group footer on every page.

    patrick, thanks for feedback. that solution was already implemented and was rejected by users because if a group has only one record then in the record will be displayed in details section and then users need to scroll down to page footer to see group details. there is lot of gap between details and page footer. more over there is a page break for each group. further. we have this report already done and in use sice past 10yrs in actuate 7 and we are migrating actuate reports to crystal to get rid of actuate. our users developed some application based on the report in actuate 7. now any design changes in report needs changes in actuate. hence we need group footer on everypage even if group is carryforwarded to next page.
    please advise.

  • Group heading on each page..

    I am trying to get BI Publisher to output a group heading on each page of my report.. At this time, I am using the Word/RTF version to build my layout.
    I have information in the word document header and footer, and tried adding the group by column in the header, but that only returned my first group value, always!.
    is there a safe solution? I have looked through the forum and seen many questions on this and not any simple answers..
    Thank you,
    Tony Miller
    UTMB/EHN

    Just checking to see if you received the e-mail and the file that was attached... I am still looking for solutions to the issue..
    Thank you,
    Tony Miller
    UTMB/EHN

  • Repeat a Header on each page of a Report that includes expressions - Report Builder 3.0

    Is there a way of repeating an header on each page of a report with the built-in expressions representing the new value on each header.  Example, Page 1 is correct but page 2 - the permit number, address and Tract does not match up, it repeats all the
    information from page 1.

    Hi KittyCat101,
    According to your description, you want repeat a show with expression to show Permit Number and Address dynamically on each page. Right?
    In Reporting Services, table header is not in any group row, so when you put expression with data field into header row, it will only return the first row of that data row. This is the reason why it always shows the information as Page 1.
    In this scenario, we can make records group on Permit Number. Then we put the Permit Number and Address in the group header. Set page break between each group instance.
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou

  • I need page no's and top of page header to every page

    Hi Experts,
    i need page no's and top of page header to every page
    to this report.
    i took print outs it came only page number 1 to all the pages, after took prints it seems header to all the pages
    but not displaying in output screen.
    TYPE-POOLS: SLIS.
    TABLES: MKPF,LFA1,MSEG,EKET,T001L,MAKT,S031,S032,MARA,LIPS,LIKP,T001W.
    DATA  FLAG TYPE I.
    DATA : MENGE_RE LIKE MSEG-MENGE,
           MENGE_IS LIKE MSEG-MENGE,
           MENGE_O LIKE MSEG-MENGE,
           MENGE_BAL LIKE MSEG-MENGE.
    DATA  MAGBB LIKE S031-MAGBB.
    DATA  MZUBB LIKE S031-MZUBB.
    DATA  V_MONTH LIKE S031-SPMON.
    DATA  XBLNR LIKE MKPF-XBLNR.
    DATA : BEGIN OF ITAB1 OCCURS 100,
           MATNR LIKE MAKT-MATNR,
           END OF ITAB1.
    DATA : BEGIN OF ITAB2 OCCURS 100,
    MATNR LIKE MAKT-MATNR,
    WERKS LIKE MARD-WERKS,
    LGORT LIKE MARD-LGORT,
    BUSTW LIKE MSEG-BUSTW,
    BWART LIKE MSEG-BWART,
    SHKZG LIKE MSEG-SHKZG,
    MENGE LIKE MSEG-MENGE,
    END OF ITAB2.
    DATA: PAGNO(5) TYPE C.
    DATA : PAGENO LIKE SY-PAGNO.
    DATA: STR1 TYPE DATS,
          STR2(14) TYPE C,
          STR3(10) TYPE C.
    DATA : V_MONUM LIKE T015M-MONUM,
           V_MONAM LIKE T015M-MONAM.
    TYPES:  FARBE TYPE SLIS_T_SPECIALCOL_ALV.
    DATA  V_STOCK LIKE MSEG-MENGE.
    DATA  V_STOCK1 LIKE MSEG-MENGE.
    DATA: V_MONTH1 LIKE S031-SPMON.
    DATA: OSTOCK LIKE MSEG-MENGE.
    CONSTANTS:
    GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
    DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          GT_LAYOUT   TYPE SLIS_LAYOUT_ALV,
          GS_KEYINFO  TYPE SLIS_KEYINFO_ALV,
          GT_SORT     TYPE SLIS_T_SORTINFO_ALV,
          GT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV,
          GT_EVENTS   TYPE SLIS_T_EVENT,
         G_PRINT     TYPE SLIS_PRINT_ALV.
    DATA:  LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV OCCURS 0 WITH HEADER LINE.
    DATA: FC_HIER      TYPE SLIS_FIELDCAT_ALV OCCURS 0 WITH HEADER LINE.
    DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
    DATA: GT_REPID       LIKE SY-REPID.
    DATA: GT_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
    DATA: GT_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST'.
    DATA: FLD(15).
    DATA: TXT(50).
    I N I T I A L I Z A T I O N
    GT_REPID = SY-REPID.
    PAGNO = SY-PAGNO.
    PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
    A T  S E L E C T I O N  S C R E E N
    *AT SELECTION-SCREEN ON BUDAT.
    PERFORM VALIDATION.
    S T A R T O F S E L E C T I O N
    START-OF-SELECTION.
      PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].
      PERFORM FETCH_DATA.
    E N D O F S E L E C T I O N
    END-OF-SELECTION.
      IF NOT ITAB2[] IS INITIAL.
        PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
       CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
         EXPORTING
           I_CALLBACK_PROGRAM = GT_REPID
           IT_FIELDCAT        = GT_FIELDCAT[]
           IT_EVENTS          = GT_EVENTS[]
           IT_SORT            = GT_SORT[]
           IS_LAYOUT          = GT_LAYOUT
         TABLES
           T_OUTTAB           = ITAB2.
      ELSE.
        MESSAGE S006(Z1).
      ENDIF.
      CLEAR : GT_LAYOUT.
    Report Selections
      DATA: BEGIN OF IT_HEADER OCCURS 10,
      WERKS LIKE MSEG-WERKS,
      NAME1 LIKE T001W-NAME1,
      MAKTX LIKE MAKT-MAKTX,
      MATNR LIKE MSEG-MATNR,
      MENGE_O LIKE MSEG-MENGE,
      END OF IT_HEADER.
      DATA: BEGIN OF ITAB OCCURS 50,
            WERKS LIKE MSEG-WERKS,
            MATNR LIKE MSEG-MATNR,
            BWART LIKE MSEG-BWART,
            LGORT LIKE MSEG-LGORT,
            EBELN LIKE MSEG-EBELN,
            XBLNR LIKE MKPF-XBLNR,
            BUDAT LIKE MKPF-BUDAT,
            MBLNR LIKE MSEG-MBLNR,
            MENGE LIKE MSEG-MENGE,
            MAKTX LIKE MAKT-MAKTX,
            XAUTO LIKE MSEG-XAUTO,
            NAME1 LIKE T001W-NAME1,
            MENGE_O LIKE MSEG-MENGE,
            SHKZG LIKE MSEG-SHKZG,
            MENGE_IS LIKE MSEG-MENGE,
            MENGE_RE LIKE MSEG-MENGE,
      END OF ITAB.
      DATA: BEGIN OF INT_DATA OCCURS 50,
            WERKS LIKE MSEG-WERKS,
            MATNR LIKE MSEG-MATNR,
            BWART LIKE MSEG-BWART,
            XBLNR LIKE MKPF-XBLNR,
            MBLNR LIKE MSEG-MBLNR,
            BUDAT LIKE MKPF-BUDAT,
            MAKTX LIKE MAKT-MAKTX,
            MENGE_O LIKE MSEG-MENGE,
            MENGE_R LIKE MSEG-MENGE,
            MENGE_TO LIKE MSEG-MENGE,
            MENGE_TI LIKE MSEG-MENGE,
            MENGE_S LIKE MSEG-MENGE,
            MENGE_ST LIKE MSEG-MENGE,
            MENGE_AD LIKE MSEG-MENGE,
            MENGE_RT LIKE MSEG-MENGE,
            MENGE_C LIKE MSEG-MENGE,
            MENGE_CL LIKE MSEG-MENGE,
            MENGE_BAL LIKE MSEG-MENGE,
            MENGE_CR LIKE MSEG-MENGE,
            NAME1 LIKE T001W-NAME1,
            MENGE_RE LIKE MSEG-MENGE,
            MENGE_IS LIKE MSEG-MENGE,
            MENGE_BAL1 LIKE MSEG-MENGE,
            SHKZG LIKE MSEG-SHKZG,
             MENGE LIKE MSEG-MENGE,
            END OF INT_DATA.
      DATA: BEGIN OF INT_DATA1 OCCURS 50,
             WERKS LIKE MSEG-WERKS,
             MATNR LIKE MSEG-MATNR,
             BWART LIKE MSEG-BWART,
             MENGE_ST LIKE MSEG-MENGE,
             MENGE_O LIKE MSEG-MENGE,
             WAMNG LIKE EKET-WAMNG,
             WEMNG LIKE EKET-WEMNG,
             MENGE LIKE MSEG-MENGE,
             RETPO LIKE EKPO-RETPO,
             UMREN LIKE EKPO-UMREN,
             UMREZ LIKE EKPO-UMREZ,
             BSTMG LIKE EKPO-MENGE,
             XBLNR LIKE MKPF-XBLNR,
       END OF INT_DATA1.
      DATA: BEGIN OF INT_DATA2 OCCURS 50,
             WERKS LIKE MSEG-WERKS,
             LGORT LIKE S031-LGORT,
             MATNR LIKE MSEG-MATNR,
             BWART LIKE MSEG-BWART,
             MENGE_IS LIKE MSEG-MENGE,
             MBWBEST LIKE S032-MBWBEST,
             MAKTX LIKE MAKT-MAKTX,
       END OF INT_DATA2.
      DATA:V_GJAHR LIKE MKPF-BUDAT.
      DATA : FLAG6 TYPE C,
        PAGENO1 LIKE SY-PAGNO,
        PAGENO2 LIKE SY-PAGNO.
      SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-064.
      SELECT-OPTIONS:
      MATNR FOR MSEG-MATNR,
      MATKL FOR MARA-MATKL OBLIGATORY,
      WERKS FOR MSEG-WERKS OBLIGATORY,
      LGORT FOR MSEG-LGORT,
    *CHARG FOR MSEG-CHARG,
      BWART FOR MSEG-BWART,
    *LIFNR FOR LFA1-LIFNR,
    *WADAT FOR LIKP-WADAT_IST,
      BUDAT FOR MKPF-BUDAT.
      SELECTION-SCREEN END OF BLOCK 0.
    *SELECTION-SCREEN SKIP 1.
    Parameters
    *SELECTION-SCREEN SKIP 1.
    Variante
    *SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-064.
      DATA: P_VARI LIKE DISVARIANT-VARIANT.
    *SELECTION-SCREEN END OF BLOCK 0.
    Layout
      SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-060.
      DATA:   P_ZEBRA VALUE 'X'.
      SELECTION-SCREEN END OF BLOCK A.
      SELECTION-SCREEN BEGIN OF BLOCK D WITH FRAME TITLE TEXT-063.
      PARAMETERS:
                  P_EXPAND AS CHECKBOX DEFAULT ' '.
      DATA: P_DETPOP VALUE 'X' .
      SELECTION-SCREEN END OF BLOCK D.
      DATA:       G_BOXNAM TYPE SLIS_FIELDNAME VALUE  'BOX',
                  G_EXPANDNAME TYPE SLIS_FIELDNAME VALUE 'EXPAND',
                  P_F2CODE LIKE SY-UCOMM       VALUE  '&ETA',
                  P_LIGNAM TYPE SLIS_FIELDNAME VALUE  'LIGHTS',
                  G_SAVE(1) TYPE C,
                  G_TABNAME_HEADER TYPE SLIS_TABNAME,
                  G_TABNAME_ITEM   TYPE SLIS_TABNAME,
                  G_EXIT(1) TYPE C,
                  GX_VARIANT LIKE DISVARIANT,
                  G_VARIANT LIKE DISVARIANT.
    INITIALIZATION.
      GT_REPID = SY-REPID.
      G_TABNAME_HEADER = 'IT_HEADER'.
      G_TABNAME_ITEM   = 'INT_DATA'.
    define keyinfo
      CLEAR GS_KEYINFO.
      GS_KEYINFO-HEADER01 = 'MATNR'.
      GS_KEYINFO-ITEM01   = 'MATNR'.
    *GS_KEYINFO-HEADER01.
    PERFORM E01_FIELDCAT_INIT  USING GT_FIELDCAT[].
    PERFORM E03_EVENTTAB_BUILD USING GT_EVENTS[].
    PERFORM E04_COMMENT_BUILD  USING GT_LIST_TOP_OF_PAGE[].
    PERFORM E06_T_SORT_BUILD   USING GT_SORT[].
    PERFORM E07_SP_GROUP_BUILD USING GT_SP_GROUP[].
    Schalter Varianten benutzerspezifisch/allgemein speicherbar setzen
    Set Options: save variants userspecific or general
      G_SAVE = 'A'.
      PERFORM VARIANT_INIT.
    Get default variant
      GX_VARIANT = G_VARIANT.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
        EXPORTING
          I_SAVE     = G_SAVE
        CHANGING
          CS_VARIANT = GX_VARIANT
        EXCEPTIONS
          NOT_FOUND  = 2.
      IF SY-SUBRC = 0.
        P_VARI = GX_VARIANT-VARIANT.
      ENDIF.
    Process on value request
    *AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
      PERFORM F4_FOR_VARIANT.
    AT SELECTION-SCREEN.
      PERFORM PAI_OF_SELECTION_SCREEN.
    START-OF-SELECTION.
    END-OF-SELECTION.
    PERFORM LAYOUT_BUILD USING GT_LAYOUT.     "wg. Parameters
    Call ABAP/4 List Viewer
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM = GT_REPID
          IS_LAYOUT          = GT_LAYOUT
          IT_FIELDCAT        = GT_FIELDCAT[]
          IT_SPECIAL_GROUPS  = GT_SP_GROUP[]
          IT_SORT            = GT_SORT[]
          I_SAVE             = G_SAVE
          IS_VARIANT         = G_VARIANT
          IT_EVENTS          = GT_EVENTS[]
          I_TABNAME_HEADER   = G_TABNAME_HEADER
          I_TABNAME_ITEM     = G_TABNAME_ITEM
          IS_KEYINFO         = GS_KEYINFO
          IS_PRINT           = G_PRINT
        TABLES
          T_OUTTAB_HEADER    = IT_HEADER
          T_OUTTAB_ITEM      = INT_DATA.
          FORM E01_FIELDCAT_INIT                                        *
    -->  E01_LT_FIELDCAT                                               *
    FORM FIELDCAT_INIT
                      USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
      DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
      DATA: POS TYPE I VALUE 1.
    CLEAR LS_FIELDCAT.
    LS_FIELDCAT-FIELDNAME    = 'WERKS'.
    LS_FIELDCAT-TABNAME      =  G_TABNAME_HEADER .
    LS_FIELDCAT-SELTEXT_L        = 'Plant'.
    APPEND LS_FIELDCAT TO RT_FIELDCAT.
    CLEAR LS_FIELDCAT.
    LS_FIELDCAT-FIELDNAME    = 'NAME1'.
    LS_FIELDCAT-TABNAME      =  G_TABNAME_HEADER .
    LS_FIELDCAT-SELTEXT_L        = 'Description'.
    APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MATNR'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_HEADER .
      LS_FIELDCAT-SELTEXT_M        = 'Material'.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MAKTX'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_HEADER .
      LS_FIELDCAT-SELTEXT_M        = 'Material Description'.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'XBLNR'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M        = ' Doc No.'.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'BUDAT'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M        = ' Doc Date.'.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'BWART'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M        = ' Mvt.'.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MBLNR'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M        = ' Mat.Doc No'.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MENGE_R'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M    = '  STO-In '.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MENGE_RT'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M    = ' Sales Returns '.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MENGE_CL'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M    = ' Canc of Invoice'.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MENGE_AD'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M    = ' Adjustments '.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MENGE_S'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M     = '  Sales.  '.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MENGE_TO'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M    = '  STO-Out  '.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MENGE_CR'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M    = ' Canc of Sal Returns'.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MENGE_AD'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M    = 'Adjustments '.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MENGE_O'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M    = ' Opening Balance  '.
      LS_FIELDCAT-NO_ZERO = 'X'.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MENGE_BAL'.
      LS_FIELDCAT-TABNAME      =  G_TABNAME_ITEM .
      LS_FIELDCAT-SELTEXT_M    = ' Balance   '.
      APPEND LS_FIELDCAT TO RT_FIELDCAT.
    ENDFORM.                    "E01_FIELDCAT_INIT
          FORM E02_DATA_ADD                                             *
    -->  E02_LT_SFLIGHT                                                *
          FORM E03_EVENTTAB_BUILD                                       *
    -->  E03_LT_EVENTS                                                 *
    *FORM E03_EVENTTAB_BUILD USING E03_LT_EVENTS TYPE SLIS_T_EVENT.
    DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE = 1
       IMPORTING
         ET_EVENTS   = E03_LT_EVENTS.
    READ TABLE E03_LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                              INTO LS_EVENT.
    IF SY-SUBRC = 0.
       MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
       APPEND LS_EVENT TO E03_LT_EVENTS.
    ENDIF.
    *ENDFORM.                    "E03_EVENTTAB_BUILD
          FORM E04_COMMENT_BUILD                                        *
    -->  E04_LT_TOP_OF_PAGE                                            *
    FORM E04_COMMENT_BUILD USING E04_LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
      DATA: LS_LINE TYPE SLIS_LISTHEADER.
    Listenüberschrift: Typ H
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'H'.
      LS_LINE-INFO = TEXT-001.
      APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = TEXT-050.
      LS_LINE-INFO = TEXT-010.
      APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
      LS_LINE-KEY  = TEXT-051.
      APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
    Aktionsinfo: Typ A
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'A'.
      LS_LINE-INFO = TEXT-002.
      APPEND LS_LINE TO  E04_LT_TOP_OF_PAGE.
    ENDFORM.                    "E04_COMMENT_BUILD
          FORM E05_LAYOUT_BUILD                                         *
    <->  E05_LS_LAYOUT                                                 *
    FORM LAYOUT_BUILD USING LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
      LS_LAYOUT-F2CODE            = P_F2CODE.
      LS_LAYOUT-ZEBRA          = P_ZEBRA.
      LS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
      IF P_EXPAND = 'X'.
        LS_LAYOUT-EXPAND_FIELDNAME     = G_EXPANDNAME.
      ELSE.
        CLEAR LS_LAYOUT-EXPAND_FIELDNAME.
      ENDIF.
      LS_LAYOUT-DETAIL_POPUP      = P_DETPOP.
    ENDFORM.                    "E05_LAYOUT_BUILD
          FORM E06_T_SORT_BUILD                                         *
    -->  E06_LT_SORT                                                   *
    *FORM E06_T_SORT_BUILD USING E06_LT_SORT TYPE SLIS_T_SORTINFO_ALV.
    DATA: LS_SORT TYPE SLIS_SORTINFO_ALV.
    CLEAR LS_SORT.
    LS_SORT-FIELDNAME = 'WERKS'.
    LS_SORT-TABNAME   = G_TABNAME_HEADER.
    LS_SORT-SPOS      = 1.
    LS_SORT-UP        = 'X'.
    APPEND LS_SORT TO E06_LT_SORT.
    CLEAR LS_SORT.
    LS_SORT-FIELDNAME = 'MATNR'.
    LS_SORT-TABNAME   = G_TABNAME_ITEM.
    LS_SORT-SPOS      = 2.
    LS_SORT-UP      = 'X'.
    APPEND LS_SORT TO E06_LT_SORT.
    *ENDFORM.                    "E06_T_SORT_BUILD
          FORM E07_SP_GROUP_BUILD                                       *
    -->  E07_LT_SP_GROUP                                               *
    FORM E07_SP_GROUP_BUILD USING E07_LT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV.
      DATA: LS_SP_GROUP TYPE SLIS_SP_GROUP_ALV.
      CLEAR  LS_SP_GROUP.
      LS_SP_GROUP-SP_GROUP = 'A'.
      LS_SP_GROUP-TEXT     = TEXT-005.
      APPEND LS_SP_GROUP TO E07_LT_SP_GROUP.
    ENDFORM.                    "E07_SP_GROUP_BUILD
          FORM SELECTION                                                *
    FORM FETCH_DATA .
      STR3 = BUDAT-LOW+0(4).
      SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB1
                         WHERE MATNR IN MATNR AND
                         MATKL IN MATKL.
      SELECT MATNR WERKS LGORT
                         INTO TABLE ITAB2
                         FROM MARD FOR ALL ENTRIES IN ITAB1
                         WHERE WERKS IN WERKS AND
                               LGORT IN LGORT AND
                               MATNR = ITAB1-MATNR.
      SELECT SINGLE NAME1 FROM T001W INTO INT_DATA-NAME1
           WHERE WERKS = INT_DATA-WERKS.
      LOOP AT ITAB2.
        SELECT M~MATNR M~WERKS M~LGORT M~MENGE M~MBLNR  M~MJAHR M~XAUTO M~SHKZG
                       M~BWART M~EBELN N~BUDAT N~XBLNR S~NAME1
                       INTO CORRESPONDING FIELDS OF ITAB
                       FROM   MSEG AS M INNER JOIN MKPF AS N ON
                              M~MBLNR = N~MBLNR
                              AND M~MJAHR = N~MJAHR
                            INNER JOIN T001W AS S ON
                              M~WERKS = S~WERKS
                          WHERE N~BUDAT IN BUDAT AND
                             M~WERKS = ITAB2-WERKS AND
                             M~LGORT = ITAB2-LGORT AND
                             M~MATNR = ITAB2-MATNR AND
                    M~BWART IN BWART.
          APPEND ITAB.
          CLEAR ITAB.
        ENDSELECT.
        IF SY-SUBRC NE 0.
          ITAB-MATNR = ITAB2-MATNR.
          ITAB-WERKS = ITAB2-WERKS.
          ITAB-LGORT = ITAB2-LGORT.
          ITAB-BWART = ITAB2-BWART.
          APPEND ITAB.
        ENDIF.
        CLEAR: ITAB2,ITAB.
      ENDLOOP.
      DELETE ADJACENT DUPLICATES FROM ITAB2 COMPARING MATNR WERKS .
      V_MONTH = BUDAT-LOW+0(6).
      SELECT * INTO CORRESPONDING FIELDS OF TABLE INT_DATA2
               FROM S032 FOR ALL ENTRIES IN ITAB2
               WHERE MATNR = ITAB2-MATNR
                     AND WERKS   = ITAB2-WERKS
                     AND LGORT   = SPACE
                     AND   MBWBEST <> SPACE.
      LOOP AT INT_DATA2 .
        SELECT SINGLE *  FROM S031
                         WHERE MATNR = INT_DATA2-MATNR AND
                               WERKS = INT_DATA2-WERKS AND
                               LGORT = SPACE AND
                               SPMON GT V_MONTH.
        MODIFY INT_DATA2.
        CLEAR: INT_DATA2, S031.
      ENDLOOP.
      DELETE INT_DATA WHERE MENGE_O IS INITIAL .
      DELETE ADJACENT DUPLICATES FROM INT_DATA COMPARING XBLNR MATNR MAKTX.
      V_MONTH1 = BUDAT-LOW+0(6).
      SORT ITAB BY  MATNR  WERKS  XBLNR .
      LOOP AT ITAB.
        XBLNR = ITAB-XBLNR.
        INT_DATA-MENGE = ITAB-MENGE.
        INT_DATA-BWART = ITAB-BWART.
        INT_DATA-XBLNR = ITAB-XBLNR.
        INT_DATA-BUDAT = ITAB-BUDAT.
        INT_DATA-MATNR = ITAB-MATNR.
        INT_DATA-MBLNR = ITAB-MBLNR.
        INT_DATA-MENGE = ITAB-MENGE.
        INT_DATA-SHKZG = ITAB-SHKZG.
        INT_DATA-MENGE_IS = ITAB-MENGE_IS.
        INT_DATA-MENGE_RE = ITAB-MENGE_RE.
        INT_DATA-MENGE_O = ITAB-MENGE_O.
        INT_DATA-NAME1 = ITAB-NAME1.
        AT NEW MATNR.
          FLAG = 1.
          IT_HEADER-MATNR = INT_DATA-MATNR.
          SELECT SINGLE MAKTX FROM MAKT INTO IT_HEADER-MAKTX WHERE
          MATNR = INT_DATA-MATNR.
          APPEND IT_HEADER.
          CLEAR IT_HEADER.
        ENDAT.
        IF FLAG = 1.
          PERFORM GET_OPENING_STOCK.
        ENDIF.
        INT_DATA-MENGE_O = OSTOCK.
        CASE ITAB-BWART.
          WHEN '101'.
            IF INT_DATA-SHKZG = 'S'.
              INT_DATA-MENGE_R = INT_DATA-MENGE_R + ITAB-MENGE.
            ENDIF.
          WHEN  '453'.
            IF INT_DATA-SHKZG = 'S'.
              IF ITAB-XAUTO = 'X'.
                INT_DATA-MENGE_RT = INT_DATA-MENGE_RT + ITAB-MENGE.
              ENDIF.
            ENDIF.
          WHEN '351' OR '641'.
           IF ITAB-LGORT = 0.
             INT_DATA-MENGE_R = INT_DATA-MENGE_R + ITAB-MENGE.
           ELSE.
             INT_DATA-MENGE_TO = INT_DATA-MENGE_TO + ITAB-MENGE.
           ENDIF.
          WHEN '602' OR '642'.
            IF INT_DATA-SHKZG = 'S'.
              IF ITAB-LGORT = 0.
                INT_DATA-MENGE_CL = INT_DATA-MENGE_CL + ITAB-MENGE.
              ENDIF.
            ENDIF.
          WHEN '552' OR '310'.
            IF INT_DATA-SHKZG = 'S'.
              INT_DATA-MENGE_AD = INT_DATA-MENGE_AD - ITAB-MENGE.
            ENDIF.
          WHEN '601'.
            IF INT_DATA-SHKZG = 'H'.
              INT_DATA-MENGE_S = INT_DATA-MENGE_S + ITAB-MENGE.
            ENDIF.
          WHEN  '641' .
            IF INT_DATA-SHKZG = 'H'.
              IF ITAB-LGORT = 0.
                INT_DATA-MENGE_TO = INT_DATA-MENGE_TO + ITAB-MENGE.
              ENDIF.
            ENDIF.
          WHEN  '454' OR '102'.
            IF INT_DATA-SHKZG = 'H'.
              IF ITAB-XAUTO = 'X'.
                INT_DATA-MENGE_CR = INT_DATA-MENGE_CR - ITAB-MENGE.
              ENDIF.
            ENDIF.
          WHEN '551' OR '309'.
            IF INT_DATA-SHKZG = 'H'.
              INT_DATA-MENGE_AD = INT_DATA-MENGE_AD + ITAB-MENGE.
            ENDIF.
            IF INT_DATA-SHKZG = 'S'.
              MENGE_O = INT_DATA-MENGE_O + ITAB-MENGE.
            ENDIF.
        ENDCASE.
        IF INT_DATA-SHKZG = 'S'.
          MENGE_RE = INT_DATA-MENGE_R + INT_DATA-MENGE_RT + INT_DATA-MENGE_CL
          + INT_DATA-MENGE_AD.
        ENDIF.
        IF INT_DATA-SHKZG = 'H'.
          MENGE_IS =  INT_DATA-MENGE_S + INT_DATA-MENGE_TO +
                        INT_DATA-MENGE_CR + INT_DATA-MENGE_AD.
        ENDIF.
        PERFORM BALANCE.
        COLLECT INT_DATA.
        CLEAR: INT_DATA,ITAB ,XBLNR, FLAG, OSTOCK.
      ENDLOOP.
      SORT INT_DATA BY XBLNR BUDAT WERKS MATNR.
      LOOP AT INT_DATA.
        READ TABLE INT_DATA2 WITH KEY MATNR = INT_DATA-MATNR
                                      WERKS = INT_DATA-WERKS.
        SELECT SINGLE * FROM MAKT WHERE MATNR = INT_DATA-MATNR.
        INT_DATA-MAKTX = MAKT-MAKTX.
        MODIFY INT_DATA.
        CLEAR: INT_DATA, INT_DATA2.
      ENDLOOP.
      LOOP AT INT_DATA WHERE  MENGE_O = 0 AND MENGE_RT = 0 AND
                            MENGE_CL = 0 AND MENGE_AD = 0 AND
                            MENGE_S = 0 AND MENGE_TO = 0 AND
                            MENGE_CR = 0 AND MENGE_R = 0 AND MENGE_BAL = 0.
        DELETE IT_HEADER WHERE MATNR = INT_DATA-MATNR.
      ENDLOOP.
      DELETE INT_DATA WHERE MENGE_O = 0 AND MENGE_RT = 0 AND
                            MENGE_CL = 0 AND MENGE_AD = 0 AND
                            MENGE_S = 0 AND MENGE_TO = 0 AND
                            MENGE_CR = 0 AND MENGE_R = 0 AND MENGE_BAL = 0.
    ENDFORM.                    "SELECTION
    *&      Form  EVENTTAB_BUILD
          text
         -->P_GT_EVENTS[]  text
    FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
      DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE = 1
        IMPORTING
          ET_EVENTS   = RT_EVENTS.
      READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE GT_TOP_OF_PAGE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO RT_EVENTS.
      ENDIF.
    ENDFORM.                    " EVENTTAB_BUILD
          FORM TOP_OF_PAGE                                              *
    FORM TOP_OF_PAGE.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
         I_LOGO             = 'ENJOYSAP_LOGO'
         IT_LIST_COMMENTARY = LT_TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          I_LOGO             = 'ENJOYSAP_LOGO'
          IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
    ENDFORM.                    "TOP_OF_PAGE
          FORM F4_FOR_VARIANT                                           *
    FORM F4_FOR_VARIANT.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          IS_VARIANT       = G_VARIANT
          I_SAVE           = G_SAVE
          I_TABNAME_HEADER = G_TABNAME_HEADER
          I_TABNAME_ITEM   = G_TABNAME_ITEM
        IMPORTING
          E_EXIT           = G_EXIT
          ES_VARIANT       = GX_VARIANT
        EXCEPTIONS
          NOT_FOUND        = 2.
      IF SY-SUBRC = 2.
        MESSAGE ID SY-MSGID TYPE 'S'      NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ELSE.
        IF G_EXIT = SPACE.
          P_VARI = GX_VARIANT-VARIANT.
        ENDIF.
      ENDIF.
    ENDFORM.                    "F4_FOR_VARIANT
    *&      Form  PAI_OF_SELECTION_SCREEN
          text
    FORM PAI_OF_SELECTION_SCREEN.
      IF NOT P_VARI IS INITIAL.
        MOVE G_VARIANT TO GX_VARIANT.
        MOVE P_VARI TO GX_VARIANT-VARIANT.
        CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
          EXPORTING
            I_SAVE     = G_SAVE
          CHANGING
            CS_VARIANT = GX_VARIANT.
        G_VARIANT = GX_VARIANT.
      ELSE.
        PERFORM VARIANT_INIT.
      ENDIF.
    ENDFORM.                               " PAI_OF_SELECTION_SCREEN
    *&      Form  VARIANT_INIT
          text
    -->  p1        text
    <--  p2        text
    FORM VARIANT_INIT.
      CLEAR G_VARIANT.
      G_VARIANT-REPORT = GT_REPID.
    ENDFORM.                               " VARIANT_INIT
    *&      Form  GET_OPENING_STOCK
          text
    FORM GET_OPENING_STOCK.
      SELECT SUM( MZUBB ) SUM( MAGBB )  INTO (V_STOCK, V_STOCK1)
                    FROM S031 WHERE MATNR = ITAB-MATNR AND
                                    WERKS = ITAB-WERKS AND
                                    SPMON LT V_MONTH1 AND LGORT = ITAB-LGORT.
      OSTOCK = V_STOCK1 - V_STOCK.
      IF OSTOCK < 0.
        OSTOCK = OSTOCK * -1.
      ENDIF.
    ENDFORM.                               " GET_OPENING_STOCK
    *&      Form  check
          text
    FORM CHECK.
      AUTHORITY-CHECK OBJECT 'M_IS_MATNR'
        ID 'ACTVT' DUMMY
        ID 'MATNR' FIELD MATNR-LOW.
      IF SY-SUBRC <> 0.
        MESSAGE E016(Z1) WITH MATNR-LOW.
      ENDIF.
    ENDFORM.                    "CHECK_AUTHORIZATION
    *&      Form  EVENTTAB_BUILD
          text
         -->P_GT_EVENTS[]  text
    *FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
    DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE = 1
       IMPORTING
         ET_EVENTS   = RT_EVENTS.
    READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                              INTO LS_EVENT.
    IF SY-SUBRC = 0.
       MOVE GT_TOP_OF_PAGE TO LS_EVENT-FORM.
       APPEND LS_EVENT TO RT_EVENTS.
    ENDIF.
    *ENDFORM.                    " EVENTTAB_BUILD
          FORM TOP_OF_PAGE
    *FORM TOP_OF_PAGE.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
         I_LOGO             = 'ENJOYSAP_LOGO'
         IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
    *ENDFORM.                    "TOP_OF_PAGE
    *&      Form  COMMENT_BUILD
          text
         -->P_GT_LIST_TOP_OF_PAGE[]  text
    FORM COMMENT_BUILD USING LT_TOP_OF_PAGE TYPE
                           SLIS_T_LISTHEADER.
      DATA: LS_LINE TYPE SLIS_LISTHEADER.
      DATA: LV_PAGE_STRING(11),
             LV_PAGE_NO(3).
      PAGNO = SY-PAGNO.
      DATA: PAGNO(5) TYPE C.
      CLEAR
         LS_LINE.
      REFRESH LT_TOP_OF_PAGE.
      CLEAR
         LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY = 'Page Number'.
      PAGNO = SY-PAGNO.
      IF
        PAGNO = 0.
        PAGNO =  1.
      ENDIF.
      SHIFT PAGNO LEFT DELETING LEADING SPACE.
      LS_LINE-INFO = PAGNO.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'H'.
      LS_LINE-INFO = TEXT-001.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'A'.
      SELECT SINGLE * FROM T001W WHERE
                      WERKS IN WERKS.
      CONCATENATE 'Name Of The Plant ' '-'  T001W-NAME1 INTO
                            TXT SEPARATED BY SPACE.
      LS_LINE-INFO = TXT.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      CLEAR:TXT, LS_LINE.
      LS_LINE-TYP  = 'H'.
      LS_LINE-INFO = TEXT-002.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      CLEAR LS_LINE.
      IF WERKS-HIGH EQ SPACE.
        CONCATENATE 'Plant :  ' WERKS-LOW INTO TXT.
      ELSE.
        CONCATENATE 'FROM PLANT : ' WERKS-LOW 'TO PLANT : ' WERKS-HIGH INTO TXT SEPARATED  BY SPACE.
      ENDIF.
      LS_LINE-TYP  = 'H'.
      LS_LINE-INFO = TXT.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      IF BUDAT-HIGH EQ SPACE.
        BUDAT-HIGH = BUDAT-LOW.
      ENDIF.
      CONCATENATE 'Date : From ' BUDAT-LOW6(2) '-' BUDAT-LOW4(2) '-'
                            BUDAT-LOW0(4) 'to' BUDAT-HIGH6(2) '-'
                            BUDAT-HIGH4(2) '-' BUDAT-HIGH0(4) INTO
                            TXT SEPARATED BY SPACE.
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'A'.
      LS_LINE-INFO = TXT.
      APPEND LS_LINE TO  LT_TOP_OF_PAGE.
    ENDFORM.                    "COMMENT_BUILD
    *&      Form  LAYOUT_INIT
          text
         -->P_GT_LAYOUT  text
    FORM LAYOUT_INIT USING RS_LAYOUT TYPE SLIS_LAYOUT_ALV.
      RS_LAYOUT-DETAIL_POPUP      = 'X'.
      RS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    ENDFORM.                    " LAYOUT_INIT
    *&      Form  BALANCE
          text
    -->  p1        text
    <--  p2        text
    FORM BALANCE.
      IF INT_DATA-SHKZG = 'S'.
        MENGE_RE = INT_DATA-MENGE_O + INT_DATA-MENGE.
        INT_DATA-MENGE_BAL = MENGE_RE.
        INT_DATA-MENGE_RE = INT_DATA-MENGE.
      ELSEIF INT_DATA-SHKZG = 'H'.
        MENGE_RE =  MENGE_RE - INT_DATA-MENGE.
        INT_DATA-MENGE_BAL = MENGE_RE.
        INT_DATA-MENGE_IS = INT_DATA-MENGE.
      ENDIF.
    ENDFORM.                    " BALANCE
    Thanks & Regards,
    Sreedhar.

    Hi,
    try like this.........
      get v_linct from system varaible sy-linct
      describe table t_output lines lv_lines - Where 
      t_output is ur final internal table which is displayed
      v_pagct = ( lv_lines div v_linct ) + 3.
      write: 'PAGE NO:' , sy-pagno  ,'/', v_pagct.
    Madhavi

  • Header in every page of  SAP-Script

    Hi all,
    How to print header in every page of SAP-Script?
    Thanks in advance,
    SG

    Hi,
    While giving the WRITE FOR, u have to give the Value HEADER for TYPE.
    U have it to give it inside the Loop so that u ll get the header in all pages.
    For eg.,
    Loop at <itab>.
    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
       element                        = 'ELEMENT1'
       type                             = 'HEADER'
       window                         = 'WINDOW1'.
    endloop.
    Regards,
    Padmam.

  • How to repeat row header in all pages in Financial Reporting?

    Hi,
    I have created a simple Financial Report with landscape mode, I could not able to view the row header in second page. Please help me out , how to repeat row header in all pages?
    Edited by: Awesome on Dec 13, 2012 2:04 PM

    Hi,
    Refer following link which states how to change the Page Setup setting (just an addition to above poster's explanation):-
    http://docs.oracle.com/cd/E12825_01/epm.111/fr_user/frameset.htm?1900.html
    Regards,
    Edited by: 918547 on Dec 14, 2012 6:17 PM

  • Repeat Group Header On Each Page with Underlay Following Sections

    How to overcome the following problem?
    1. I am using Crystal report 13.0.5.891
    2. I have designed the report with Group Header as [Underlay following section]
    3. I have checked the group to repeat on each page
    4. Number of lines in the group header may vary
    5. Number of lines in details may also vary
    My objective is to print the separator line placed in group footer, after the
    header lines or after the detail lines which one is taking the maximum lines.
    This is not happening, and I am getting the following output, which is not meeting my requirement
    Where the "LINE IN GROUP FOOTER" should appear after "Group 1 Header Line 6" in the second page
    as the report ends there, but in the output, the line is coming just after the end of detail record.
    like following
    As a result of this, the next record of the group is overlapping with the first record and creating a mesh
    ------------------------------------------------------------------------------------------------------------------------------------ PAGE 1 OF 2
    Column Heading 1                       Column Heading 2                      Column Heading 3
    Group 1 Header Line 1                 Detail Record 1 Line 1
    Group 1 Header Line 2                 Detail Record 1 Line 2
    Group 1 Header Line 3                 ----------------------------------------------------------------------------------
    Group 1 Header Line 4                 Detail Record 2 Line 1
    Group 1 Header Line 5                 Detail Record 2 Line 2
    Group 1 Header Line 6                 Detail Record 2 Line 3
                                                      Detail Record 2 Line 4
                                                      Detail Record 2 Line 5
    ======================LINE IN GROUP FOOTER========================
    PAGE BREAK
    ------------------------------------------------------------------------------------------------------------------------------------ PAGE 2 OF 2
    Column Heading 1                       Column Heading 2                      Column Heading 3
    Group 1 Header Line 1                    Detail Record 3 Line 1
    Group 1 Header Line 2                    Detail Record 3 Line 2
    Group 1 Header Line 3                    Detail Record 3 Line 3
    Group 1 Header Line 4                    Detail Record 3 Line 4
    ======================LINE IN GROUP FOOTER========================
    Group 1 Header Line 5
    Group 1 Header Line 6
    Thanks in advance.

    Thanks for you response.
    I have updated the crystal report to 13.0.13.1597.
    Still I am getting the same issue. I am generating the report in PortableDocFormat and exporting the byte array to download from the web browser. The application is developed in ASP.NET 2012 .net version 4.5.
    I am also uploading 2 images of the final pdf that I am getting, for your opinion.
    The report appeared in the first image is ok, where the first group has 2 child records and the second group has 1 child, but whenever I am changing the mapping in the database, where the first group has 1 child and second group has 2 child, my report is not working. as it is clear from the second image
    Also after installing the new version of CR, my existing codes are not working, and giving the following exception in the line where ExportToStream is written.
    Unable to cast object of type 'FileStreamDeleteOnClose' to type 'System.IO.MemoryStream'.
    I have modified the existing code to overcome this exception.

  • Repeating group header in each page if it  breaks

    Hi All,
    I am using a simple rtf file to create a report. The group header does not repeat after page break. Is there a simple way to make it repeat the report goes to next page? I am using subtemplate too on page header.
    Thanks,
    Sushil

    sorry posting in bi publisher forum!!

  • Header in every page of ALV List

    Hi All,
    I am working in ALV list now the requirement is that i have to fetch the data based on inputs given when the report executed. and the values which i gave in the input is printed as header of ALV list.
    I have done everything except that when i am printing the Header it is coming only on the first page but we want it in every page the list spreads. please help me ASAP.
    Regards,
    hrk

    Hi,
    As my knowledge, It can not do the thing you told (you can do this thing with Smartforms). but you can separate your report with a condition to break page. Here an example that you can break page with condition when company code changes or GL account changes.
    firstly, build a sort table:
    FORM sort_build CHANGING pt_sort TYPE slis_t_sortinfo_alv.
    *-- company code
      gs_sort-spos      = 1.
      gs_sort-fieldname = 'BUKRS'.
      gs_sort-tabname   = 'GT_FKONT'.
      gs_sort-up        = 'X'.
      gs_sort-group     = '*'.
      gs_sort-subtot    = 'X'.
      APPEND gs_sort TO gt_sort.
    *-- Account
      gs_sort-spos      = 2.
      gs_sort-fieldname = 'SAKNR'.
      gs_sort-tabname   = 'GT_FKONT'.
      gs_sort-up        = 'X'.
      gs_sort-group     = '*'.
      gs_sort-subtot    = 'X'.
      APPEND gs_sort TO gt_sort.
    ENDFORM.     
    and attach the sorted table to FM:
    FORM alv_list_display TABLES pt_itab
                          USING  pv_pf_status_set
                                 pv_user_command.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          i_callback_program       = gv_repid
          i_callback_user_command  = pv_user_command
          i_callback_pf_status_set = pv_pf_status_set
          is_layout                = gs_layout
          i_save                   = gv_save
          it_excluding             = gt_excluding[]
          is_variant               = gs_variant
          it_events                = gt_events[]
          it_event_exit            = gt_event_exit[]
          it_fieldcat              = gt_fieldcat[]
          *it_sort                  = gt_sort[]*   "sort table
        IMPORTING
          e_exit_caused_by_caller  = gv_exit_caused_by_caller
          es_exit_caused_by_user   = gt_exit_caused_by_user
        TABLES
          t_outtab                 = pt_itab.
    ENDFORM.
    regards,
    Thien
    Edited by: Thien Pham on Dec 1, 2009 2:48

Maybe you are looking for

  • Dreamweaver 4 no longer working after downloading files created with MX

    I downloaded files that were created with Dreamweaver MX to my pc in order to update them for a new client. I've been using Dreamweaver 4 and now I cannot even open Dreamweaver 4. Luckily I also have Dreamweaver 8 installed and can view all the files

  • Flash player doesn t work with firefox

    hey every body after a lot of tries ,the version 11.8.800.168 doesn t work properly a good down load ,good installation without error message but youtube doesn t detect the plug in ? i check and it s installed :just a remark :the plug in weights abou

  • OPEN PDF'S IN ACROBAT - NOT PREVIEW

    Don't know if this is the proper forum - but does anyone know how to direct PDF's to be opened in Acrobat as opposed to reader ? Like in the rest of the known universe ? Thanks, Sterne

  • Hardware sizing recommendations for B2B Server

    My customer Welch Foods Inc. is on 11i Oracle eBusiness Suite and is planning to uptake the latest 1Sync integration features in the PIM product. For out-of-box AS2 connectivity with 1Sync - they are planning to use Oracle B2B Integration Server 10.1

  • How can I use fonts found in iDVD 08 in other programs?

    I created a DVD using 6.0 Themes, Pass Through in particular, by exporting a slideshow movie from iMovie 06 and it looks great. Thank you's to forum members for the help I needed to resolve issues. Deleting the plist files and burning at 2 times spee