Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8950

Re: ALV Grid with header inside the report

$
0
0

Hi Rajkumar,

 

Here is my code and the subtotal works but it does not show the text.

 

 

TABLES: mard.

 

TYPE-POOLS: sdydo, icon, slis.

* ALV required data objects.

DATA: w_title     TYPE lvc_title,

       w_repid     TYPE sy-repid,

       w_comm      TYPE slis_formname,

       w_status    TYPE slis_formname,

       x_layout    TYPE slis_layout_alv,

       ls_events   TYPE LINE OF slis_t_event,

       t_events    TYPE slis_t_event,

       t_fieldcat  TYPE slis_t_fieldcat_alv,

       x_sort      type LINE OF slis_t_sortinfo_alv,

       t_sort      TYPE slis_t_sortinfo_alv,

       ls_heading  TYPE slis_listheader,

       t_heading   TYPE slis_t_listheader,

       ls_fieldcat TYPE slis_fieldcat_alv,

       gs_variant  LIKE disvariant.

 

DATA:

   wa_layout     TYPE slis_layout_alv,

   wa_events         TYPE slis_alv_event,

   wa_sort TYPE slis_sortinfo_alv.

 

DATA: is_print TYPE slis_print_alv,

       gset TYPE lvc_s_glay,

       %runmode TYPE aqlimode.

 

DATA: BEGIN OF it_mard OCCURS 0,

   matnr LIKE mard-matnr,

   werks LIKE mard-werks,

   lgort LIKE mard-lgort,

   ebeln LIKE ekpo-ebeln,

   ebelp LIKE ekpo-ebelp,

   bstyp LIKE ekpo-bstyp,

   labst LIKE mard-labst.

DATA: END OF it_mard.

DATA: wa_mard LIKE it_mard.

 

DATA: BEGIN OF it_ekpo OCCURS 0,

   matnr LIKE mard-matnr"Material

   ebeln LIKE ekpo-ebeln"PO Number

   ebelp LIKE ekpo-ebelp"Line Item

   bstyp LIKE ekko-bstyp"Type

   bsart LIKE ekko-bsart"Category

   ekgrp LIKE ekko-ekgrp"Purchasing Group

   aedat LIKE ekpo-aedat"Doc Date

   reswk LIKE ekko-reswk"Vendor/Supplying Plant

   matkl LIKE ekpo-matkl"Material Group

   pstyp LIKE ekpo-pstyp"Item Category

   werks LIKE ekpo-werks"Plant

   menge LIKE ekpo-menge"Order Quantity

   meins LIKE ekpo-meins, "not sure for field

   "quantity in SKU

   lmein LIKE ekpo-lmein,

   netpr LIKE ekpo-netpr"net Price

   "curreny

   peinh LIKE ekpo-peinh"price unit

   ktmng LIKE ekpo-ktmng"Target Quantity

   "open target quantity

   "to be del(qty)

   "to be del(value)

   "to be invoiced(qty)

   "to be invoiced(value)

   labst LIKE mard-labst. "Available Quantity

DATA: END OF it_ekpo.

DATA: wa_ekpo LIKE it_ekpo.

 

DATA: BEGIN OF it_data OCCURS 0,

   matnr LIKE mard-matnr"Material

   ebeln LIKE ekpo-ebeln"PO Number

   ebelp LIKE ekpo-ebelp"Line Item

   bstyp LIKE ekko-bstyp"Type

   bsart LIKE ekko-bsart"Category

   ekgrp LIKE ekko-ekgrp"Purchasing Group

   aedat LIKE ekpo-aedat"Doc Date

   reswk LIKE ekko-reswk"Vendor/Supplying Plant

   matkl LIKE ekpo-matkl"Material Group

   pstyp LIKE ekpo-pstyp"Item Category

   werks LIKE ekpo-werks"Plant

   menge LIKE ekpo-menge"Order Quantity

   meins LIKE ekpo-meins, "not sure for field

   "quantity in SKU

   lmein LIKE ekpo-lmein,

   netpr LIKE ekpo-netpr"net Price

   "curreny

   peinh LIKE ekpo-peinh"price unit

   ktmng LIKE ekpo-ktmng"Target Quantity

   "open target quantity

   "to be del(qty)

   "to be del(value)

   "to be invoiced(qty)

   "to be invoiced(value)

   labst LIKE mard-labst. "Available Quantity

DATA: END OF it_data.

DATA: wa_data LIKE it_data.

 

