Skip to Content
0
Former Member
Feb 24, 2009 at 03:04 PM

Output not coming right, if we give LIFNR in selection screen

241 Views

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