Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

ALV-GRID TOTAL

Former Member
0 Kudos

Hi Experts,

i have issue were in i need to show sum of the amount. like example...

for Custmer 100 there are vendor number 10,20,30,40,50. so for all this vendor numbers..

vendor----- amount

10 -


100

20----


200

30----


300

40----


400

50-------500

so in the output i want it to be..

customer--


vendornumber--


amount

1000--


10--


1500

-


20---

-


30---

-


40---

-


50---

.hope u experts have undestood. so how can i add the it and show it in the output....

am forwarding my code also..

Corrects answers will be fully rewarded..

REPORT  zrfi007 NO STANDARD PAGE HEADING LINE-SIZE 255 MESSAGE-ID z01.
TYPE-POOLS: slis, abap.
*----------------------------------------------------------------------*
* TYPES Declaration
*----------------------------------------------------------------------*

TYPES: BEGIN OF ty_lfa1,
      lifnr TYPE lfa1-lifnr,
      name1 TYPE lfa1-name1,
      END OF ty_lfa1.

TYPES:  BEGIN OF ty_bsik,
         bukrs  TYPE    bsik-bukrs,
         lifnr  TYPE    bsik-lifnr,
         belnr  TYPE    bsik-belnr,
         bldat  TYPE    bsik-bldat,
         waers  TYPE    bsik-waers,
         dmbtr  TYPE    bsik-dmbtr,
         wrbtr  TYPE    bsik-wrbtr,
          zfbdt TYPE    bsik-zfbdt,
         zbd1t  TYPE    bsik-zbd1t,
        zbd2t   TYPE    bsik-zbd2t,
        zbd3t   TYPE    bsik-zbd3t,
       END OF ty_bsik.
TYPES: BEGIN OF ty_lfb1,
       lifnr TYPE lfb1-lifnr,
       bukrs TYPE lfb1-bukrs,
       END OF ty_lfb1.
TYPES: BEGIN OF ty_final,
         bukrs  TYPE    bsik-bukrs,
         lifnr  TYPE    bsik-lifnr,
         belnr  TYPE    bsik-belnr,
         bldat  TYPE    bsik-bldat,
         days   TYPE    sy-datum,
         waers  TYPE    bsik-waers,
         dmbtr  TYPE    bsik-dmbtr,
*         waers  type    bsik-waers,
         wrbtr  TYPE    bsik-wrbtr,
         zfbdt  TYPE    bsik-zfbdt,
         zbd1t  TYPE    bsik-zbd1t,
         zbd2t  TYPE    bsik-zbd2t,
         zbd3t  TYPE    bsik-zbd3t,
         name1  TYPE    lfa1-name1,
         current  TYPE    bsik-dmbtr,
        d30     TYPE    bsik-dmbtr,
        d60     TYPE    bsik-dmbtr,
        d90     TYPE    bsik-dmbtr,
        d120    TYPE    bsik-dmbtr,
        d180    TYPE    bsik-dmbtr,
        d240    TYPE    bsik-dmbtr,
        d360    TYPE    bsik-dmbtr,
        da365   TYPE    bsik-dmbtr,

*        ct_date TYPE  sy-datum,
*         date   TYPE datum,
*         days  TYPE char8,
       END OF ty_final.
*----------------------------------------------------------------------*
* Data Declaration.
*----------------------------------------------------------------------*

DATA: gt_lfa1 TYPE STANDARD TABLE OF ty_lfa1,
      wa_lfa1 TYPE ty_lfa1.

DATA: gt_final TYPE STANDARD TABLE OF ty_final,
      wa_final TYPE ty_final.

DATA: gt_bsik TYPE STANDARD TABLE OF ty_bsik,
      wa_bsik TYPE ty_bsik.
DATA: gt_lfb1 TYPE STANDARD TABLE OF ty_lfb1,
      wa_lfb1 TYPE ty_lfb1.
DATA:   days        TYPE sy-datum.