DATA: BEGIN OF it_final OCCURS 0,

   matnr LIKE mard-matnr"Material

   ebeln LIKE ekpo-ebeln"PO Number

   ebelp LIKE ekpo-ebelp"Line Item

   bstyp LIKE ekko-bstyp"Type

   bsart LIKE ekko-bsart"Category

   ekgrp LIKE ekko-ekgrp"Purchasing Group

   aedat LIKE ekpo-aedat"Doc Date

   reswk LIKE ekko-reswk"Vendor/Supplying Plant

   matkl LIKE ekpo-matkl"Material Group

   pstyp LIKE ekpo-pstyp"Item Category

   werks LIKE ekpo-werks"Plant

   menge LIKE ekpo-menge"Order Quantity

   meins LIKE ekpo-meins, "not sure for field

   "quantity in SKU

   lmein LIKE ekpo-lmein,

   netpr LIKE ekpo-netpr"net Price

   "curreny

   peinh LIKE ekpo-peinh"price unit

   ktmng LIKE ekpo-ktmng"Target Quantity

   "open target quantity

   "to be del(qty)

   "to be del(value)

   "to be invoiced(qty)

   "to be invoiced(value)

   labst LIKE mard-labst. "Available Quantity

DATA: END OF it_final.

DATA: wa_final LIKE it_final.

 

DATA :v_tabix TYPE sy-tabix.

 

SELECT-OPTIONS: p_matnr FOR mard-matnr,

                 p_plant FOR mard-werks.

 

START-OF-SELECTION.

PERFORM get_data.

PERFORM display_report.

 

FORM get_data.

SELECT matnr werks

   INTO CORRESPONDING FIELDS OF TABLE it_mard

   FROM mard

   WHERE labst NE '0.000'.

 

DELETE it_mard WHERE matnr NOT IN p_matnr.

 

SELECT matnr ebeln ebelp werks bstyp pstyp audat matkl aedat matkl menge meins lmein netpr peinh ktmng

   INTO CORRESPONDING FIELDS OF TABLE it_ekpo

   FROM ekpo

   WHERE bstyp EQ 'F'

   AND loekz NE 'L'.

 

DELETE it_ekpo WHERE matnr NOT IN p_matnr.

 

it_data[] = it_ekpo[].

 

LOOP AT it_mard.

   READ TABLE it_data WITH KEY werks = it_mard-werks.

   IF sy-subrc NE 0.

     it_data-matnr = it_mard-matnr.

     it_data-werks = it_mard-werks.

     APPEND it_data. CLEAR it_data.

   ENDIF.

ENDLOOP.

 

 

SORT it_data BY matnr ebeln ASCENDING.

LOOP AT it_data INTO wa_data.

it_final-matnr = wa_data-matnr.

it_final-ebeln = wa_data-ebeln.

it_final-ebelp = wa_data-ebelp.

it_final-bstyp = wa_data-bstyp.

it_final-aedat = wa_data-aedat.

it_final-matkl = wa_data-matkl.

it_final-werks = wa_data-werks.

it_final-menge = wa_data-menge.

it_final-meins = wa_data-meins.

it_final-lmein = wa_data-lmein.

it_final-netpr = wa_data-netpr.

it_final-peinh = wa_data-peinh.

it_final-ktmng = wa_data-ktmng.

it_final-bstyp = wa_data-bstyp.

 

SELECT SINGLE epstp

   INTO it_final-pstyp

   FROM t163x

   WHERE pstyp EQ wa_data-pstyp

   AND spras EQ 'EN'.

 

SELECT SINGLE bsart ekgrp reswk

   INTO (it_final-bsart, it_final-ekgrp, it_final-reswk)

   FROM ekko

   WHERE ebeln = wa_data-ebeln.

 

DATA: avlqty TYPE i.

SELECT labst

   INTO avlqty

   FROM mard

   WHERE matnr EQ wa_data-matnr

   AND werks EQ wa_data-werks.

   it_final-labst = it_final-labst + avlqty.

ENDSELECT.

 

APPEND it_final. CLEAR it_final.

ENDLOOP.

 

SORT it_final by matnr ebeln ASCENDING.

 

 

ENDFORM.

 

FORM display_report.

   is_print-no_print_selinfos = 'X'.

   is_print-no_print_listinfos = 'X'.

   is_print-print_ctrl = 'X'.

 

   PERFORM pf_write_fieldcat USING:

   'MATNR'                 'it_data' 'Material Number'                   ' ',

   'EBELN'                 'it_data' 'PO Number'                   ' ',

   'EBELP'                 'it_data' 'Line Item'                   ' ',

   'BSART'                 'it_data' 'Type'                   ' ',

   'BSTYP'                 'it_data' 'Category'                   ' ',

   'EKGRP'                 'it_data' 'Purchasing Group'                   ' ',

   'AEDAT'                 'it_data' 'Doc. Date'                   ' ',

   'RESWK'                 'it_data' 'Vendor/Supplying Plant'                   ' ',

   'MATKL'                 'it_data' 'Material Group'                   ' ',

   'PSTYP'                 'it_data' 'Item Category'                   ' ',

   'WERKS'                 'it_data' 'Plant'                   ' ',

   'MENGE'                 'it_data' 'Order Quantity'                   ' ',

   'MEINS'                 'it_data' 'Order Unit'                   ' ',

