#2
|
|||
|
|||
Bueno, tu reporte sera lento de todas formas... pero tienes que jugar con los Indices de SAP y agragar unos cuantos a las tablas para que te genere este reporte mas rapidamente... te paso este query...
Te trae lo que esta en una orden de compra doc_compras, cuanto esta recepcionado y de pasada.. cuanto esta facturado por si te sirve.... la estructura Z_TAB_CONREPORT, no es mas que una estructura con la info que necesitas... como EBELP (posicion de OC) BUKRS (sociedad) GSBER( division) LIFNR ( proveedor )... etc, etc..... que lo disfrutes! data reporte type z_tab_conreport. data line type zconreport. select ekko~ebeln ekpo~ebelp ekko~bedat ekko~bukrs ekkn~zekkn prps~pspnr ekko~submi ekko~lifnr lfa1~name1 eskl~menge eskl~netwr eskl~act_menge as menge_r eskl~act_wert as netwr_r s2~packno s2~introw s2~srvpos s2~ktext1 ekkn~menge as e_menge into corresponding fields of table reporte from ekko inner join ekpo on ekpo~ebeln = ekko~ebeln inner join lfa1 on lfa1~lifnr = ekko~lifnr inner join esll as s1 on s1~mandt = ekpo~mandt and s1~packno = ekpo~packno inner join esll as s2 on s2~mandt = s1~mandt and s2~packno = s1~sub_packno inner join eskl on eskl~packno = s2~packno and eskl~introw = s2~introw inner join ekkn on ekkn~ebeln = ekpo~ebeln and ekkn~ebelp = ekpo~ebelp and ekkn~zekkn = eskl~zekkn inner join prps on prps~pspnr = ekkn~ps_psp_pnr inner join proj on proj~pspnr = prps~psphi where ekko~ebeln = doc_compras and ekpo~loekz = '' and s1~del = '' and s2~del = ''. select ekko~ebeln ekpo~ebelp ekko~bedat ekko~bukrs ekkn~zekkn prps~pspnr ekko~submi ekko~lifnr lfa1~name1 eskl~menge eskl~netwr eskl~act_menge as menge_r eskl~act_wert as netwr_r s2~packno s2~introw s2~srvpos s2~ktext1 ekkn~menge as e_menge appending corresponding fields of table reporte from ekko inner join ekpo on ekpo~ebeln = ekko~ebeln and ekpo~loekz = '' inner join lfa1 on lfa1~lifnr = ekko~lifnr inner join esll as s1 on s1~mandt = ekpo~mandt and s1~packno = ekpo~packno and s1~del = '' inner join esll as s2 on s2~mandt = s1~mandt and s2~packno = s1~sub_packno and s2~del = '' inner join eskl on eskl~packno = s2~packno and eskl~introw = s2~introw inner join ekkn on ekkn~ebeln = ekpo~ebeln and ekkn~ebelp = ekpo~ebelp and ekkn~zekkn = eskl~zekkn inner join aufk on aufk~aufnr = ekkn~nplnr inner join prps on prps~pspnr = aufk~pspel inner join proj on proj~pspnr = prps~psphi where ekko~ebeln = doc_compras and ekpo~loekz = '' and s1~del = '' and s2~del = ''. loop at reporte into line. data ekbe_wrbtr type wrbtr. data essr_netwr type netwr. data esll_netwr type netwr. data ekbe_shkzg type shkzg. clear line-netwr_r. select essr~lblni esll~netwr essr~netwr into (line-lblni, esll_netwr, essr_netwr ) from esll inner join esll as s4 on s4~sub_packno = esll~packno inner join essr on essr~packno = s4~packno where esll~pln_packno = line-packno and esll~pln_introw = line-introw and esll~del = '' and s4~del = '' and essr~loekz = ''. line-netwr_r = line-netwr_r + esll_netwr. select shkzg wrbtr into (ekbe_shkzg, ekbe_wrbtr) from ekbe where lfbnr = line-lblni and vgabe = 2. if ekbe_shkzg = 'S'. line-facturado = line-facturado + ( esll_netwr / essr_netwr ) * ekbe_wrbtr. else. line-facturado = line-facturado - ( esll_netwr / essr_netwr ) * ekbe_wrbtr. endif. endselect. endselect. modify reporte from line index sy-tabix. clear line. endloop. t_conreport = reporte. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|