*----------------------------------------------------------------------*
* ALV Components
*----------------------------------------------------------------------*
**** ALV Internal Table
DATA : i_layout     TYPE slis_layout_alv OCCURS 0 WITH HEADER LINE,
       i_events     TYPE slis_t_event,
       i_fieldcat   TYPE slis_t_fieldcat_alv,
       i_print      TYPE slis_print_alv,
       i_list_top   TYPE slis_t_listheader,
       i_list_end   TYPE slis_t_listheader,
       i_sort       TYPE slis_t_sortinfo_alv.

DATA:  wa_fieldcat  LIKE LINE OF i_fieldcat.
*----------------------------------------------------------------------*
* ALV Variable.
*----------------------------------------------------------------------*

DATA: v_top        TYPE slis_formname VALUE 'TOP_OF_PAGE',
      v_eop        TYPE slis_formname VALUE 'END_OF_PAGE',
      v_eol        TYPE slis_formname VALUE 'END_OF_LIST',
      v_tol        TYPE slis_formname VALUE 'TOP_OF_LIST'.

**** ALV Variants
DATA: i_variant      LIKE disvariant.

*----------------------------------------------------------------------*
* Selection screen
*----------------------------------------------------------------------*

DATA: v_bukrs TYPE bukrs,
      v_lifnr TYPE kunnr,
      pa_bldat TYPE bldat.


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: s_bukrs FOR v_bukrs NO INTERVALS NO-EXTENSION OBLIGATORY,
                s_lifnr FOR v_lifnr.
*                bldat FOR v_bldat no-extension.
PARAMETERS: p_bldat TYPE  bsik-bldat.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_detail RADIOBUTTON GROUP r1 DEFAULT 'X',
            p_sumry RADIOBUTTON GROUP r1.
SELECTION-SCREEN END OF BLOCK b2.
*----------------------------------------------------------------------*
*  Top-Of-Page Declaration Header
*----------------------------------------------------------------------*

*****
DATA: lwa_list_top LIKE LINE OF i_list_top.

DATA: lv_header(70),
      lv_text(50),
      lv_text1(60),
      lv_text2(50),
      lv_text3(50) ,
      lv_text4(50),
      lv_date TYPE char10,
      lv_time TYPE char10.

DATA: lv_butxt LIKE t001-butxt,
      lv_butxt1 LIKE lfa1-name1,
      lv_butxt2 LIKE lfb1-lifnr.

INITIALIZATION.


*TOP-OF-PAGE.
*----------------------------------------------------------------------*
* Validations for Selection screen
*----------------------------------------------------------------------*

AT SELECTION-SCREEN ON s_bukrs.
  IF NOT s_bukrs[] IS INITIAL.
    SELECT SINGLE bukrs FROM lfb1
     INTO s_bukrs
    WHERE bukrs IN s_bukrs.
  ENDIF.
  IF sy-subrc NE 0.
    MESSAGE e003.

  ENDIF.

AT SELECTION-SCREEN ON s_lifnr.
  IF NOT s_lifnr[] IS INITIAL.
    SELECT SINGLE lifnr FROM lfa1
    INTO s_lifnr
    WHERE lifnr IN s_lifnr.
    IF sy-subrc NE 0.
      MESSAGE e005.
    ENDIF.
  ENDIF.

AT SELECTION-SCREEN ON p_bldat.
  IF NOT p_bldat IS INITIAL.
    SELECT SINGLE bldat FROM bsid
    INTO p_bldat
    WHERE bldat = p_bldat.
    IF sy-subrc NE 0 .
      MESSAGE e004.
    ENDIF.
  ENDIF.
*----------------------------------------------------------------------*
* Selection For Top-of-page.
*----------------------------------------------------------------------*

** Get company code description
  SELECT SINGLE butxt
    FROM t001 INTO lv_butxt
    WHERE bukrs IN s_bukrs.

*  SELECT SINGLE lifnr  FROM lfb1
*  INTO  lv_butxt2  WHERE bukrs IN s_bukrs.
*
*  SELECT SINGLE name1 FROM lfa1
*   INTO lv_butxt1 WHERE lifnr = lv_butxt2.


START-OF-SELECTION.

  PERFORM data_retrival.

  PERFORM f_layout_init.
  PERFORM f_eventtab_build.
  i_variant-report = sy-repid.
  PERFORM f_print_control.