*  ''                 'it_data' ''                   ' ',

    'LMEIN'                'it_data' 'SKU'                   ' ',

   'NETPR'                 'it_data' 'Net Price'                   ' ',

*  ''                 'it_data' ''                   ' ',

   'PEINH'                 'it_data' 'Price Unit'                   ' ',

   'KTMNG'                 'it_data' 'Target Quantity'                   ' ',

*  ''                 'it_data' ''                   ' ',

*  ''                 'it_data' ''                   ' ',

*  ''                 'it_data' ''                   ' ',

*  ''                 'it_data' ''                   ' ',

   'LABST'                 'it_data' 'Available Quantity'                   ' '.

*  ''                 'it_data' ''                   ' '.

 

* Layout

   x_layout-zebra = 'X'.

   x_layout-no_keyfix = ' '.

   x_layout-colwidth_optimize = 'X'.

 

* GUI Status

   w_status = 'SET_PF_STATUS'.

   w_repid = sy-repid.

 

* User commands

   w_comm = 'USER_COMMAND'.

 

   gs_variant-report  = sy-repid.

   gs_variant-username = sy-uname.

   gset-no_colwopt = 'X'.

 

PERFORM build_events.

PERFORM sub_populate_sort.

PERFORM sub_get_event.

 

 

   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

     EXPORTING

       i_callback_program = sy-repid

       it_fieldcat        = t_fieldcat

       is_layout          = x_layout

*      it_sort                 = it_sortcat

       it_sort = t_sort

       it_events                = t_events

       is_variant         = gs_variant

       i_save             = 'A'

       is_print           = is_print

       i_default                = 'X'

     TABLES

       t_outtab           = it_final

     EXCEPTIONS

       program_error      = 1

       OTHERS             = 2.

 

ENDFORM.                    " display_report

 

FORM pf_write_fieldcat  USING fname

                               tname

                               text

                               len.

 

   ls_fieldcat-fieldname     = fname.

   ls_fieldcat-tabname       = tname.

   ls_fieldcat-seltext_l     = text.

   ls_fieldcat-outputlen     = len.

   IF fname = 'NETPR'.

     ls_fieldcat-do_sum = 'X'.

   ENDIF.

 

   IF len = '0'.

     ls_fieldcat-outputlen     = '1'.

     ls_fieldcat-no_out = 'X'.

   ENDIF.

 

   APPEND ls_fieldcat TO t_fieldcat.

   CLEAR ls_fieldcat.

ENDFORM.

 

FORM sub_get_event .

    CONSTANTS : c_formname_subtotal_text TYPE slis_formname VALUE 'SUBTOTAL_TEXT'.

    DATA: l_s_event TYPE slis_alv_event.

    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

      EXPORTING

        i_list_type     = 4

      IMPORTING

        et_events       = t_events

      EXCEPTIONS

        list_type_wrong = 0

        OTHERS          = 0.

* Subtotal

    READ TABLE t_events  INTO l_s_event

                      WITH KEY name = slis_ev_subtotal_text.

    IF sy-subrc = 0.

      MOVE c_formname_subtotal_text TO l_s_event-form.

      MODIFY t_events FROM l_s_event INDEX sy-tabix.

    ENDIF.

ENDFORM.                    " sub_get_event

 

FORM subtotal_text CHANGING

                 p_total TYPE any

                 p_subtot_text TYPE slis_subtot_text.

 

"Data Declarations

   DATA: L_DOC TYPE CHAR50 VALUE 'PURCHASE DOCUMENT',

              L_TEMP TYPE CHAR30.

 

"Get the Subtotal document number

   L_TEMP = p_subtot_text-display_text_for_subtotal.

 

"Append Purchase document word

   CONCATENATE L_DOC L_TEMP INTO L_DOC SEPARATED BY SPACE.

 

p_subtot_text-display_text_for_subtotal = 'Purchase Document'."L_DOC.

 

ENDFORM.

 

FORM sub_populate_sort .

 

* Sort on material

   wa_sort-spos = '01' .

   wa_sort-fieldname = 'MATNR'.

   wa_sort-tabname = 'IT_FINAL'.

   wa_sort-up = 'X'.

   wa_sort-subtot = 'X'.

   APPEND wa_sort TO t_sort .

   CLEAR wa_sort.

 

* Sort on plant

   wa_sort-spos = '02'.

   wa_sort-fieldname = 'EBELN'.

   wa_sort-tabname = 'IT_FINAL'.

   wa_sort-up = 'X'.

   wa_sort-subtot = 'X'.

   APPEND wa_sort TO t_sort .

   CLEAR wa_sort.

 

ENDFORM.


FORM build_events.

   CLEAR:

   wa_events, t_events[].

 

   wa_events-name = 'SUBTOTAL_TEXT'.

   wa_events-form = 'SUBTOTAL_TEXT'.

   APPEND wa_events TO t_events.

   CLEAR  wa_events.

ENDFORM.


Viewing all articles
Browse latest Browse all 8950

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>