2012 Mar 29 7:58 AM
I did the performance analysis using st05 and a particular query which taking access time for the execution is below.
Table vbrk is taking excess time for execution.
SELECT sfakn
INTO CORRESPONDING FIELDS OF TABLE canc_doc
FROM vbrk
WHERE kunrg IN p_cust AND
fkdat IN p_date AND
spart IN p_dev AND
vkorg IN p_vkorg AND
vtweg IN p_vtweg AND
rfbsk IN p_rfbsk AND
regio IN p_regio AND
fkart IN ('S1','S2','S3').
*------------*
SELECT b~vbeln
b~posnr
a~fkdat
a~spart
a~kunag
a~vkorg
a~rfbsk
a~fkart
a~vtweg
a~bzirk
a~kurrf
a~waerk
a~knumv
*------ VBRP ------------*
b~fkimg " Actual Billed Qty
b~netwr "Net Value
b~mwsbp "Tax Value
b~matnr "Material
b~arktx "Description
b~prodh "Product Hierarchy
b~vkgrp "Sales Group
b~ktgrm " Acc. Ass. Group
b~aubel " Sales document no
b~aupos " Added Sales item
b~vgbel
b~vgpos
b~vgtyp
b~matnr " material code
b~posnr " material position
b~pstyv " Item categ
b~fklmg
b~vrkme
*--------------------------*
INTO CORRESPONDING FIELDS OF TABLE itab
FROM vbrk AS a INNER JOIN vbrp AS b
ON a~vbeln = b~vbeln
WHERE a~kunrg IN p_cust AND
a~fkdat IN p_date AND
a~spart IN p_dev AND
a~vkorg IN p_vkorg AND
a~vtweg IN p_vtweg AND
a~rfbsk IN p_rfbsk AND
a~regio IN p_regio AND
a~fkart IN p_type AND
b~werks IN s_werks AND
b~matnr IN matnr.
SORT itab BY vbeln.
Kindly provide a solution.
2012 Mar 29 8:04 AM
Not possible, the ranges used for your many IN-conditions might contain any number of restrictions, from a single value (good) to nothing at all (bad). This is stabbing in the dark.
You will probably see responses like "avoid INTO CORRESPONDING", you can safely ignore these.
Thomas
2012 Mar 29 8:22 AM
Hi,
Darshit maheshwari wrote:
Kindly provide a solution.
Kindly provide more details:
Kind regards,
Hermann
2012 Mar 29 12:28 PM
Both above replies are relevant. If it's too difficult for you to provide requested information, you may also consider using in your selects tables VRPMA (field KUNNR in this table should be equal to VBRK-KUNRG) and VRKPA.
More information about these tables you can certainly find in Google or SAP notes
2012 Mar 31 10:03 AM
here is the report having perforance issues ..
table vbrk and vbrp taking excess time..
Kindly Guide .
*********************************
REPORT zdispatch_materialwise NO STANDARD PAGE HEADING
LINE-SIZE 680.
*************************************************************
* Tables, Data Declarations
*************************************************************
DATA : pcust(10) TYPE c,
x(1) TYPE n,
ln(2) TYPE n,
chq_flg(1) TYPE c,
lr_flg(1) TYPE c ,
idx LIKE sy-tabix.
TABLES : vbrk, "Billing: Header Data
vbrp, "Billing: Item Data
likp, "SD Document: Delivery Header Data
kna1, "General Data in Customer Master
knvv, "Customer Master Sales Data
zsd_inv_detail, "LR Number and Transporter Detail
zsd_mat_vtyp_dtl, "Material Valuation Type wise Desc & Import Details
vbkd. "Sales Document: Business Data
TYPE-POOLS: slis.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
ls_fieldcat LIKE gt_fieldcat,
wa_fieldcat TYPE slis_fieldcat_alv.
** Internal Table [ITAB]
DATA: BEGIN OF itab OCCURS 0,
matnr LIKE vbrp-matnr , "Material
vbeln LIKE vbrp-vbeln, "Invoice No
posnr LIKE vbrp-posnr, "Item No.
fkdat LIKE vbrk-fkdat, "Invoice Date
kunag LIKE vbrk-kunag, "Cust_Code
vkorg LIKE vbrk-vkorg, "Sales Organisation
vtweg LIKE vbrk-vtweg , "Distribution Channel
fkart LIKE vbrk-fkart, "Billing Type
name1 LIKE kna1-name1, "Cust_Name
spart LIKE vbrk-spart, "Division
vgbel LIKE vbrp-vgbel, "Delivery No
quotation LIKE vbrp-vgbel, "quotation
vgpos LIKE vbrp-vgpos, "Delivery item "
wadat LIKE likp-wadat, "Delivery Date
bwtar LIKE vbrp-bwtar , " valuation type
wadat_ist LIKE likp-wadat_ist , " Actual Goods Mov. Date
kvgr4 LIKE vbrp-kvgr4, "No of Packages
rfbsk LIKE vbrk-rfbsk , " Posting Status
kvgr5 LIKE knvv-kvgr5 , "State For Co
chqdtl(40) TYPE c,
lrdtl(40) TYPE c ,
werks LIKE vbrp-werks , "Plant
bzirk LIKE vbrk-bzirk , "Sales District
vkbur LIKE likp-vkbur , "Sales Office
sfakn LIKE vbrk-sfakn , "Cancelled Bill. doc
agent LIKE kna1-name1 , "for payment collectin agent name
pcode LIKE kna1-kunnr , "P.C. Code
mcod3 LIKE kna1-mcod3 , "Matcode search
* ------
trcode LIKE knvp-lifnr,
trname LIKE lfa1-name1,
lrnum LIKE zsd_inv_detail-lrnum, "LR Number
lrdat LIKE zsd_inv_detail-lrdat, "Date on Which Record Was Created
vehno LIKE zsd_inv_detail-vehno, "Vehicle Number
cart LIKE zsd_inv_detail-cart, "No.of.Box.
remark LIKE zsd_inv_detail-remark, "Text Field
arktx LIKE vbrp-arktx , "Description
prodh LIKE vbrp-prodh , "Product Hierarchy
vkgrp LIKE vbrp-vkgrp , "Sales Group
ktgrm LIKE vbrp-ktgrm , "Acct. Ass. Group
fkimg LIKE vbrp-fkimg , " Actual Billed Qty
netwr LIKE vbrp-netwr , "Net Value
mwsbp LIKE vbrp-mwsbp , "Tax Value
netvalue LIKE vbrp-netwr , "Net + Tax
*
knumv LIKE vbrk-knumv , " mat. doc no
kbetr LIKE konv-kbetr , " cond rate for ZPR0
kbetr8 LIKE konv-kbetr , " cond rate for ZPR1
kbetr1 LIKE konv-kbetr , " cond rate for ZDIR
kwert LIKE konv-kwert , " cond value for ZPR0
kwert1 LIKE konv-kwert , " cond value for ZDIR
kbetr6 LIKE konv-kbetr , " cond rate for ZDIA
kwert6 LIKE konv-kwert , " cond value for ZDIA
kbetr7 LIKE konv-kbetr , " cond rate for ZDIN
kwert7 LIKE konv-kwert , " cond value for ZDIN
kwert2 LIKE konv-kwert , " cond value for UTXJ
kbetr3 LIKE konv-kwert , " cond rate for JMOD
kwert3 LIKE konv-kwert , " cond value for JMOD
kbetr4 LIKE konv-kwert , " cond rate for JECS
kwert4 LIKE konv-kwert , " cond value for JECS
kbetr5 LIKE konv-kwert , " cond rate for JA1X
kwert5 LIKE konv-kwert , " cond value for JA1X
c_fkimg LIKE vbrp-fkimg , " Actual Billed Qty for sum
c_netvalue LIKE vbrp-netwr , "Net + Tax for sum
aubel LIKE vbrp-aubel,
aupos LIKE vbrp-aupos, " Sales item Added by on
vgtyp LIKE vbrp-vgtyp, " Document categ Added by
valflag TYPE c, " VALUATION FLAG
erdat LIKE vbak-erdat, " Date on Which Sales order Was Created
erzet LIKE vbak-erzet, " Entry time of Sales order
erdat_i LIKE vbrk-erdat, " Date on Which Invoice Was Created
erzet_i LIKE vbrk-erzet, " Entry time of Invoice
kwmeng LIKE vbap-kwmeng, " Sales Order Qty
c_kwmeng LIKE vbap-kwmeng,
*------
waerk LIKE vbrk-waerk,
kurrf LIKE vbrk-kurrf,
vstel LIKE likp-vstel,
prsdt LIKE vbrp-prsdt,
prsdt1 LIKE vbkd-prsdt, "Date for pricing and exchange rate
pstyv LIKE vbrp-pstyv, " item catg added by
fklmg LIKE vbrp-fklmg,
vrkme LIKE vbrp-vrkme,
importdtl LIKE zsd_mat_vtyp_dtl-importdtl,
pvbeln LIKE vbfa-vbeln,
pbelnr LIKE bkpf-belnr,
mjahr LIKE vbfa-mjahr,
pgi_year LIKE bkpf-awkey,
bstkd LIKE vbkd-bstkd, "Purchase Order No
extwg LIKE mara-extwg,
kdmat LIKE vbap-kdmat, "Cust.mat.no
END OF itab.
DATA : BEGIN OF icoll OCCURS 0,
kunag LIKE vbrk-kunag,
matnr LIKE vbrp-matnr,
END OF icoll.
DATA: jtab LIKE itab OCCURS 0 WITH HEADER LINE.
* variable
DATA :dfkimg LIKE vbrp-fkimg , " Actual Billed Qty
dnetvalue LIKE vbrp-netwr , "Net Value + tax
dkwmeng LIKE vbap-kwmeng . "Added by on
DATA : html TYPE TABLE OF w3html WITH HEADER LINE.
DATA : fpath(100),
sorg(10),
div(11),
reg(5).
DATA itab_lr LIKE tline OCCURS 0 WITH HEADER LINE.
DATA itab_chq LIKE tline OCCURS 0 WITH HEADER LINE.
DATA : tot_records TYPE i .
DATA : int1 TYPE i.
DATA : BEGIN OF canc_doc OCCURS 0 ,
sfakn LIKE vbrk-sfakn ,
END OF canc_doc.
DATA: selfield1 TYPE slis_selfield,
ucomm LIKE sy-ucomm.
********************************
*** Selection Screens
********************************
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-003.
SELECT-OPTIONS : p_vkorg FOR vbrk-vkorg OBLIGATORY.
SELECT-OPTIONS : p_vtweg FOR vbrk-vtweg.
SELECT-OPTIONS : p_dev FOR vbrk-spart OBLIGATORY.
SELECT-OPTIONS : p_cust FOR kna1-kunnr .
SELECT-OPTIONS : p_regio FOR vbrk-regio.
SELECT-OPTIONS : matnr FOR vbrp-matnr.
SELECT-OPTIONS : bwtar FOR vbrp-bwtar.
*---------------------------------------
SELECT-OPTIONS : p_date FOR vbrk-fkdat.
SELECT-OPTIONS : p_type FOR vbrk-fkart.
SELECT-OPTIONS : p_rfbsk FOR vbrk-rfbsk.
SELECT-OPTIONS: s_werks FOR vbrp-werks,
s_vstel FOR likp-vstel.
SELECTION-SCREEN : END OF BLOCK b1.
SELECTION-SCREEN : BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETER : all_dtl RADIOBUTTON GROUP rad2 ,
cust_mat RADIOBUTTON GROUP rad2,
stat_mat RADIOBUTTON GROUP rad2,
cumt_t5 RADIOBUTTON GROUP rad2,
shp_mtnr RADIOBUTTON GROUP rad2,
alv_var TYPE slis_vari MEMORY ID it_alv_ap,
ch_cond AS CHECKBOX,
choracle AS CHECKBOX .
SELECTION-SCREEN : END OF BLOCK b3.
SELECTION-SCREEN : BEGIN OF BLOCK b2 WITH FRAME TITLE text-004.
PARAMETER : n_html RADIOBUTTON GROUP rad1,
w_html RADIOBUTTON GROUP rad1,
ip_add(15) TYPE c DEFAULT '192.168.0.2',
share(15) TYPE c DEFAULT 'TEMP\ZDISPM'.
SELECTION-SCREEN : END OF BLOCK b2.
SELECTION-SCREEN : SKIP 1.
SELECTION-SCREEN : BEGIN OF LINE,
: COMMENT 15(83) text-005.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN : BEGIN OF LINE,
: COMMENT 15(83) text-006.
SELECTION-SCREEN : END OF LINE.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR alv_var.
PERFORM alv_variant_f4 CHANGING alv_var.
* ----
********************************
*** Start of Selection
********************************
START-OF-SELECTION.
PERFORM select_data.
IF cumt_t5 = 'X'.
SORT itab BY kunag matnr ASCENDING fkdat DESCENDING.
APPEND LINES OF itab TO jtab.
REFRESH itab.
PERFORM cumt_t5.
ENDIF.
IF all_dtl = 'X' AND choracle = 'X'.
PERFORM transf_2_oracle .
ELSE.
PERFORM print_data.
ENDIF .
IF w_html = 'X'.
PERFORM download_file .
ENDIF.
END-OF-SELECTION.
FORM select_data.
DATA: b_likp,
sindx TYPE i.
REFRESH itab.
CLEAR itab.
SELECT sfakn
INTO CORRESPONDING FIELDS OF TABLE canc_doc
FROM vbrk
WHERE kunrg IN p_cust AND
fkdat IN p_date AND
spart IN p_dev AND
vkorg IN p_vkorg AND
vtweg IN p_vtweg AND
rfbsk IN p_rfbsk AND
regio IN p_regio AND
fkart IN ('S1','S2','S3').
SELECT b~vbeln
b~posnr
a~fkdat
a~spart
a~kunag
a~vkorg
* a~MWSBK
* a~NETWR
a~rfbsk
a~fkart
a~vtweg
a~bzirk
a~kurrf
a~waerk
a~knumv "condition no added by
*------ VBRP ------------*
b~fkimg " Actual Billed Qty
b~netwr "Net Value
b~mwsbp "Tax Value
b~matnr "Material
b~arktx "Description
b~prodh "Product Hierarchy
b~vkgrp "Sales Group
b~ktgrm " Acc. Ass. Group
b~aubel " Sales document no
b~aupos " A
b~vgbel
b~vgpos
b~vgtyp
b~matnr " material code"add by jahnavee on 31/8/06
b~posnr " material position added by
b~pstyv " Item categ added by on
b~fklmg
b~vrkme
*--------------------------*
INTO CORRESPONDING FIELDS OF TABLE itab
FROM vbrk AS a INNER JOIN vbrp AS b
ON a~vbeln = b~vbeln
WHERE a~kunrg IN p_cust AND
a~fkdat IN p_date AND
a~spart IN p_dev AND
a~vkorg IN p_vkorg AND
a~vtweg IN p_vtweg AND
a~rfbsk IN p_rfbsk AND
a~regio IN p_regio AND
a~fkart IN p_type AND
b~werks IN s_werks AND
b~bwtar IN bwtar AND
b~matnr IN matnr."
* ENDSELECt " FOR PERFORMANCE
SORT itab BY vbeln.
LOOP AT canc_doc INTO canc_doc.
DELETE itab WHERE vbeln = canc_doc-sfakn.
ENDLOOP.
DESCRIBE TABLE itab LINES tot_records.
IF tot_records NE 0.
LOOP AT itab.
sindx = sy-tabix.
.
SELECT SINGLE lrnum lrdat vehno cart remark lifnr
INTO (itab-lrnum , itab-lrdat, itab-vehno , itab-cart , itab-remark , itab-trcode )
FROM zsd_inv_detail
WHERE vbeln = itab-vbeln.
SELECT SINGLE extwg FROM mara
INTO (itab-extwg)
WHERE matnr = itab-matnr.
SELECT SINGLE kbetr kwert FROM konv
INTO (itab-kbetr,itab-kwert)
WHERE knumv = itab-knumv AND
kposn = itab-posnr AND
kschl = 'ZPR0' .
SELECT SINGLE kbetr FROM konv
INTO (itab-kbetr8)
WHERE knumv = itab-knumv AND
kposn = itab-posnr AND
kschl = 'ZPR1' .
IF itab-kbetr8 IS NOT INITIAL.
itab-kbetr8 = itab-kbetr8 / 10.
ENDIF.
SELECT SINGLE kbetr kwert FROM konv
INTO (itab-kbetr1,itab-kwert1)
WHERE knumv = itab-knumv AND
kposn = itab-posnr AND
kschl = 'ZDIR' .
IF itab-kbetr1 IS NOT INITIAL.
itab-kbetr1 = itab-kbetr1 / 10.
ENDIF.
SELECT SINGLE kbetr kwert FROM konv
INTO (itab-kbetr6,itab-kwert6)
WHERE knumv = itab-knumv AND
kposn = itab-posnr AND
kschl = 'ZDIA' .
IF itab-kbetr6 IS NOT INITIAL.
itab-kbetr6 = itab-kbetr6 / 10.
ENDIF.
SELECT SINGLE kbetr kwert FROM konv
INTO (itab-kbetr7,itab-kwert7)
WHERE knumv = itab-knumv AND
kposn = itab-posnr AND
kschl = 'ZDIN' .
IF itab-kbetr7 IS NOT INITIAL.
itab-kbetr7 = itab-kbetr7 / 10.
ENDIF.
IF ch_cond = 'X'.
SELECT SINGLE kwert FROM konv
INTO (itab-kwert2)
WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl = 'ZDIE'.
SELECT SINGLE kbetr kwert FROM konv
INTO (itab-kbetr3,itab-kwert3)
WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl = 'JMOD'.
IF itab-kbetr3 IS NOT INITIAL.
itab-kbetr3 = itab-kbetr3 / 10.
ENDIF.
SELECT SINGLE kbetr kwert FROM konv
INTO (itab-kbetr4,itab-kwert4)
WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl = 'JECS'.
IF itab-kbetr4 IS NOT INITIAL.
itab-kbetr4 = itab-kbetr4 / 10.
ENDIF.
SELECT SINGLE kbetr kwert FROM konv
INTO (itab-kbetr5,itab-kwert5)
WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl = 'JA1X'.
IF itab-kbetr5 IS NOT INITIAL.
itab-kbetr5 = itab-kbetr5 / 10.
ENDIF.
ENDIF.
*
SELECT SINGLE erdat erzet FROM vbak INTO (itab-erdat,itab-erzet)
WHERE vbeln = itab-aubel.
SELECT SINGLE vgbel FROM vbak INTO (itab-quotation)
WHERE vbeln = itab-aubel
AND vbtyp = 'C'.
SELECT SINGLE kwmeng kdmat FROM vbap INTO (itab-kwmeng, itab-kdmat)
WHERE vbeln = itab-aubel
AND posnr = itab-aupos.
SELECT SINGLE erdat erzet FROM vbrk INTO (itab-erdat_i,itab-erzet_i)
WHERE vbeln = itab-vbeln.
SELECT SINGLE name1 mcod3
INTO CORRESPONDING FIELDS OF itab
FROM kna1
WHERE kunnr = itab-kunag.
SELECT SINGLE a~kunn2 b~name1
INTO (itab-pcode,itab-agent)
FROM knvp AS a
INNER JOIN kna1 AS b
ON a~kunn2 = b~kunnr
WHERE a~kunnr = itab-kunag AND
a~vkorg = itab-vkorg AND
a~vtweg = itab-vtweg AND
a~spart = itab-spart AND
a~parvw = 'PC'.
SELECT SINGLE a~lifnr b~name1
INTO (itab-trcode,itab-trname)
FROM knvp AS a
INNER JOIN lfa1 AS b
ON a~lifnr = b~lifnr
WHERE a~kunnr = itab-kunag AND
a~vkorg = itab-vkorg AND
a~vtweg = itab-vtweg AND
a~spart = itab-spart AND
a~parvw = 'TU'.
SELECT SINGLE kvgr5
INTO CORRESPONDING FIELDS OF itab
FROM knvv
WHERE kunnr = itab-kunag.
SELECT SINGLE vgbel kvgr4 werks prsdt
ktgrm INTO CORRESPONDING FIELDS OF itab
FROM vbrp
WHERE vbeln = itab-vbeln AND
posnr = itab-posnr.
*
IF itab-vgtyp = 'H'.
SELECT SINGLE bwtar
INTO CORRESPONDING FIELDS OF itab
FROM vbap
WHERE vbeln = itab-aubel AND
posnr = itab-aupos AND
bwtar IN bwtar.
IF sy-subrc <> 0.
itab-valflag = 'X'.
ENDIF.
SELECT SINGLE bwtar
INTO CORRESPONDING FIELDS OF itab
FROM vbap
WHERE vbeln = itab-aubel AND
posnr = itab-aupos.
ELSE.
SELECT SINGLE bwtar
INTO CORRESPONDING FIELDS OF itab
FROM lips
WHERE vbeln = itab-vgbel AND
posnr = itab-vgpos AND
bwtar IN bwtar.
IF sy-subrc <> 0.
itab-valflag = 'X'.
ENDIF.
SELECT SINGLE bwtar
INTO CORRESPONDING FIELDS OF itab
FROM lips
WHERE vbeln = itab-vgbel AND
posnr = itab-vgpos .
ENDIF.
SELECT SINGLE importdtl FROM zsd_mat_vtyp_dtl
INTO itab-importdtl
WHERE matnr = itab-matnr
AND bwtar = itab-bwtar
AND validfrom <= itab-fkdat
AND validto >= itab-fkdat.
SELECT SINGLE prsdt
INTO (itab-prsdt1)
FROM vbkd
WHERE vbeln = itab-aubel
AND posnr = itab-posnr.
IF sy-subrc = '4'.
SELECT SINGLE prsdt
INTO (itab-prsdt1)
FROM vbkd
WHERE vbeln = itab-aubel.
ENDIF.
SELECT SINGLE wadat_ist wadat vkbur vstel
INTO CORRESPONDING FIELDS OF itab
FROM likp
WHERE
vbeln = itab-vgbel
AND vstel IN s_vstel.
IF sy-subrc = 0.
b_likp = 'X'.
ELSE.
IF itab-fkart EQ 'ZR1' OR
itab-fkart EQ 'RE' OR
itab-fkart EQ 'ZR2' OR
itab-fkart EQ 'ZRNR' OR
itab-fkart EQ 'ZRWO'.
b_likp = 'X'.
ELSE.
b_likp = ''.
ENDIF.
ENDIF.
IF NOT itab-wadat_ist = space. "Actual Goods Mov. Date
itab-wadat = itab-wadat_ist.
ENDIF.
*
SELECT SINGLE vbeln FROM vbfa
INTO (itab-pvbeln)
WHERE vbelv = itab-vgbel AND
vbtyp_n = 'R'.
CONCATENATE itab-pvbeln itab-wadat+0(4) INTO itab-pgi_year.
SELECT SINGLE belnr FROM bkpf
INTO (itab-pbelnr )
WHERE awkey = itab-pgi_year AND
awtyp = 'MKPF'.
SELECT SINGLE bstkd FROM vbkd INTO CORRESPONDING FIELDS OF
itab WHERE vbeln = itab-aubel.
*----------------------------------------------------
* Net Amt & Tax Amt Sign ( + ) & (- )
* For Billing Type Sign to be made -ve
* G2 : Credit Memo
* RE : Credit Memo
*ZRNR : Credit Memo
IF itab-fkart EQ 'G2' OR
itab-fkart EQ 'RE' OR
itab-fkart EQ 'ZRNR' OR
itab-fkart EQ 'ZR1' OR
itab-fkart EQ 'ZR2' OR
itab-fkart EQ 'ZRWO'.
itab-netwr = itab-netwr * -1.
itab-mwsbp = itab-mwsbp * -1.
itab-fkimg = itab-fkimg * -1.
ENDIF.
*-----------------------------------------------------
*
PERFORM chq_text.
PERFORM lr_text.
itab-netvalue = itab-netwr + itab-mwsbp.
MODIFY itab.
IF b_likp = '' .
DELETE itab INDEX sindx.
ENDIF.
CLEAR itab.
ENDLOOP.
*
DELETE itab WHERE valflag = 'X'.
*------
ELSE.
MESSAGE s001(zobjmsg) WITH 'No Records found'.
ENDIF.
IF all_dtl NE 'X' AND cumt_t5 NE 'X'.
* Customer - Material wise
IF cust_mat = 'X'.
SORT itab BY kunag matnr.
* State - Material wise
ELSEIF stat_mat = 'X'.
SORT itab BY kvgr5 matnr.
* Shipping point + Material
ELSEIF shp_mtnr = 'X'.
SORT itab BY vstel matnr.
ENDIF.
LOOP AT itab.
AT END OF matnr.
SUM.
dfkimg = itab-fkimg.
dnetvalue = itab-netvalue .
dkwmeng = itab-kwmeng.
ENDAT.
itab-c_fkimg = dfkimg.
itab-c_netvalue = dnetvalue.
itab-c_kwmeng = dkwmeng.
dfkimg = 0.
dnetvalue = 0.
dkwmeng = 0.
MODIFY itab.
CLEAR itab.
ENDLOOP.
DELETE itab WHERE ( c_netvalue = '0.00' ).
ENDIF.
ENDFORM. "select_data
FORM print_data.
IF n_html EQ 'X'.
*Customer
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '01'.
wa_fieldcat-fieldname = 'KUNAG'.
wa_fieldcat-seltext_l = 'Customer'.
APPEND wa_fieldcat TO ls_fieldcat.
*Customer Name
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '02'.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_l = 'Customer Name'.
APPEND wa_fieldcat TO ls_fieldcat.
*Customer City
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '03'.
wa_fieldcat-fieldname = 'MCOD3'.
wa_fieldcat-seltext_l = 'Customer City'.
APPEND wa_fieldcat TO ls_fieldcat.
*Material
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '04'.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_l = 'Material'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '05'.
wa_fieldcat-fieldname = 'EXTWG'.
wa_fieldcat-seltext_l = 'External Material Group'.
APPEND wa_fieldcat TO ls_fieldcat.
*--
*Material Description
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '06'.
wa_fieldcat-fieldname = 'ARKTX'.
wa_fieldcat-seltext_l = 'Material Description'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '21'.
wa_fieldcat-fieldname = 'KVGR5'.
wa_fieldcat-seltext_l = 'State'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '22'.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-seltext_l = 'Plant'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '23'.
wa_fieldcat-fieldname = 'BZIRK'.
wa_fieldcat-seltext_l = 'Sales District'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '24'.
wa_fieldcat-fieldname = 'VKBUR'.
wa_fieldcat-seltext_l = 'Sales Office'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '25'.
wa_fieldcat-fieldname = 'VKGRP'.
wa_fieldcat-seltext_l = 'Sales Group'.
APPEND wa_fieldcat TO ls_fieldcat.
* Account Assignment Group
wa_fieldcat-col_pos = '29'.
wa_fieldcat-fieldname = 'KTGRM'.
wa_fieldcat-seltext_l = 'Acct Ass Grp'.
APPEND wa_fieldcat TO ls_fieldcat.
* Product Hierarchy
wa_fieldcat-col_pos = '26'.
wa_fieldcat-fieldname = 'PRODH'.
wa_fieldcat-seltext_l = 'Product Hierarchy'.
APPEND wa_fieldcat TO ls_fieldcat.
*
* Item Categ
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '27'.
wa_fieldcat-fieldname = 'PSTYV'.
wa_fieldcat-seltext_l = 'Item Category'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '30'.
wa_fieldcat-fieldname = 'KDMAT'.
wa_fieldcat-seltext_l = 'Customer Material NO.'.
APPEND wa_fieldcat TO ls_fieldcat.
*---------
IF all_dtl = 'X' OR cumt_t5 = 'X' OR shp_mtnr = 'X'.
*Invoice Date
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '05'.
wa_fieldcat-fieldname = 'FKDAT'.
wa_fieldcat-seltext_l = 'Date'.
APPEND wa_fieldcat TO ls_fieldcat.
*Invoice No
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '10'.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-seltext_l = 'InvoiceNo'.
wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '11'.
wa_fieldcat-fieldname = 'AUBEL'.
wa_fieldcat-seltext_l = 'Sales Order'.
wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '13'.
wa_fieldcat-fieldname = 'SPART'.
wa_fieldcat-seltext_l = 'REMARK'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '14'.
wa_fieldcat-fieldname = 'FKART'.
wa_fieldcat-seltext_l = 'Bill.Type'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '15'.
wa_fieldcat-fieldname = 'VGBEL'.
wa_fieldcat-seltext_l = 'Delivery No'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '16'.
wa_fieldcat-fieldname = 'WADAT'.
wa_fieldcat-seltext_l = 'Delivery Date'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '17'.
wa_fieldcat-fieldname = 'KVGR4'.
wa_fieldcat-seltext_l = 'No.of Packages'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '18'.
wa_fieldcat-fieldname = 'LRDTL'.
wa_fieldcat-seltext_l = 'LR Detail'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '19'.
wa_fieldcat-fieldname = 'RFBSK'.
wa_fieldcat-seltext_l = 'Posting Status'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '20'.
wa_fieldcat-fieldname = 'CHQDTL'.
wa_fieldcat-seltext_l = 'Cheque Detail'.
APPEND wa_fieldcat TO ls_fieldcat.
* Valuation Type
wa_fieldcat-col_pos = '28'.
wa_fieldcat-fieldname = 'BWTAR'.
wa_fieldcat-seltext_l = 'Val.Type'.
APPEND wa_fieldcat TO ls_fieldcat.
* Billed Qty
wa_fieldcat-col_pos = '27'.
wa_fieldcat-fieldname = 'FKIMG'.
wa_fieldcat-seltext_l = 'Billed Qty'.
APPEND wa_fieldcat TO ls_fieldcat.
******added by (as per )
wa_fieldcat-col_pos = '28'.
wa_fieldcat-fieldname = 'VRKME'.
wa_fieldcat-seltext_l = 'UOM.'.
APPEND wa_fieldcat TO ls_fieldcat.
***********
******added by (as per sir)
wa_fieldcat-col_pos = '29'.
wa_fieldcat-fieldname = 'IMPORTDTL'.
wa_fieldcat-seltext_l = 'Import Details'.
APPEND wa_fieldcat TO ls_fieldcat.
*******
* Total Net Amount ( net + tax )
wa_fieldcat-col_pos = '29' .
wa_fieldcat-fieldname = 'NETVALUE'.
wa_fieldcat-seltext_l = 'NETVALUE'.
APPEND wa_fieldcat TO ls_fieldcat.
* Currency in
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '07'.
wa_fieldcat-fieldname = 'WAERK'.
wa_fieldcat-seltext_l = 'Currency'.
APPEND wa_fieldcat TO ls_fieldcat.
* Exchange Rate
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '08'.
wa_fieldcat-fieldname = 'KURRF'.
wa_fieldcat-seltext_l = 'Exchange Rate'.
APPEND wa_fieldcat TO ls_fieldcat.
* Net Value
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '06'.
wa_fieldcat-fieldname = 'NETWR'.
wa_fieldcat-seltext_l = 'NET Amt'.
APPEND wa_fieldcat TO ls_fieldcat.
*Tax Amount
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '09'.
wa_fieldcat-fieldname = 'MWSBP'.
wa_fieldcat-seltext_l = 'Tax Amt'.
APPEND wa_fieldcat TO ls_fieldcat.
* Net Rate by on 05.08.09
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '10'.
wa_fieldcat-fieldname = 'KBETR8'.
wa_fieldcat-seltext_l = 'Net Rate'.
APPEND wa_fieldcat TO ls_fieldcat.
* ---------------------------*
* ZPR0 MRP
* ---------------------------*
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '35' .
wa_fieldcat-fieldname = 'KBETR'.
wa_fieldcat-seltext_l = 'MRP_ZPR0'.
APPEND wa_fieldcat TO ls_fieldcat.
* ---------------------------*
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '36' .
wa_fieldcat-fieldname = 'KWERT'.
wa_fieldcat-seltext_l = 'ZPR0_Value'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '37' .
wa_fieldcat-fieldname = 'KBETR1'.
wa_fieldcat-seltext_l = 'ZDIR_Rate'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '38' .
wa_fieldcat-fieldname = 'KWERT1'.
wa_fieldcat-seltext_l = 'ZDIR_Value'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '50'.
wa_fieldcat-fieldname = 'LRNUM'.
wa_fieldcat-seltext_l = 'LR NUMBER'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '51'.
wa_fieldcat-fieldname = 'LRDAT'.
wa_fieldcat-seltext_l = 'LR DATE'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '52'.
wa_fieldcat-fieldname = 'VEHNO'.
wa_fieldcat-seltext_l = 'VEHICLE NUMBER'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '53'.
wa_fieldcat-fieldname = 'CART'.
wa_fieldcat-seltext_l = 'No.Of.Box'.
APPEND wa_fieldcat TO ls_fieldcat.
*------------------
IF sy-uname = 'SD-LOG-AHD'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '46' .
wa_fieldcat-fieldname = 'KBETR6'.
wa_fieldcat-seltext_l = 'ZDIA_Rate'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '47' .
wa_fieldcat-fieldname = 'KWERT6'.
wa_fieldcat-seltext_l = 'ZDIA_Value'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '48' .
wa_fieldcat-fieldname = 'KBETR7'.
wa_fieldcat-seltext_l = 'ZDIN_Rate'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '49' .
wa_fieldcat-fieldname = 'KWERT7'.
wa_fieldcat-seltext_l = 'ZDIN_Value'.
APPEND wa_fieldcat TO ls_fieldcat.
ENDIF.
*-
IF ch_cond = 'X'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '39' .
wa_fieldcat-fieldname = 'KWERT2'.
wa_fieldcat-seltext_l = 'Assessable value'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '40' .
wa_fieldcat-fieldname = 'KBETR3'.
wa_fieldcat-seltext_l = 'Rate of BED'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '41' .
wa_fieldcat-fieldname = 'KWERT3'.
wa_fieldcat-seltext_l = 'BED value'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '42' .
wa_fieldcat-fieldname = 'KBETR4'.
wa_fieldcat-seltext_l = 'Rate of ECESS'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '43' .
wa_fieldcat-fieldname = 'KWERT4'.
wa_fieldcat-seltext_l = 'ECESS value'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '44' .
wa_fieldcat-fieldname = 'KBETR5'.
wa_fieldcat-seltext_l = 'Rate of SHE Cess'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-col_pos = '45' .
wa_fieldcat-fieldname = 'KWERT5'.
wa_fieldcat-seltext_l = 'SHE value'.
APPEND wa_fieldcat TO ls_fieldcat.
ENDIF.
*-----------------------------*
ELSE .
*
wa_fieldcat-col_pos = '27'.
wa_fieldcat-fieldname = 'C_FKIMG'.
wa_fieldcat-seltext_l = 'Billed Qty'.
APPEND wa_fieldcat TO ls_fieldcat.
* Total Net Amount ( net + tax )
wa_fieldcat-col_pos = '30' .
wa_fieldcat-fieldname = 'C_NETVALUE'.
wa_fieldcat-seltext_l = 'NETVALUE'.
APPEND wa_fieldcat TO ls_fieldcat.
ENDIF.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'ERDAT_I'.
wa_fieldcat-seltext_l = 'Invoice Creation Date'.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'ERZET_I'.
wa_fieldcat-seltext_l = 'Invoice Creation Time'.
wa_fieldcat-outputlen = 8.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'ERDAT'.
wa_fieldcat-seltext_l = 'Sales Order Creation Date'.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'ERZET'.
wa_fieldcat-seltext_l = 'Sales Order Creation Time'.
wa_fieldcat-outputlen = 8.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'KWMENG'.
wa_fieldcat-seltext_l = 'Sales Order Qty.'.
wa_fieldcat-outputlen = 16.
APPEND wa_fieldcat TO ls_fieldcat.
CLEAR :wa_fieldcat-outputlen.
*-----
wa_fieldcat-col_pos = '31'.
wa_fieldcat-fieldname = 'PCODE'.
wa_fieldcat-seltext_l = 'P.C. Code'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '32'.
wa_fieldcat-fieldname = 'AGENT'.
wa_fieldcat-seltext_l = 'Payment Collection Agent'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '33'.
wa_fieldcat-fieldname = 'TRCODE'.
wa_fieldcat-seltext_l = 'Trans Code'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '34'.
wa_fieldcat-fieldname = 'TRNAME'.
wa_fieldcat-seltext_l = 'Transporter Name'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-col_pos = '37'.
wa_fieldcat-fieldname = 'VSTEL'.
wa_fieldcat-seltext_l = 'Shipping point'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'PRSDT'.
wa_fieldcat-seltext_l = 'Invoice Pricing Date.'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'PRSDT1'.
wa_fieldcat-seltext_l = 'Pricing Date.'.
APPEND wa_fieldcat TO ls_fieldcat.
*------------------------------------------
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'VTWEG'.
wa_fieldcat-seltext_l = 'Distri.Channel'.
APPEND wa_fieldcat TO ls_fieldcat.
*------------------------------------------
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'FKLMG'.
wa_fieldcat-seltext_l = 'Bil.qty SKU.'.
APPEND wa_fieldcat TO ls_fieldcat.
**----PGI document
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'PVBELN'.
wa_fieldcat-seltext_l = 'PGI document'.
APPEND wa_fieldcat TO ls_fieldcat.
***----Delivery Accounting Document
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'PBELNR'.
wa_fieldcat-seltext_l = 'Delivery Accounting Document'.
APPEND wa_fieldcat TO ls_fieldcat.
*-------------
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'BSTKD'.
wa_fieldcat-seltext_l = 'PurchaseOrderNo'.
APPEND wa_fieldcat TO ls_fieldcat.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-fieldname = 'QUOTATION'.
wa_fieldcat-seltext_l = 'Quotation No'.
APPEND wa_fieldcat TO ls_fieldcat.
*---
HIDE : itab.
DATA : hide TYPE slis_layout_alv .
DATA: u_er_layout TYPE slis_layout_alv,
iis_variant TYPE disvariant,
ii_save.
u_er_layout-zebra = 'X'.
u_er_layout-colwidth_optimize = 'X'.
u_er_layout-reprep = 'X'.
u_er_layout-f2code = 'HIT'.
u_er_layout-group_change_edit = 'X'.
u_er_layout-key_hotspot = 'X'.
u_er_layout-get_selinfos = 'X'.
u_er_layout-no_author = 'X'.
u_er_layout-hotspot_fieldname = 'X'.
IF sy-uname = 'DEVELOPER' OR sy-uname = 'NPIL'.
ii_save = 'A'.
ELSE.
ii_save = 'U'.
ENDIF.
IF cust_mat = 'X'.
iis_variant-variant = '/CUST_MAT'.
ELSEIF cumt_t5 = 'X'.
iis_variant-variant = '/CUMT_T5'.
ELSEIF shp_mtnr = 'X'.
iis_variant-variant = '/SHP_MTNR'.
ELSEIF stat_mat = 'X'.
iis_variant-variant = '/STAT_MAT'.
ELSE.
iis_variant-variant = alv_var.
iis_variant-username = sy-uname.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZDISPATCH_MATERIALWISE'
i_callback_user_command = 'ALV_CALLBACK'
is_layout = u_er_layout
it_fieldcat = ls_fieldcat
i_default = 'X'
i_save = ii_save
is_variant = iis_variant
TABLES
t_outtab = itab.
ENDIF.
ENDFORM. "print_data
FORM chq_text.
DATA name LIKE thead-tdname.
REFRESH itab_chq.
CLEAR itab_chq.
DATA : chq_var(100) TYPE c.
name = itab-vbeln.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = '0001'
language = 'E'
name = name
object = 'VBBK'
TABLES
lines = itab_chq
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
DESCRIBE TABLE itab_chq LINES ln.
IF ln > 0.
LOOP AT itab_chq.
CONCATENATE chq_var ' - ' itab_chq-tdline INTO chq_var.
ENDLOOP.
itab-chqdtl = chq_var.
ENDIF.
ENDFORM. "chq_text
*** LR_TEXT
FORM lr_text.
REFRESH itab_lr.
CLEAR itab_lr.
DATA name LIKE thead-tdname.
DATA : lr_var(100) TYPE c.
name = itab-vbeln.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = '0002'
language = 'E'
name = name
object = 'VBBK'
TABLES
lines = itab_lr
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
DESCRIBE TABLE itab_lr LINES ln.
IF ln > 0.
LOOP AT itab_lr.
CONCATENATE lr_var ' - ' itab_lr-tdline INTO lr_var.
ENDLOOP.
itab-lrdtl = lr_var.
ENDIF.
ENDFORM. "lr_text
TOP-OF-PAGE.
WRITE: /(30) 'abc '.
SKIP.
WRITE:/(30) 'Dispatch Status Report',
(15) 'Created as on :',
(17) sy-datum.
WRITE: / sy-uline.
FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
WRITE: /(10) 'Cust.Code',sy-vline.
SET LEFT SCROLL-BOUNDARY.
WRITE: (35) 'Cust.Name', sy-vline,
(25) 'Cust.City',sy-vline, "added
(18) 'Material', sy-vline,
(40) 'Material Description', sy-vline,
(10) 'Incoice Dt', sy-vline,
(13) 'Net Amount', sy-vline,
(08) 'Currancy', sy-vline,
(15) 'Exchange Rate', sy-vline,
(15) 'Tax amount', sy-vline,
(10) 'Invoice No', sy-vline,
(10) 'sales ord', sy-vline,
(12) 'S.O Creat Dt', sy-vline,
(06) 'Remark', sy-vline,
(10) 'Bill.Type', sy-vline,
(12) 'Delivery No', sy-vline,
(10) 'Deli.Dt', sy-vline,
(12) 'No.Of.Pack', sy-vline,
(40) 'LR Text', sy-vline,
(02) 'St', sy-vline,
(60) 'Cheque Deatil', sy-vline,
(05) 'State', sy-vline,
(05) 'plant', sy-vline,
(09) 'Sal.Dist.', sy-vline,
(10) 'Sal.Office', sy-vline,
(09) 'Sal.Grp.', sy-vline,
(18) 'Product High', sy-vline,
(16) 'Bill Quantity', sy-vline,
(10) 'Valu Type', sy-vline,
(12) 'Acct.Ass.Grp', sy-vline,
(13) 'Net Value', sy-vline,
(10) 'pc code', sy-vline,
(35) 'Payment Collection agent', sy-vline,
(10) 'Tran.Code', sy-vline,
(35) 'Transpoter Name', sy-vline,
(10) 'LR NUMBER',sy-vline,
(10) 'LR DATE',sy-vline,
(13) 'VEHICLE NUMBER',sy-vline,
(5) 'BOX',sy-vline.
*--
WRITE: / sy-uline.
END-OF-PAGE.
AT LINE-SELECTION.
.
SET PARAMETER ID 'VF' FIELD itab-vbeln.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
AT USER-COMMAND.
*&---------------------------------------------------------------------*
*& Form download_file
*&---------------------------------------------------------------------*
FORM download_file.
DATA: BEGIN OF it_attach OCCURS 0,
line(4069) TYPE c,
END OF it_attach.
DATA: text(255) TYPE c.
FIELD-SYMBOLS: <fs>.
DATA : det TYPE REF TO cl_abap_structdescr,
wa LIKE LINE OF det->components.
IF p_vkorg-high NE space.
CONCATENATE p_vkorg-low '-' p_vkorg-high INTO sorg.
ELSE.
sorg = p_vkorg-low.
ENDIF.
IF p_dev-high NE space.
CONCATENATE p_dev-low '-' p_dev-high INTO div.
ELSE.
div = p_dev-low.
ENDIF.
IF p_regio NE space.
CONCATENATE p_regio-low '-' p_regio-high INTO reg.
ELSE.
reg = p_regio-low.
ENDIF.
IF reg NE space.
CONCATENATE div '-' reg INTO div.
ENDIF.
CONCATENATE '\\' ip_add '\' share '\' sorg '-' div '-'
sy-datum+6(2) '.' sy-datum+4(2) '.' sy-datum+2(2)
'.csv' INTO fpath.
det ?= cl_abap_typedescr=>describe_by_data( itab ).
REFRESH: it_attach.
CLEAR :it_attach.
OPEN DATASET fpath FOR OUTPUT IN TEXT MODE.
IF sy-subrc = 0.
LOOP AT det->components INTO wa.
ASSIGN COMPONENT 'NAME' OF STRUCTURE wa TO <fs>.
IF sy-subrc NE 0.
EXIT.
ENDIF.
IF it_attach IS INITIAL.
it_attach = <fs>.
ELSE.
text = <fs>.
CONDENSE text.
CONCATENATE it_attach text INTO it_attach SEPARATED BY ','.
ENDIF.
ENDLOOP.
TRANSFER it_attach TO fpath.
LOOP AT itab .
CLEAR :it_attach.
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE itab TO <fs>.
IF sy-subrc NE 0.
EXIT.
ENDIF.
IF sy-index NE 0.
IF it_attach IS INITIAL.
it_attach = <fs>.
ELSE.
text = <fs>.
CONDENSE text.
CONCATENATE it_attach text INTO it_attach SEPARATED BY ','.
ENDIF.
ENDIF.
ENDDO.
TRANSFER it_attach TO fpath.
ENDLOOP.
ENDIF.
CLOSE DATASET fpath.
ENDFORM. " download_file
*&---------------------------------------------------------------------*
*& Form cumt_t5
*&---------------------------------------------------------------------*
FORM cumt_t5.
LOOP AT jtab.
icoll-kunag = jtab-kunag.
icoll-matnr = jtab-matnr.
COLLECT icoll.
ENDLOOP.
LOOP AT icoll.
int1 = 1.
LOOP AT jtab WHERE kunag = icoll-kunag
AND matnr = icoll-matnr.
IF int1 <= 5.
APPEND LINES OF jtab FROM sy-tabix TO sy-tabix TO itab .
int1 = int1 + 1.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDFORM. " cumt_t5
*&---------------------------------------------------------------------*
*& Form ALV_Callback
*&---------------------------------------------------------------------*
FORM alv_callback USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CHECK rs_selfield-fieldname EQ 'VBELN'.
SET PARAMETER ID 'VF' FIELD rs_selfield-value.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
ENDFORM. "ALV_callback
*&---------------------------------------------------------------------*
*& Form TRANSF_2_ORACLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM transf_2_oracle .
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
error_text TYPE string .
EXEC SQL.
CONNECT TO :'ZSFA'
ENDEXEC.
IF sy-subrc EQ 0 .
TRY.
EXEC SQL .
DELETE FROM SAPDISPDTL_MAT
ENDEXEC .
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.
LOOP AT itab.
TRY.
*?to insert
EXEC SQL.
**?then you can insert here the normal SAP SQL commands
INSERT into SAPDISPDTL_MAT
(
CALDAY,SORG, DCHANNEL, DIVISION, DISTRIBUTOR,
SALESAMT, INVOICENO, REGION,NOOFBOXES, LRNO, LRDATE, PLANT,
MATNR, QTY
)
values (
trim(:itab-fkdat),trim(:itab-vkorg) ,trim(:itab-vtweg),trim(:itab-spart),trim(to_number(:itab-kunag)),
trim(to_number(:itab-netwr)), trim(:itab-vbeln) , trim(:itab-kvgr5) ,trim(:itab-CART) ,trim(:itab-LRNUM) ,trim(:itab-LRDAT) ,trim(:itab-WERKS) ,
trim(:itab-MATNR) , trim(:itab-FKIMG)
)
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.
ENDLOOP .
ENDIF .
ENDFORM. " TRANSF_2_ORACLE
*&---------------------------------------------------------------------*
*& Form ALV_VARIANT_F4
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_ALV_VAR text
*----------------------------------------------------------------------*
FORM alv_variant_f4 CHANGING p_alv_var.
DATA: rs_variant LIKE disvariant.
DATA nof4 TYPE c.
CLEAR nof4.
LOOP AT SCREEN.
IF screen-name = 'ALV_VAR'.
IF screen-input = 0.
nof4 = 'X'.
ENDIF.
ENDIF.
ENDLOOP.
rs_variant-report = 'ZDISPATCH_MATERIALWISE'.
rs_variant-username = sy-uname.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = rs_variant
i_save = 'A'
IMPORTING
es_variant = rs_variant
EXCEPTIONS
OTHERS = 1.
IF sy-subrc = 0 AND nof4 EQ space.
p_alv_var = rs_variant-variant.
ENDIF.
ENDFORM. " ALV_VARIANT_F4
Thanks
2012 Mar 31 8:32 PM
the report is irrelavant ... you said you have the ST05 then please understand the very basic things of the ST05, not the ABAP code of the SELECT is important but the statement details, first buttom! There you will see which statement goes to the database all the accutally used ranges.
RANGES are dynamic programming in ABAP and can be interpreted only after the database interface, = statement detail.
2012 Apr 01 1:03 PM
Hi,
as Siegfried said... the relevant details are still missing.
Kindly provide those and you will get help.
Kind regards,
Hermann
2012 Apr 02 3:19 PM
Please start a new thread with the relevant information.
thread locked.
Rob