*  PERFORM f_build_header_list.
*  perform f_build_header_list1.
*    PERFORM f_build_fieldcat.
  IF p_detail = 'X'.
    PERFORM f_build_sort.
    PERFORM fill_fieldcat.
    PERFORM f_build_header_list.

  ELSE.
    PERFORM f_build_sort1.
    PERFORM fill_fieldcat_sum.
    PERFORM f_build_header_list1.

  ENDIF.

  PERFORM f_list_display TABLES gt_final[].

END-OF-SELECTION.


*&---------------------------------------------------------------------*
*&      Form  data_retrival
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM data_retrival .

  SELECT   bukrs
           lifnr
           belnr
           bldat
           waers
           dmbtr
           wrbtr
           zfbdt
           zbd1t
           zbd2t
           zbd3t
           FROM bsik INTO TABLE gt_bsik
           WHERE bukrs IN s_bukrs
           AND   lifnr IN s_lifnr.

  SELECT lifnr
         name1
         FROM lfa1 INTO TABLE gt_lfa1
         FOR ALL ENTRIES IN gt_bsik
         WHERE lifnr = gt_bsik-lifnr.



  LOOP AT gt_bsik INTO wa_bsik.
    READ TABLE gt_lfa1 INTO wa_lfa1 WITH KEY lifnr = wa_bsik-lifnr.
    MOVE-CORRESPONDING wa_bsik TO wa_final.
    MOVE-CORRESPONDING wa_lfa1 TO wa_final.

    DATA: days TYPE char2,
          c4 TYPE char2.

    DATA: days1 TYPE sy-datum.
    DATA:duedate TYPE rfpos-faedt.

    CALL FUNCTION 'NET_DUE_DATE_GET'
      EXPORTING
        i_zfbdt       = wa_final-zfbdt
        i_zbd1t       = wa_final-zbd1t
        i_zbd2t       = wa_final-zbd2t
        i_zbd3t       = wa_final-zbd3t
        i_shkzg       = ' '
        i_rebzg       = ' '
*   I_KOART       = 'D'
     IMPORTING
       e_faedt       = duedate.
    CALL FUNCTION 'DAYS_BETWEEN_TWO_DATES'
      EXPORTING
        i_datum_bis                   = duedate
        i_datum_von                   = wa_final-bldat
*   I_KZ_EXCL_VON                 = '0'
*   I_KZ_INCL_BIS                 = '0'
*   I_KZ_ULT_BIS                  = ' '
*   I_KZ_ULT_VON                  = ' '
*   I_STGMETH                     = '0'
*   I_SZBMETH                     = '1'
     IMPORTING
       e_tage                        = days
     EXCEPTIONS
       days_method_not_defined       = 1
       OTHERS                        = 2
              .
    IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    wa_final-days = duedate.

    DATA : wf_char TYPE char10.

    wf_char = days.

    IF wf_char+0(1) EQ '*' .
      SKIP.

    ELSE.

      IF days EQ 0.
        wa_final-current = wa_bsik-wrbtr.
      ELSEIF days LE 30 AND days GT 0.
        wa_final-d30 = wa_bsik-wrbtr.
      ELSEIF days LE 60 AND days GT 30 .
        wa_final-d60 = wa_bsik-wrbtr.
      ELSEIF days LE 90 AND days GT 60.
        wa_final-d90 = wa_bsik-wrbtr.
      ELSEIF days LE 120 AND days GT 90.
        wa_final-d120 = wa_bsik-wrbtr.
      ELSEIF days LE 180 AND days GT 120.
        wa_final-d180 = wa_bsik-wrbtr.
      ELSEIF days LE 240 AND days GT 180.
        wa_final-d240 = wa_bsik-wrbtr.
      ELSEIF days LE 360 AND days GT 240.
        wa_final-d360 = wa_bsik-wrbtr.
      ELSEIF days GT 365 .
        wa_final-da365 = wa_bsik-wrbtr.
      ENDIF.
    ENDIF.
    APPEND wa_final TO gt_final.
    CLEAR: wa_final,
           days,
           duedate,days1.
  ENDLOOP.
ENDFORM.                    " data_retrival

