on 09-07-2007 6:45 AM
Hi All,
I want in Z report-> <b>GR item</b> but IR not done and <b>IR item</b> but GR not done .
I have all table and field but problem in logic,can anybody help me to define the logic.
Rgd
Amit
Hi,
plz check the code...
*
Program Logic : This report Provides the information about total*
dollar apend for GMP or MRO materials.We should *
consider total spend for PO that has both *
GR and IR,total spend on GR but no IR and total *
spend on IR but no GR.Finally dispaly an ALV *
report with material,material description,vendor*
vendorname,manufacturer part number,purchasing *
group,material group,Total PO Line Item Value, *
Total PO Value with both GR and IR,Total PO *
value with GR and no IR,Total PO value with IR *
and no GR. *
REPORT zptprpt001r_gmp_mro_totalspend NO STANDARD PAGE HEADING
MESSAGE-ID zmm .
************************************************************************
*TYPE POOLS *
************************************************************************
TYPE-POOLS : slis.
************************************************************************
Tables Declaration *
************************************************************************
TABLES : ekko, "Purchasing Document Header
ekpo. "Purchasing Document Item
************************************************************************
Global Constants *
************************************************************************
CONSTANTS:
c_top_of_page(15) TYPE c VALUE 'SUB_TOP_OF_PAGE', "#EC NOTEXT
c_chk(1) TYPE c VALUE 'X', "check
c_save(1) TYPE c VALUE 'A', "save
c_1(1) TYPE c VALUE '1',
c_2(1) TYPE c VALUE '2',
c_sto LIKE ekko-bsart VALUE 'UB'.
************************************************************************
Global Types Declaration *
************************************************************************
TYPES :
Type declaration for Purchasing Document Item
BEGIN OF t_ekpo,
ebeln TYPE ebeln, "Purchasing Document Number
ebelp TYPE ebelp, "Item Number of Purchasing Document
ekgrp TYPE bkgrp, "Purchasing Group
lifnr TYPE lifnr, "Vendor
aedat TYPE erdat, "Date on which the record was created
matkl TYPE matkl, "Material Group
matnr TYPE matnr, "Material Number
mtart TYPE mtart, "Material Type
mfrpn TYPE mfrpn, "Manufacturer part number
netwr TYPE bwert, "Net order value in PO currency
menge TYPE bstmg, "Purchase order quantity
netpr TYPE bprei, "Net price in purchasing document (in
" document currency)
END OF t_ekpo,
Type declaration for History per Purchasing Document
BEGIN OF t_ekbe,
ebeln TYPE ebeln, "Purchasing Document Number
ebelp TYPE ebelp, "Item Number of Purchasing Document
zekkn TYPE ekbe-zekkn,"Sequential number of account assignment
vgabe TYPE vgabe, "Transaction/event type,purchase order
gjahr TYPE ekbe-gjahr,"Material Document Year
belnr TYPE ekbe-belnr,"Number of Material Document
buzei TYPE ekbe-buzei,"Item in Material Document
dmbtr TYPE dmbtr, "Amount in local currency
"history
menge TYPE bstmg, "Quantity
shkzg TYPE ekbe-shkzg,"Debit/Credit indicator
END OF t_ekbe,
Type declaration for Material Descriptions
BEGIN OF t_matnr,
matnr TYPE matnr, "Material Number
maktx TYPE maktx, "Material Description
END OF t_matnr,
Type declaration for Vendor Master (General Section)
BEGIN OF t_lifnr,
lifnr TYPE lifnr, "Vendor
name1 TYPE name1_gp, "Name 1
END OF t_lifnr.
************************************************************************
Global Workareas Declaration *
************************************************************************
DATA:
For Variant
wa_variant TYPE disvariant,
For Variant
wa_variant1 TYPE disvariant,
To define ALV layout structure
wa_layout TYPE slis_layout_alv,
For ALV Print Structure
wa_print TYPE slis_print_alv,
For GR information
wa_gr TYPE t_ekbe,
For IR Information
wa_ir TYPE t_ekbe.
************************************************************************
Internal Tables Declaration *
************************************************************************
DATA:
For ALV events
i_events TYPE slis_t_event,
For ALV top of page
i_alv_top_of_page TYPE slis_t_listheader,
Field catalog for ALV
i_fieldcat TYPE slis_t_fieldcat_alv,
For records from EKKO
i_purchase TYPE STANDARD TABLE OF t_ekpo INITIAL SIZE 0,
For records from EKBE
i_ekbe TYPE STANDARD TABLE OF t_ekbe INITIAL SIZE 0,
For Records that contains GR information
i_gr TYPE STANDARD TABLE OF t_ekbe INITIAL SIZE 0,
For Records that contains IR information
i_ir TYPE STANDARD TABLE OF t_ekbe INITIAL SIZE 0,
For Material Description from MAKT
i_matnr TYPE STANDARD TABLE OF t_matnr INITIAL SIZE 0,
For vendor name from LFA1
i_lifnr TYPE STANDARD TABLE OF t_lifnr INITIAL SIZE 0,
Final internal table to display output
BEGIN OF i_final OCCURS 0,
matnr LIKE mara-matnr, "Material Number
maktx LIKE makt-maktx, "Material Description
lifnr LIKE ekko-lifnr, "Vendor
name1 LIKE lfa1-name1, "Vendor Name
mfrpn LIKE ekpo-mfrpn, "Manufacturer part number
matkl LIKE ekpo-matkl, "Material Group
ekgrp LIKE ekko-ekgrp, "Purchasing Group
netwr LIKE ekpo-netwr, "Net order value in PO currency
grir LIKE ekbe-dmbtr, "Total PO Value with both GR and IR
gr LIKE ekbe-dmbtr, "Total PO Value with GR and no IR
ir LIKE ekbe-dmbtr, "Total PO Value with IR and no GR
END OF i_final.
************************************************************************
Global Variables *
************************************************************************
DATA : v_repid TYPE sy-repid.
*&----
*& Selection Screen Declaration
*&----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_aedat FOR ekko-aedat OBLIGATORY, "Date on whcich
"document was posted
s_ekgrp FOR ekko-ekgrp, "Purchasing group
s_lifnr FOR ekko-lifnr, "Vendor
s_matkl FOR ekpo-matkl, "Material Group
s_matnr FOR ekpo-matnr
MATCHCODE OBJECT mat1, "Material Number
s_mtart FOR ekpo-mtart
OBLIGATORY DEFAULT 'ROH', "Material Type
s_ebeln FOR ekko-ebeln.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_varnt TYPE slis_vari. " Variant
SELECTION-SCREEN: END OF BLOCK b2.
----
INITIALIZATION
----
INITIALIZATION.
v_repid = sy-repid.
Variant Initialization.
PERFORM sub_variant_int.
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varnt.
Display List of Variants on pressing F4
PERFORM sub_f4_for_variant.
----
AT SELECTION-SCREEN
----
AT SELECTION-SCREEN.
For check variant
PERFORM sub_check_variant.
----
START-OF-SELECTION
----
START-OF-SELECTION.
Fetch data from EKKO
PERFORM sub_fetch_ekko.
Fetch data from EKBE
PERFORM sub_fetch_ekbe.
Fill GR/IR intrenal tables
PERFORM sub_fill_grir_tables.
Fetch data from MAKT
PERFORM sub_fetch_makt.
Fetch data from LFA1
PERFORM sub_fetch_lfa1.
----
END-OF-SELECTION
----
END-OF-SELECTION.
Move data to final internal table.
PERFORM sub-fetch_final.
To create events.
PERFORM sub_create_events.
To create Layout.
PERFORM sub_create_layout.
TO display ALV.
PERFORM sub_alv_display.
&----
*& Form sub_variant_int
&----
variant Initialization
----
FORM sub_variant_int .
CLEAR wa_variant.
wa_variant-report = v_repid.
Determine the default variant.
PERFORM sub_get_default_variant.
ENDFORM. " sub_variant_int
&----
*& Form sub_get_default_variant
&----
To determine the default ALV varint & assign it to the p_varint.
----
FORM sub_get_default_variant .
wa_variant1 = wa_variant.
Function module used for to get default variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = c_save
CHANGING
cs_variant = wa_variant1
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc = 0.
p_varnt = wa_variant1-variant.
ENDIF.
ENDFORM. " sub_get_default_variant
&----
*& Form sub_f4_for_variant
&----
Variant on pressing F4
----
FORM sub_f4_for_variant .
Local declaration
DATA: lv_exit(1) TYPE c. "ALV exit
This function module for displaying list of Variants on pressing F4
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = wa_variant
i_save = c_save
IMPORTING
e_exit = lv_exit
es_variant = wa_variant1
EXCEPTIONS
not_found = 1
program_error = 2.
IF sy-subrc <> 2 AND lv_exit IS INITIAL.
p_varnt = wa_variant1-variant.
ENDIF.
ENDFORM. " sub_f4_for_variant
&----
*& Form sub_check_variant
&----
Check variant
----
FORM sub_check_variant.
IF NOT p_varnt IS INITIAL.
CLEAR wa_variant1.
MOVE wa_variant TO wa_variant1.
MOVE p_varnt TO wa_variant1-variant.
This function module is used to check the variant existance
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = c_save
CHANGING
cs_variant = wa_variant1.
wa_variant = wa_variant1.
ENDIF. " IF NOT p_varnt IS INITIAL.
ENDFORM. " sub_check_variant
&----
*& Form sub_fetch_ekko
&----
Fetch the data from EKPO
----
FORM sub_fetch_ekko .
SELECT ekko~ebeln
ebelp
ekgrp
lifnr
ekpo~aedat
matkl
matnr
mtart
mfrpn
netwr
menge
netpr
FROM ekko JOIN ekpo
ON ekpoebeln = ekkoebeln
INTO TABLE I_PURCHASE
WHERE ekgrp IN s_ekgrp
AND lifnr IN s_lifnr
AND ekko~aedat IN s_aedat
AND matkl IN s_matkl
AND matnr IN s_matnr
AND mtart IN s_mtart
AND bsart NE c_sto "cdtp00029224
AND ekko~ebeln IN s_ebeln. " testing purposes
IF sy-subrc NE 0.
MESSAGE i545.
LEAVE LIST-PROCESSING.
ELSE.
SORT i_purchase BY ebeln.
ENDIF.
ENDFORM. " sub_fetch_ekko
&----
*& Form sub_fetch_ekbe
&----
Fetch data from EKBE
----
FORM sub_fetch_ekbe .
IF NOT i_purchase[] IS INITIAL.
SELECT ebeln
ebelp
zekkn
vgabe
gjahr
belnr
buzei
dmbtr
menge
shkzg
FROM ekbe
INTO TABLE i_ekbe
FOR ALL ENTRIES IN i_purchase
WHERE ebeln = i_purchase-ebeln
AND ebelp = i_purchase-ebelp
AND vgabe IN (c_1,c_2).
IF sy-subrc EQ 0.
SORT i_ekbe BY ebeln ebelp .
ENDIF.
ENDIF. " IF NOT i_purchase[] IS INITIAL.
ENDFORM. " sub_fetch_ekbe
&----
*& Form sub_fill_grir_tables
&----
Filling the GR/IR internal tables
----
FORM sub_fill_grir_tables .
Declaration of local workareas
DATA : lwa_ekbe TYPE t_ekbe.
CONSTANTS: lc_h TYPE c VALUE 'H'.
IF NOT i_ekbe[] IS INITIAL.
LOOP AT i_ekbe INTO lwa_ekbe.
*->> Move the GR's & IR's in to there respective tables
IF lwa_ekbe-vgabe = c_1.
MOVE : lwa_ekbe-ebeln TO wa_gr-ebeln,
lwa_ekbe-ebelp TO wa_gr-ebelp.
*->> Check the debit/cedit indicator .
IF lwa_ekbe-shkzg = lc_h.
wa_gr-dmbtr = -1 * lwa_ekbe-dmbtr.
wa_gr-menge = -1 * lwa_ekbe-menge.
ELSE.
wa_gr-dmbtr = lwa_ekbe-dmbtr.
wa_gr-menge = lwa_ekbe-menge.
ENDIF.
COLLECT wa_gr INTO i_gr.
ELSEIF lwa_ekbe-vgabe = c_2.
MOVE : lwa_ekbe-ebeln TO wa_ir-ebeln,
lwa_ekbe-ebelp TO wa_ir-ebelp,
lwa_ekbe-menge TO wa_ir-menge,
lwa_ekbe-dmbtr TO wa_ir-dmbtr.
*->> Check the debit/cedit indicator
IF lwa_ekbe-shkzg = lc_h.
wa_ir-dmbtr = -1 * lwa_ekbe-dmbtr.
wa_ir-menge = -1 * lwa_ekbe-menge.
ELSE.
wa_ir-dmbtr = lwa_ekbe-dmbtr.
wa_ir-menge = lwa_ekbe-menge.
ENDIF.
COLLECT wa_ir INTO i_ir.
ENDIF. "IF lwa_ekbe-vgabe = c_1.
ENDLOOP. " LOOP AT i_ekbe INTO lwa_ekbe.
ENDIF. " IF NOT i_ekbe[] IS INITIAL.
ENDFORM. " sub_fill_grir_tables
&----
*& Form sub_fetch_makt
&----
Fetch data from MAKT
----
FORM sub_fetch_makt .
IF NOT i_purchase[] IS INITIAL.
SELECT matnr
maktx
FROM makt
INTO TABLE i_matnr
FOR ALL ENTRIES IN i_purchase
WHERE matnr = i_purchase-matnr AND
spras = sy-langu.
IF sy-subrc EQ 0.
SORT i_matnr BY matnr.
ENDIF.
ENDIF. " IF NOT i_purchase[] IS INITIAL.
ENDFORM. " sub_fetch_makt
&----
*& Form sub_fetch_lfa1
&----
Fetch data from LFA1
----
FORM sub_fetch_lfa1 .
IF NOT i_purchase[] IS INITIAL.
SELECT lifnr
name1
FROM lfa1
INTO TABLE i_lifnr
FOR ALL ENTRIES IN i_purchase
WHERE lifnr = i_purchase-lifnr.
IF sy-subrc EQ 0.
SORT i_lifnr BY lifnr.
ENDIF.
ENDIF. " IF NOT i_purchase[] IS INITIAL.
ENDFORM. " sub_fetch_lfa1
&----
*& Form sub-fetch_final
&----
Move data to final internal table
----
FORM sub-fetch_final .
Declaration of local workareas
DATA : lwa_ekpo TYPE t_ekpo,
lwa_final LIKE i_final,
lwa_matnr TYPE t_matnr,
lwa_lifnr TYPE t_lifnr.
Declaration of local variables
DATA : lv_gr TYPE bwert,
lv_ir TYPE bwert,
lv_dmbtr TYPE bwert.
CLEAR lwa_ekpo.
LOOP AT i_purchase INTO lwa_ekpo.
Start of Comment for the total error by jeyandu
**->> Read the purchase order history
READ TABLE i_ekbe TRANSPORTING NO FIELDS
WITH KEY ebeln = lwa_ekpo-ebeln
ebelp = lwa_ekpo-ebelp BINARY SEARCH
.
*
IF sy-subrc EQ 0.
*End of Comment for the total error by jeyandu
*->> read the vendor master
READ TABLE i_lifnr INTO lwa_lifnr
WITH KEY lifnr = lwa_ekpo-lifnr BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE : lwa_lifnr-name1 TO lwa_final-name1.
ENDIF.
Read the internal table and get the material description
READ TABLE i_matnr INTO lwa_matnr
WITH KEY matnr = lwa_ekpo-matnr BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE : lwa_matnr-maktx TO lwa_final-maktx.
ENDIF.
*->> Move the other details for reporting
MOVE : lwa_ekpo-ekgrp TO lwa_final-ekgrp,
lwa_ekpo-lifnr TO lwa_final-lifnr,
lwa_ekpo-matkl TO lwa_final-matkl,
lwa_ekpo-matnr TO lwa_final-matnr,
lwa_ekpo-mfrpn TO lwa_final-mfrpn,
lwa_ekpo-netwr TO lwa_final-netwr.
CLEAR : wa_gr,
wa_ir.
Read the GR internal table
READ TABLE i_gr INTO wa_gr WITH KEY ebeln = lwa_ekpo-ebeln
ebelp = lwa_ekpo-ebelp.
IF sy-subrc NE 0.
CLEAR wa_gr.
ENDIF.
Read the IR internal table
READ TABLE i_ir INTO wa_ir WITH KEY ebeln = lwa_ekpo-ebeln
ebelp = lwa_ekpo-ebelp.
IF sy-subrc NE 0.
CLEAR wa_ir.
ENDIF.
Check the quantity for GR and IR
IF wa_gr-menge = wa_ir-menge.
Calcualate the Total PO Value with both GR and IR
lv_gr = wa_gr-menge * lwa_ekpo-netpr.
lv_ir = wa_ir-menge * lwa_ekpo-netpr.
lv_dmbtr = lv_gr.
MOVE : lv_dmbtr TO lwa_final-grir.
CLEAR : lv_gr,
lv_ir,
lv_dmbtr.
If GR qty > IR qty
ELSEIF wa_gr-menge > wa_ir-menge.
Calcualate the Total PO Value with both GR and IR
lv_gr = wa_gr-menge * lwa_ekpo-netpr.
lv_ir = wa_ir-menge * lwa_ekpo-netpr.
Get the GR quantity
lv_dmbtr = lv_gr - lv_ir.
If there is no IR qty
IF lv_ir = 0.
MOVE : lv_dmbtr TO lwa_final-gr.
ELSE.
If there is IR qty
MOVE : lv_ir TO lwa_final-grir,
lv_dmbtr TO lwa_final-gr.
ENDIF.
CLEAR : lv_gr,
lv_ir,
lv_dmbtr.
If GR qty < IR qty
ELSEIF wa_gr-menge < wa_ir-menge.
Calcualate the Total PO Value with both GR and IR
lv_gr = wa_gr-menge * lwa_ekpo-netpr.
lv_ir = wa_ir-menge * lwa_ekpo-netpr.
Get the IR quantity
lv_dmbtr = lv_ir - lv_gr.
If there is no GR qty
IF lv_gr = 0.
MOVE : lv_dmbtr TO lwa_final-ir.
ELSE.
If there is GR qty
MOVE : lv_gr TO lwa_final-grir,
lv_dmbtr TO lwa_final-ir.
ENDIF.
ENDIF. " IF wa_gr-menge = wa_ir-menge.
COLLECT lwa_final INTO i_final.
CLEAR :lv_gr,
lv_ir,
lv_dmbtr.
*Commented for the total error by jeyandu
ENDIF. " IF sy-subrc EQ 0 EKKO
CLEAR : lwa_ekpo,
wa_gr,
wa_ir,
lv_dmbtr,
lwa_final.
ENDLOOP. " LOOP AT i_purchase INTO lwa_ekpo.
ENDFORM. " sub-fetch_final
&----
*& Form sub_create_events
&----
Define ALV Events
----
FORM sub_create_events .
Local variable for event
DATA: wa_event TYPE slis_alv_event. "Events
Events for the ALV
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 1 "2
IMPORTING
et_events = i_events.
Sort by Name
SORT i_events BY name.
CLEAR wa_event.
READ TABLE i_events INTO wa_event WITH KEY name = slis_ev_top_of_page
BINARY SEARCH.
IF sy-subrc = 0.
MOVE c_top_of_page TO wa_event-form.
MODIFY i_events FROM wa_event TRANSPORTING form
WHERE name = slis_ev_top_of_page.
ENDIF.
CLEAR : wa_event.
ENDFORM. " sub_create_events
----
FORM sub_top_of_page
----
For defining Top Of Page
----
FORM sub_top_of_page. "#EC CALLED
DATA lv_title TYPE string. "For Title
lv_title = 'GMP MRO Total Spend'(006).
CALL FUNCTION 'Z_REPORT_HEADER_ALVGRID'
EXPORTING
report_header = lv_title
TABLES
t_header = i_alv_top_of_page
EXCEPTIONS
user_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
This funcation module will diplay the top of the page
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_alv_top_of_page.
REFRESH i_alv_top_of_page.
ENDFORM. "sub_a_top_of_page
&----
*& Form sub_create_layout
&----
Create layout set
----
FORM sub_create_layout .
wa_layout-box_tabname = 'I_FINAL'.
wa_layout-no_input = c_chk.
wa_layout-colwidth_optimize = c_chk.
wa_layout-zebra = c_chk.
wa_layout-cell_merge = c_chk.
ENDFORM. " sub_create_layout
&----
*& Form sub_alv_display
&----
ALV Display
----
FORM sub_alv_display .
Declaration of local workareas and internal tables
DATA: li_sort TYPE slis_t_sortinfo_alv, "For Sort ALV
lwa_fieldcat TYPE slis_fieldcat_alv.
Declaration of local constants
CONSTANTS : lc_long_text(1) TYPE c VALUE 'L'.
*pt_fieldcat TYPE ty_fieldcat
*--Call the functino module to get the field catalog.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = v_repid
i_internal_tabname = 'I_FINAL'
i_inclname = v_repid
CHANGING
ct_fieldcat = i_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
LOOP AT i_fieldcat INTO lwa_fieldcat.
CASE lwa_fieldcat-fieldname.
WHEN 'GRIR'.
lwa_fieldcat-ddictxt = lc_long_text.
lwa_fieldcat-seltext_l = text-003.
lwa_fieldcat-do_sum = 'X'.
MODIFY i_fieldcat FROM lwa_fieldcat
INDEX sy-tabix TRANSPORTING ddictxt seltext_l do_sum.
CLEAR lwa_fieldcat.
WHEN 'GR'.
lwa_fieldcat-ddictxt = lc_long_text.
lwa_fieldcat-seltext_l = text-004.
lwa_fieldcat-do_sum = 'X'.
MODIFY i_fieldcat FROM lwa_fieldcat
INDEX sy-tabix TRANSPORTING ddictxt seltext_l do_sum.
CLEAR lwa_fieldcat.
WHEN 'IR'.
lwa_fieldcat-ddictxt = lc_long_text.
lwa_fieldcat-seltext_l = text-005.
lwa_fieldcat-do_sum = 'X'.
MODIFY i_fieldcat FROM lwa_fieldcat
INDEX sy-tabix TRANSPORTING ddictxt seltext_l do_sum.
CLEAR lwa_fieldcat.
WHEN 'NETWR'.
lwa_fieldcat-do_sum = 'X'.
MODIFY i_fieldcat FROM lwa_fieldcat
INDEX sy-tabix TRANSPORTING do_sum.
CLEAR lwa_fieldcat.
ENDCASE. " CASE lwa_fieldcat-fieldname
ENDLOOP. " LOOP AT i_fieldcat INTO lwa_fieldcat
ENDIF. " IF sy-subrc <> 0
This function module is used for displaying the ALV report
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
is_layout = wa_layout
it_fieldcat = i_fieldcat
i_default = c_chk
i_save = c_save
is_variant = wa_variant
it_events = i_events
is_print = wa_print
it_sort = li_sort
TABLES
t_outtab = i_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " sub_alv_display
Reward points if u find useful.
Regards,
Nagaraj
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
110 | |
12 | |
11 | |
6 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.