Hi,
i have LIFNR in selection screen, when i execute my report without inserting value in it...output is proper coming, but when i insert value in LIFNR, report doesn't display any data...
please check my code and guide me...
(
TABLES : bsik,bkpf,bseg,j_1imovend,lfa1,t001,t005u,bsak,ekko,bsis, ekkn, anla, anlc.
TYPE-POOLS : slis.
DATA : BEGIN OF itab OCCURS 0,
belnr LIKE bsik-belnr, "Document number
buzei LIKE bseg-buzei, "line item
hkont LIKE bseg-hkont, "Gl account
mwskz LIKE bseg-mwskz, "Tax Code
dmbtr LIKE bseg-dmbtr, "Amount
ebeln LIKE bseg-ebeln, "Purchasing Document
ebelp LIKE bseg-ebelp, "line item nbr
hwbas TYPE i,
shkzg LIKE bseg-shkzg, "Debit/Credit code
wrbtr LIKE bseg-wrbtr,
gjahr LIKE bsik-gjahr, "Fiscal Year
bldat LIKE bsik-bldat, "Document Date
budat LIKE bsik-budat, "Posting Date
lifnr LIKE bsik-lifnr, "Vendor number
xblnr LIKE mkpf-xblnr, "Ven invoice nbr
name1(25), "name1
ort01 LIKE lfa1-ort01, "City
j_1ilstno LIKE j_1imovend-j_1ilstno, " Vendor tin nbr
regio LIKE lfa1-regio, "Region Code
bezei LIKE t005u-bezei, "Region desc
bland LIKE t005u-bland,
tax TYPE p DECIMALS 2,
matkl LIKE ekpo-matkl,
END OF itab.
DATA : x TYPE bseg-lifnr,
y TYPE j_1imovend-j_1ilstno,
z TYPE bseg-mwskz,
a TYPE bseg-hwbas,
b TYPE t005u-bezei.
DATA:
v_bldat TYPE bldat,
v_budat TYPE budat,
v_gjahr TYPE gjahr,
v_lifnr TYPE lifnr,
v_name1 TYPE name1,
v_j_1ilstno TYPE j_1ilstno,
v_bezei TYPE bezei,
v_ebeln TYPE ebeln,
v_mwskz TYPE mwskz,
v_dmbtr TYPE dmbtr,
v_hwbas TYPE hwbas,
v_xblnr TYPE xblnr,
v_buzei TYPE buzei,
v_wrbtr TYPE wrbtr,
v_matkl TYPE matkl,
v_tax TYPE i,
v_regio TYPE regio,
v_hkont TYPE hkont.
DATA : BEGIN OF itab1 OCCURS 0.
INCLUDE STRUCTURE itab.
DATA:END OF itab1.
DATA : BEGIN OF itab2 OCCURS 0.
INCLUDE STRUCTURE itab.
DATA : END OF itab2.
DATA : itab3 LIKE STANDARD TABLE OF itab2 WITH HEADER LINE.
***********************************Purchase order history
DATA: BEGIN OF bet OCCURS 50.
INCLUDE STRUCTURE ekbe.
DATA: END OF bet.
DATA: BEGIN OF bzt OCCURS 50.
INCLUDE STRUCTURE ekbz.
DATA: END OF bzt.
DATA: BEGIN OF betz OCCURS 50.
INCLUDE STRUCTURE ekbez.
DATA: END OF betz.
DATA: BEGIN OF bets OCCURS 50.
INCLUDE STRUCTURE ekbes.
DATA: END OF bets.
DATA: BEGIN OF xekbnk OCCURS 10.
INCLUDE STRUCTURE ekbnk.
DATA: END OF xekbnk.
************************************************************************
DATA : w_container TYPE scrfname VALUE 'CL_GRID',
w_cprog TYPE lvc_s_layo,
g_repid LIKE sy-repid,
w_save TYPE c,
w_exit TYPE c,
cl_grid TYPE REF TO cl_gui_alv_grid,
cl_custom_container TYPE REF TO cl_gui_custom_container,
it_fld_catalog TYPE slis_t_fieldcat_alv,
wa_fld_catalog TYPE slis_t_fieldcat_alv WITH HEADER LINE ,
layout TYPE slis_layout_alv,
col_pos LIKE sy-cucol ,
alvfc TYPE slis_t_fieldcat_alv.
************************************************************************
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : hkont FOR bsis-hkont ."OBLIGATORY.
SELECT-OPTIONS : lifnr FOR bsik-lifnr ."OBLIGATORY.
*PARAMETERS : lifnr for bsik-lifnr.
SELECT-OPTIONS : belnr FOR bsik-belnr .
SELECT-OPTIONS : gjahr FOR bsik-gjahr .
SELECT-OPTIONS : bldat FOR bsik-bldat.
SELECT-OPTIONS : budat FOR bsik-budat.
SELECTION-SCREEN : END OF BLOCK b1.
************************************************************************
PERFORM fill_catalog1 USING:
'HKONT' 'ITAB2' 'G/L',
'BELNR' 'ITAB2' 'Document Number',
'BLDAT' 'ITAB2' 'Doc. date' ,
'BUDAT' 'ITAB2' 'Posting Date',
'LIFNR' 'ITAB2' 'Vendor',
'NAME1' 'ITAB2' 'Name',
'J_1ILSTNO' 'ITAB2' 'TIN No.',
'BEZEI' 'ITAB2' 'Region',
'MATKL' 'ITAB2' 'Material Group',
'EBELN' 'ITAB2' 'Purchasing Document',
'MWSKZ' 'ITAB2' 'Tax Code',
'HWBAS' 'ITAB2' 'Base Amount',
'DMBTR' 'ITAB2' 'Tax Amount',
'TAX' 'ITAB2' 'Tax Rate',
'XBLNR' 'ITAB2' 'Vendor Inv. No.'.
*********************************************************************************************
SELECT DISTINCT hkont belnr gjahr bldat budat INTO CORRESPONDING FIELDS OF TABLE itab
FROM bsis
WHERE bukrs = '1000'
AND hkont IN hkont
AND belnr IN belnr
AND gjahr IN gjahr
AND bldat IN bldat
AND budat IN budat
AND blart <> 'JV'.
SORT itab BY belnr.
LOOP AT itab.
SELECT * FROM bseg WHERE belnr = itab-belnr AND gjahr = itab-gjahr AND bukrs = '1000' AND ( ebeln <> ' ' OR hkont IN hkont ).
IF sy-subrc = 0.
itab-buzei = bseg-buzei.
itab-mwskz = bseg-mwskz.
IF bseg-ebeln <> ' '.
itab-ebeln = bseg-ebeln.
itab-ebelp = bseg-ebelp.
MODIFY itab.
ENDIF.
IF bseg-hkont = itab-hkont.
itab-shkzg = bseg-shkzg.
itab-hwbas = bseg-hwbas.
itab-dmbtr = bseg-dmbtr.
IF itab-hwbas NE '0'.
itab-tax = itab-dmbtr / itab-hwbas * 100.
MODIFY itab INDEX sy-tabix TRANSPORTING tax.
ENDIF.
IF itab-shkzg = 'H'.
itab-dmbtr = itab-dmbtr * ( -1 ).
ENDIF.
MOVE-CORRESPONDING itab TO itab2.
APPEND itab2.
ENDIF.
ENDIF.
ENDSELECT.
ENDLOOP.
LOOP AT itab2.
SELECT SINGLE * FROM ekko WHERE ebeln = itab2-ebeln .
IF sy-subrc = 0.
itab2-lifnr = ekko-lifnr.
ENDIF.
CALL FUNCTION 'ME_READ_HISTORY'
EXPORTING
ebeln = itab2-ebeln
ebelp = itab2-ebelp
webre = 'X'
TABLES
xekbe = bet
xekbz = bzt
xekbes = bets
xekbez = betz
xekbnk = xekbnk.
itab2-xblnr = bet-xblnr.
SELECT SINGLE * FROM lfa1 WHERE lifnr = itab2-lifnr.
itab2-name1 = lfa1-name1.
itab2-ort01 = lfa1-ort01.
itab2-regio = lfa1-regio.
SELECT SINGLE * FROM t005u WHERE bland = itab2-regio
AND spras = 'EN'
AND land1 = 'IN'.
itab2-bezei = t005u-bezei.
SELECT SINGLE * FROM j_1imovend WHERE lifnr = itab2-lifnr.
IF sy-subrc = 0 .
itab2-j_1ilstno = j_1imovend-j_1ilstno. " Vendor tin nbr
ENDIF.
MODIFY itab2.
ENDLOOP.
SORT itab2 BY belnr.
LOOP AT itab2.
v_dmbtr = v_dmbtr + itab2-dmbtr.
v_hwbas = v_hwbas + itab2-hwbas.
v_bldat = itab2-bldat.
v_budat = itab2-budat.
v_gjahr = itab2-gjahr.
v_lifnr = itab2-lifnr.
v_name1 = itab2-name1.
v_j_1ilstno = itab2-j_1ilstno.
v_bezei = itab2-bezei.
v_ebeln = itab2-ebeln.
v_mwskz = itab2-mwskz.
v_xblnr = itab2-xblnr.
v_buzei = itab2-buzei.
v_wrbtr = itab2-wrbtr.
v_matkl = itab2-matkl.
v_tax = itab2-tax.
v_regio = itab2-regio.
v_hkont = itab2-hkont.
AT END OF belnr.
itab2-bldat = v_bldat.
itab2-budat = v_budat.
itab2-gjahr = v_gjahr.
itab2-lifnr = v_lifnr.
itab2-name1 = v_name1.
itab2-j_1ilstno = v_j_1ilstno.
itab2-bezei = v_bezei.
itab2-ebeln = v_ebeln.
itab2-mwskz = v_mwskz.
itab2-dmbtr = v_dmbtr.
itab2-hwbas = v_hwbas.
itab2-xblnr = v_xblnr.
itab2-buzei = v_buzei.
itab2-wrbtr = v_wrbtr.
itab2-matkl = v_matkl.
itab2-tax = v_tax.
itab2-regio = v_regio.
itab2-hkont = v_hkont.
APPEND itab2 TO itab3.
CLEAR: itab2, v_dmbtr, v_hwbas, v_bldat, v_budat, v_gjahr, v_lifnr, v_name1, v_j_1ilstno, v_ebeln,
v_mwskz, v_xblnr, v_buzei, v_wrbtr, v_matkl, v_tax, v_regio, v_hkont.
ENDAT.
ENDLOOP.
LOOP AT itab3.
IF itab3-lifnr = ' '.
SELECT SINGLE lifnr FROM bseg INTO x WHERE belnr = itab3-belnr AND gjahr = itab3-gjahr AND bukrs = '1000' AND koart = 'K'." AND lifnr IN lifnr.
IF sy-subrc = 0.
itab3-lifnr = x .
SELECT SINGLE * FROM lfa1 WHERE lifnr = itab3-lifnr.
itab3-name1 = lfa1-name1.
itab3-ort01 = lfa1-ort01.
itab3-regio = lfa1-regio.
MODIFY itab3.
ENDIF.
ENDIF.
****
SELECT SINGLE bezei FROM t005u INTO itab3-bezei WHERE bland = itab3-regio AND spras EQ 'EN' AND land1 EQ 'IN'.
MODIFY itab3 INDEX sy-tabix TRANSPORTING bezei.
****
SELECT j_1ilstno FROM j_1imovend INTO y WHERE lifnr = itab3-lifnr .
itab3-j_1ilstno = y.
MODIFY itab3 INDEX sy-tabix TRANSPORTING j_1ilstno .
ENDSELECT.
**********
SELECT mwskz FROM bseg INTO z WHERE belnr = itab3-belnr AND gjahr = itab3-gjahr AND bukrs = '1000' .
MODIFY itab3 INDEX sy-tabix TRANSPORTING mwskz .
ENDSELECT.
IF sy-subrc = 0.
itab3-mwskz = z .
MODIFY itab3.
ENDIF.
IF itab3-hwbas = ' '.
SELECT wrbtr FROM bseg INTO itab3-hwbas WHERE belnr = itab3-belnr AND gjahr = itab3-gjahr AND bukrs = '1000' AND buzei = '2'.
MODIFY itab3 INDEX sy-tabix TRANSPORTING wrbtr.
ENDSELECT.
ENDIF.
********
SELECT matkl FROM ekpo INTO itab3-matkl WHERE ebeln = itab3-ebeln .
MODIFY itab3 INDEX sy-tabix TRANSPORTING matkl .
ENDSELECT.
********
SHIFT itab3-lifnr LEFT DELETING LEADING '0'. " For Removing 0's
SHIFT itab3-hkont LEFT DELETING LEADING '0'. " For Removing 0's
MODIFY itab3.
IF itab3-hwbas NE '0'.
itab3-tax = itab3-dmbtr / itab3-hwbas * 100.
MODIFY itab3 INDEX sy-tabix TRANSPORTING tax.
ENDIF.
ENDLOOP.
************************************************************************************
layout-zebra = 'X' .
layout-colwidth_optimize(1) = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZFI_LP07'
is_layout = layout
it_fieldcat = it_fld_catalog
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = itab3
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.
&----
*& Form FILL_CATALOG1
&----
text
----
-->P_FIELDNAME text
-->P_REF_TABLE text
-->P_SCRTEXT text
----
FORM fill_catalog1 USING p_fieldname TYPE any
p_ref_table TYPE any
p_scrtext TYPE any.
CLEAR : wa_fld_catalog.
wa_fld_catalog-fieldname = p_fieldname.
wa_fld_catalog-tabname = p_ref_table.
wa_fld_catalog-seltext_s = p_scrtext.
wa_fld_catalog-seltext_m = p_scrtext.
wa_fld_catalog-seltext_l = p_scrtext.
wa_fld_catalog-datatype = 'CURR'.
wa_fld_catalog-outputlen = 20.
APPEND wa_fld_catalog TO it_fld_catalog.
ENDFORM. " fill_catalog1.
)
Thanks