*&---------------------------------------------------------------------*
*&      Form  fill_fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM fill_fieldcat.
  PERFORM  fill_fields USING: 'Vendor Number' 'LIFNR',
                              'Vendor Name' 'NAME1',
                              'Document Number' 'BELNR',
                              'Document Date' 'BLDAT',
                              'Due Date' 'DAYS',
                              'Total In Document Currency' 'WRBTR',
                              'Currency' 'WAERS',
                              'Total In Reporting Currency' 'DMBTR',
                              'Current' 'CURRENT',
                              '1-30 days' 'D30',
                              '31-60 days' 'D60',
                              '61-90 days' 'D90',
                              '91-120 days' 'D120',
                              '121-180 days' 'D180',
                              '181-240 days' 'D240',
                              '241-360 days'  'D360',
*                              '181-365 days' 'D365',
                              'Above 365 days' 'DA365'.
  .
ENDFORM.                    "fill_fieldcat

*&---------------------------------------------------------------------*
*&      Form  fill_fieldcat_sum
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM fill_fieldcat_sum.
  PERFORM  fill_fields USING: 'Vendor Number' 'LIFNR',
                              'Vendor Name' 'NAME1',
                              'Total In Reporting Currency' 'DMBTR',
                              'Current' 'CURRENT',
                              '1-30 days' 'D30',
                              '31-60 days' 'D60',
                              '61-90 days' 'D90',
                              '91-120 days' 'D120',
                              '121-180 days' 'D180',
                              '181-240 days' 'D240',
                              '241-360 days'  'D360',
                              'Above 365 days' 'DA365'.
ENDFORM.                    "fill_fieldcat_sum

*&---------------------------------------------------------------------*
*&      Form  fill_fields
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->&01        text
*      -->&02        text
*----------------------------------------------------------------------*
FORM fill_fields USING &01 &02 .
  wa_fieldcat-tabname = 'T_OUTPUT'.  "t_output_provgr
  wa_fieldcat-fieldname = &02.
  wa_fieldcat-seltext_m = &01.
*  wa_fieldcat-ref_fieldname = fieldname.
*  wa_fieldcat-ref_tabname = 'SFLIGHT'.
*  w_fieldcat-do_sum = &03.
  APPEND wa_fieldcat TO i_fieldcat.
  CLEAR wa_fieldcat.
ENDFORM.                    "fill_fields



*&---------------------------------------------------------------------*
*&      Form  f_layout_init
*&---------------------------------------------------------------------*
*       Set the layout
*----------------------------------------------------------------------*
FORM f_layout_init.
*  P_layout-min_linesize       = 170.
*  p_layout-max_linesize       = 170.
*  P_layout-no_colhead         = abap_true.
*  p_layout-detail_popup       = abap_true.
  i_layout-colwidth_optimize  = abap_true.
  i_layout-zebra              = abap_true.
*  i_layout-subtotals_text     = 'SubTotal'.
*  i_layout-totals_text        = 'Total'.

ENDFORM.                    " f_layout_init
*&---------------------------------------------------------------------*
*&      Form  f_eventtab_build
*&---------------------------------------------------------------------*
*       Set the events
*----------------------------------------------------------------------*
FORM f_eventtab_build.
  DATA: ls_event TYPE slis_alv_event.

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      i_list_type = 0
    IMPORTING
      et_events   = i_events.

  READ TABLE i_events WITH KEY name = slis_ev_top_of_page
                           INTO ls_event.
  IF sy-subrc = 0.
    MOVE v_top TO: ls_event-form,
                   ls_event-name.
    APPEND ls_event TO i_events.
  ENDIF.

  READ TABLE i_events WITH KEY name = slis_ev_end_of_page
                           INTO ls_event.
  IF sy-subrc = 0.
    MOVE v_eop TO: ls_event-form,
                   ls_event-name.
    APPEND ls_event TO i_events.
  ENDIF.

  READ TABLE i_events WITH KEY name = slis_ev_end_of_list
                           INTO ls_event.
  IF sy-subrc = 0.
    MOVE v_eol TO: ls_event-form,
                   ls_event-name.
    APPEND ls_event TO i_events.
  ENDIF.

  READ TABLE i_events WITH KEY name = slis_ev_top_of_list
                           INTO ls_event.
  IF sy-subrc = 0.
    MOVE v_tol TO: ls_event-form,
                   ls_event-name.
    APPEND ls_event TO i_events.
  ENDIF.
