Sum and top ten records

I can get the top ten records with this command.
select amt,rank() over (order by qater desc) as qtr
from table1 where rownum<=10;
Now I want to get the sum(amt) in similar query and it is giving problem. How can I do it?
Thank You.

I don't think that query does what you think it does. It's a side effect of the analytic window function implementation that you are relying on there. You should really change that to a subquery. When you do that, getting the sum is more obvious ...
select amt, qtr, sum(amt) over ()
from (
  select amt, rank() over (order by qater desc) as qtr
  from table1)
where qtr <= 10

Similar Messages

  • On my iPad2, the buttons for Top Ten, Genres and New Releases are missing.  How do I get them back.

    On my iPad2, the buttons for Top Ten, Genres and New Releases are missing.  How do I get them back.

    If the menu bar is hidden then press the F10 key or hold down the Alt key, that should make the menu bar appear.
    * Go to "View > Toolbars" and check-mark "Menu Bar" with a click if you want to make that permanent
    See [[Menu bar is missing]]

  • Layout and Pagination... Limiting my data to top 500 records

    Hi,
    My report is based on SQL, it's displaying only top 500 records... May I know how to fix it...?
    I've tried different options under Report attibutes -> Layout and Pagination but no success yet
    Thanks

    Try closing OAE and the application if running.. Seems like the changes don't take effect until you come back into OAE... At least that is what mine does.

  • My already purchased, downloaded, and stored album or song in the Music from iTunes Store does not display already purchased in New Releases, Top Tens, Genres. Why did I purchase this again from the same album??

    This has happened more than 38 times so far, and its still not fixed within iTunes store, upgrade or the latest version of software. For an example, I have in the Top Tens, section Country number 28 this week Keith Urban with For You from the Act of Valor movie soundtrack which displays $ 1.29. Now again upon just searching on the iPhone 4s with the app Itunes, with the keywords Act of Valor, top results show on display Action & Adventure Act of Valor Movie and Keith Urban, For You Act of Valor $ 1.29.
    Now right below with Albums, Various Artists, Act of Valor I selected it displays 1 For You "Downloaded"
    Pretty screwed up if you ask me!!

    really? no answer in a month? no one can help to resolve with a setting ?

  • Need to display average percent of spend for each vendor in top ten

    Hi Friends,
                 I have to design a query where  I need to display top ten vendors and for that top ten vendors  need to sum the AMT and I have to calculate the average percentage of each vendor in top ten list from the total. Based and the specified range have to create exceptions.
    I am able to display top ten vendors. Now the problem is unable to calculate total of top ten vendors and average percentage of each vendor from total. like the below
         spend     Spend Ratio     Spend Percentage     
    vendor 4     121987     0.299181333     30%     80% is an A
    vendor 10     101103     0.247961917     55%     
    vendor 8     98723     0.242124806     79%     
    vendor 9     23456     0.05752742     85%     80-95% is a B
    vendor 5     12345     0.030276944     88%     
    vendor 6     10540     0.02585006     90%     
    vendor 7     9906     0.024295132     93%     
    vendor 3      9903     0.024287774     95%     95-100% is a C
    vendor 2     9899     0.024277964     98%     
    vendor 1     9874     0.02421665     100%     
    Total     407736               
    Please, suggest me to proceed further.
    Thank You.
    Manjula

    Hi manjula
    In order to get total for any key figure .... for that key figure at the query level in the  calculation tab there will be one box like calculate result as there u give sum or average accroding to ur purpose... then it will display the total or average accordingly....
    the key figure when used average for result shows average of all record conrtibutions but
    In order to display the  percentage of each vendor from total u can use
    Percentage Share of Result (%CT)
    %CT<Operand>
    Specifies how high the percentage share is in relation to the result. The result
    means the result of aggregation at the next level (interim result).
    %CT Incoming Orders specifies the share of incoming order values of each
    individual characteristic value (for example of each customer) in relation to
    the characteristic's result (for example, customer of a division).
    Regards
    vamsi

  • How to find out the top ten Change log tables in BW

    I want to know the top ten change log tables in terms of size. Do we have a SAP standard table where we have the following fields : "changlog table name", "number of records" field or "data in size" field.
    Regards,
    Prashant M J

    Hi,
    Click on change log table in the ODS/DSO at the top you see the name as /bic* which is the name of the database table which could also be seen at SE11.
    If you wana see the requests in this change log use rstsodsrequest
    and if you wana see the size in terms of kb, mb DB02 or st04
    use the table name /bic* and click on tables and indexes option in history tab
    DB02 tells you the sizes of the tables present on database. Incase you are not able to your basis team would help you in that
    Thanks and regards
    Kiran

  • Query : first and last 25 records of a table

    Hi @ll,
    i am going to write a query for a report. Therefor i need the first and last 25 records of a table. Does anyone got an idea for a solution ? I was trying to achieve this by using a WHERE clause. Here is a part of the query :
    SELECT
    TOP 10 T1.[ItemCode], DATEPART(mm, T1.[DocDate])   [.....]
    FROM FROM INV1 T1
    Where T1.[DocDate] >= Cast('2009  [......] AND
    T1.ItemCode = (
    SELECT TOP 10 T40.[ItemCode]
    FROM DBO.OINM
    WHERE Where T40.[DocDate] >= Cast('2009-04-01 00:00:00' AS datetime)
    AND T40.[DocDate] <= Cast('2009-04-30 00:00:00' AS datetime)
    GROUP BY T1.[ItemCode], DATEPART(mm, T40.[DocDate])
    ORDER BY SUM(T1.[TotalSumSy]) ASC)
    The where part i would use twice, once for ascending the other one for descending. But it does not work.
    Any ideas ?
    Regards Steffen

    Hi,
    Union was the keyword, that i was searching for. It is a nice way, but not practible.
    We are using coresuite for generating reports, and there were a nice possibility to connect diffrent queries.
    Thanks for your suggestion.
    Regards Steffen

  • 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

  • How to find out top 10 records from the R/3 using Java code (WD Program)

    Hi Experts,
    I have used Java Web Dynpro program to fetch records from the backend. Following code helps me and fetches record. As per the customer reqirement, we have to fetch only top 10 records (Actual Cost) from the backend. So I have to modify the Java code. How I can do so? Please help.
              wdContext.nodeGraphData().invalidate();
              IPublicCostcnt.IGraphDataElement categoryElement;
                   for (int i = 0; i < wdContext.nodeItab_Final1().size(); i++) {
                   categoryElement = wdContext.createGraphDataElement();
                   categoryElement.setCostElement(""+ wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getDescription());
                   categoryElement.setActualCost(wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getActual_Cost().toString());
                   categoryElement.setPlannedCost(wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getPlan_Cost().toString());
                   wdContext.nodeGraphData().addElement(categoryElement);
    Regards,
    Gary

    Dear SDN Users,
    This is how I resolved the issue.
    1) Requested ABAPer to provide me sorted data. The data has been sorted in descending order of actual_cost.
    2) After that I used following code. This resolved the issue.
         if (wdContext.nodeItab_Final1().size()>10){
         IPublicCostcnt.IGraphDataElement categoryElement;
              for (int i = 0; i < 10; i++) {
              categoryElement = wdContext.createGraphDataElement();
              categoryElement.setCostElement(""+ wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getDescription());
              categoryElement.setActualCost(wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getActual_Cost().toString());
              categoryElement.setPlannedCost(wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getPlan_Cost().toString());
              wdContext.nodeGraphData().addElement(categoryElement);
         if (wdContext.nodeItab_Final1().size()<=10){
         if (wdContext.nodeItab_Final1().size()>0){
         IPublicCostcnt.IGraphDataElement categoryElement;
              for (int i = 0; i < wdContext.nodeItab_Final1().size(); i++) {
              categoryElement = wdContext.createGraphDataElement();
              categoryElement.setCostElement(""+ wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getDescription());
              categoryElement.setActualCost(wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getActual_Cost().toString());
              categoryElement.setPlannedCost(wdContext.nodeItab_Final1().getItab_Final1ElementAt(i).getPlan_Cost().toString());
              wdContext.nodeGraphData().addElement(categoryElement);
    Regards,
    Gary

  • Mac Mini desktop folders/icons and top menu blinking on and off

    Hello. I've just returned to my Mac Mini after being away for a few days. Upon booting and having the desktop fully load, I have been experiencing all folders/icons and top menu bar blinking on and off every ten seconds. I have only opened Fire Fox to try and diagnose why this is happening. No solution yet.
    I am running Snowleopard with Mavericks and I'm aware Mavericks is a little buggy at the moment (beach ball used to blink on and off every now and again and performance has gotten slow) I only have the HDD replaced last week as the last one failed. I really need to fix this problem soon as I rely on my Mac to work from home.
    Any help would be greatly appreciated
    Jan

    I have sovled the problem! for now at least. I came across another users suggestion to dissable "sync status icons" in google drive as it confics with the finder in Mavericks. I guess this would only work with others having this problem with Google Drive and Mavericks.

  • Need sql query to find ten records in sequential manner

    Plz help me
    I need to have ten records on my page. at the bottom of the page, i want to dispaly the number of pages that have records , just as a google page shows at the bottom. if the moves user moves to the next page , the next ten records must be displayed. suppose the user selects and clicks 5th page then the records on that page are displayed.How can i write the sql query corresponding to this specificationi don't want all records to be fetched at the same time and put on the server, rather whenever the page is opened , the corresponding records are fetched and displayed

    Hi
    Maybe you should use a CachedRowSet.
    Look this:
    http://developer.java.sun.com/developer/technicalArticles/javaserverpages/cachedrowset/
    This page has a example that will help you.

  • How to select top 10 records

    How can I use SQL to select the top 10 records (do not use cursor)

    ... not only that but the order by and rownum check cannot be done in the same select. You need an in-line view.
    select * from
    (select * from table
    order by whatever)
    where rownum < 11
    BEWARE: Incorrect use of rownum (which is very common) often returns the correct result by accident, but you cannot guarantee that the accident will continue to happen.

  • HOW TO GET TOP N RECORDS IN SQL , URGENT

    Hi,
    I want to get the TOP 2 and BOTTOM 2 records (TOP 2 SAL , BOTTOM 2 SAL) from the following query result for each department . How do I get it using a SQL statement ? Thanks
    SQL> SELECT A.DNAME, B.ENAME, B.SAL FROM DEPT A, EMP B WHERE A.DEPTNO = B.DEPTNO ORDER BY DNAME, SAL
    DNAME------------ENAME--------SAL
    ACCOUNTING-------KING--------5000
    ----------------CLARK--------2450
    ---------------MILLER--------1300
    RESEARCH--------SCOTT--------3000
    -----------------FORD--------3000
    ----------------JONES--------2975
    ----------------ADAMS--------1100
    ----------------SMITH---------800
    SALES-----------BLAKE--------2850
    ----------------ALLEN--------1600
    ---------------TURNER--------1500
    -----------------WARD--------1250
    ---------------MARTIN--------1250
    ----------------JAMES---------950
    14 rows selected.

    If Feroz is asking the TOP 2 Salaried employees and BOTTOM 2 Salaried employees
    for ***EACH**** DEPARTMENT, then following SQL is one of the many ways(proves good with performance).Also brings top2+ bottom2 in one shot.SELECT dname, ename, sal FROM
    (SELECT d.DNAME, e.ENAME, e.SAL,
           dense_rank() over(PARTITION BY e.DEPTNO ORDER BY e.SAL) dr
    FROM EMP e, DEPT d
    WHERE e.DEPTNO = d.DEPTNO)
    WHERE dr <= 2
    UNION
    SELECT dname, ename, sal FROM
    (SELECT d.DNAME, e.ENAME, e.SAL,
           dense_rank() over(PARTITION BY e.DEPTNO ORDER BY e.SAL DESC) dr
    FROM EMP e, DEPT d
    WHERE e.DEPTNO = d.DEPTNO)
    WHERE dr <= 2
    /Thx,
    SriDHAR

  • Sum and Average Group Wage instead of Details Wage

    I have a subreport where I have included all of our employment records and grouped it by employee ID. In the Group Footer, to show the latest employment record I used the Max(Start Date) and I have also placed the Hourly Wage field here which shows the appropriate Wage for the Max Date. But I can't seem to use the Sum or Average Summary because it Sums and Averages All Wages in the Details report vs. only the latest record.
    So, how do I Sum/Average the wages for only the last employment record Or how do I create the report to show only the Last Employment Record?
    I'm using Crystal XI. Any help will be greatly appreciated.
    Thanks

    Place the fields in group header instead of placing in details section using maximum() function. Now got to report>record sort expert>add start date field-->select descending order.
    Now the report shows latest date entries for each group.
    If you want to calcualte the sum then use mannual running totals like
    create a formula like
    @sum:
    whileprintingrecords;
    numbervar i;
    i:=i+{field}
    Now place this in group header and supress
    create another formula like
    @Total:
    whileprintingrecords;
    numbervar i;
    place this in report footer which gives grand total.
    Regards,
    Raghavendra

  • Charts Top Songs and Top Albums please help!

    Hi,
    Does anybody know exactly how the charts "top songs" and "top albums" are put together on itunes?
    Are there differences from one country to the next?
    Are multiple purchases of the same item from the same account counted in full for the charts? or is it the case that only the unique purchases for each account is counted in compiling the charts, excluding multiple purchases from the same account ?
    If only unique purchases are counted for each account, what about gifts? at what points songs sent as gifts are counted in the charts?
    please please help

    Sites like the iTunes Store generally do not document how such listings are complied so as to prevent record companies and/or artists from "gaming" the system and working out ways to get their tracks listed higher. So other than guesswork, no one here can answer your questions. Sorry.

Maybe you are looking for