ENDFORM.                    " f_eventtab_build

*&---------------------------------------------------------------------*
*&      Form  f_print_control
*&---------------------------------------------------------------------*
*       Set the print control
*----------------------------------------------------------------------*
FORM f_print_control .
*  i_print-no_print_listinfos     = abap_true.
*  i_print-no_print_selinfos      = abap_true.
*  i_print-reserve_lines          = 2.
*  i_print-no_change_print_params = abap_true.
ENDFORM.                    " f_print_control

*&---------------------------------------------------------------------*
*&      Form  f_build_header_list
*&---------------------------------------------------------------------*
*       Build the header list (top of page)
*----------------------------------------------------------------------*
FORM f_build_header_list .
  lv_header = 'Vendor Open Item Analysis By Balance Of Overdue Items'(h01).
  lv_text   = 'Company Name:'(s01).
  lv_text1   = 'Open Item As Key Date:'(s02).
  lv_text2   = 'Company Code:'(s03).
  lv_text3   =  'Vendor Number:'(s04).
  lv_text4   =  'Vendor Name:'(s05).
* Header
  CLEAR lwa_list_top.
  lwa_list_top-typ  = 'H'.
  lwa_list_top-info = lv_header.
  APPEND lwa_list_top TO i_list_top.


* Run date Display
  lwa_list_top-typ  = 'S'.                " Item
  WRITE: sy-datum  TO lv_date MM/DD/YYYY.
  lwa_list_top-key = 'Date :'(025).
  lwa_list_top-info = lv_date.
  APPEND lwa_list_top TO i_list_top.
  CLEAR: lwa_list_top,
         lv_date.

* Run time Display
  lwa_list_top-typ  = 'S'.                " Item
  WRITE: sy-uzeit  TO lv_time USING EDIT MASK '__:__:__'.
  lwa_list_top-key  = 'Time :'(026).
  lwa_list_top-info =  lv_time.
  APPEND lwa_list_top TO i_list_top.
  CLEAR: lwa_list_top,
         lv_time.
  CLEAR lwa_list_top.
* Company Name
  lwa_list_top-typ  = 'S'.
  lwa_list_top-key  = lv_text.
  lwa_list_top-info = lv_butxt.
  APPEND lwa_list_top TO i_list_top.
  CLEAR lwa_list_top.
*Open Item As Key Date
  lwa_list_top-typ  = 'S'.
  lwa_list_top-key  = lv_text1.
  lwa_list_top-info = p_bldat.
  APPEND lwa_list_top TO i_list_top.
  CLEAR lwa_list_top.
* Company Code
  lwa_list_top-typ  = 'S'.
  lwa_list_top-key  = lv_text2.
  lwa_list_top-info = s_bukrs-low.
  APPEND lwa_list_top TO i_list_top.
  CLEAR lwa_list_top.
** Vendor Number
*  lwa_list_top-typ  = 'S'.
*  lwa_list_top-key  = lv_text3.
*  lwa_list_top-info = lv_butxt2.
*  APPEND lwa_list_top TO i_list_top.
*  CLEAR lwa_list_top.
**Vendor Name
*  lwa_list_top-typ  = 'S'.
*  lwa_list_top-key  = lv_text4.
*  lwa_list_top-info = lv_butxt1.
*  APPEND lwa_list_top TO i_list_top.
ENDFORM.                    " f_build_header_list
*&---------------------------------------------------------------------*
*&      Form  f_build_header_list1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_build_header_list1 .
  lv_header = 'Vendor Open Item Analysis By Balance Of Overdue Items'(h01).
  lv_text   = 'Company Name:'(s01).
  lv_text1   = 'Open Item As Key Date:'(s02).
  lv_text2   = 'Company Code:'(s03).
  lv_text3   =  'Vendor Number:'(s04).
  lv_text4   =  'Vendor Name:'(s05).


  lwa_list_top-typ  = 'H'.
  lwa_list_top-info = lv_header.
  APPEND lwa_list_top TO i_list_top.


* Run date Display
  lwa_list_top-typ  = 'S'.                " Item
  WRITE: sy-datum  TO lv_date MM/DD/YYYY.
  lwa_list_top-key = 'Date :'(025).
  lwa_list_top-info = lv_date.
  APPEND lwa_list_top TO i_list_top.
  CLEAR: lwa_list_top,
         lv_date.

* Run time Display
  lwa_list_top-typ  = 'S'.                " Item
  WRITE: sy-uzeit  TO lv_time USING EDIT MASK '__:__:__'.
  lwa_list_top-key  = 'Time :'(026).
  lwa_list_top-info =  lv_time.
  APPEND lwa_list_top TO i_list_top.
  CLEAR: lwa_list_top,
         lv_time.
  CLEAR lwa_list_top.
* Company Name

  lwa_list_top-typ  = 'S'.
  lwa_list_top-key  = lv_text.
  lwa_list_top-info = lv_butxt.
  APPEND lwa_list_top TO i_list_top.
  CLEAR lwa_list_top.
*Open Item As Key Date
  lwa_list_top-typ  = 'S'.
  lwa_list_top-key  = lv_text1.
  lwa_list_top-info = p_bldat.
  APPEND lwa_list_top TO i_list_top.
  CLEAR lwa_list_top.


ENDFORM.                    " f_build_header_list1
*&---------------------------------------------------------------------*
*&      Form  f_build_sort
*&---------------------------------------------------------------------*
*       Set the sorting sequence
*----------------------------------------------------------------------*
FORM f_build_sort .

  DATA: l_sort TYPE slis_sortinfo_alv.
  l_sort-spos      =  '1'.
  l_sort-fieldname = 'LIFNR'.
  l_sort-up        = abap_true.
  l_sort-group     = '*'.
*  l_sort-subtot    = 'X'.
  APPEND l_sort TO i_sort.
*  l_sort-spos      =  '2'.
*  l_sort-fieldname = 'NAME1'.
*  l_sort-up        = abap_true.
*  l_sort-group     = '*'.
**  l_sort-subtot    = 'X'.
*  APPEND l_sort TO i_sort.

*  l_sort-spos      =  '2'.
*  l_sort-fieldname = 'LIFNR'.
*  l_sort-up        = abap_true.
*  l_sort-subtot    = abap_true.
*  APPEND l_sort TO i_sort.

*  l_sort-spos      =  '1'.
*  l_sort-fieldname = 'VBELN'.
*  l_sort-up        = abap_true.
*  l_sort-subtot    = abap_true.
*  APPEND l_sort TO i_sort.

*  l_sort-spos      =  '2'.
*  l_sort-fieldname = 'POSNR'.
*  l_sort-up        = abap_true.
*  l_sort-subtot    = abap_true.
*  APPEND l_sort TO i_sort.

ENDFORM.                    " f_build_sort


*&---------------------------------------------------------------------*
*&      Form  f_list_display
*&---------------------------------------------------------------------*
*       Display the ALV list report
*----------------------------------------------------------------------*
*      -->PT_DATA    Internal table containing the data
*----------------------------------------------------------------------*
FORM f_list_display TABLES pt_data.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = i_variant-report
      is_layout          = i_layout
      it_fieldcat        = i_fieldcat[]
      it_sort            = i_sort
      i_default          = 'X'
      i_save             = 'A'
      is_variant         = i_variant
      it_events          = i_events[]
      is_print           = i_print
    TABLES
      t_outtab           = pt_data.
ENDFORM.                    "f_list_display

*&---------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE
*&---------------------------------------------------------------------*
*       TOP_OF_PAGE Event
*----------------------------------------------------------------------*
FORM top_of_page.                                           "#EC CALLED

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
*      i_logo             = 'ZLOGO_BAB'
      it_list_commentary = i_list_top
      i_alv_form         = 'X'.

*  PERFORM f_print_header USING SPACE SPACE SPACE.

ENDFORM.                    "TOP_OF_PAGE
*&---------------------------------------------------------------------*
*&      Form  END_OF_PAGE
*&---------------------------------------------------------------------*
*       END_OF_PAGE Event
*----------------------------------------------------------------------*
FORM end_of_page.                                           "#EC CALLED
*  DATA: l_pos(3) TYPE n VALUE 0,
*        l_foot(30) VALUE '*** END OF PAGE ***'.
*  l_pos = ( sy-linsz / 2 ) - ( STRLEN( l_foot ) / 2 ).
*  ULINE.
*  WRITE: /, AT l_pos l_foot.
ENDFORM.                    "END_OF_PAGE

*&---------------------------------------------------------------------*
*&      Form  END_OF_LIST
*&---------------------------------------------------------------------*
*       END_OF_LIST Event
*----------------------------------------------------------------------*
FORM end_of_list.                                           "#EC CALLED
*  DATA: l_pos(3) TYPE n VALUE 0,
*        l_foot(30) VALUE '*** END OF REPORT ***'.
*  l_pos = ( sy-linsz / 2 ) - ( STRLEN( l_foot ) / 2 ).
*  ULINE.
*  WRITE: /, AT l_pos l_foot.
ENDFORM.                    "END_OF_LIST

*&---------------------------------------------------------------------*
*&      Form  f_print_header
*&---------------------------------------------------------------------*
*       Print the header (Top-Of-Page)
*----------------------------------------------------------------------*
*      -->P_P_TITLE1  Title text 1
*      -->P_P_TITLE2  Title text 2
*      -->P_P_TITLE3  Title text 3
*----------------------------------------------------------------------*
FORM f_print_header  USING    p_title1 LIKE sy-title
                              p_title2 LIKE sy-title
                              p_title3 LIKE sy-title.

  DATA: l_post1 TYPE i,
        l_post2 TYPE i,
        l_post3 TYPE i,
        l_posin TYPE i.

  l_post1 = ( sy-linsz / 2 ) - ( STRLEN( p_title1 ) / 2 ).
  l_post2 = ( sy-linsz / 2 ) - ( STRLEN( p_title2 ) / 2 ).
  l_post3 = ( sy-linsz / 2 ) - ( STRLEN( p_title3 ) / 2 ).

  l_posin = sy-linsz - 17.

  WRITE:  / 'Report  :', sy-cprog.
  WRITE AT  l_post1 p_title1.
  WRITE AT  l_posin 'Date :'.
  WRITE     sy-datum.

  WRITE:  / 'Cli/Sys :', sy-mandt, '/', sy-sysid.
  WRITE AT  l_post2 p_title2.
  WRITE AT: l_posin 'Time :'.
  WRITE     sy-uzeit.

  WRITE:  / 'UserID  :', sy-uname.
  WRITE AT  l_post3 p_title3.
  WRITE AT  l_posin 'Page :'.
  WRITE     sy-pagno NO-ZERO.

ENDFORM.                    " f_print_header
*&---------------------------------------------------------------------*
*&      Form  f_build_sort1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form f_build_sort1 .
DATA: l_sort TYPE slis_sortinfo_alv.
  l_sort-spos      =  '1'.
  l_sort-fieldname = 'LIFNR'.
  l_sort-up        = abap_true.
  l_sort-group     = '*'.
*  l_sort-subtot    = 'X'.
  APPEND l_sort TO i_sort.
l_sort-spos      =  '2'.
  l_sort-fieldname = 'NAME1'.
  l_sort-up        = abap_true.
  l_sort-group     = '*'.
*  l_sort-subtot    = 'X'.
  APPEND l_sort TO i_sort.
*  l_sort-spos      =  '3'.
*  l_sort-fieldname = 'DMBTR'.
*  l_sort-up        = abap_true.
*  l_sort-group     = '*'.
*  l_sort-subtot    = 'X'.
*  APPEND l_sort TO i_sort.

endform.                    " f_build_sort1

Regards

Sunita.

2 REPLIES 2

Former Member
0 Kudos

Hey,

U can try out "SORTING THE VENDORS AND DO THE SUM in the NETWR"... try it out....see u sort the customers...rit?...keep it as usual and little mentoned above...

hope dis help u out...

Thanks.

Former Member
0 Kudos

thnx