2008 Nov 03 9:46 AM
Hello Abap Gurus;
I have a report of invoice list.In this report i want shade column
of the SD document: Delivery: Item data in which the shade is displayed.I m attaching the code also.
&----
*& Report ZRPT_SD_002
*&
&----
*&
*&
&----
REPORT zrpt_sd_002 LINE-SIZE 70 NO STANDARD PAGE HEADING
MESSAGE-ID zcvs.
************************************************************************
TABLES
************************************************************************
TABLES : vbak , " Sales Document Header
vbap , " Sales Document Item
kna1 , " Customer Master
vbkd , " Business Data
t023t , " MAterial Group
ekkn ,
mara ,
lfa1,
t134t , " Material Type
t024d , " MAterial Controller
t188t , " Zone
tvkbt , " Sales OFfice Text
tvaut , " Order Reason
vbfa , " Order Status
vbep , " Schedule Line Data
mska , " Sales Order Stock
vbrp , " Billing Header
afko , " Production Order
vbrk , " Billing Header
konv , " Condition Type Table
likp , " Delivery Header
knb1 ,
bkpf ,
cabnt , vttp,vttk,
tvro,vbpa.
************************************************************************
TYPE-POOLS
************************************************************************
TYPE-POOLS : slis.
************************************************************************
VARIABLE DECLARATION
************************************************************************
DATA : maktx LIKE makt-maktx,
knttp LIKE ekpo-knttp,
city1 LIKE adrc-city1,
tknum LIKE vttk-tknum,
name1 LIKE lfa1-name1,
lzone LIKE kna1-lzone,
mtbez LIKE t134t-mtbez,
wgbez LIKE t023t-wgbez, " Material Group Text
bezei LIKE tvaut-bezei, " Order Reason Text
kvgr1 LIKE vbak-kvgr1, " Product Manager
vtext LIKE t188t-vtext, " Product Manager Text
vtext2 LIKE t188t-vtext, " Regional Mgnr Text
vtext3 LIKE t188t-vtext, " Key Account Group
vtext4 LIKE t188t-vtext, " Special Group
vtext5 LIKE t188t-vtext, " Executive
vbezei LIKE tvkbt-bezei, " Sales office
matkl LIKE mara-matkl, " Material Group
mtart LIKE mara-mtart, " Material Type
erdat LIKE vbak-erdat,
audat LIKE vbak-audat,
auart LIKE vbak-auart,
bstkd LIKE vbkd-bstkd,
prdha LIKE mara-prdha,
belnr LIKE bkpf-belnr,
text(30) TYPE c ,
v_tabix LIKE sy-tabix,
lifnr LIKE lfa1-lifnr,
tname LIKE lfa1-name1,
bstdk LIKE vbkd-bstdk,
ordat LIKE vbrk-erdat,
stext LIKE tspat-vtext,
ktext LIKE t151t-ktext,
v_brtxt LIKE t016t-brtxt,
v_month TYPE i,p_mon TYPE i,
v_mname(20),p_mname(20),
v_ptext LIKE t052u-text1.
DATA : cl_data LIKE clobjdat OCCURS 0 WITH HEADER LINE.
DATA : i_cl_data LIKE clobjdat OCCURS 0 WITH HEADER LINE.
DATA : dmbtr LIKE bseg-dmbtr,
gbsta LIKE vbup-gbsta,
mbdat LIKE vbep-mbdat,
kalab LIKE mska-kalab,
bonba LIKE vbrp-bonba,
gltrp LIKE afko-gltrp,
mblnr LIKE mseg-mblnr,
budat LIKE mkpf-budat,
prtext LIKE t179t-vtext,
signi LIKE vttk-signi, " Truck Number
landx LIKE t005t-landx.
DATA : BEGIN OF tline OCCURS 0 .
INCLUDE STRUCTURE tline .
DATA : END OF tline .
DATA : soh LIKE rstxt-tdname ,
destcty(30).
DATA : klmeng LIKE vbap-klmeng.
DATA : tabix LIKE sy-tabix.
DATA : cmgst LIKE vbuk-cmgst,
option(10) TYPE c .
DATA : BEGIN OF delivery_header.
INCLUDE STRUCTURE likp.
DATA : END OF delivery_header.
DATA : BEGIN OF shipment_header.
INCLUDE STRUCTURE vttk.
DATA : END OF shipment_header.
DATA : BEGIN OF ivbrk OCCURS 0.
INCLUDE STRUCTURE vbrk.
DATA : brsch LIKE kna1-brsch,
name1 LIKE kna1-name1,
ort01 LIKE kna1-ort01.
DATA : END OF ivbrk.
DATA : v_regio LIKE kna1-regio,
v_brsch LIKE kna1-brsch,
v_ort01 LIKE kna1-ort01,
v_land1 LIKE kna1-land1.
***----
New For Days Start
DATA: len TYPE i.
DATA : BEGIN OF head OCCURS 0,
field(5),
text(30),
END OF head.
DATA : p_ftext1(30),
p_ftext2(30),
p_ftext3(30),
p_ftext4(30),
p_ftext5(30),
p_ftext6(30).
***----
New For Days End
***********************************************************************
DECLARATION FOR ALV
************************************************************************
DATA: fieldtab TYPE slis_t_fieldcat_alv,
heading TYPE slis_t_listheader,
layout TYPE slis_layout_alv,
events TYPE slis_t_event,
repname LIKE sy-repid,
f2code LIKE sy-ucomm VALUE '&ETA',
g_save(1) TYPE c,
g_variant LIKE disvariant,
gx_variant LIKE disvariant,
g_exit(1) TYPE c.
DATA: keyinfo TYPE slis_keyinfo_alv.
CONSTANTS: formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA: alv_print TYPE slis_print_alv.
DATA: alv_detail_func(30).
DATA: g_pos TYPE i.
DATA: tabname TYPE slis_tabname.
************************************************************************
INTERNAL TABLES DECLARATION
************************************************************************
DATA : BEGIN OF ivbeln OCCURS 1,
vbeln LIKE vbrk-vbeln, " Billing Document
posnr LIKE vbrp-posnr, " Billing Doc Item
fkart LIKE vbrk-fkart, " Billing Type
vbtyp LIKE vbrk-vbtyp, " SD Docnument Category
vbtyp_desc(35) , " Vbtyp description
vkgrp LIKE vbrp-vkgrp, " Sales Group
fkdat LIKE vbrk-fkdat, " Billing Date
matnr LIKE vbrp-matnr, " Material
arktx LIKE vbrp-arktx, " Material Desc
kunnr LIKE vbrk-kunag, " Customer Code
name1 LIKE kna1-name1, " Customer Name
ort01 LIKE kna1-ort01, " Customer City
fkimg LIKE vbrp-fkimg, " Billed Qty
werks LIKE vbrp-werks, " Plant
pl_land1 LIKE t001w-land1, " Plant Country
pl_regio LIKE t001w-regio, " Plant Region Code
regio_tx LIKE t005u-bezei, " Plant Region Name
netwr LIKE vbrp-netwr, " Net Price
vkorg LIKE vbrk-vkorg, " Sales Organisation
vtext LIKE tvkot-vtext, " Sales Org.Text
vtweg LIKE vbrk-vtweg, " Distribution Channel
vttxt LIKE tvtwt-vtext, " Dist.Channel Text
vkbur LIKE vbrp-vkbur, " Sales Office
vbezei LIKE tvkbt-bezei, " Sales Office Text
spart LIKE vbrp-spart, " Division
stext LIKE tspat-vtext, " Sales Division Text
kvgr1 LIKE vbrp-kvgr1, " District
vtext1 LIKE tvv1t-bezei, " District Name
kvgr2 LIKE vbrp-kvgr2, " Taluka
vtext2 LIKE t188t-vtext, " Taluka Name
kvgr3 LIKE vbrp-kvgr3, " Village
vtext3 LIKE t188t-vtext, " Village Name
kvgr4 LIKE vbrp-kvgr4, " Special Group
vtext4 LIKE t188t-vtext, " Special Group
kvgr5 LIKE vbrp-kvgr5, " Executive
vtext5 LIKE t188t-vtext, " Executive Text
ZZLZONE LIKE VBAP-ZZLZONE , " Transport.Zone(Sold To Party)
lztxt LIKE tzont-vtext, " Trans.Zone Desc(Sold To Party)
waerk LIKE vbap-waerk, " Document Currency
inco1 LIKE vbkd-inco1, " Inco Terms1
inco2 LIKE vbkd-inco2, " Inco Terms2
bukrs LIKE vbrk-bukrs, " Company Code
lgort LIKE vbrp-lgort, " Storage Loc
vrkme LIKE vbrp-vrkme, " Sales Unit
aubel LIKE vbrp-aubel, " Sales Doc
aupos LIKE vbrp-aupos, " Sales Doc Item
audat LIKE vbak-audat, " Sales Order Date
klmeng LIKE vbap-klmeng, " Sales Qty
knumv LIKE konv-knumv, " Cond.Doc No
frate LIKE konv-kbetr, " Rate
fvalue LIKE konv-kwert, " Value
erate LIKE konv-kbetr, " Excise Rate
evalue LIKE konv-kwert, " Excise Value
kschl LIKE konv-kschl, " Condition Type
mtart LIKE mara-mtart, " Material TYpe
matkl LIKE mara-matkl, " Material Group
stceg LIKE vbrk-stceg, " VAT Reg.No
sfakn LIKE vbrk-sfakn, " Cancelled Bill Doc No
sfakn1 LIKE vbrk-sfakn, " Reversed Bill Doc No
rfbsk LIKE vbrk-rfbsk, " Accounting Transfer Status
fksto LIKE vbrk-fksto, " Bill Doc.Cancel Ind
fksto_tx(60), " Bill Doc.Cancel text
erdat LIKE vbrk-erdat, " Creation Date
erzet LIKE vbrk-erzet, " Creattion Time
regio LIKE kna1-regio, " Region
pstyv LIKE vbrp-pstyv, " Sales Doc Item Cat.
vgbel LIKE vbak-vgbel, " Ref.Doc No
vgpos LIKE vbap-vgpos, " Ref.Doc.Item.No
cmgst LIKE vbuk-cmgst, " Credit Status
zterm LIKE vbrk-zterm, " Pay Term
auart LIKE vbak-auart, " Sales Order Type
bstkd LIKE vbkd-bstkd, " Cust.PO No
bstdk LIKE vbkd-bstdk, " Cust.PO Date
mwsbp LIKE vbrp-mwsbp, " Tax Amount
belnr LIKE bkpf-belnr, " Acc.Doc No
kzwi1 LIKE vbrp-kzwi1 , " Base Price
kzwi2 LIKE vbrp-kzwi2 , "
kzwi3 LIKE vbrp-kzwi3 , " Discounts
kzwi4 LIKE vbrp-kzwi4, " Packing and forwarding
kzwi5 LIKE vbrp-kzwi5 , " Excise
kzwi6 LIKE vbrp-kzwi6 , " LST/ CST
mtbez LIKE t134t-mtbez, " Material Type Text
wgbez LIKE t023t-wgbez, " Material Group Text
land1 LIKE vbrk-land1, " Country
landx(20), " Country Text
abrvw LIKE tvlvt-abrvw, " Usage Ind.
reasn LIKE tvlvt-bezei, " Desc
prdha LIKE mara-prdha, " Prod Hir.
edg(2),
char1 LIKE ausp-atwrt , " Characteristic
char2 LIKE ausp-atwrt , " Characteristic
char3 LIKE ausp-atwrt , " Characteristic
char4 LIKE ausp-atwrt , " Characteristic
char5 LIKE ausp-atwrt , " Characteristic
char6 LIKE ausp-atwrt , " Characteristic
char7 LIKE ausp-atwrt , " Characteristic
char8 LIKE ausp-atwrt , " Characteristic
char9 LIKE ausp-atwrt , " Characteristic
char10 LIKE ausp-atwrt , " Characteristic
char11 LIKE ausp-atwrt , " Characteristic
char12 LIKE ausp-atwrt , " Characteristic
char13 LIKE ausp-atwrt , " Characteristic
char14 LIKE ausp-atwrt , " Characteristic
char15 LIKE ausp-atwrt , " Characteristic
char16 LIKE ausp-atwrt , " Characteristic
lifnr LIKE lfa1-lifnr, " Vendor
tname LIKE lfa1-name1, " Vendor Name
ordat LIKE vbrk-fkdat, " order Date
charg LIKE vbrp-charg, " Batch
kdgrp_auft LIKE vbrp-kdgrp_auft, " Customer Sales Group
ktext LIKE t151t-ktext, " Customer Sales Group Text
signi LIKE vttk-signi, " License No
route LIKE likp-route, " Route
routid LIKE tvro-routid, " Route ID
rt_bezei LIKE tvrot-bezei, " Route Desc
vstel LIKE likp-vstel, " Shipping Point
sp_vtext LIKE tvstt-vtext, " Ship Point Desc
distz LIKE v_tvro_com-distz, " Distance
brsch LIKE kna1-brsch, " Industry Key
brtxt LIKE t016t-brtxt, " Industry Name
mname LIKE kna1-name1, " Name
exnum LIKE j_1iexchdr-exnum, " Ex.Number
exdat LIKE j_1iexchdr-exdat, " Ex.Date
exbed LIKE j_1iexcdtl-exbed, " Ex.BED Amt
ecs LIKE j_1iexcdtl-ecs, " Ex.ECESS Amt
expind LIKE j_1iexchdr-expind, " Export Ind.
expind_desc LIKE dd07t-ddtext, " Export Ind.Desc
exgrp LIKE j_1iexchdr-exgrp, " Exc.Group
srgrp LIKE j_1iexchdr-srgrp, " Series Group
sanum LIKE vbap-vbeln, " Sales Order No
sapos LIKE vbap-posnr, " SO Item No
tknum LIKE vttk-tknum, " Shipment No
exti1 LIKE vttk-exti1, " Vehicle Number
exti2 LIKE vttk-exti2, " Driver Name
tr_count TYPE i, " Truck Count
vsart LIKE vttk-vsart, " Shipment Type
st_bezei LIKE t173t-bezei, " Shipment Type Desc
zb00 LIKE konv-kbetr, " Basic Rate
xcpdk LIKE vbpa-xcpdk, " One Time Account
adrnr LIKE vbpa-adrnr, " Address Number
shpcd LIKE kna1-kunnr, " Ship to Party
shpnm LIKE kna1-name1, " Ship to Party Name
sh_regio LIKE kna1-regio, " Region(SH)
sh_land1 LIKE kna1-land1, " Country
SH_LZONE LIKE VBAP-ZZLZONE , " Transport.Zone(Ship To Party)
sh_lztxt LIKE tzont-vtext, " Trans.Zone Desc(Ship To Party)
mblnr LIKE mseg-mblnr, " Material Doc No
budat LIKE mkpf-budat, " Doc Date
konda LIKE vbrk-konda, " Sales Zone
ptext LIKE t188t-vtext, " Text
zrbat LIKE konv-kwert, " Rebate Amount
serdt LIKE vbak-erdat, " S.A Create Date
groes LIKE mara-groes, " Size/Dimensions
dtext(20), "
prodt(20), "
mtext(20), "
prdqy LIKE vbrp-fkimg, "
aufnr LIKE afko-aufnr, " Order No
city1 LIKE adrc-city1, " City
packno(3), " Pack No
inv_rate LIKE konv-kbetr, " Inv Rate
inv_amt LIKE konv-kwert, " Inv Amount
frt_rate LIKE konv-kbetr, " Frt Rate
frt_amt LIKE konv-kwert, " Frt Amount
td_fkimg LIKE vbrp-fkimg, " Trade Inv.Qty
nt_fkimg LIKE vbrp-fkimg, " Non-Trade Inv.Qty
st_fkimg LIKE vbrp-fkimg, " Stk.Trsf.Inv.Qty
tot_fkimg LIKE vbrp-fkimg, " Total
or_dl_vbeln LIKE lips-vbeln, " Original Delivery
or_dl_posnr LIKE lips-posnr, " Original Del.Item
or_in_vbeln LIKE vbrp-vbeln, " Original Invoice
or_in_fkdat LIKE vbrk-fkdat, " Original Inv.Date
or_in_posnr LIKE vbrp-posnr, " Original Inv.Item
or_in_knumv LIKE vbrk-knumv, " Original Inv.Cond.No
or_in_frt_amt LIKE konv-kwert, " Original Frt Amount
or_in_fkimg LIKE vbrp-fkimg, " Original Qty
diff_date TYPE p, " Date Differance
pfield1 LIKE vbrp-fkimg, " Day 1
pfield2 LIKE vbrp-fkimg, " Day 2
pfield3 LIKE vbrp-fkimg, " Day 3
pfield4 LIKE vbrp-fkimg, " Day 4
pfield5 LIKE vbrp-fkimg, " Day 5
pfield6 LIKE vbrp-fkimg, " Above Days
pfield7 LIKE vbrp-fkimg, " TOTAL DAYS
bolnr LIKE likp-bolnr, " LR/DC No
INCLUDE STRUCTURE ZSD_MATGROUPS. " Inc.For Mat.Groups
chaname TYPE lfa1-name1,
lcnum TYPE vbkd-lcnum,
tdline TYPE tline-tdline,
docno type j_1iexchdr-docno.
DATA: END OF ivbeln.
DATA : BEGIN OF i_mat_tab OCCURS 0,
dtext LIKE ivbeln-dtext,
prodt(20),
mtext(20),
name1 LIKE ivbeln-name1,
kunnr LIKE ivbeln-kunnr,
fkimg LIKE ivbeln-fkimg,
END OF i_mat_tab.
DATA : BEGIN OF it_vbtyp OCCURS 0.
INCLUDE STRUCTURE dd07v.
DATA : END OF it_vbtyp.
DATA : BEGIN OF i_mseg OCCURS 0.
INCLUDE STRUCTURE mseg.
DATA : END OF i_mseg.
DATA : BEGIN OF i_mseg_coll OCCURS 0,
matnr LIKE mseg-matnr,
charg LIKE mseg-charg,
menge LIKE mseg-menge,
aufnr LIKE mseg-aufnr,
werks LIKE mseg-werks,
END OF i_mseg_coll.
*-- For Sales Plan Details
DATA : exnum LIKE j_1iexchdr-exnum,
exdat LIKE j_1iexchdr-exdat,
exbed LIKE j_1iexchdr-exbed,
expind LIKE j_1iexchdr-expind,
exgrp LIKE j_1iexchdr-exgrp,
srgrp LIKE j_1iexchdr-srgrp,
shpcd LIKE kna1-kunnr,
shpnm LIKE kna1-name1,
shreg LIKE kna1-regio,
shlnd LIKE kna1-land1,
xcpdk LIKE vbpa-xcpdk,
adrnr LIKE vbpa-adrnr,
sanum LIKE vbap-vbeln,
serdt LIKE vbak-erdat,
ptext LIKE t188t-vtext,
sapos LIKE vbap-posnr.
DATA : BEGIN OF iitem OCCURS 1,
kunnr LIKE ivbeln-kunnr,
name1 LIKE ivbeln-name1,
vkbur LIKE ivbeln-vkbur,
vbezei LIKE ivbeln-vbezei,
dtext LIKE tvtwt-vtext,
matnr LIKE ivbeln-matnr,
arktx LIKE ivbeln-arktx,
VTWEG LIKE ZCVI_VBRKVBRP-VTWEG,
land1 LIKE kna1-land1,
landx LIKE t005t-landx,
END OF iitem.
DATA : BEGIN OF t_konv OCCURS 0,
knumv LIKE konv-knumv,
kposn LIKE konv-kposn,
krech LIKE konv-krech,
kwert LIKE konv-kwert,
kbetr LIKE konv-kbetr,
kawrt LIKE konv-kawrt,
kschl LIKE konv-kschl,
END OF t_konv.
DATA : kunnr LIKE kna1-name1,
pdate LIKE sy-datum,
frate LIKE konv-kbetr,
erate LIKE konv-kbetr,
evalue LIKE konv-kwert,
fvalue LIKE konv-kwert,
zwels LIKE knb1-zwels.
*DATA : BEGIN OF ISDCHAR OCCURS 0 .
INCLUDE STRUCTURE ZCTA_SDCHAR .
*DATA END OF ISDCHAR .
DATA : BEGIN OF it_char OCCURS 0.
DATA : tabix(2) TYPE c,
atbez(30),
descrp(30) TYPE c.
INCLUDE STRUCTURE vbmuez.
DATA : END OF it_char.
DATA : ichar LIKE sel_char OCCURS 0 WITH HEADER LINE.
DATA : reasn LIKE tvlvt-bezei.
----
FIELD-SYMBOLS *
----
FIELD-SYMBOLS : <table> TYPE table ,
<struc> ,
<field> ,
<component> .
----
Data Declaration for Dynamic Assignment *
----
DATA : alv_fieldcat TYPE slis_t_fieldcat_alv,
lt_alv_cat TYPE TABLE OF lvc_s_fcat,
it_fieldcat LIKE LINE OF lt_alv_cat.
DATA : i_table TYPE REF TO data,
i_structure TYPE REF TO data.
DATA : new_tabix LIKE sy-tabix.
DATA : v_ebeln LIKE ekkn-ebeln ,
v_ebelp LIKE ekkn-ebelp ,
groes LIKE mara-groes.
DATA : t_char LIKE sel_char OCCURS 0 WITH HEADER LINE.
----
Macro Definition for assigning and unassigning component
----
Assign a field to a component and component to a structure
*----
DEFINE assign_component.
assign &1 to <component>.
assign component <component> of structure <struc> to <field>.
END-OF-DEFINITION.
Unassign a Component.
*----
DEFINE unassign_field.
if &1 is assigned.
unassign &1.
endif.
END-OF-DEFINITION.
************************************************************************
SELECTION - SCREEN
************************************************************************
*For ALV Variant
*----
SELECTION-SCREEN BEGIN OF BLOCK d WITH FRAME TITLE text-s01.
PARAMETERS: p_vari LIKE disvariant-variant. " ALV Variant
SELECTION-SCREEN END OF BLOCK d.
For Basic Data
*----
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-s02.
SELECT-OPTIONS: s_kunnr FOR vbrk-kunrg MATCHCODE OBJECT debi,
s_vbeln FOR vbrk-vbeln MATCHCODE OBJECT vmva,
s_fkdat FOR vbrk-fkdat OBLIGATORY,
s_matnr FOR vbrp-matnr MATCHCODE OBJECT mat1,
s_fkart FOR vbrk-fkart ,
s_pstyv FOR vbap-pstyv,
s_spart FOR vbrk-spart.
SELECTION-SCREEN END OF BLOCK a.
For Organisational Data
*----
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-s03.
SELECT-OPTIONS: s_vkorg FOR vbrk-vkorg,
s_vtweg FOR vbrk-vtweg,
s_bukrs FOR vbrk-bukrs,
s_vkbur FOR vbrp-vkbur,
s_regio FOR kna1-regio,
s_werks FOR vbrp-werks,
s_brsch FOR kna1-brsch. " Industry Key
SELECTION-SCREEN END OF BLOCK b.
******----
NEW ADDED BY AJAY 22-06-2006
SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-d01.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) text-d02.
SELECTION-SCREEN POSITION 32.
PARAMETERS : p_field1(3) TYPE n DEFAULT '001',
p_field2(3) TYPE n DEFAULT '005',
p_field3(3) TYPE n DEFAULT '007',
p_field4(3) TYPE n DEFAULT '009',
p_field5(3) TYPE n DEFAULT '015'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK c.
******----
NEW ADDED END BY AJAY 22-06-2006
************************************************************************
INITIALIZATION
************************************************************************
INITIALIZATION.
repname = sy-repid.
PERFORM build_eventtab USING events[].
PERFORM build_layout .
PERFORM initialize_variant.
************************************************************************
AT SELECTION-SCREEN
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM f4_for_variant.
AT SELECTION-SCREEN.
PERFORM pai_of_selection_screen.
PERFORM check_input.
************************************************************************
START OF SELECTION
************************************************************************
START-OF-SELECTION.
PERFORM build_comment USING heading[].
PERFORM get_day_label.
PERFORM get_data.
PERFORM segregate_dist_chann_qty.
PERFORM initialise_fieldtab.
PERFORM attach_char_to_fieldcat.
PERFORM get_transporter_data.
PERFORM get_sd_matgroups.
PERFORM get_plant_from_po.
PERFORM get_excise_details.
PERFORM display_data.
************************************************************************
END OF SELECTION
************************************************************************
END-OF-SELECTION.
************************************************************************
FORMS
************************************************************************
&----
*& Form get_data
&----
*& Extracts data as per the users selection criteria.
&----
FORM get_data.
DATA domname LIKE dd07v-domname.
DATA it_vrpma LIKE vrpma OCCURS 0 WITH HEADER LINE.
In case Doc No is specified in Selection use VBRK
Else use VRPMA(Material wise Billing Doc)
*----
IF NOT s_vbeln IS INITIAL.
SELECT * FROM vbrk CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE ivbrk
WHERE mandt EQ sy-mandt
AND vbeln IN s_vbeln
AND fkart IN s_fkart
AND fkdat IN s_fkdat
AND kunag IN s_kunnr
AND vkorg IN s_vkorg
AND vtweg IN s_vtweg
AND bukrs IN s_bukrs
AND rfbsk NE 'E'
AND sfakn EQ space
AND fksto EQ space.
ELSE.
SELECT * FROM vrpma CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_vrpma
WHERE mandt EQ sy-mandt
AND matnr IN s_matnr
AND vkorg IN s_vkorg
AND fkdat IN s_fkdat
AND vtweg IN s_vtweg
AND fkart IN s_fkart
AND kunag IN s_kunnr
AND fkart NE 'ZCMR'
AND vbeln IN s_vbeln.
CHECK NOT it_vrpma[] IS INITIAL.
SORT it_vrpma BY vbeln.
SELECT * FROM vbrk INTO CORRESPONDING FIELDS OF TABLE ivbrk
FOR ALL ENTRIES IN it_vrpma
WHERE vbeln = it_vrpma-vbeln
AND rfbsk NE 'E'
AND sfakn EQ space
AND fksto EQ space.
ENDIF.
domname = 'VBTYP'.
Get the List of all Document Types
*----
PERFORM get_domtext TABLES it_vbtyp USING domname.
IF NOT ivbrk[] IS INITIAL.
SORT ivbrk BY kunag.
LOOP AT ivbrk.
v_tabix = sy-tabix.
Get the Region,Industry Key, Name for Sold To Party
*----
ON CHANGE OF ivbrk-kunag.
CLEAR : v_regio,v_brsch,name1,v_ort01,v_land1.
SELECT SINGLE regio brsch name1 ort01 land1 FROM kna1
CLIENT SPECIFIED
INTO (v_regio,v_brsch,
name1,v_ort01,v_land1 )
WHERE mandt = sy-mandt
AND kunnr = ivbrk-kunag.
ENDON.
Check for Region,Industry Key as per the Parameter
*----
IF NOT s_regio[] IS INITIAL.
IF NOT v_regio IN s_regio.
DELETE ivbrk INDEX v_tabix.
CONTINUE.
ENDIF.
ENDIF.
IF NOT s_brsch[] IS INITIAL.
IF NOT v_brsch IN s_brsch.
DELETE ivbrk INDEX v_tabix.
CONTINUE.
ENDIF.
ENDIF.
ivbrk-regio = v_regio.
ivbrk-brsch = v_brsch.
ivbrk-name1 = name1.
ivbrk-ort01 = v_ort01.
ivbrk-land1 = v_land1.
ivbrk-netwr = 0.
MODIFY ivbrk TRANSPORTING regio brsch
name1 netwr ort01 land1.
CLEAR ivbrk.
ENDLOOP.
Get the Invoice Details from VBRP Table
*----
IF NOT ivbrk[] IS INITIAL.
SELECT * FROM vbrp CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE ivbeln
FOR ALL ENTRIES IN ivbrk
WHERE mandt = sy-mandt
AND vbeln = ivbrk-vbeln
AND fkimg NE 0
AND matnr IN s_matnr
AND pstyv IN s_pstyv
AND spart IN s_spart
AND werks IN s_werks
AND vkbur IN s_vkbur.
ENDIF.
ENDIF.
IF NOT ivbeln[] IS INITIAL.
LOOP AT ivbeln.
READ TABLE ivbrk WITH KEY vbeln = ivbeln-vbeln.
IF sy-subrc EQ 0.
IF ivbrk-netwr IS INITIAL.
ivbrk-netwr = ivbeln-netwr.
ENDIF.
MOVE-CORRESPONDING ivbrk TO ivbeln.
CLEAR it_vbtyp.
READ TABLE it_vbtyp WITH KEY domvalue_l = ivbrk-vbtyp.
ivbeln-vbtyp_desc = it_vbtyp-ddtext.
MOVE ivbrk-kunag TO ivbeln-kunnr.
MODIFY ivbeln .
CLEAR ivbeln.
ENDIF.
ENDLOOP.
SORT ivbeln BY vbeln posnr.
DELETE ADJACENT DUPLICATES FROM ivbeln COMPARING ALL FIELDS.
CLEAR ivbeln.
Get the Material Type, Group and Production Hiearchy
*----
LOOP AT ivbeln.
ON CHANGE OF ivbeln-matnr.
CLEAR : mtart,matkl,prdha.
SELECT SINGLE mtart matkl prdha FROM mara CLIENT SPECIFIED
INTO (mtart,matkl,prdha)
WHERE mandt EQ sy-mandt
AND matnr EQ ivbeln-matnr.
ENDON.
ivbeln-mtart = mtart.
ivbeln-matkl = matkl.
ivbeln-prdha = prdha.
MODIFY ivbeln TRANSPORTING mtart matkl prdha.
CLEAR ivbeln.
ENDLOOP.
LOOP AT ivbeln.
Retrieving Sales Order Date ,Customer PO No,Customer PO Date
*----
ON CHANGE OF ivbeln-aubel.
CLEAR : bstkd,bstdk,ordat,audat.
SELECT SINGLE bstkd bstdk FROM vbkd
CLIENT SPECIFIED
INTO (bstkd,bstdk)
WHERE mandt EQ sy-mandt
AND vbeln EQ ivbeln-aubel.
SELECT SINGLE erdat audat FROM vbak CLIENT SPECIFIED
INTO (ordat,audat)
WHERE mandt = sy-mandt
AND vbeln = ivbeln-aubel.
In case of Stock Transfer, Or Export Excise GP
SO is really a PO Hence Date is tajken from EKKO
*----
IF ivbeln-fkart EQ 'ZSTF' OR ivbeln-fkart EQ 'ZSTE'.
SELECT SINGLE bedat FROM ekko CLIENT SPECIFIED
INTO (audat)
WHERE mandt = sy-mandt
AND ebeln = ivbeln-aubel.
ENDIF.
ENDON.
IF ivbeln-erzet GE '000000' AND ivbeln-erzet LE '070000'.
ivbeln-erdat = ivbeln-erdat - 1.
ENDIF.
Get the Counry Descripion
*----
ON CHANGE OF ivbeln-land1.
CLEAR : landx.
SELECT SINGLE landx INTO landx FROM t005t
WHERE land1 EQ ivbeln-land1
AND spras EQ sy-langu.
ENDON.
For retrieving text for Customer Group
*----
ON CHANGE OF ivbeln-kdgrp_auft.
CLEAR : ktext.
SELECT SINGLE ktext FROM t151t
INTO ktext
WHERE spras EQ sy-langu
AND kdgrp EQ ivbeln-kdgrp_auft.
ENDON.
For Retrieving texts for KVGR1 KVGR2 KVGR3 KVGR4 KVGR5
*----
ON CHANGE OF ivbeln-kvgr1.
CLEAR : vtext.
SELECT SINGLE bezei INTO vtext FROM tvv1t
WHERE kvgr1 EQ ivbeln-kvgr1
AND spras EQ sy-langu.
ENDON.
ON CHANGE OF ivbeln-kvgr2.
CLEAR :vtext2.
SELECT SINGLE bezei INTO vtext2 FROM tvv2t
WHERE kvgr2 EQ ivbeln-kvgr2
AND spras EQ sy-langu.
ENDON.
ON CHANGE OF ivbeln-kvgr3.
CLEAR :vtext3.
SELECT SINGLE bezei INTO vtext3 FROM tvv3t
WHERE kvgr3 EQ ivbeln-kvgr3
AND spras EQ sy-langu.
ENDON.
ON CHANGE OF ivbeln-kvgr4.
CLEAR :vtext4.
SELECT SINGLE bezei INTO vtext4 FROM tvv4t
WHERE kvgr4 EQ ivbeln-kvgr4
AND spras EQ sy-langu.
ENDON.
ON CHANGE OF ivbeln-kvgr5.
CLEAR : vtext5.
SELECT SINGLE bezei INTO vtext5 FROM tvv5t
WHERE kvgr5 EQ ivbeln-kvgr5
AND spras EQ sy-langu.
ENDON.
Get the Description for Usage Indicator
*----
ON CHANGE OF ivbeln-abrvw.
CLEAR : reasn.
SELECT SINGLE bezei INTO reasn FROM tvlvt CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND abrvw EQ ivbeln-abrvw
AND spras EQ sy-langu.
ENDON.
Get Account Document
*----
ON CHANGE OF ivbeln-vbeln.
CLEAR : belnr.
SELECT SINGLE belnr INTO belnr FROM bkpf
CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND awtyp EQ 'VBRK'
AND awkey EQ ivbeln-vbeln.
ENDON.
Get Division Text
*----
ON CHANGE OF ivbeln-spart.
CLEAR : stext.
SELECT SINGLE vtext INTO stext FROM tspat
WHERE spart EQ ivbeln-spart
AND spras EQ sy-langu.
ENDON.
Get Price group Text
*----
ON CHANGE OF ivbeln-konda.
CLEAR : ptext.
SELECT SINGLE vtext INTO ptext FROM t188t
WHERE konda EQ ivbeln-konda
AND spras EQ sy-langu.
ENDON.
Get Transporter Code ,Name
*----
ON CHANGE OF ivbeln-vbeln.
CLEAR : lifnr,name1.
SELECT SINGLE lifnr INTO lifnr FROM vbpa
WHERE vbeln EQ ivbeln-vbeln
AND parvw EQ 'V1'.
IF NOT lifnr IS INITIAL.
SELECT SINGLE name1 FROM lfa1 INTO name1
WHERE lifnr EQ lifnr.
ENDIF.
*Ship To party Details
*----
CLEAR: shpcd,shpnm,city1,kna1,xcpdk,adrnr.
SELECT SINGLE kunnr xcpdk adrnr
INTO (shpcd,xcpdk,adrnr)
FROM vbpa
WHERE vbeln EQ ivbeln-vbeln
AND parvw EQ 'WE'.
IF NOT shpcd IS INITIAL.
IF xcpdk EQ 'X'.
SELECT SINGLE name1 city1 transpzone region country
FROM adrc
INTO (shpnm,city1,lzone,shreg,shlnd)
WHERE addrnumber EQ adrnr.
ELSE.
SELECT SINGLE name1 ort01 lzone regio land1
FROM kna1
CLIENT SPECIFIED
INTO (shpnm,city1,lzone,shreg,shlnd)
WHERE mandt = sy-mandt
AND kunnr EQ shpcd.
ENDIF.
ENDIF.
ENDON.
Retrieve Text for Sales Office
*----
ON CHANGE OF ivbeln-vkbur.
CLEAR : vbezei.
SELECT SINGLE bezei FROM tvkbt
INTO vbezei
WHERE spras EQ sy-langu
AND vkbur EQ ivbeln-vkbur.
ENDON.
Retrieve Text for Industry Key
*----
ON CHANGE OF ivbeln-brsch.
CLEAR : v_brtxt.
SELECT SINGLE brtxt FROM t016t
INTO v_brtxt
WHERE spras EQ sy-langu
AND brsch EQ ivbeln-brsch.
ENDON.
Retrieve Text for Payment Terms
*----
ON CHANGE OF ivbeln-zterm.
CLEAR : v_ptext.
SELECT SINGLE text1 FROM t052u
INTO v_ptext
WHERE spras EQ sy-langu
AND zterm EQ ivbeln-zterm.
ENDON.
Get Material Type Description,Material Group Desc
*----
ON CHANGE OF ivbeln-mtart OR ivbeln-matkl.
CLEAR : wgbez,mtbez.
SELECT SINGLE wgbez FROM t023t
INTO wgbez
WHERE spras EQ sy-langu
AND matkl EQ ivbeln-matkl.
SELECT SINGLE mtbez FROM t134t
INTO mtbez
WHERE spras EQ sy-langu
AND mtart EQ ivbeln-mtart.
ENDON.
Get Delivery doc Number.
*----
SELECT SINGLE vbeln erdat FROM vbfa INTO
(mblnr,budat)
WHERE vbelv = ivbeln-vgbel
AND posnv = ivbeln-vgpos
AND vbtyp_n = 'R'.
CLEAR : exnum,exdat.
Get the Excise Related Data
*----
SELECT SINGLE exnum exdat FROM j_1iexchdr CLIENT SPECIFIED
INTO (exnum,exdat)
WHERE mandt = sy-mandt
AND trntyp = 'DLFC'
AND rdoc = ivbeln-vbeln
AND rind = 'N'
AND status = 'C'.
IF sy-subrc = 0.
SELECT SINGLE exbed ecs INTO (ivbeln-exbed,ivbeln-ecs)
FROM j_1iexcdtl
CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND rdoc2 = ivbeln-vbeln
AND ritem2 = ivbeln-posnr.
IF sy-subrc NE 0.
ivbeln-exbed = 0.
CLEAR ivbeln-exnum.
ENDIF.
ENDIF.
Read Characteristics
*----
IF NOT ichar[] IS INITIAL.
PERFORM read_characteristics TABLES ichar
USING ivbeln-werks
ivbeln-matnr
ivbeln-charg
CHANGING ivbeln-char1
ivbeln-char2
ivbeln-char3
ivbeln-char4
ivbeln-char5
ivbeln-char6
ivbeln-char7
ivbeln-char8
ivbeln-char9
ivbeln-char10
ivbeln-char11
ivbeln-char12
ivbeln-char13
ivbeln-char14
ivbeln-char15 .
ENDIF.
Get Production Order
*----
CLEAR : v_ebeln, v_ebelp .
v_ebeln = ivbeln-aubel .
v_ebelp = ivbeln-aupos .
SELECT SINGLE aufnr FROM afpo INTO ivbeln-aufnr
WHERE kdauf = ivbeln-aubel
AND kdpos = ivbeln-aupos.
Get the Route And Route Details
*----
SELECT SINGLE * FROM likp CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND vbeln = ivbeln-vgbel.
IF sy-subrc = 0.
ivbeln-route = likp-route.
ivbeln-vstel = likp-vstel.
ivbeln-bolnr = likp-bolnr.
SELECT SINGLE vtext FROM tvstt
INTO ivbeln-sp_vtext
WHERE spras EQ sy-langu
AND vstel EQ likp-vstel.
ENDIF.
Get the License No,Shipment No,Vehicle No & Shipment TYpe
In case of Diverted Sale get the Original Invoice & Delivery
*----
IF ivbeln-fkart EQ 'ZDIS' OR
ivbeln-fkart EQ 'ZFRE' OR
ivbeln-fkart EQ 'ZDRE' .
SELECT SINGLE vbelv posnv FROM vbfa
INTO (ivbeln-or_in_vbeln,
ivbeln-or_in_posnr)
WHERE vbeln EQ ivbeln-vbeln
AND posnn EQ ivbeln-posnr
AND vbtyp_n IN ('M','O')
AND vbtyp_v EQ 'M'.
SELECT SINGLE fkimg FROM vbrp
INTO ivbeln-or_in_fkimg
WHERE vbeln EQ ivbeln-or_in_vbeln
AND posnr EQ ivbeln-or_in_posnr.
SELECT SINGLE knumv fkdat FROM vbrk
INTO (ivbeln-or_in_knumv,
ivbeln-or_in_fkdat)
WHERE vbeln EQ ivbeln-or_in_vbeln.
SELECT SINGLE kwert FROM konv
INTO ivbeln-or_in_frt_amt
WHERE knumv EQ ivbeln-or_in_knumv
AND kposn EQ ivbeln-or_in_posnr
AND kschl EQ 'ZFRT'
AND kwert NE 0.
IF ivbeln-fkart EQ 'ZDIS'.
SELECT SINGLE vbelv posnv FROM vbfa
INTO (ivbeln-or_dl_vbeln,
ivbeln-or_dl_posnr)
WHERE vbeln EQ ivbeln-vgbel
AND posnn EQ ivbeln-vgpos
AND vbtyp_n EQ 'J'
AND vbtyp_v EQ 'J'.
ELSE.
SELECT SINGLE vbelv posnv FROM vbfa
INTO (ivbeln-or_dl_vbeln,
ivbeln-or_dl_posnr)
WHERE vbeln EQ ivbeln-vbeln
AND posnn EQ ivbeln-posnr
AND vbtyp_n IN ('M','O')
AND vbtyp_v EQ 'J'.
ENDIF.
SELECT SINGLE tknum FROM vttp INTO ivbeln-tknum
WHERE vbeln EQ ivbeln-or_dl_vbeln.
ELSE.
SELECT SINGLE tknum FROM vttp INTO ivbeln-tknum
WHERE vbeln EQ ivbeln-vgbel.
ENDIF.
IF ivbeln-tknum IS NOT INITIAL.
SELECT SINGLE signi exti1 exti2 vsart tdlnr FROM vttk
INTO (ivbeln-signi,ivbeln-exti1,
ivbeln-exti2,ivbeln-vsart, lifnr)
WHERE tknum EQ ivbeln-tknum.
IF ivbeln-route IS INITIAL.
SELECT SINGLE route FROM vttk
INTO ivbeln-route
WHERE tknum EQ ivbeln-tknum.
ENDIF.
ENDIF.
Get the Route Distance And Route Description
*----
IF NOT ivbeln-route IS INITIAL.
SELECT SINGLE distz routid FROM tvro CLIENT SPECIFIED
INTO (ivbeln-distz,ivbeln-routid)
WHERE mandt = sy-mandt
AND route = ivbeln-route .
SELECT SINGLE bezei FROM tvrot
INTO ivbeln-rt_bezei
WHERE spras EQ sy-langu
AND route = ivbeln-route.
ENDIF.
In case the Shipping Type is blank
Pick the Value from Delivery
*----
IF ivbeln-vsart IS INITIAL.
ivbeln-vsart = likp-vsart.
ENDIF.
IF ivbeln-vsart IS NOT INITIAL.
SELECT SINGLE bezei FROM t173t INTO ivbeln-st_bezei
WHERE vsart EQ ivbeln-vsart
AND spras EQ sy-langu.
ENDIF.
In case of Depot Sale Pick the Vehicle No From Delivery
*----
IF ivbeln-fkart EQ 'ZDF2'.
SELECT SINGLE xabln FROM likp INTO (ivbeln-exti1)
WHERE vbeln EQ ivbeln-vgbel.
ENDIF.
IF ivbeln-exti1 IS INITIAL.
SELECT SINGLE xabln FROM likp INTO ivbeln-exti1
WHERE vbeln EQ ivbeln-vgbel.
ENDIF.
Sales Organisation Description
*----
SELECT SINGLE vtext INTO ivbeln-vtext
FROM tvkot CLIENT SPECIFIED
WHERE mandt EQ sy-mandt
AND spras EQ sy-langu
AND vkorg EQ ivbeln-vkorg .
Distribution Channel Description
*----
SELECT SINGLE vtext INTO ivbeln-vttxt
FROM tvtwt CLIENT SPECIFIED
WHERE mandt EQ sy-mandt
AND spras EQ sy-langu
AND vtweg EQ ivbeln-vtweg .
Get the Transporter Zone(Sold To Party)
*----
SELECT SINGLE LZONE FROM KNA1
INTO IVBELN-ZZLZONE
WHERE KUNNR EQ IVBELN-KUNNR.
Transporter Zone Description(SP)
*----
SELECT SINGLE VTEXT INTO IVBELN-LZTXT FROM ZCTA_TZONE
WHERE LAND1 EQ IVBELN-LAND1
AND REGIO EQ IVBELN-REGIO
AND TRANSPZONE EQ IVBELN-ZZLZONE.
Get the Transporter Zone(Ship To Party)
*----
SELECT SINGLE VTEXT FROM ZCTA_TZONE
INTO IVBELN-SH_LZTXT
WHERE LAND1 EQ SHLND
AND REGIO EQ SHREG
AND TRANSPZONE EQ LZONE.
Get the Freight Rate, Amount and Invoice rate * Amount
-------------------------------------------------------
IF ivbeln-vtweg EQ '20'.
SELECT SINGLE kbetr kwert FROM konv
INTO (ivbeln-inv_rate,ivbeln-inv_amt)
WHERE knumv EQ ivbeln-knumv
AND kposn EQ ivbeln-posnr
AND kschl EQ 'ZB01'
AND kwert NE 0.
ELSEIF ivbeln-vtweg EQ '09'.
SELECT SINGLE kbetr kwert FROM konv
INTO (ivbeln-inv_rate,ivbeln-inv_amt)
WHERE knumv EQ ivbeln-knumv
AND kposn EQ ivbeln-posnr
AND kschl EQ 'ZCIF'
AND kwert NE 0.
IF NOT ivbeln-inv_rate IS INITIAL.
IF ivbeln-waerk NE 'INR'.
ivbeln-inv_rate = ivbeln-inv_rate / 100.
ELSE.
ENDIF.
ENDIF.
ELSE.
SELECT SINGLE kbetr kwert FROM konv
INTO (ivbeln-inv_rate,ivbeln-inv_amt)
WHERE knumv EQ ivbeln-knumv
AND kposn EQ ivbeln-posnr
AND kschl EQ 'ZB00'
AND kwert NE 0.
ENDIF.
SELECT SINGLE kbetr kwert FROM konv
INTO (ivbeln-frt_rate,ivbeln-frt_amt)
WHERE knumv EQ ivbeln-knumv
AND kposn EQ ivbeln-posnr
AND kschl EQ 'ZFRC'
AND kwert NE 0.
ivbeln-bstkd = bstkd.
ivbeln-bstdk = bstdk.
ivbeln-vtext1 = vtext.
ivbeln-vtext2 = vtext2.
ivbeln-vtext3 = vtext3.
ivbeln-vtext4 = vtext4.
ivbeln-vtext5 = vtext5.
ivbeln-vbezei = vbezei.
ivbeln-wgbez = wgbez.
ivbeln-mtbez = mtbez.
ivbeln-landx = landx.
ivbeln-belnr = belnr.
ivbeln-frate = frate.
ivbeln-reasn = reasn.
ivbeln-fvalue = fvalue.
ivbeln-evalue = evalue.
ivbeln-erate = erate.
ivbeln-cmgst = cmgst.
ivbeln-lifnr = lifnr.
ivbeln-tname = name1.
ivbeln-ordat = ordat.
ivbeln-audat = audat.
ivbeln-auart = auart.
ivbeln-ktext = ktext.
ivbeln-stext = stext.
ivbeln-brtxt = v_brtxt.
ivbeln-ptext = v_ptext.
ivbeln-city1 = city1.
ivbeln-exnum = exnum.
ivbeln-exdat = exdat.
ivbeln-sanum = sanum.
ivbeln-sapos = sapos.
ivbeln-shpcd = shpcd.
ivbeln-shpnm = shpnm.
ivbeln-sh_regio = shreg.
ivbeln-sh_land1 = shlnd.
IVBELN-SH_LZONE = LZONE.
ivbeln-mblnr = mblnr.
ivbeln-budat = budat.
ivbeln-serdt = serdt.
ivbeln-ptext = ptext.
MODIFY ivbeln .
CLEAR ivbeln.
ENDLOOP.
ENDIF.
*Insert cancellation invoice no in original invoice
*----
LOOP AT ivbeln WHERE NOT sfakn IS INITIAL.
ivbeln-sfakn1 = ivbeln-vbeln.
MODIFY ivbeln TRANSPORTING sfakn1 WHERE vbeln = ivbeln-sfakn.
ENDLOOP.
*Insert Date Difference of Order and Invoice Date- Ajay
*----
LOOP AT ivbeln .
ivbeln-diff_date = ivbeln-fkdat - ivbeln-audat.
IF ivbeln-diff_date LE p_field1.
ivbeln-pfield1 = ivbeln-fkimg.
ENDIF.
IF ivbeln-diff_date LE p_field2
AND ivbeln-diff_date GT p_field1.
ivbeln-pfield2 = ivbeln-fkimg.
ENDIF.
IF ivbeln-diff_date LE p_field3
AND ivbeln-diff_date GT p_field2.
ivbeln-pfield3 = ivbeln-fkimg.
ENDIF.
IF ivbeln-diff_date LE p_field4
AND ivbeln-diff_date GT p_field3.
ivbeln-pfield4 = ivbeln-fkimg.
ENDIF.
IF ivbeln-diff_date LE p_field5
AND ivbeln-diff_date GT p_field4.
ivbeln-pfield5 = ivbeln-fkimg.
ENDIF.
IF ivbeln-diff_date GT p_field5.
ivbeln-pfield6 = ivbeln-fkimg.
ENDIF.
ivbeln-pfield7 = ivbeln-pfield1 + ivbeln-pfield2
+ ivbeln-pfield3 + ivbeln-pfield4
+ ivbeln-pfield5 + ivbeln-pfield6.
MODIFY ivbeln .
ENDLOOP.
****Added by Arvind on 30.03.2007 for getting CHA Agent ,LC number ,LC Ref. No & ARE No.
DATA line1 LIKE tline OCCURS 0 WITH HEADER LINE.
DATA tdname TYPE thead-tdname.
LOOP AT ivbeln.
SELECT SINGLE aname1 FROM ( lfa1 AS a INNER JOIN vbpa AS b ON blifnr = a~lifnr )
INTO ivbeln-chaname
WHERE vbeln EQ ivbeln-vgbel
AND parvw EQ 'TR'.
*SELECT SINGLE DOCNO FROM J_1IEXHEAD INTO IVBELN-DOCNO
SELECT SINGLE lcnum FROM vbkd INTO ivbeln-lcnum
WHERE vbeln EQ ivbeln-aubel.
tdname = ivbeln-lcnum.
IF sy-subrc = 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'Z001'
language = 'E'
name = tdname
object = 'AKKP'
TABLES
lines = line1
EXCEPTIONS
id = 1
language = 2
name = 3
NOT_FOUND = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE line1 INDEX 1.
IF sy-subrc = 0.
MOVE line1-tdline TO ivbeln-tdline.
REFRESH line1.
ENDIF.
ENDIF.
SELECT SINGLE docno FROM J_1IEXCHDR
INTO (IVBELN-docno)
WHERE TRNTYP = 'ARE1'
AND RDOC = IVBELN-VBELN
AND RIND = 'N'
AND STATUS = 'C'.
MODIFY IVBELN.
CLEAR IVBELN.
ENDLOOP.
*****************************************************************************
ENDFORM. " get_data
----
Alv Function Modules *
----
&----
*& Form INITIALISE_FIELDTAB
&----
Appending the extracted data to the table fieldcat for display
----
FORM initialise_fieldtab.
DATA : ptext1(30),
ptext2(30),
ptext3(30),
ptext4(30),
ptext5(30),
ptext6(30).
READ TABLE head WITH KEY field = p_field1.
ptext1 = head-text .
READ TABLE head WITH KEY field = p_field2.
ptext2 = head-text .
READ TABLE head WITH KEY field = p_field3.
ptext3 = head-text .
READ TABLE head WITH KEY field = p_field4.
ptext4 = head-text .
READ TABLE head WITH KEY field = p_field5.
ptext5 = head-text .
READ TABLE head WITH KEY field = 'Other'.
ptext6 = head-text .
DATA fieldcat TYPE slis_fieldcat_alv.
IF rb1 NE space.
PERFORM fill_fieldtabnew(zinc_alv1) USING :
'IITEM' 'KUNNR' 'Cust.Code' 'KUNNR' 'KNA1' 1 fieldtab '',
'IITEM' 'NAME1' 'Cust.Name' 'NAME1' 'KNA1' 2 fieldtab ''.
ENDIF.
*
IF rb2 NE space .
PERFORM fill_fieldtabnew(zinc_alv1) USING :
'IITEM' 'VKBUR' 'Sales Office' 'VKBUR' 'VBAK' 1 fieldtab '',
'IITEM' 'VBEZEI' 'Sales.Off.Desc' ' ' ' ' 2 fieldtab ''.
ENDIF.
*
IF rb4 NE space .
PERFORM fill_fieldtabnew(zinc_alv1) USING :
'IITEM' 'MATNR' 'Sku Code' 'MATNR' 'MARA' 1 fieldtab '',
'IITEM' 'ARKTX' 'Sku Desc.' ' ' ' ' 2 fieldtab ''.
*
ENDIF.
IF rb3 NE space .
PERFORM fill_fieldtabnew(zinc_alv1) USING :
'IITEM' 'VTWEG' 'Distr.Channel' 'VTWEG' 'VBAK' 1 fieldtab '',
'IITEM' 'DTEXT' 'Distr.Channel Desc.' ' ' ' ' 2 fieldtab ''.
ENDIF.
tabname = 'IVBELN'.
PERFORM append_fieldcat_ver2 USING :
'WERKS' 'Plant' ,
'PL_REGIO' 'Plant Region Code',
'REGIO_TX' 'Plant Region' ,
'AUBEL' 'Order No' ,
'AUPOS' 'Sales Ord Item' ,
'GROES' 'PRDH' ,
'BSTKD' 'PO.No.' ,
'BSTDK' 'PO.Date' ,
'KUNNR' 'Cust.Code' ,
'NAME1' 'Cust.Name' ,
'ORT01' 'Cust.City' ,
'ZZLZONE' 'T.Zone Code(SP)',
'LZTXT' 'Trans.Zone(SP)' ,
'MATNR' 'Mat Code' ,
'ARKTX' 'Mat Desc.' ,
'MATKL' 'Mat Group' ,
'WGBEZ' 'Mat Grp.Desc.' ,
'PSTYV' 'Item Category' ,
'MTART' 'Material.Type' ,
'MTBEZ' 'Mat.Type.Text' ,
'FKIMG' 'Inv.Qty in SU' ,
'VRKME' 'Sales Unit' ,
'KZWI1' 'Base Price' ,
'KZWI3' 'Discount Value' ,
'KZWI4' 'Frieght Value' ,
'KZWI5' 'Excise Value' ,
'KZWI6' 'LST/CST Val' ,
'NETWR' 'Inv Amount' ,
'WAERK' 'Doc Curr.' ,
'REGIO' 'State' ,
'VBELN' 'Invoice No.' ,
'FKDAT' 'Invoice Date' ,
'FKART' 'Bill Type' ,
'VBTYP' 'Doc.Catgr' ,
'VBTYP_DESC' 'Catgr Desrpt' ,
'ERDAT' 'Creat.Date' ,
'BELNR' 'Acct.Docu' ,
'CHARG' 'Batch Number' ,
'LIFNR' 'Transporter Code',
'TNAME' 'Transp.Name' ,
'KDGRP_AUFT' 'Cust.Group' ,
'KTEXT' 'Cust.Group.Name',
'SIGNI' 'Truck Number' ,
'TR_COUNT' 'No.of Trucks' ,
'BRSCH' 'Industry ' ,
'BRTXT' 'Industry Desc.' ,
'MNAME' 'Month' ,
'ZTERM' 'Pay Terms' ,
'INCO1' 'Inco1' ,
'INCO2' 'Inco2' ,
'EXNUM' 'Exc.Inv No' ,
'EXDAT' 'Exc.Inv Date' ,
'EXBED' 'BED Amount' ,
'ECS' 'ECESS Amount' ,
'VKGRP' 'Sales Group' ,
'TKNUM' 'Gate In Number' ,
'ERZET' 'Invoice Time' ,
'SHPCD' 'SHP Code' ,
'SHPNM' 'SHP Name' ,
'SH_LZONE' 'T.Zone Code(SH)',
'SH_LZTXT' 'Trans.Zone(SH)' ,
'CITY1' 'City(SH)' ,
'PRDHA' 'GRD' ,
'VGBEL' 'Delivery No' ,
'MBLNR' 'Mat Doc No' ,
'BUDAT' 'Mat Doc Date' ,
'KONDA' 'Price Group' ,
'PTEXT' 'Price Group Text',
'SFAKN' 'Cancelled Inv' ,
'SFAKN1' 'Reverse By' ,
'LGORT' 'Store.Loc' ,
'AUFNR' 'Prod Order' ,
'VKORG' 'Sales.Org Code' ,
'VTEXT' 'Sales.Org ' ,
'VTWEG' 'Dist.Chan.Code' ,
'VTTXT' 'Dist.Channel' ,
'SPART' 'Division' ,
'STEXT' 'Division Desc.' ,
'KVGR1' 'Dist.Code' ,
'VTEXT1' 'District' ,
'KVGR2' 'Tal.Code' ,
'VTEXT2' 'Taluka' ,
'KVGR3' 'Vill.Code' ,
'VTEXT3' 'Village' ,
'VKBUR' 'Sales Off.Code' ,
'VBEZEI' 'Sales Office' ,
'EXTI1' 'Truck No' ,
'EXTI2' 'Driver Name' ,
'VSART' 'Shpping Type Code',
'ST_BEZEI' 'Shipping Type' ,
'INV_RATE' 'Inv.Rate' ,
'INV_AMT' 'Inv.Amount' ,
'FRT_RATE' 'Freight Rate ' ,
'FRT_AMT' 'Freight Amt' ,
'AUDAT' 'Order Date' ,
'TD_FKIMG' 'Trading' ,
'NT_FKIMG' 'Non-Trading ' ,
'TOT_FKIMG' 'Tot.Trading & Non-Trading' ,
'ST_FKIMG' 'Stock Transfer' ,
'WAERK' 'Currency' ,
'OR_IN_VBELN' 'Orig.Inv.No ' ,
'OR_IN_POSNR' 'Orig.Inv.Item' ,
'OR_DL_VBELN' 'Orig.Del.No' ,
'OR_DL_POSNR' 'Orig.Del.Item' ,
'OR_IN_FKDAT' 'Orig.Inv.Date' ,
'OR_IN_FRT_AMT' 'Orig.Frt Amnt' ,
'OR_IN_FKIMG' 'Orig.Qty' ,
'MVGR1' 'Type Code' ,
'MVGR1_TEXT' 'Type' ,
'MVGR2' 'Grade Code' ,
'MVGR2_TEXT' 'Grade' ,
'MVGR3' 'Packing Code' ,
'MVGR3_TEXT' 'Packing' ,
'MVGR4' 'Packing Color Code' ,
'MVGR4_TEXT' 'Packing Color' ,
'MVGR5' 'Packing Size Code' ,
'MVGR5_TEXT' 'Packing Size' ,
'ROUTE' 'Route Code' ,
'ROUTID' 'Route ID' ,
'RT_BEZEI' 'Route' ,
'EXGRP' 'Excise Group' ,
'SRGRP' 'Series Group' ,
'EXPIND' 'Export Ind.Code' ,
'EXPIND_DESC' 'Export Ind' ,
'FKSTO_TX' 'Bill Cancel Status' ,
'BOLNR' 'LR/DC No' ,
'DIFF_DATE' 'Days Delay' ,
'LCNUM' 'L/C Scan Ref.' ,
'TDLINE' 'L/C No.' ,
'CHANAME' 'CHA Agent' ,
'DOCNO' 'A.R.E.-1 No.' ,
'PFIELD1' ptext1 ,
'PFIELD2' ptext2 ,
'PFIELD3' ptext3 ,
'PFIELD4' ptext4 ,
'PFIELD5' ptext5 ,
'PFIELD6' ptext6 ,
'PFIELD7' 'Total' .
IF rb5 IS NOT INITIAL.
Order No
**----
PERFORM set_field_attribute USING 'AUBEL' 'HOTSPOT' 'X'.
PERFORM set_field_attribute USING 'AUBEL' 'KEY' 'X'.
Invoice No
*----
PERFORM set_field_attribute USING 'VBELN' 'HOTSPOT' 'X'.
PERFORM set_field_attribute USING 'VBELN' 'KEY' 'X'
.
Delivery No
*----
PERFORM set_field_attribute USING 'VGBEL' 'HOTSPOT' 'X'.
PERFORM set_field_attribute USING 'VGBEL' 'KEY' 'X'.
Material Doc No
**----
PERFORM set_field_attribute USING 'MBLNR' 'HOTSPOT' 'X'.
PERFORM set_field_attribute USING 'MBLNR' 'KEY' 'X'.
Original Invoice No
*----
PERFORM set_field_attribute USING 'OR_IN_VBELN' 'HOTSPOT' 'X'.
PERFORM set_field_attribute USING 'OR_IN_VBELN' 'KEY' 'X'.
Original Delivery No
*----
PERFORM set_field_attribute USING 'OR_DL_VBELN' 'HOTSPOT' 'X'.
PERFORM set_field_attribute USING 'OR_DL_VBELN' 'KEY' 'X'.
ENDIF.
ENDFORM. " INITIALISE_FIELDTAB
&----
*& Form BUILD_COMMENT
&----
For Report Heading
----
FORM build_comment USING p_heading TYPE slis_t_listheader.
DATA: hline TYPE slis_listheader,
text(60) TYPE c,
sep(20) TYPE c.
CLEAR: hline, text.
hline-typ = 'S'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
WRITE: 'RunDate:' TO text,
sy-datum TO text+9,
'Period' TO text+23.
IF NOT s_fkdat-low IS INITIAL.
WRITE s_fkdat-low TO text+31.
WRITE 'To' TO text+42.
ELSE.
WRITE ' UpTo ' TO text+31.
ENDIF.
IF NOT s_fkdat-high IS INITIAL.
WRITE s_fkdat-high TO text+45.
ELSE.
WRITE sy-datum TO text+45.
ENDIF.
IF NOT s_fkdat-low IS INITIAL AND s_fkdat-high IS INITIAL.
WRITE s_fkdat-low TO text+45.
ENDIF.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
IF rb1 NE space .
text = 'Customer Wise'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
ENDIF.
IF rb2 NE space .
text = 'Sales Office Wise'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
ENDIF.
IF rb5 NE space.
text = 'Report With No Selection Criteria'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
ENDIF.
IF rb3 NE space .
text = 'Distribution Channel Wise'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
ENDIF.
IF rb4 NE space .
text = 'Material Wise'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
ENDIF.
text = 'All Invoices'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
SEARCH p_heading FOR 'Report Variant' .
IF sy-subrc EQ 0 .
READ TABLE p_heading INTO hline INDEX sy-tabix .
IF sy-subrc EQ 0 .
hline-info = g_variant-text .
MODIFY p_heading FROM hline INDEX sy-tabix .
ENDIF .
ENDIF .
ENDFORM. " BUILD_COMMENT
&----
*& Form BUILD_EVENTTAB
&----
For handling top-of-page Event
----
FORM build_eventtab USING p_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_events.
READ TABLE p_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE formname_top_of_page TO ls_event-form.
APPEND ls_event TO p_events.
ENDIF.
ENDFORM. " BUILD_EVENTTAB
*&----
*& form initialize_variant
*&----
For Intializing Report Variant
*----
FORM initialize_variant.
g_save = 'A'.
CLEAR g_variant.
g_variant-report = repname.
gx_variant = g_variant.
layout-get_selinfos = 'X'.
layout-group_change_edit = 'X'.
layout-cell_merge = 'X'.
alv_print-no_print_selinfos = 'X'.
alv_print-no_coverpage = 'X'.
alv_print-no_print_listinfos = 'X'.
alv_detail_func = 'REUSE_ALV_LIST_DISPLAY'.
ENDFORM. " INITIALIZE_VARIANT
&----
*& Form F4_FOR_VARIANT
&----
For Handing F4 Event
----
FORM f4_for_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = g_variant
i_save = g_save
IMPORTING
e_exit = g_exit
es_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF g_exit = space.
p_vari = gx_variant-variant.
ENDIF.
ENDIF.
ENDFORM. " F4_FOR_VARIANT
&----
*& Form PAI_OF_SELECTION_SCREEN
&----
FORM pai_of_selection_screen.
IF NOT p_vari IS INITIAL.
MOVE g_variant TO gx_variant.
MOVE p_vari TO gx_variant-variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant.
g_variant = gx_variant.
ELSE.
PERFORM initialize_variant.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN
----
FORM TOP_OF_PAGE *
----
Displaying Top-of-page Data *
----
FORM top_of_page.
WRITE : / 'Run Date : ', sy-datum.
WRITE : / ' Period from : ', s_fkdat-low , 'To : ', s_fkdat-high.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = heading.
ENDFORM. "top_of_page
&----
*& Form BUILD_LAYOUT
&----
For Buliding Layout of The Report
----
FORM build_layout.
layout-zebra = 'X'.
layout-detail_popup = 'X'.
ENDFORM. " BUILD_LAYOUT
&----
*& For Display Output
&----
FORM display-output TABLES p_ivbeln STRUCTURE ivbeln.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = repname
i_buffer_active = ' '
i_callback_user_command = 'USER_COMMAND'
is_layout = layout
it_fieldcat = fieldtab[]
i_save = g_save
is_variant = g_variant
it_events = events[]
is_print = alv_print
TABLES
t_outtab = p_ivbeln
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " display-output
&----
*& Form display-output-HEAD
&----
FORM display-output-head TABLES iheader STRUCTURE ivbeln
iitem STRUCTURE iitem
USING value(p_1135)
value(p_1136).
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = repname
i_callback_user_command = 'USER_COMMAND'
is_layout = layout
it_fieldcat = fieldtab
is_print = alv_print
i_default = 'A'
i_save = g_save
is_variant = g_variant
it_events = events[]
i_tabname_header = p_1135
i_tabname_item = p_1136
is_keyinfo = keyinfo
TABLES
t_outtab_header = iitem
t_outtab_item = ivbeln
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " display-output-HEAD
&----
*& Form READ_TEXT
&----
FORM read_text USING tid tname tobj
CHANGING p_text.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = tid
language = 'E'
name = tname
object = tobj
TABLES
lines = tline
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
LOOP AT tline.
CASE sy-tabix .
WHEN 1.
p_text = tline-tdline .
ENDCASE .
ENDLOOP .
CLEAR tline .
REFRESH tline .
ENDFORM. " READ_TEXT
&----
*& Form modify_data_cancelled
&----
FORM modify_data_cancelled.
ENDFORM. " modify_data_cancelled
&----
*& Form modify_data_notcancel
&----
FORM modify_data_notcancel.
DELETE ivbeln WHERE ( sfakn NE space
OR fksto NE space )
OR rfbsk EQ 'E'.
CLEAR ivbeln.
ENDFORM. " modify_data_notcancel
&----
*& Form modify_ivbeln_cmgst
&----
FORM modify_ivbeln_cmgst.
DELETE ivbeln WHERE cmgst NE 'D'.
CLEAR ivbeln.
ENDFORM. " modify_ivbeln_cmgst
----
FORM USER_COMMANd *
----
FORM user_command USING r_ucomm LIKE sy-ucomm
ls_selfield TYPE slis_selfield.
CHECK ls_selfield-value IS NOT INITIAL.
CHECK r_ucomm EQ '&IC1'.
CASE ls_selfield-fieldname.
WHEN 'AUBEL'.
SET PARAMETER ID 'VA' FIELD ls_selfield-value.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
WHEN 'VGBEL'.
SET PARAMETER ID 'VL' FIELD ls_selfield-value.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
WHEN 'VBELN'.
SET PARAMETER ID 'VF' FIELD ls_selfield-value.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
WHEN 'OR_IN_VBELN'.
SET PARAMETER ID 'VF' FIELD ls_selfield-value.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
WHEN 'OR_DL_VBELN'.
SET PARAMETER ID 'VL' FIELD ls_selfield-value.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
ENDCASE.
IF rb5 IS INITIAL.
READ TABLE ivbeln INDEX ls_selfield-tabindex.
IF sy-subrc EQ 0.
SET PARAMETER ID 'VF' FIELD ivbeln-vbeln.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
ENDIF.
ELSE.
CHECK ls_selfield-value IS NOT INITIAL.
CHECK r_ucomm EQ '&IC1'.
*
CASE ls_selfield-fieldname.
WHEN 'AUBEL'.
SET PARAMETER ID 'VA' FIELD ls_selfield-value.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
WHEN 'VGBEL'.
SET PARAMETER ID 'VL' FIELD ls_selfield-value.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
WHEN 'VBELN'.
SET PARAMETER ID 'VF' FIELD ls_selfield-value.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
WHEN 'OR_IN_VBELN'.
SET PARAMETER ID 'VF' FIELD ls_selfield-value.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
WHEN 'OR_DL_VBELN'.
SET PARAMETER ID 'VL' FIELD ls_selfield-value.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
ENDCASE.
ENDIF.
ENDFORM. "user_command
&----
*& Form modify_ivbeln_cancelled
&----
FORM modify_ivbeln_cancelled.
DELETE ivbeln WHERE sfakn EQ space.
CLEAR ivbeln.
IF NOT ivbeln[] IS INITIAL.
CLEAR : exnum,exbed,exdat.
LOOP AT ivbeln.
ivbeln-vbeln = ivbeln-sfakn.
ON CHANGE OF ivbeln-vbeln.
CLEAR : exnum,exdat,exbed.
SELECT SINGLE exnum exdat FROM j_1iexchdr INTO (exnum,exdat)
WHERE trntyp = 'DLFC'
AND rdoc = ivbeln-sfakn
AND rind = 'N'.
IF sy-subrc = 0.
ENDIF.
ENDON.
ivbeln-exnum = exnum.
ivbeln-exdat = exdat.
MODIFY ivbeln TRANSPORTING exnum exdat exbed vbeln.
CLEAR ivbeln.
ENDLOOP.
ENDIF.
ENDFORM. " modify_ivbeln_cancelled
&----
*& Form read_characteristics
&----
FORM read_characteristics TABLES pchar STRUCTURE ichar
USING p_werks TYPE vbrp-werks
p_matnr TYPE vbrp-matnr
p_charg TYPE vbrp-charg
CHANGING p_char1
p_char2
p_char3
p_char4
p_char5
p_char6
p_char7
p_char8
p_char9
p_char10
p_char11
p_char12
p_char13
p_char14
p_char15.
DATA: t_conf TYPE clobjdat OCCURS 10 WITH HEADER LINE .
DATA text(30) TYPE c .
DATA : value(30) TYPE c.
FIELD-SYMBOLS: <char> .
DATA: class LIKE klah-class,
clint LIKE klah-clint,
objek LIKE kssk-objek,
tclass LIKE sclass OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'ZCFM_BATCH_CLASSIFICATION_DATA'
EXPORTING
ch_charg = p_charg
ch_matnr = p_matnr
ch_werks = p_werks
TABLES
cl_data = t_conf
sel_char = pchar
EXCEPTIONS
no_classification = 1
no_classtypes = 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.
ENDIF.
IF t_conf[] IS INITIAL.
objek = p_matnr.
CLEAR clint.
SELECT SINGLE clint FROM kssk INTO clint
WHERE objek = objek
AND klart = '001'.
CHECK NOT clint IS INITIAL.
CLEAR class.
SELECT SINGLE class FROM klah INTO class WHERE
clint = clint.
CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
EXPORTING
CLASS = class
CLASSTEXT = 'X'
classtype = '001'
CLINT = 0
FEATURES = 'X'
LANGUAGE = SY-LANGU
object = objek
OBJECTTABLE = ' '
KEY_DATE = SY-DATUM
INITIAL_CHARACT = 'X'
NO_VALUE_DESCRIPT =
CHANGE_SERVICE_CLF = 'X'
INHERITED_CHAR = ' '
CHANGE_NUMBER = ' '
TABLES
t_class = tclass
t_objectdata = t_conf
I_SEL_CHARACTERISTIC =
T_NO_AUTH_CHARACT =
EXCEPTIONS
no_classification = 1
no_classtypes = 2
invalid_class_type = 3
OTHERS = 4
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
LOOP AT t_conf.
READ TABLE it_char WITH KEY atnam = t_conf-atnam.
IF sy-subrc = 0 AND t_conf-ausp1 NE '?' .
CONCATENATE 'P_CHAR' it_char-tabix INTO text.
ASSIGN (text) TO <char>.
IF sy-subrc = 0.
CLEAR value.
CONDENSE t_conf-ausp1.
value = t_conf-ausp1.
CONDENSE value.
<char> = value.
ENDIF.
it_char-descrp = t_conf-smbez.
CLEAR ISDCHAR.
READ TABLE ISDCHAR WITH KEY ATNAM = T_CONF-ATNAM.
IT_CHAR-DESCRP = ISDCHAR-DESCR.
MODIFY it_char INDEX it_char-tabix.
ENDIF.
ENDLOOP.
ENDFORM. " read_characteristics
&----
*& Form display_data
&----
FORM display_data.
repname = sy-repid.
SORT ivbeln BY vbeln posnr.
PERFORM display-output TABLES ivbeln.
IF rb1 NE space .
SORT ivbeln BY kunnr name1.
keyinfo-header01 = 'KUNNR'.
keyinfo-item01 = 'KUNNR'.
LOOP AT ivbeln.
ON CHANGE OF ivbeln-kunnr.
MOVE ivbeln-kunnr TO iitem-kunnr.
MOVE ivbeln-name1 TO iitem-name1.
APPEND iitem.
CLEAR iitem.
ENDON.
ENDLOOP.
PERFORM display-output-head TABLES ivbeln iitem
USING 'IITEM' 'IVBELN'.
ENDIF.
*
Use of Radio Buttons
**----
IF rb2 NE space .
SORT ivbeln BY vkbur vbezei.
keyinfo-header01 = 'VKBUR'.
keyinfo-item01 = 'VKBUR'.
LOOP AT ivbeln.
ON CHANGE OF ivbeln-vkbur.
MOVE ivbeln-vkbur TO iitem-vkbur.
MOVE ivbeln-vbezei TO iitem-vbezei.
APPEND iitem.
CLEAR iitem.
ENDON.
ENDLOOP.
PERFORM display-output-head TABLES ivbeln iitem
USING 'IITEM' 'IVBELN'.
ENDIF.
*
IF rb5 NE space .
SORT ivbeln BY vbeln posnr.
PERFORM display-output TABLES ivbeln.
ENDIF.
*
IF rb3 NE space .
SORT ivbeln BY vtweg.
keyinfo-header01 = 'VTWEG'.
keyinfo-item01 = 'VTWEG'.
LOOP AT ivbeln.
ON CHANGE OF ivbeln-vtweg.
SELECT SINGLE vtext INTO iitem-dtext FROM tvtwt
WHERE vtweg EQ ivbeln-vtweg
AND spras EQ sy-langu.
MOVE ivbeln-vtweg TO iitem-vtweg.
APPEND iitem.
CLEAR iitem.
ENDON.
ENDLOOP.
PERFORM display-output-head TABLES ivbeln iitem
USING 'IITEM' 'IVBELN'.
ENDIF.
*
IF rb4 NE space .
SORT ivbeln BY matnr.
keyinfo-header01 = 'MATNR'.
keyinfo-item01 = 'MATNR'.
LOOP AT ivbeln.
ON CHANGE OF ivbeln-matnr.
MOVE ivbeln-matnr TO iitem-matnr.
MOVE ivbeln-arktx TO iitem-arktx.
APPEND iitem.
CLEAR iitem.
ENDON.
ENDLOOP.
PERFORM display-output-head TABLES ivbeln iitem
USING 'IITEM' 'IVBELN'.
ENDIF.
ENDFORM. " display_data
&----
*& Form f_get_batch_chars
&----
FORM f_get_batch_chars TABLES p_char STRUCTURE t_char
USING p_ivbeln_werks
p_ivbeln_charg
p_ivbeln_matnr
CHANGING p_ivbeln_coilno
p_ivbeln_packno.
CALL FUNCTION 'ZSD_BATCH_CLASSIFICATION_DATA'
EXPORTING
ch_charg = p_ivbeln_charg
ch_matnr = p_ivbeln_matnr
ch_werks = p_ivbeln_werks
TABLES
cl_data = i_cl_data
i_sel_characteristic = p_char
EXCEPTIONS
no_classification = 1
no_classtypes = 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.
IF NOT i_cl_data[] IS INITIAL.
READ TABLE i_cl_data WITH KEY atnam = 'COILNUMBER'.
IF sy-subrc EQ 0.
p_ivbeln_coilno = i_cl_data-ausp1.
ENDIF.
READ TABLE i_cl_data WITH KEY atnam = 'HR_PACK_NO'.
IF sy-subrc EQ 0.
p_ivbeln_packno = i_cl_data-ausp1.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " f_get_batch_chars
&----
*& Form get_vbtyptext
&----
FORM get_domtext TABLES p_dd07v USING p_dom .
CALL FUNCTION 'DD_DOMVALUES_GET'
EXPORTING
domname = p_dom
text = 'X'
langu = sy-langu
BYPASS_BUFFER = ' '
IMPORTING
RC =
TABLES
dd07v_tab = p_dd07v
EXCEPTIONS
wrong_textflag = 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. " get_vbtyptext
&----
*& Form ATTACH_CHAR_TO_FIELDCAT
&----
FORM attach_char_to_fieldcat .
DATA : text(20) TYPE c.
DATA : no_lines TYPE i.
DESCRIBE TABLE fieldtab LINES no_lines.
DELETE it_char WHERE descrp EQ space.
*ADD FIELDS TO THE FIELDCAT IN A LOOP.
*----
LOOP AT it_char.
CLEAR cabnt.
CLEAR text.
CONCATENATE 'CHAR' it_char-tabix INTO text.
PERFORM fill_fieldtabnew(zinc_alv1) USING :
'IVBELN' text it_char-descrp 'ATWRT' 'AUSP' no_lines fieldtab ''.
no_lines = no_lines + 1.
ENDLOOP.
ENDFORM. " ATTACH_CHAR_TO_FIELDCAT
&----
*& Form segregate_dist_chann_qty
&----
FORM segregate_dist_chann_qty .
LOOP AT ivbeln.
CASE ivbeln-vtweg .
WHEN '10'.
ivbeln-td_fkimg = ivbeln-fkimg.
WHEN '20'.
ivbeln-nt_fkimg = ivbeln-fkimg.
WHEN '30'.
ivbeln-st_fkimg = ivbeln-fkimg.
ENDCASE.
ivbeln-tot_fkimg = ivbeln-td_fkimg + ivbeln-nt_fkimg.
MODIFY ivbeln.
CLEAR ivbeln.
ENDLOOP.
ENDFORM. " segregate_dist_chann_qty
&----
*& Form get_transporter_data
&----
FORM get_transporter_data .
DATA: kunnr LIKE vbpa-kunnr.
LOOP AT ivbeln.
IF ivbeln-lifnr IS INITIAL.
SELECT SINGLE lifnr FROM vbpa INTO ivbeln-lifnr
WHERE vbeln EQ ivbeln-vgbel
AND parvw EQ 'SP'.
ENDIF.
SELECT SINGLE name1 FROM lfa1 INTO ivbeln-tname
WHERE lifnr EQ ivbeln-lifnr.
MODIFY ivbeln.
ENDLOOP.
ENDFORM. " get_transporter_data
&----
*& Form MODIFY_FIELDCAT_ATTRIBUTE
&----
FORM modify_fieldcat_attribute USING value(p_attribute)
value(p_pos)
value(p_value).
DATA:
p_fieldname(100),
fieldcat TYPE slis_fieldcat_alv.
FIELD-SYMBOLS <fs> TYPE ANY.
CONCATENATE 'FIELDCAT-' p_attribute
INTO p_fieldname IN CHARACTER MODE.
CONDENSE p_fieldname NO-GAPS.
ASSIGN (p_fieldname) TO <fs>.
CHECK <fs> IS ASSIGNED.
CLEAR fieldcat.
READ TABLE fieldtab WITH KEY col_pos = p_pos INTO fieldcat.
IF sy-subrc EQ 0.
<fs> = p_value.
MODIFY fieldtab FROM fieldcat INDEX sy-tabix.
ENDIF.
UNASSIGN <fs>.
ENDFORM. " MODIFY_FIELDCAT_ROUND
*&----
*& Form append_fieldcat_ver2
*&----
FORM append_fieldcat_ver2 USING value(f_name) value(p_text) .
DATA fieldcat TYPE slis_fieldcat_alv.
g_pos = g_pos + 1.
CLEAR fieldcat.
fieldcat-tabname = tabname .
fieldcat-fieldname = f_name.
fieldcat-col_pos = g_pos.
fieldcat-seltext_m = p_text.
APPEND fieldcat TO fieldtab.
ENDFORM. " append_fieldcat_ver2
&----
*& Form get_sd_matgroups
&----
FORM get_sd_matgroups .
LOOP AT IVBELN.
CALL FUNCTION 'ZCFM_SD_MATGROUPS'
EXPORTING
MATNR = IVBELN-MATNR
VKORG = IVBELN-VKORG
VTWEG = IVBELN-VTWEG
IMPORTING
MVGR1 = IVBELN-MVGR1
MVGR1_TEXT = IVBELN-MVGR1_TEXT
MVGR2 = IVBELN-MVGR2
MVGR2_TEXT = IVBELN-MVGR2_TEXT
MVGR3 = IVBELN-MVGR3
MVGR3_TEXT = IVBELN-MVGR3_TEXT
MVGR4 = IVBELN-MVGR4
MVGR4_TEXT = IVBELN-MVGR4_TEXT
MVGR5 = IVBELN-MVGR5
MVGR5_TEXT = IVBELN-MVGR5_TEXT.
MODIFY IVBELN.
CLEAR IVBELN.
ENDLOOP.
ENDFORM. " get_sd_matgroups
&----
*& Form SET_FIELD_ATTRIBUTE
&----
FORM set_field_attribute USING value(p_fieldname)
value(p_attribute)
value(p_value).
DATA:
p_field(100),
fieldcat TYPE slis_fieldcat_alv.
FIELD-SYMBOLS: <fs>.
CONCATENATE 'FIELDCAT-' p_attribute INTO p_field IN CHARACTER MODE.
CONDENSE p_field NO-GAPS.
ASSIGN (p_field) TO <fs>.
READ TABLE fieldtab WITH KEY fieldname = p_fieldname INTO fieldcat .
IF sy-subrc EQ 0.
<fs> = p_value.
MODIFY fieldtab FROM fieldcat INDEX sy-tabix.
ENDIF.
UNASSIGN <fs>.
ENDFORM. " SET_FIELD_ATTRIBUTE
&----
*& Form get_excise_details
&----
FORM get_excise_details .
LOOP AT ivbeln.
SELECT SINGLE exgrp srgrp expind FROM j_1iexchdr
INTO (ivbeln-exgrp,ivbeln-srgrp,ivbeln-expind)
WHERE trntyp = 'DLFC'
AND rdoc = ivbeln-vbeln
AND rind = 'N'
AND status = 'C'.
IF sy-subrc EQ 0.
SELECT SINGLE ddtext FROM dd07t
INTO ivbeln-expind_desc
WHERE domname EQ 'J_1IINDEXP'
AND domvalue_l EQ ivbeln-expind.
ENDIF.
IF ivbeln-fksto EQ 'X'.
ivbeln-fksto_tx = 'Billing Document Cancelled'.
ENDIF.
SELECT SINGLE regio land1 FROM t001w
INTO (ivbeln-pl_regio,ivbeln-pl_land1)
WHERE werks EQ ivbeln-werks.
IF ivbeln-pl_regio IS NOT INITIAL.
SELECT SINGLE bezei FROM t005u
INTO ivbeln-regio_tx
WHERE bland EQ ivbeln-pl_regio
AND land1 EQ ivbeln-pl_land1
AND spras EQ sy-langu.
ENDIF.
IF ivbeln-exti1 IS NOT INITIAL.
ivbeln-tr_count = 1.
ENDIF.
MODIFY ivbeln.
CLEAR ivbeln.
ENDLOOP.
ENDFORM. " get_excise_details
&----
*& Form get_plant_from_po
&----
FORM get_plant_from_po .
LOOP AT ivbeln WHERE fkart EQ 'ZSTF'
OR fkart EQ 'ZSTE'.
SELECT SINGLE werks FROM ekpo
INTO ivbeln-werks
WHERE ebeln EQ ivbeln-aubel.
MODIFY ivbeln.
CLEAR ivbeln.
ENDLOOP.
ENDFORM. " get_plant_from_po
***************************************************************
FORM GET_DAY_LABEL - GETTING FIELD LABELS FOR DAYS
***************************************************************
FORM get_day_label.
DATA: temp(3),temp1(3).
IF p_field1 NE space.
CONCATENATE '0 - ' p_field1 ' Days ' INTO p_ftext1.
MOVE p_field1 TO head-field.
MOVE p_ftext1 TO head-text.
APPEND head.
CLEAR temp1.
temp1 = p_field1.
len = len + 17.
ENDIF.
IF p_field2 NE space.
CLEAR temp.
temp = p_field1 + 1.
CONCATENATE temp ' - ' p_field2 ' Days ' INTO p_ftext2.
MOVE p_field2 TO head-field.
MOVE p_ftext2 TO head-text.
APPEND head.
CLEAR temp1.
temp1 = p_field2.
len = len + 17.
ENDIF.
IF p_field3 NE space.
CLEAR temp.
temp = p_field2 + 1.
CONCATENATE temp ' - ' p_field3 ' Days ' INTO p_ftext3.
MOVE p_field3 TO head-field.
MOVE p_ftext3 TO head-text.
APPEND head.
CLEAR temp1.
temp1 = p_field3.
len = len + 17.
ENDIF.
IF p_field4 NE space.
CLEAR temp.
temp = p_field3 + 1.
CONCATENATE temp ' - ' p_field4 ' Days ' INTO p_ftext4.
MOVE p_field4 TO head-field.
MOVE p_ftext4 TO head-text.
APPEND head.
CLEAR temp1.
temp1 = p_field4.
len = len + 17.
ENDIF.
IF p_field5 NE space.
CLEAR temp.
temp = p_field4 + 1.
CONCATENATE temp ' - ' p_field5 ' Days ' INTO p_ftext5.
MOVE p_field5 TO head-field.
MOVE p_ftext5 TO head-text.
APPEND head.
CLEAR temp1.
temp1 = p_field5.
len = len + 17.
ENDIF.
MOVE 'Other' TO head-field.
CONCATENATE 'Above' temp1 'Days' INTO p_ftext6 SEPARATED BY space.
CONCATENATE 'Above' temp1 'Days' INTO head-text SEPARATED BY space.
APPEND head.
len = len + 17.
ENDFORM. "GET_DAY_LABEL
&----
*& Form check_input
&----
text
----
--> p1 text
<-- p2 text
----
FORM check_input.
IF p_field1 EQ space AND p_field2 EQ space AND p_field3 EQ space
AND p_field4 EQ space AND p_field5 EQ space.
p_field1 = '030'.
p_field2 = '060'.
p_field3 = '090'.
p_field4 = '180'.
p_field5 = '365'.
ENDIF.
IF NOT p_field5 IS INITIAL.
IF p_field5 GT p_field4
AND p_field4 GT p_field3
AND p_field3 GT p_field2
AND p_field2 GT p_field1.
ELSE.
MESSAGE e001.
ENDIF.
ELSE.
IF NOT p_field4 IS INITIAL.
IF p_field4 GT p_field3
AND p_field3 GT p_field2
AND p_field2 GT p_field1.
ELSE.
MESSAGE e001.
ENDIF.
ELSE.
IF NOT p_field3 IS INITIAL.
IF p_field3 GT p_field2
AND p_field2 GT p_field1.
ELSE.
MESSAGE e001.
ENDIF.
ELSE.
IF NOT p_field2 IS INITIAL.
IF p_field2 GT p_field1.
ELSE.
MESSAGE e001.
ENDIF.
ELSE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. "CHECK_INPUT
Hello Abap Gurus;
I have a report of invoice list.In this report i want shade column
of the SD document: Delivery: Item data in which the shade is displayed.I m attaching the code also.
&----
*& Report ZRPT_SD_002
*&
&----
*&
*&
&----
REPORT zrpt_sd_002 LINE-SIZE 70 NO STANDARD PAGE HEADING
MESSAGE-ID zcvs.
************************************************************************
TABLES
************************************************************************
TABLES : vbak , " Sales Document Header
vbap , " Sales Document Item
kna1 , " Customer Master
vbkd , " Business Data
t023t , " MAterial Group
ekkn ,
mara ,
lfa1,
t134t , " Material Type
t024d , " MAterial Controller
t188t , " Zone
tvkbt , " Sales OFfice Text
tvaut , " Order Reason
vbfa , " Order Status
vbep , " Schedule Line Data
mska , " Sales Order Stock
vbrp , " Billing Header
afko , " Production Order
vbrk , " Billing Header
konv , " Condition Type Table
likp , " Delivery Header
knb1 ,
bkpf ,
cabnt , vttp,vttk,
tvro,vbpa.
************************************************************************
TYPE-POOLS
************************************************************************
TYPE-POOLS : slis.
************************************************************************
VARIABLE DECLARATION
************************************************************************
DATA : maktx LIKE makt-maktx,
knttp LIKE ekpo-knttp,
city1 LIKE adrc-city1,
tknum LIKE vttk-tknum,
name1 LIKE lfa1-name1,
lzone LIKE kna1-lzone,
mtbez LIKE t134t-mtbez,
wgbez LIKE t023t-wgbez, " Material Group Text
bezei LIKE tvaut-bezei, " Order Reason Text
kvgr1 LIKE vbak-kvgr1, " Product Manager
vtext LIKE t188t-vtext, " Product Manager Text
vtext2 LIKE t188t-vtext, " Regional Mgnr Text
vtext3 LIKE t188t-vtext, " Key Account Group
vtext4 LIKE t188t-vtext, " Special Group
vtext5 LIKE t188t-vtext, " Executive
vbezei LIKE tvkbt-bezei, " Sales office
matkl LIKE mara-matkl, " Material Group
mtart LIKE mara-mtart, " Material Type
erdat LIKE vbak-erdat,
audat LIKE vbak-audat,
auart LIKE vbak-auart,
bstkd LIKE vbkd-bstkd,
prdha LIKE mara-prdha,
belnr LIKE bkpf-belnr,
text(30) TYPE c ,
v_tabix LIKE sy-tabix,
lifnr LIKE lfa1-lifnr,
tname LIKE lfa1-name1,
bstdk LIKE vbkd-bstdk,
ordat LIKE vbrk-erdat,
stext LIKE tspat-vtext,
ktext LIKE t151t-ktext,
v_brtxt LIKE t016t-brtxt,
v_month TYPE i,p_mon TYPE i,
v_mname(20),p_mname(20),
v_ptext LIKE t052u-text1.
DATA : cl_data LIKE clobjdat OCCURS 0 WITH HEADER LINE.
DATA : i_cl_data LIKE clobjdat OCCURS 0 WITH HEADER LINE.
DATA : dmbtr LIKE bseg-dmbtr,
gbsta LIKE vbup-gbsta,
mbdat LIKE vbep-mbdat,
kalab LIKE mska-kalab,
bonba LIKE vbrp-bonba,
gltrp LIKE afko-gltrp,
mblnr LIKE mseg-mblnr,
budat LIKE mkpf-budat,
prtext LIKE t179t-vtext,
signi LIKE vttk-signi, " Truck Number
landx LIKE t005t-landx.
DATA : BEGIN OF tline OCCURS 0 .
INCLUDE STRUCTURE tline .
DATA : END OF tline .
DATA : soh LIKE rstxt-tdname ,
destcty(30).
DATA : klmeng LIKE vbap-klmeng.
DATA : tabix LIKE sy-tabix.
DATA : cmgst LIKE vbuk-cmgst,
option(10) TYPE c .
DATA : BEGIN OF delivery_header.
INCLUDE STRUCTURE likp.
DATA : END OF delivery_header.
DATA : BEGIN OF shipment_header.
INCLUDE STRUCTURE vttk.
DATA : END OF shipment_header.
DATA : BEGIN OF ivbrk OCCURS 0.
INCLUDE STRUCTURE vbrk.
DATA : brsch LIKE kna1-brsch,
name1 LIKE kna1-name1,
ort01 LIKE kna1-ort01.
DATA : END OF ivbrk.
DATA : v_regio LIKE kna1-regio,
v_brsch LIKE kna1-brsch,
v_ort01 LIKE kna1-ort01,
v_land1 LIKE kna1-land1.
***----
New For Days Start
DATA: len TYPE i.
DATA : BEGIN OF head OCCURS 0,
field(5),
text(30),
END OF head.
DATA : p_ftext1(30),
p_ftext2(30),
p_ftext3(30),
p_ftext4(30),
p_ftext5(30),
p_ftext6(30).
***----
New For Days End
***********************************************************************
DECLARATION FOR ALV
************************************************************************
DATA: fieldtab TYPE slis_t_fieldcat_alv,
heading TYPE slis_t_listheader,
layout TYPE slis_layout_alv,
events TYPE slis_t_event,
repname LIKE sy-repid,
f2code LIKE sy-ucomm VALUE '&ETA',
g_save(1) TYPE c,
g_variant LIKE disvariant,
gx_variant LIKE disvariant,
g_exit(1) TYPE c.
DATA: keyinfo TYPE slis_keyinfo_alv.
CONSTANTS: formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA: alv_print TYPE slis_print_alv.
DATA: alv_detail_func(30).
DATA: g_pos TYPE i.
DATA: tabname TYPE slis_tabname.
************************************************************************
INTERNAL TABLES DECLARATION
************************************************************************
DATA : BEGIN OF ivbeln OCCURS 1,
vbeln LIKE vbrk-vbeln, " Billing Document
posnr LIKE vbrp-posnr, " Billing Doc Item
fkart LIKE vbrk-fkart, " Billing Type
vbtyp LIKE vbrk-vbtyp, " SD Docnument Category
vbtyp_desc(35) , " Vbtyp description
vkgrp LIKE vbrp-vkgrp, " Sales Group
fkdat LIKE vbrk-fkdat, " Billing Date
matnr LIKE vbrp-matnr, " Material
arktx LIKE vbrp-arktx, " Material Desc
kunnr LIKE vbrk-kunag, " Customer Code
name1 LIKE kna1-name1, " Customer Name
ort01 LIKE kna1-ort01, " Customer City
fkimg LIKE vbrp-fkimg, " Billed Qty
werks LIKE vbrp-werks, " Plant
pl_land1 LIKE t001w-land1, " Plant Country
pl_regio LIKE t001w-regio, " Plant Region Code
regio_tx LIKE t005u-bezei, " Plant Region Name
netwr LIKE vbrp-netwr, " Net Price
vkorg LIKE vbrk-vkorg, " Sales Organisation
vtext LIKE tvkot-vtext, " Sales Org.Text
vtweg LIKE vbrk-vtweg, " Distribution Channel
vttxt LIKE tvtwt-vtext, " Dist.Channel Text
vkbur LIKE vbrp-vkbur, " Sales Office
vbezei LIKE tvkbt-bezei, " Sales Office Text
spart LIKE vbrp-spart, " Division
stext LIKE tspat-vtext, " Sales Division Text
kvgr1 LIKE vbrp-kvgr1, " District
vtext1 LIKE tvv1t-bezei, " District Name
kvgr2 LIKE vbrp-kvgr2, " Taluka
vtext2 LIKE t188t-vtext, " Taluka Name
kvgr3 LIKE vbrp-kvgr3, " Village
vtext3 LIKE t188t-vtext, " Village Name
kvgr4 LIKE vbrp-kvgr4, " Special Group
vtext4 LIKE t188t-vtext, " Special Group
kvgr5 LIKE vbrp-kvgr5, " Executive
vtext5 LIKE t188t-vtext, " Executive Text
ZZLZONE LIKE VBAP-ZZLZONE , " Transport.Zone(Sold To Party)
lztxt LIKE tzont-vtext, " Trans.Zone Desc(Sold To Party)
waerk LIKE vbap-waerk, " Document Currency
inco1 LIKE vbkd-inco1, " Inco Terms1
inco2 LIKE vbkd-inco2, " Inco Terms2
bukrs LIKE vbrk-bukrs, " Company Code
lgort LIKE vbrp-lgort, " Storage Loc
vrkme LIKE vbrp-vrkme, " Sales Unit
aubel LIKE vbrp-aubel, " Sales Doc
aupos LIKE vbrp-aupos, " Sales Doc Item
audat LIKE vbak-audat, " Sales Order Date
klmeng LIKE vbap-klmeng, " Sales Qty
knumv LIKE konv-knumv, " Cond.Doc No
frate LIKE konv-kbetr, " Rate
fvalue LIKE konv-kwert, " Value
erate LIKE konv-kbetr, " Excise Rate
evalue LIKE konv-kwert, " Excise Value
kschl LIKE konv-kschl, " Condition Type
mtart LIKE mara-mtart, " Material TYpe
matkl LIKE mara-matkl, " Material Group
stceg LIKE vbrk-stceg, " VAT Reg.No
sfakn LIKE vbrk-sfakn, " Cancelled Bill Doc No
sfakn1 LIKE vbrk-sfakn, " Reversed Bill Doc No
rfbsk LIKE vbrk-rfbsk, " Accounting Transfer Status
fksto LIKE vbrk-fksto, " Bill Doc.Cancel Ind
fksto_tx(60), " Bill Doc.Cancel text
erdat LIKE vbrk-erdat, " Creation Date
erzet LIKE vbrk-erzet, " Creattion Time
regio LIKE kna1-regio, " Region
pstyv LIKE vbrp-pstyv, " Sales Doc Item Cat.
vgbel LIKE vbak-vgbel, " Ref.Doc No
vgpos LIKE vbap-vgpos, " Ref.Doc.Item.No
cmgst LIKE vbuk-cmgst, " Credit Status
zterm LIKE vbrk-zterm, " Pay Term
auart LIKE vbak-auart, " Sales Order Type
bstkd LIKE vbkd-bstkd, " Cust.PO No
bstdk LIKE vbkd-bstdk, " Cust.PO Date
mwsbp LIKE vbrp-mwsbp, " Tax Amount
belnr LIKE bkpf-belnr, " Acc.Doc No
kzwi1 LIKE vbrp-kzwi1 , " Base Price
kzwi2 LIKE vbrp-kzwi2 , "
kzwi3 LIKE vbrp-kzwi3 , " Discounts
kzwi4 LIKE vbrp-kzwi4, " Packing and forwarding
kzwi5 LIKE vbrp-kzwi5 , " Excise
kzwi6 LIKE vbrp-kzwi6 , " LST/ CST
mtbez LIKE t134t-mtbez, " Material Type Text
wgbez LIKE t023t-wgbez, " Material Group Text
land1 LIKE vbrk-land1, " Country
landx(20), " Country Text
abrvw LIKE tvlvt-abrvw, " Usage Ind.
reasn LIKE tvlvt-bezei, " Desc
prdha LIKE mara-prdha, " Prod Hir.
edg(2),
char1 LIKE ausp-atwrt , " Characteristic
char2 LIKE ausp-atwrt , " Characteristic
char3 LIKE ausp-atwrt , " Characteristic
char4 LIKE ausp-atwrt , " Characteristic
char5 LIKE ausp-atwrt , " Characteristic
char6 LIKE ausp-atwrt , " Characteristic
char7 LIKE ausp-atwrt , " Characteristic
char8 LIKE ausp-atwrt , " Characteristic
char9 LIKE ausp-atwrt , " Characteristic
char10 LIKE ausp-atwrt , " Characteristic
char11 LIKE ausp-atwrt , " Characteristic
char12 LIKE ausp-atwrt , " Characteristic
char13 LIKE ausp-atwrt , " Characteristic
char14 LIKE ausp-atwrt , " Characteristic
char15 LIKE ausp-atwrt , " Characteristic
char16 LIKE ausp-atwrt , " Characteristic
lifnr LIKE lfa1-lifnr, " Vendor
tname LIKE lfa1-name1, " Vendor Name
ordat LIKE vbrk-fkdat, " order Date
charg LIKE vbrp-charg, " Batch
kdgrp_auft LIKE vbrp-kdgrp_auft, " Customer Sales Group
ktext LIKE t151t-ktext, " Customer Sales Group Text
signi LIKE vttk-signi, " License No
route LIKE likp-route, " Route
routid LIKE tvro-routid, " Route ID
rt_bezei LIKE tvrot-bezei, " Route Desc
vstel LIKE likp-vstel, " Shipping Point
sp_vtext LIKE tvstt-vtext, " Ship Point Desc
distz LIKE v_tvro_com-distz, " Distance
brsch LIKE kna1-brsch, " Industry Key
brtxt LIKE t016t-brtxt, " Industry Name
mname LIKE kna1-name1, " Name
exnum LIKE j_1iexchdr-exnum, " Ex.Number
exdat LIKE j_1iexchdr-exdat, " Ex.Date
exbed LIKE j_1iexcdtl-exbed, " Ex.BED Amt
ecs LIKE j_1iexcdtl-ecs, " Ex.ECESS Amt
expind LIKE j_1iexchdr-expind, " Export Ind.
expind_desc LIKE dd07t-ddtext, " Export Ind.Desc
exgrp LIKE j_1iexchdr-exgrp, " Exc.Group
srgrp LIKE j_1iexchdr-srgrp, " Series Group
sanum LIKE vbap-vbeln, " Sales Order No
sapos LIKE vbap-posnr, " SO Item No
tknum LIKE vttk-tknum, " Shipment No
exti1 LIKE vttk-exti1, " Vehicle Number
exti2 LIKE vttk-exti2, " Driver Name
tr_count TYPE i, " Truck Count
vsart LIKE vttk-vsart, " Shipment Type
st_bezei LIKE t173t-bezei, " Shipment Type Desc
zb00 LIKE konv-kbetr, " Basic Rate
xcpdk LIKE vbpa-xcpdk, " One Time Account
adrnr LIKE vbpa-adrnr, " Address Number
shpcd LIKE kna1-kunnr, " Ship to Party
shpnm LIKE kna1-name1, " Ship to Party Name
sh_regio LIKE kna1-regio, " Region(SH)
sh_land1 LIKE kna1-land1, " Country
SH_LZONE LIKE VBAP-ZZLZONE , " Transport.Zone(Ship To Party)
sh_lztxt LIKE tzont-vtext, " Trans.Zone Desc(Ship To Party)
mblnr LIKE mseg-mblnr, " Material Doc No
budat LIKE mkpf-budat, " Doc Date
konda LIKE vbrk-konda, " Sales Zone
ptext LIKE t188t-vtext, " Text
zrbat LIKE konv-kwert, " Rebate Amount
serdt LIKE vbak-erdat, " S.A Create Date
groes LIKE mara-groes, " Size/Dimensions
dtext(20), "
prodt(20), "
mtext(20), "
prdqy LIKE vbrp-fkimg, "
aufnr LIKE afko-aufnr, " Order No
city1 LIKE adrc-city1, " City
packno(3), " Pack No
inv_rate LIKE konv-kbetr, " Inv Rate
inv_amt LIKE konv-kwert, " Inv Amount
frt_rate LIKE konv-kbetr, " Frt Rate
frt_amt LIKE konv-kwert, " Frt Amount
td_fkimg LIKE vbrp-fkimg, " Trade Inv.Qty
nt_fkimg LIKE vbrp-fkimg, " Non-Trade Inv.Qty
st_fkimg LIKE vbrp-fkimg, " Stk.Trsf.Inv.Qty
tot_fkimg LIKE vbrp-fkimg, " Total
or_dl_vbeln LIKE lips-vbeln, " Original Delivery
or_dl_posnr LIKE lips-posnr, " Original Del.Item
or_in_vbeln LIKE vbrp-vbeln, " Original Invoice
or_in_fkdat LIKE vbrk-fkdat, " Original Inv.Date
or_in_posnr LIKE vbrp-posnr, " Original Inv.Item
or_in_knumv LIKE vbrk-knumv, " Original Inv.Cond.No
or_in_frt_amt LIKE konv-kwert, " Original Frt Amount
or_in_fkimg LIKE vbrp-fkimg, " Original Qty
diff_date TYPE p, " Date Differance
pfield1 LIKE vbrp-fkimg, " Day 1
pfield2 LIKE vbrp-fkimg, " Day 2
pfield3 LIKE vbrp-fkimg, " Day 3
pfield4 LIKE vbrp-fkimg, " Day 4
pfield5 LIKE vbrp-fkimg, " Day 5
pfield6 LIKE vbrp-fkimg, " Above Days
pfield7 LIKE vbrp-fkimg, " TOTAL DAYS
bolnr LIKE likp-bolnr, " LR/DC No
INCLUDE STRUCTURE ZSD_MATGROUPS. " Inc.For Mat.Groups
chaname TYPE lfa1-name1,
lcnum TYPE vbkd-lcnum,
tdline TYPE tline-tdline,
docno type j_1iexchdr-docno.
DATA: END OF ivbeln.
DATA : BEGIN OF i_mat_tab OCCURS 0,
dtext LIKE ivbeln-dtext,
prodt(20),
mtext(20),
name1 LIKE ivbeln-name1,
kunnr LIKE ivbeln-kunnr,
fkimg LIKE ivbeln-fkimg,
END OF i_mat_tab.
DATA : BEGIN OF it_vbtyp OCCURS 0.
INCLUDE STRUCTURE dd07v.
DATA : END OF it_vbtyp.
DATA : BEGIN OF i_mseg OCCURS 0.
INCLUDE STRUCTURE mseg.
DATA : END OF i_mseg.
DATA : BEGIN OF i_mseg_coll OCCURS 0,
matnr LIKE mseg-matnr,
charg LIKE mseg-charg,
menge LIKE mseg-menge,
aufnr LIKE mseg-aufnr,
werks LIKE mseg-werks,
END OF i_mseg_coll.
*-- For Sales Plan Details
DATA : exnum LIKE j_1iexchdr-exnum,
exdat LIKE j_1iexchdr-exdat,
exbed LIKE j_1iexchdr-exbed,
expind LIKE j_1iexchdr-expind,
exgrp LIKE j_1iexchdr-exgrp,
srgrp LIKE j_1iexchdr-srgrp,
shpcd LIKE kna1-kunnr,
shpnm LIKE kna1-name1,
shreg LIKE kna1-regio,
shlnd LIKE kna1-land1,
xcpdk LIKE vbpa-xcpdk,
adrnr LIKE vbpa-adrnr,
sanum LIKE vbap-vbeln,
serdt LIKE vbak-erdat,
ptext LIKE t188t-vtext,
sapos LIKE vbap-posnr.
DATA : BEGIN OF iitem OCCURS 1,
kunnr LIKE ivbeln-kunnr,
name1 LIKE ivbeln-name1,
vkbur LIKE ivbeln-vkbur,
vbezei LIKE ivbeln-vbezei,
dtext LIKE tvtwt-vtext,
matnr LIKE ivbeln-matnr,
arktx LIKE ivbeln-arktx,
VTWEG LIKE ZCVI_VBRKVBRP-VTWEG,
land1 LIKE kna1-land1,
landx LIKE t005t-landx,
END OF iitem.
DATA : BEGIN OF t_konv OCCURS 0,
knumv LIKE konv-knumv,
kposn LIKE konv-kposn,
krech LIKE konv-krech,
kwert LIKE konv-kwert,
kbetr LIKE konv-kbetr,
kawrt LIKE konv-kawrt,
kschl LIKE konv-kschl,
END OF t_konv.
DATA : kunnr LIKE kna1-name1,
pdate LIKE sy-datum,
frate LIKE konv-kbetr,
erate LIKE konv-kbetr,
evalue LIKE konv-kwert,
fvalue LIKE konv-kwert,
zwels LIKE knb1-zwels.
*DATA : BEGIN OF ISDCHAR OCCURS 0 .
INCLUDE STRUCTURE ZCTA_SDCHAR .
*DATA END OF ISDCHAR .
DATA : BEGIN OF it_char OCCURS 0.
DATA : tabix(2) TYPE c,
atbez(30),
descrp(30) TYPE c.
INCLUDE STRUCTURE vbmuez.
DATA : END OF it_char.
DATA : ichar LIKE sel_char OCCURS 0 WITH HEADER LINE.
DATA : reasn LIKE tvlvt-bezei.
----
FIELD-SYMBOLS *
----
FIELD-SYMBOLS : <table> TYPE table ,
<struc> ,
<field> ,
<component> .
----
Data Declaration for Dynamic Assignment *
----
DATA : alv_fieldcat TYPE slis_t_fieldcat_alv,
lt_alv_cat TYPE TABLE OF lvc_s_fcat,
it_fieldcat LIKE LINE OF lt_alv_cat.
DATA : i_table TYPE REF TO data,
i_structure TYPE REF TO data.
DATA : new_tabix LIKE sy-tabix.
DATA : v_ebeln LIKE ekkn-ebeln ,
v_ebelp LIKE ekkn-ebelp ,
groes LIKE mara-groes.
DATA : t_char LIKE sel_char OCCURS 0 WITH HEADER LINE.
----
Macro Definition for assigning and unassigning component
----
Assign a field to a component and component to a structure
*----
DEFINE assign_component.
assign &1 to <component>.
assign component <component> of structure <struc> to <field>.
END-OF-DEFINITION.
Unassign a Component.
*----
DEFINE unassign_field.
if &1 is assigned.
unassign &1.
endif.
END-OF-DEFINITION.
************************************************************************
SELECTION - SCREEN
************************************************************************
*For ALV Variant
*----
SELECTION-SCREEN BEGIN OF BLOCK d WITH FRAME TITLE text-s01.
PARAMETERS: p_vari LIKE disvariant-variant. " ALV Variant
SELECTION-SCREEN END OF BLOCK d.
For Basic Data
*----
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-s02.
SELECT-OPTIONS: s_kunnr FOR vbrk-kunrg MATCHCODE OBJECT debi,
s_vbeln FOR vbrk-vbeln MATCHCODE OBJECT vmva,
s_fkdat FOR vbrk-fkdat OBLIGATORY,
s_matnr FOR vbrp-matnr MATCHCODE OBJECT mat1,
s_fkart FOR vbrk-fkart ,
s_pstyv FOR vbap-pstyv,
s_spart FOR vbrk-spart.
SELECTION-SCREEN END OF BLOCK a.
For Organisational Data
*----
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-s03.
SELECT-OPTIONS: s_vkorg FOR vbrk-vkorg,
s_vtweg FOR vbrk-vtweg,
s_bukrs FOR vbrk-bukrs,
s_vkbur FOR vbrp-vkbur,
s_regio FOR kna1-regio,
s_werks FOR vbrp-werks,
s_brsch FOR kna1-brsch. " Industry Key
SELECTION-SCREEN END OF BLOCK b.
******----
NEW ADDED BY AJAY 22-06-2006
SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-d01.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) text-d02.
SELECTION-SCREEN POSITION 32.
PARAMETERS : p_field1(3) TYPE n DEFAULT '001',
p_field2(3) TYPE n DEFAULT '005',
p_field3(3) TYPE n DEFAULT '007',
p_field4(3) TYPE n DEFAULT '009',
p_field5(3) TYPE n DEFAULT '015'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK c.
******----
NEW ADDED END BY AJAY 22-06-2006
************************************************************************
INITIALIZATION
************************************************************************
INITIALIZATION.
repname = sy-repid.
PERFORM build_eventtab USING events[].
PERFORM build_layout .
PERFORM initialize_variant.
************************************************************************
AT SELECTION-SCREEN
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM f4_for_variant.
AT SELECTION-SCREEN.
PERFORM pai_of_selection_screen.
PERFORM check_input.
************************************************************************
START OF SELECTION
************************************************************************
START-OF-SELECTION.
PERFORM build_comment USING heading[].
PERFORM get_day_label.
PERFORM get_data.
PERFORM segregate_dist_chann_qty.
PERFORM initialise_fieldtab.
PERFORM attach_char_to_fieldcat.
PERFORM get_transporter_data.
PERFORM get_sd_matgroups.
PERFORM get_plant_from_po.
PERFORM get_excise_details.
PERFORM display_data.
************************************************************************
END OF SELECTION
************************************************************************
END-OF-SELECTION.
************************************************************************
FORMS
************************************************************************
&----
*& Form get_data
&----
*& Extracts data as per the users selection criteria.
&----
FORM get_data.
DATA domname LIKE dd07v-domname.
DATA it_vrpma LIKE vrpma OCCURS 0 WITH HEADER LINE.
In case Doc No is specified in Selection use VBRK
Else use VRPMA(Material wise Billing Doc)
*----
IF NOT s_vbeln IS INITIAL.
SELECT * FROM vbrk CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE ivbrk
WHERE mandt EQ sy-mandt
AND vbeln IN s_vbeln
AND fkart IN s_fkart
AND fkdat IN s_fkdat
AND kunag IN s_kunnr
AND vkorg IN s_vkorg
AND vtweg IN s_vtweg
AND bukrs IN s_bukrs
AND rfbsk NE 'E'
AND sfakn EQ space
AND fksto EQ space.
ELSE.
SELECT * FROM vrpma CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_vrpma
WHERE mandt EQ sy-mandt
AND matnr IN s_matnr
AND vkorg IN s_vkorg
AND fkdat IN s_fkdat
AND vtweg IN s_vtweg
AND fkart IN s_fkart
AND kunag IN s_kunnr
AND fkart NE 'ZCMR'
AND vbeln IN s_vbeln.
CHECK NOT it_vrpma[] IS INITIAL.
SORT it_vrpma BY vbeln.
SELECT * FROM vbrk INTO CORRESPONDING FIELDS OF TABLE ivbrk
FOR ALL ENTRIES IN it_vrpma
WHERE vbeln = it_vrpma-vbeln
AND rfbsk NE 'E'
AND sfakn EQ space
AND fksto EQ space.
ENDIF.
domname = 'VBTYP'.
Get the List of all Document Types
*----
PERFORM get_domtext TABLES it_vbtyp USING domname.
IF NOT ivbrk[] IS INITIAL.
SORT ivbrk BY kunag.
LOOP AT ivbrk.
v_tabix = sy-tabix.
Get the Region,Industry Key, Name for Sold To Party
*----
ON CHANGE OF ivbrk-kunag.
CLEAR : v_regio,v_brsch,name1,v_ort01,v_land1.
SELECT SINGLE regio brsch name1 ort01 land1 FROM kna1
CLIENT SPECIFIED
INTO (v_regio,v_brsch,
name1,v_ort01,v_land1 )
WHERE mandt = sy-mandt
AND kunnr = ivbrk-kunag.
ENDON.
Check for Region,Industry Key as per the Parameter
*----
IF NOT s_regio[] IS INITIAL.
IF NOT v_regio IN s_regio.
DELETE ivbrk INDEX v_tabix.
CONTINUE.
ENDIF.
ENDIF.
IF NOT s_brsch[] IS INITIAL.
IF NOT v_brsch IN s_brsch.
DELETE ivbrk INDEX v_tabix.
CONTINUE.
ENDIF.
ENDIF.
ivbrk-regio = v_regio.
ivbrk-brsch = v_brsch.
ivbrk-name1 = name1.
ivbrk-ort01 = v_ort01.
ivbrk-land1 = v_land1.
ivbrk-netwr = 0.
MODIFY ivbrk TRANSPORTING regio brsch
name1 netwr ort01 land1.
CLEAR ivbrk.
ENDLOOP.
Get the Invoice Details from VBRP Table
*----
IF NOT ivbrk[] IS INITIAL.
SELECT * FROM vbrp CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE ivbeln
FOR ALL ENTRIES IN ivbrk
WHERE mandt = sy-mandt
AND vbeln = ivbrk-vbeln
AND fkimg NE 0
AND matnr IN s_matnr
AND pstyv IN s_pstyv
AND spart IN s_spart
AND werks IN s_werks
AND vkbur IN s_vkbur.
ENDIF.
ENDIF.
IF NOT ivbeln[] IS INITIAL.
LOOP AT ivbeln.
READ TABLE ivbrk WITH KEY vbeln = ivbeln-vbeln.
IF sy-subrc EQ 0.
IF ivbrk-netwr IS INITIAL.
ivbrk-netwr = ivbeln-netwr.
ENDIF.
MOVE-CORRESPONDING ivbrk TO ivbeln.
CLEAR it_vbtyp.
READ TABLE it_vbtyp WITH KEY domvalue_l = ivbrk-vbtyp.
ivbeln-vbtyp_desc = it_vbtyp-ddtext.
MOVE ivbrk-kunag TO ivbeln-kunnr.
MODIFY ivbeln .
CLEAR ivbeln.
ENDIF.
ENDLOOP.
SORT ivbeln BY vbeln posnr.
DELETE ADJACENT DUPLICATES FROM ivbeln COMPARING ALL FIELDS.
CLEAR ivbeln.
Get the Material Type, Group and Production Hiearchy
*----
LOOP AT ivbeln.
ON CHANGE OF ivbeln-matnr.
CLEAR : mtart,matkl,prdha.
SELECT SINGLE mtart matkl prdha FROM mara CLIENT SPECIFIED
INTO (mtart,matkl,prdha)
WHERE mandt EQ sy-mandt
AND matnr EQ ivbeln-matnr.
ENDON.
ivbeln-mtart = mtart.
ivbeln-matkl = matkl.
ivbeln-prdha = prdha.
MODIFY ivbeln TRANSPORTING mtart matkl prdha.
CLEAR ivbeln.
ENDLOOP.
LOOP AT ivbeln.
Retrieving Sales Order Date ,Customer PO No,Customer PO Date
*----
ON CHANGE OF ivbeln-aubel.
CLEAR : bstkd,bstdk,ordat,audat.
SELECT SINGLE bstkd bstdk FROM vbkd
CLIENT SPECIFIED
INTO (bstkd,bstdk)
WHERE mandt EQ sy-mandt
AND vbeln EQ ivbeln-aubel.
SELECT SINGLE erdat audat FROM vbak CLIENT SPECIFIED
INTO (ordat,audat)
WHERE mandt = sy-mandt
AND vbeln = ivbeln-aubel.
In case of Stock Transfer, Or Export Excise GP
SO is really a PO Hence Date is tajken from EKKO
*----
IF ivbeln-fkart EQ 'ZSTF' OR ivbeln-fkart EQ 'ZSTE'.
SELECT SINGLE bedat FROM ekko CLIENT SPECIFIED
INTO (audat)
WHERE mandt = sy-mandt
AND ebeln = ivbeln-aubel.
ENDIF.
ENDON.
IF ivbeln-erzet GE '000000' AND ivbeln-erzet LE '070000'.
ivbeln-erdat = ivbeln-erdat - 1.
ENDIF.
Get the Counry Descripion
*----
ON CHANGE OF ivbeln-land1.
CLEAR : landx.
SELECT SINGLE landx INTO landx FROM t005t
WHERE land1 EQ ivbeln-land1
AND spras EQ sy-langu.
ENDON.
For retrieving text for Customer Group
*----
ON CHANGE OF ivbeln-kdgrp_auft.
CLEAR : ktext.
SELECT SINGLE ktext FROM t151t
INTO ktext
WHERE spras EQ sy-langu
AND kdgrp EQ ivbeln-kdgrp_auft.
ENDON.
For Retrieving texts for KVGR1 KVGR2 KVGR3 KVGR4 KVGR5
*----
ON CHANGE OF ivbeln-kvgr1.
CLEAR : vtext.
SELECT SINGLE bezei INTO vtext FROM tvv1t
WHERE kvgr1 EQ ivbeln-kvgr1
AND spras EQ sy-langu.
ENDON.
ON CHANGE OF ivbeln-kvgr2.
CLEAR :vtext2.
SELECT SINGLE bezei INTO vtext2 FROM tvv2t
WHERE kvgr2 EQ ivbeln-kvgr2
AND spras EQ sy-langu.
ENDON.
ON CHANGE OF ivbeln-kvgr3.
CLEAR :vtext3.
SELECT SINGLE bezei INTO vtext3 FROM tvv3t
WHERE kvgr3 EQ ivbeln-kvgr3
AND spras EQ sy-langu.
ENDON.
ON CHANGE OF ivbeln-kvgr4.
CLEAR :vtext4.
SELECT SINGLE bezei INTO vtext4 FROM tvv4t
WHERE kvgr4 EQ ivbeln-kvgr4
AND spras EQ sy-langu.
ENDON.
ON CHANGE OF ivbeln-kvgr5.
CLEAR : vtext5.
SELECT SINGLE bezei INTO vtext5 FROM tvv5t
WHERE kvgr5 EQ ivbeln-kvgr5
AND spras EQ sy-langu.
ENDON.
Get the Description for Usage Indicator
*----
ON CHANGE OF ivbeln-abrvw.
CLEAR : reasn.
SELECT SINGLE bezei INTO reasn FROM tvlvt CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND abrvw EQ ivbeln-abrvw
AND spras EQ sy-langu.
ENDON.
Get Account Document
*----
ON CHANGE OF ivbeln-vbeln.
CLEAR : belnr.
SELECT SINGLE belnr INTO belnr FROM bkpf
CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND awtyp EQ 'VBRK'
AND awkey EQ ivbeln-vbeln.
ENDON.
Get Division Text
*----
ON CHANGE OF ivbeln-spart.
CLEAR : stext.
SELECT SINGLE vtext INTO stext FROM tspat
WHERE spart EQ ivbeln-spart
AND spras EQ sy-langu.
ENDON.
Get Price group Text
*----
ON CHANGE OF ivbeln-konda.
CLEAR : ptext.
SELECT SINGLE vtext INTO ptext FROM t188t
WHERE konda EQ ivbeln-konda
AND spras EQ sy-langu.
ENDON.
Get Transporter Code ,Name
*----
ON CHANGE OF ivbeln-vbeln.
CLEAR : lifnr,name1.
SELECT SINGLE lifnr INTO lifnr FROM vbpa
WHERE vbeln EQ ivbeln-vbeln
AND parvw EQ 'V1'.
IF NOT lifnr IS INITIAL.
SELECT SINGLE name1 FROM lfa1 INTO name1
WHERE lifnr EQ lifnr.
ENDIF.
*Ship To party Details
*----
CLEAR: shpcd,shpnm,city1,kna1,xcpdk,adrnr.
SELECT SINGLE kunnr xcpdk adrnr
INTO (shpcd,xcpdk,adrnr)
FROM vbpa
WHERE vbeln EQ ivbeln-vbeln
AND parvw EQ 'WE'.
IF NOT shpcd IS INITIAL.
IF xcpdk EQ 'X'.
SELECT SINGLE name1 city1 transpzone region country
FROM adrc
INTO (shpnm,city1,lzone,shreg,shlnd)
WHERE addrnumber EQ adrnr.
ELSE.
SELECT SINGLE name1 ort01 lzone regio land1
FROM kna1
CLIENT SPECIFIED
INTO (shpnm,city1,lzone,shreg,shlnd)
WHERE mandt = sy-mandt
AND kunnr EQ shpcd.
ENDIF.
ENDIF.
ENDON.
Retrieve Text for Sales Office
*----
ON CHANGE OF ivbeln-vkbur.
CLEAR : vbezei.
SELECT SINGLE bezei FROM tvkbt
INTO vbezei
WHERE spras EQ sy-langu
AND vkbur EQ ivbeln-vkbur.
ENDON.
Retrieve Text for Industry Key
*----
ON CHANGE OF ivbeln-brsch.
CLEAR : v_brtxt.
SELECT SINGLE brtxt FROM t016t
INTO v_brtxt
WHERE spras EQ sy-langu
AND brsch EQ ivbeln-brsch.
ENDON.
Retrieve Text for Payment Terms
*----
ON CHANGE OF ivbeln-zterm.
CLEAR : v_ptext.
SELECT SINGLE text1 FROM t052u
INTO v_ptext
WHERE spras EQ sy-langu
AND zterm EQ ivbeln-zterm.
ENDON.
Get Material Type Description,Material Group Desc
*----
ON CHANGE OF ivbeln-mtart OR ivbeln-matkl.
CLEAR : wgbez,mtbez.
SELECT SINGLE wgbez FROM t023t
INTO wgbez
WHERE spras EQ sy-langu
AND matkl EQ ivbeln-matkl.
SELECT SINGLE mtbez FROM t134t
INTO mtbez
WHERE spras EQ sy-langu
AND mtart EQ ivbeln-mtart.
ENDON.
Get Delivery doc Number.
*----
SELECT SINGLE vbeln erdat FROM vbfa INTO
(mblnr,budat)
WHERE vbelv = ivbeln-vgbel
AND posnv = ivbeln-vgpos
AND vbtyp_n = 'R'.
CLEAR : exnum,exdat.
Get the Excise Related Data
*----
SELECT SINGLE exnum exdat FROM j_1iexchdr CLIENT SPECIFIED
INTO (exnum,exdat)
WHERE mandt = sy-mandt
AND trntyp = 'DLFC'
AND rdoc = ivbeln-vbeln
AND rind = 'N'
AND status = 'C'.
IF sy-subrc = 0.
SELECT SINGLE exbed ecs INTO (ivbeln-exbed,ivbeln-ecs)
FROM j_1iexcdtl
CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND rdoc2 = ivbeln-vbeln
AND ritem2 = ivbeln-posnr.
IF sy-subrc NE 0.
ivbeln-exbed = 0.
CLEAR ivbeln-exnum.
ENDIF.
ENDIF.
Read Characteristics
*----
IF NOT ichar[] IS INITIAL.
PERFORM read_characteristics TABLES ichar
USING ivbeln-werks
ivbeln-matnr
ivbeln-charg
CHANGING ivbeln-char1
ivbeln-char2
ivbeln-char3
ivbeln-char4
ivbeln-char5
ivbeln-char6
ivbeln-char7
ivbeln-char8
ivbeln-char9
ivbeln-char10
ivbeln-char11
ivbeln-char12
ivbeln-char13
ivbeln-char14
ivbeln-char15 .
ENDIF.
Get Production Order
*----
CLEAR : v_ebeln, v_ebelp .
v_ebeln = ivbeln-aubel .
v_ebelp = ivbeln-aupos .
SELECT SINGLE aufnr FROM afpo INTO ivbeln-aufnr
WHERE kdauf = ivbeln-aubel
AND kdpos = ivbeln-aupos.
Get the Route And Route Details
*----
SELECT SINGLE * FROM likp CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND vbeln = ivbeln-vgbel.
IF sy-subrc = 0.
ivbeln-route = likp-route.
ivbeln-vstel = likp-vstel.
ivbeln-bolnr = likp-bolnr.
SELECT SINGLE vtext FROM tvstt
INTO ivbeln-sp_vtext
WHERE spras EQ sy-langu
AND vstel EQ likp-vstel.
ENDIF.
Get the License No,Shipment No,Vehicle No & Shipment TYpe
In case of Diverted Sale get the Original Invoice & Delivery
*----
IF ivbeln-fkart EQ 'ZDIS' OR
ivbeln-fkart EQ 'ZFRE' OR
ivbeln-fkart EQ 'ZDRE' .
SELECT SINGLE vbelv posnv FROM vbfa
INTO (ivbeln-or_in_vbeln,
ivbeln-or_in_posnr)
WHERE vbeln EQ ivbeln-vbeln
AND posnn EQ ivbeln-posnr
AND vbtyp_n IN ('M','O')
AND vbtyp_v EQ 'M'.
SELECT SINGLE fkimg FROM vbrp
INTO ivbeln-or_in_fkimg
WHERE vbeln EQ ivbeln-or_in_vbeln
AND posnr EQ ivbeln-or_in_posnr.
SELECT SINGLE knumv fkdat FROM vbrk
INTO (ivbeln-or_in_knumv,
ivbeln-or_in_fkdat)
WHERE vbeln EQ ivbeln-or_in_vbeln.
SELECT SINGLE kwert FROM konv
INTO ivbeln-or_in_frt_amt
WHERE knumv EQ ivbeln-or_in_knumv
AND kposn EQ ivbeln-or_in_posnr
AND kschl EQ 'ZFRT'
AND kwert NE 0.
IF ivbeln-fkart EQ 'ZDIS'.
SELECT SINGLE vbelv posnv FROM vbfa
INTO (ivbeln-or_dl_vbeln,
ivbeln-or_dl_posnr)
WHERE vbeln EQ ivbeln-vgbel
AND posnn EQ ivbeln-vgpos
AND vbtyp_n EQ 'J'
AND vbtyp_v EQ 'J'.
ELSE.
SELECT SINGLE vbelv posnv FROM vbfa
INTO (ivbeln-or_dl_vbeln,
ivbeln-or_dl_posnr)
WHERE vbeln EQ ivbeln-vbeln
AND posnn EQ ivbeln-posnr
AND vbtyp_n IN ('M','O')
AND vbtyp_v EQ 'J'.
ENDIF.
SELECT SINGLE tknum FROM vttp INTO ivbeln-tknum
WHERE vbeln EQ ivbeln-or_dl_vbeln.
ELSE.
SELECT SINGLE tknum FROM vttp INTO ivbeln-tknum
WHERE vbeln EQ ivbeln-vgbel.
ENDIF.
IF ivbeln-tknum IS NOT INITIAL.
SELECT SINGLE signi exti1 exti2 vsart tdlnr FROM vttk
INTO (ivbeln-signi,ivbeln-exti1,
ivbeln-exti2,ivbeln-vsart, lifnr)
WHERE tknum EQ ivbeln-tknum.
IF ivbeln-route IS INITIAL.
SELECT SINGLE route FROM vttk
INTO ivbeln-route
WHERE tknum EQ ivbeln-tknum.
ENDIF.
ENDIF.
Get the Route Distance And Route Description
*----
IF NOT ivbeln-route IS INITIAL.
SELECT SINGLE distz routid FROM tvro CLIENT SPECIFIED
INTO (ivbeln-distz,ivbeln-routid)
WHERE mandt = sy-mandt
AND route = ivbeln-route .
SELECT SINGLE bezei FROM tvrot
INTO ivbeln-rt_bezei
WHERE spras EQ sy-langu
AND route = ivbeln-route.
ENDIF.
In case the Shipping Type is blank
Pick the Value from Delivery
*----
IF ivbeln-vsart IS INITIAL.
ivbeln-vsart = likp-vsart.
ENDIF.
IF ivbeln-vsart IS NOT INITIAL.
SELECT SINGLE bezei FROM t173t INTO ivbeln-st_bezei
WHERE vsart EQ ivbeln-vsart
AND spras EQ sy-langu.
ENDIF.
In case of Depot Sale Pick the Vehicle No From Delivery
*----
IF ivbeln-fkart EQ 'ZDF2'.
SELECT SINGLE xabln FROM likp INTO (ivbeln-exti1)
WHERE vbeln EQ ivbeln-vgbel.
ENDIF.
IF ivbeln-exti1 IS INITIAL.
SELECT SINGLE xabln FROM likp INTO ivbeln-exti1
WHERE vbeln EQ ivbeln-vgbel.
ENDIF.
Sales Organisation Description
*----
SELECT SINGLE vtext INTO ivbeln-vtext
FROM tvkot CLIENT SPECIFIED
WHERE mandt EQ sy-mandt
AND spras EQ sy-langu
AND vkorg EQ ivbeln-vkorg .
Distribution Channel Description
*----
SELECT SINGLE vtext INTO ivbeln-vttxt
FROM tvtwt CLIENT SPECIFIED
WHERE mandt EQ sy-mandt
AND spras EQ sy-langu
AND vtweg EQ ivbeln-vtweg .
Get the Transporter Zone(Sold To Party)
*----
SELECT SINGLE LZONE FROM KNA1
INTO IVBELN-ZZLZONE
WHERE KUNNR EQ IVBELN-KUNNR.
Transporter Zone Description(SP)
*----
SELECT SINGLE VTEXT INTO IVBELN-LZTXT FROM ZCTA_TZONE
WHERE LAND1 EQ IVBELN-LAND1
AND REGIO EQ IVBELN-REGIO
AND TRANSPZONE EQ IVBELN-ZZLZONE.
Get the Transporter Zone(Ship To Party)
*----
SELECT SINGLE VTEXT FROM ZCTA_TZONE
INTO IVBELN-SH_LZTXT
WHERE LAND1 EQ SHLND
AND REGIO EQ SHREG
AND TRANSPZONE EQ LZONE.
Get the Freight Rate, Amount and Invoice rate * Amount
-------------------------------------------------------
IF ivbeln-vtweg EQ '20'.
SELECT SINGLE kbetr kwert FROM konv
INTO (ivbeln-inv_rate,ivbeln-inv_amt)
WHERE knumv EQ ivbeln-knumv
AND kposn EQ ivbeln-posnr
AND kschl EQ 'ZB01'
AND kwert NE 0.
ELSEIF ivbeln-vtweg EQ '09'.
SELECT SINGLE kbetr kwert FROM konv
INTO (ivbeln-inv_rate,ivbeln-inv_amt)
WHERE knumv EQ ivbeln-knumv
AND kposn EQ ivbeln-posnr
AND kschl EQ 'ZCIF'
AND kwert NE 0.
IF NOT ivbeln-inv_rate IS INITIAL.
IF ivbeln-waerk NE 'INR'.
ivbeln-inv_rate = ivbeln-inv_rate / 100.
ELSE.
ENDIF.
ENDIF.
ELSE.
SELECT SINGLE kbetr kwert FROM konv
INTO (ivbeln-inv_rate,ivbeln-inv_amt)
WHERE knumv EQ ivbeln-knumv
AND kposn EQ ivbeln-posnr
AND kschl EQ 'ZB00'
AND kwert NE 0.
ENDIF.
SELECT SINGLE kbetr kwert FROM konv
INTO (ivbeln-frt_rate,ivbeln-frt_amt)
WHERE knumv EQ ivbeln-knumv
AND kposn EQ ivbeln-posnr
AND kschl EQ 'ZFRC'
AND kwert NE 0.
ivbeln-bstkd = bstkd.
ivbeln-bstdk = bstdk.
ivbeln-vtext1 = vtext.
ivbeln-vtext2 = vtext2.
ivbeln-vtext3 = vtext3.
ivbeln-vtext4 = vtext4.
ivbeln-vtext5 = vtext5.
ivbeln-vbezei = vbezei.
ivbeln-wgbez = wgbez.
ivbeln-mtbez = mtbez.
ivbeln-landx = landx.
ivbeln-belnr = belnr.
ivbeln-frate = frate.
ivbeln-reasn = reasn.
ivbeln-fvalue = fvalue.
ivbeln-evalue = evalue.
ivbeln-erate = erate.
ivbeln-cmgst = cmgst.
ivbeln-lifnr = lifnr.
ivbeln-tname = name1.
ivbeln-ordat = ordat.
ivbeln-audat = audat.
ivbeln-auart = auart.
ivbeln-ktext = ktext.
ivbeln-stext = stext.
ivbeln-brtxt = v_brtxt.
ivbeln-ptext = v_ptext.
ivbeln-city1 = city1.
ivbeln-exnum = exnum.
ivbeln-exdat = exdat.
ivbeln-sanum = sanum.
ivbeln-sapos = sapos.
ivbeln-shpcd = shpcd.
ivbeln-shpnm = shpnm.
ivbeln-sh_regio = shreg.
ivbeln-sh_land1 = shlnd.
IVBELN-SH_LZONE = LZONE.
ivbeln-mblnr = mblnr.
ivbeln-budat = budat.
ivbeln-serdt = serdt.
ivbeln-ptext = ptext.
MODIFY ivbeln .
CLEAR ivbeln.
ENDLOOP.
ENDIF.
*Insert cancellation invoice no in original invoice
*----
LOOP AT ivbeln WHERE NOT sfakn IS INITIAL.
ivbeln-sfakn1 = ivbeln-vbeln.
MODIFY ivbeln TRANSPORTING sfakn1 WHERE vbeln = ivbeln-sfakn.
ENDLOOP.
*Insert Date Difference of Order and Invoice Date- Ajay
*----
LOOP AT ivbeln .
ivbeln-diff_date = ivbeln-fkdat - ivbeln-audat.
IF ivbeln-diff_date LE p_field1.
ivbeln-pfield1 = ivbeln-fkimg.
ENDIF.
IF ivbeln-diff_date LE p_field2
AND ivbeln-diff_date GT p_field1.
ivbeln-pfield2 = ivbeln-fkimg.
ENDIF.
IF ivbeln-diff_date LE p_field3
AND ivbeln-diff_date GT p_field2.
ivbeln-pfield3 = ivbeln-fkimg.
ENDIF.
IF ivbeln-diff_date LE p_field4
AND ivbeln-diff_date GT p_field3.
ivbeln-pfield4 = ivbeln-fkimg.
ENDIF.
IF ivbeln-diff_date LE p_field5
AND ivbeln-diff_date GT p_field4.
ivbeln-pfield5 = ivbeln-fkimg.
ENDIF.
IF ivbeln-diff_date GT p_field5.
ivbeln-pfield6 = ivbeln-fkimg.
ENDIF.
ivbeln-pfield7 = ivbeln-pfield1 + ivbeln-pfield2
+ ivbeln-pfield3 + ivbeln-pfield4
+ ivbeln-pfield5 + ivbeln-pfield6.
MODIFY ivbeln .
ENDLOOP.
****Added by Arvind on 30.03.2007 for getting CHA Agent ,LC number ,LC Ref. No & ARE No.
DATA line1 LIKE tline OCCURS 0 WITH HEADER LINE.
DATA tdname TYPE thead-tdname.
LOOP AT ivbeln.
SELECT SINGLE aname1 FROM ( lfa1 AS a INNER JOIN vbpa AS b ON blifnr = a~lifnr )
INTO ivbeln-chaname
WHERE vbeln EQ ivbeln-vgbel
AND parvw EQ 'TR'.
*SELECT SINGLE DOCNO FROM J_1IEXHEAD INTO IVBELN-DOCNO
SELECT SINGLE lcnum FROM vbkd INTO ivbeln-lcnum
WHERE vbeln EQ ivbeln-aubel.
tdname = ivbeln-lcnum.
IF sy-subrc = 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'Z001'
language = 'E'
name = tdname
object = 'AKKP'
TABLES
lines = line1
EXCEPTIONS
id = 1
language = 2
name = 3
NOT_FOUND = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE line1 INDEX 1.
IF sy-subrc = 0.
MOVE line1-tdline TO ivbeln-tdline.
REFRESH line1.
ENDIF.
ENDIF.
SELECT SINGLE docno FROM J_1IEXCHDR
INTO (IVBELN-docno)
WHERE TRNTYP = 'ARE1'
AND RDOC = IVBELN-VBELN
AND RIND = 'N'
AND STATUS = 'C'.
MODIFY IVBELN.
CLEAR IVBELN.
ENDLOOP.
*****************************************************************************
ENDFORM. " get_data
----
Alv Function Modules *
----
&----
*& Form INITIALISE_FIELDTAB
&----
Appending the extracted data to the table fieldcat for display
----
FORM initialise_fieldtab.
DATA : ptext1(30),
ptext2(30),
ptext3(30),
ptext4(30),
ptext5(30),
ptext6(30).
READ TABLE head WITH KEY field = p_field1.
ptext1 = head-text .
READ TABLE head WITH KEY field = p_field2.
ptext2 = head-text .
READ TABLE head WITH KEY field = p_field3.
ptext3 = head-text .
READ TABLE head WITH KEY field = p_field4.
ptext4 = head-text .
READ TABLE head WITH KEY field = p_field5.
ptext5 = head-text .
READ TABLE head WITH KEY field = 'Other'.
ptext6 = head-text .
DATA fieldcat TYPE slis_fieldcat_alv.
IF rb1 NE space.
PERFORM fill_fieldtabnew(zinc_alv1) USING :
'IITEM' 'KUNNR' 'Cust.Code' 'KUNNR' 'KNA1' 1 fieldtab '',
'IITEM' 'NAME1' 'Cust.Name' 'NAME1' 'KNA1' 2 fieldtab ''.
ENDIF.
*
IF rb2 NE space .
PERFORM fill_fieldtabnew(zinc_alv1) USING :
'IITEM' 'VKBUR' 'Sales Office' 'VKBUR' 'VBAK' 1 fieldtab '',
'IITEM' 'VBEZEI' 'Sales.Off.Desc' ' ' ' ' 2 fieldtab ''.
ENDIF.
*
IF rb4 NE space .
PERFORM fill_fieldtabnew(zinc_alv1) USING :
'IITEM' 'MATNR' 'Sku Code' 'MATNR' 'MARA' 1 fieldtab '',
'IITEM' 'ARKTX' 'Sku Desc.' ' ' ' ' 2 fieldtab ''.
*
ENDIF.
IF rb3 NE space .
PERFORM fill_fieldtabnew(zinc_alv1) USING :
'IITEM' 'VTWEG' 'Distr.Channel' 'VTWEG' 'VBAK' 1 fieldtab '',
'IITEM' 'DTEXT' 'Distr.Channel Desc.' ' ' ' ' 2 fieldtab ''.
ENDIF.
tabname = 'IVBELN'.
PERFORM append_fieldcat_ver2 USING :
'WERKS' 'Plant' ,
'PL_REGIO' 'Plant Region Code',
'REGIO_TX' 'Plant Region' ,
'AUBEL' 'Order No' ,
'AUPOS' 'Sales Ord Item' ,
'GROES' 'PRDH' ,
'BSTKD' 'PO.No.' ,
'BSTDK' 'PO.Date' ,
'KUNNR' 'Cust.Code' ,
'NAME1' 'Cust.Name' ,
'ORT01' 'Cust.City' ,
'ZZLZONE' 'T.Zone Code(SP)',
'LZTXT' 'Trans.Zone(SP)' ,
'MATNR' 'Mat Code' ,
'ARKTX' 'Mat Desc.' ,
'MATKL' 'Mat Group' ,
'WGBEZ' 'Mat Grp.Desc.' ,
'PSTYV' 'Item Category' ,
'MTART' 'Material.Type' ,
'MTBEZ' 'Mat.Type.Text' ,
'FKIMG' 'Inv.Qty in SU' ,
'VRKME' 'Sales Unit' ,
'KZWI1' 'Base Price' ,
'KZWI3' 'Discount Value' ,
'KZWI4' 'Frieght Value' ,
'KZWI5' 'Excise Value' ,
'KZWI6' 'LST/CST Val' ,
'NETWR' 'Inv Amount' ,
'WAERK' 'Doc Curr.' ,
'REGIO' 'State' ,
'VBELN' 'Invoice No.' ,
'FKDAT' 'Invoice Date' ,
'FKART' 'Bill Type' ,
'VBTYP' 'Doc.Catgr' ,
'VBTYP_DESC' 'Catgr Desrpt' ,
'ERDAT' 'Creat.Date' ,
'BELNR' 'Acct.Docu' ,
'CHARG' 'Batch Number' ,
'LIFNR' 'Transporter Code',
'TNAME' 'Transp.Name' ,
'KDGRP_AUFT' 'Cust.Group' ,
'KTEXT' 'Cust.Group.Name',
'SIGNI' 'Truck Number' ,
'TR_COUNT' 'No.of Trucks' ,
'BRSCH' 'Industry ' ,
'BRTXT' 'Industry Desc.' ,
'MNAME' 'Month' ,
'ZTERM' 'Pay Terms' ,
'INCO1' 'Inco1' ,
'INCO2' 'Inco2' ,
'EXNUM' 'Exc.Inv No' ,
'EXDAT' 'Exc.Inv Date' ,
'EXBED' 'BED Amount' ,
'ECS' 'ECESS Amount' ,
'VKGRP' 'Sales Group' ,
'TKNUM' 'Gate In Number' ,
'ERZET' 'Invoice Time' ,
'SHPCD' 'SHP Code' ,
'SHPNM' 'SHP Name' ,
'SH_LZONE' 'T.Zone Code(SH)',
'SH_LZTXT' 'Trans.Zone(SH)' ,
'CITY1' 'City(SH)' ,
'PRDHA' 'GRD' ,
'VGBEL' 'Delivery No' ,
'MBLNR' 'Mat Doc No' ,
'BUDAT' 'Mat Doc Date' ,
'KONDA' 'Price Group' ,
'PTEXT' 'Price Group Text',
'SFAKN' 'Cancelled Inv' ,
'SFAKN1' 'Reverse By' ,
'LGORT' 'Store.Loc' ,
'AUFNR' 'Prod Order' ,
'VKORG' 'Sales.Org Code' ,
'VTEXT' 'Sales.Org ' ,
'VTWEG' 'Dist.Chan.Code' ,
'VTTXT' 'Dist.Channel' ,
'SPART' 'Division' ,
'STEXT' 'Division Desc.' ,
'KVGR1' 'Dist.Code' ,
'VTEXT1' 'District' ,
'KVGR2' 'Tal.Code' ,
'VTEXT2' 'Taluka' ,
'KVGR3' 'Vill.Code' ,
'VTEXT3' 'Village' ,
'VKBUR' 'Sales Off.Code' ,
'VBEZEI' 'Sales Office' ,
'EXTI1' 'Truck No' ,
'EXTI2' 'Driver Name' ,
'VSART' 'Shpping Type Code',
'ST_BEZEI' 'Shipping Type' ,
'INV_RATE' 'Inv.Rate' ,
'INV_AMT' 'Inv.Amount' ,
'FRT_RATE' 'Freight Rate ' ,
'FRT_AMT' 'Freight Amt' ,
'AUDAT' 'Order Date' ,
'TD_FKIMG' 'Trading' ,
'NT_FKIMG' 'Non-Trading ' ,
'TOT_FKIMG' 'Tot.Trading & Non-Trading' ,
'ST_FKIMG' 'Stock Transfer' ,
'WAERK' 'Currency' ,
'OR_IN_VBELN' 'Orig.Inv.No ' ,
'OR_IN_POSNR' 'Orig.Inv.Item' ,
'OR_DL_VBELN' 'Orig.Del.No' ,
'OR_DL_POSNR' 'Orig.Del.Item' ,
'OR_IN_FKDAT' 'Orig.Inv.Date' ,
'OR_IN_FRT_AMT' 'Orig.Frt Amnt' ,
'OR_IN_FKIMG' 'Orig.Qty' ,
'MVGR1' 'Type Code' ,
'MVGR1_TEXT' 'Type' ,
'MVGR2' 'Grade Code' ,
'MVGR2_TEXT' 'Grade' ,
'MVGR3' 'Packing Code' ,
'MVGR3_TEXT' 'Packing' ,
'MVGR4' 'Packing Color Code' ,
'MVGR4_TEXT' 'Packing Color' ,
'MVGR5' 'Packing Size Code' ,
'MVGR5_TEXT' 'Packing Size' ,
'ROUTE' 'Route Code' ,
'ROUTID' 'Route ID' ,
'RT_BEZEI' 'Route' ,
'EXGRP' 'Excise Group' ,
'SRGRP' 'Series Group' ,
'EXPIND' 'Export Ind.Code' ,
'EXPIND_DESC' 'Export Ind' ,
'FKSTO_TX' 'Bill Cancel Status' ,
'BOLNR' 'LR/DC No' ,
'DIFF_DATE' 'Days Delay' ,
'LCNUM' 'L/C Scan Ref.' ,
'TDLINE' 'L/C No.' ,
'CHANAME' 'CHA Agent' ,
'DOCNO' 'A.R.E.-1 No.' ,
'PFIELD1' ptext1 ,
'PFIELD2' ptext2 ,
'PFIELD3' ptext3 ,
'PFIELD4' ptext4 ,
'PFIELD5' ptext5 ,
'PFIELD6' ptext6 ,
'PFIELD7' 'Total' .
IF rb5 IS NOT INITIAL.
Order No
**----
PERFORM set_field_attribute USING 'AUBEL' 'HOTSPOT' 'X'.
PERFORM set_field_attribute USING 'AUBEL' 'KEY' 'X'.
Invoice No
*----
PERFORM set_field_attribute USING 'VBELN' 'HOTSPOT' 'X'.
PERFORM set_field_attribute USING 'VBELN' 'KEY' 'X'
.
Delivery No
*----
PERFORM set_field_attribute USING 'VGBEL' 'HOTSPOT' 'X'.
PERFORM set_field_attribute USING 'VGBEL' 'KEY' 'X'.
Material Doc No
**----
PERFORM set_field_attribute USING 'MBLNR' 'HOTSPOT' 'X'.
PERFORM set_field_attribute USING 'MBLNR' 'KEY' 'X'.
Original Invoice No
*----
PERFORM set_field_attribute USING 'OR_IN_VBELN' 'HOTSPOT' 'X'.
PERFORM set_field_attribute USING 'OR_IN_VBELN' 'KEY' 'X'.
Original Delivery No
*----
PERFORM set_field_attribute USING 'OR_DL_VBELN' 'HOTSPOT' 'X'.
PERFORM set_field_attribute USING 'OR_DL_VBELN' 'KEY' 'X'.
ENDIF.
ENDFORM. " INITIALISE_FIELDTAB
&----
*& Form BUILD_COMMENT
&----
For Report Heading
----
FORM build_comment USING p_heading TYPE slis_t_listheader.
DATA: hline TYPE slis_listheader,
text(60) TYPE c,
sep(20) TYPE c.
CLEAR: hline, text.
hline-typ = 'S'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
WRITE: 'RunDate:' TO text,
sy-datum TO text+9,
'Period' TO text+23.
IF NOT s_fkdat-low IS INITIAL.
WRITE s_fkdat-low TO text+31.
WRITE 'To' TO text+42.
ELSE.
WRITE ' UpTo ' TO text+31.
ENDIF.
IF NOT s_fkdat-high IS INITIAL.
WRITE s_fkdat-high TO text+45.
ELSE.
WRITE sy-datum TO text+45.
ENDIF.
IF NOT s_fkdat-low IS INITIAL AND s_fkdat-high IS INITIAL.
WRITE s_fkdat-low TO text+45.
ENDIF.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
IF rb1 NE space .
text = 'Customer Wise'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
ENDIF.
IF rb2 NE space .
text = 'Sales Office Wise'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
ENDIF.
IF rb5 NE space.
text = 'Report With No Selection Criteria'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
ENDIF.
IF rb3 NE space .
text = 'Distribution Channel Wise'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
ENDIF.
IF rb4 NE space .
text = 'Material Wise'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
ENDIF.
text = 'All Invoices'.
hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
SEARCH p_heading FOR 'Report Variant' .
IF sy-subrc EQ 0 .
READ TABLE p_heading INTO hline INDEX sy-tabix .
IF sy-subrc EQ 0 .
hline-info = g_variant-text .
MODIFY p_heading FROM hline INDEX sy-tabix .
ENDIF .
ENDIF .
ENDFORM. " BUILD_COMMENT
&----
*& Form BUILD_EVENTTAB
&----
For handling top-of-page Event
----
FORM build_eventtab USING p_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_events.
READ TABLE p_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE formname_top_of_page TO ls_event-form.
APPEND ls_event TO p_events.
ENDIF.
ENDFORM. " BUILD_EVENTTAB
*&----
*& form initialize_variant
*&----
For Intializing Report Variant
*----
FORM initialize_variant.
g_save = 'A'.
CLEAR g_variant.
g_variant-report = repname.
gx_variant = g_variant.
layout-get_selinfos = 'X'.
layout-group_change_edit = 'X'.
layout-cell_merge = 'X'.
alv_print-no_print_selinfos = 'X'.
alv_print-no_coverpage = 'X'.
alv_print-no_print_listinfos = 'X'.
alv_detail_func = 'REUSE_ALV_LIST_DISPLAY'.
ENDFORM. " INITIALIZE_VARIANT
&----
*& Form F4_FOR_VARIANT
&----
For Handing F4 Event
----
FORM f4_for_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = g_variant
i_save = g_save
IMPORTING
e_exit = g_exit
es_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF g_exit = space.
p_vari = gx_variant-variant.
ENDIF.
ENDIF.
ENDFORM. " F4_FOR_VARIANT
&----
*& Form PAI_OF_SELECTION_SCREEN
&----
FORM pai_of_selection_screen.
IF NOT p_vari IS INITIAL.
MOVE g_variant TO gx_variant.
MOVE p_vari TO gx_variant-variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant.
g_variant = gx_variant.
ELSE.
PERFORM initialize_variant.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN
----
FORM TOP_OF_PAGE *
----
Displaying Top-of-page Data *
----
FORM top_of_page.
WRITE : / 'Run Date : ', sy-datum.
WRITE : / ' Period from : ', s_fkdat-low , 'To : ', s_fkdat-high.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = heading.
ENDFORM. "top_of_page
&----
*& Form BUILD_LAYOUT
&----
For Buliding Layout of The Report
----
FORM build_layout.
layout-zebra = 'X'.
layout-detail_popup = 'X'.
ENDFORM. " BUILD_LAYOUT
&----
*& For Display Output
&----
FORM display-output TABLES p_ivbeln STRUCTURE ivbeln.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = repname
i_buffer_active = ' '
i_callback_user_command = 'USER_COMMAND'
is_layout = layout
it_fieldcat = fieldtab[]
i_save = g_save
is_variant = g_variant
it_events = events[]
is_print = alv_print
TABLES
t_outtab = p_ivbeln
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " display-output
&----
*& Form display-output-HEAD
&----
FORM display-output-head TABLES iheader STRUCTURE ivbeln
iitem STRUCTURE iitem
USING value(p_1135)
value(p_1136).
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = repname
i_callback_user_command = 'USER_COMMAND'
is_layout = layout
it_fieldcat = fieldtab
is_print = alv_print
i_default = 'A'
i_save = g_save
is_variant = g_variant
it_events = events[]
i_tabname_header = p_1135
i_tabname_item = p_1136
is_keyinfo = keyinfo
TABLES
t_outtab_header = iitem
t_outtab_item = ivbeln
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " display-output-HEAD
&----
*& Form READ_TEXT
&----
FORM read_text USING tid tname tobj
CHANGING p_text.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = tid
language = 'E'
name = tname
object = tobj
TABLES
lines = tline
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
LOOP AT tline.
CASE sy-tabix .
WHEN 1.
p_text = tline-tdline .
ENDCASE .
ENDLOOP .
CLEAR tline .
REFRESH tline .
ENDFORM. " READ_TEXT
&----
*& Form modify_data_cancelled
&----
FORM modify_data_cancelled.
ENDFORM. " modify_data_cancelled
&----
*& Form modify_data_notcancel
&----
FORM modify_data_notcancel.
DELETE ivbeln WHERE ( sfakn NE space
OR fksto NE space )
OR rfbsk EQ 'E'.
CLEAR ivbeln.
ENDFORM. " modify_data_notcancel
&----
*& Form modify_ivbeln_cmgst
&----
FORM modify_ivbeln_cmgst.
DELETE ivbeln WHERE cmgst NE 'D'.
CLEAR ivbeln.
ENDFORM. " modify_ivbeln_cmgst
----
FORM USER_COMMANd *
----
FORM user_command USING r_ucomm LIKE sy-ucomm
ls_selfield TYPE slis_selfield.
CHECK ls_selfield-value IS NOT INITIAL.
CHECK r_ucomm EQ '&IC1'.
CASE ls_selfield-fieldname.
WHEN 'AUBEL'.
SET PARAMETER ID 'VA' FIELD ls_selfield-value.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
WHEN 'VGBEL'.
SET PARAMETER ID 'VL' FIELD ls_selfield-value.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
WHEN 'VBELN'.
SET PARAMETER ID 'VF' FIELD ls_selfield-value.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
WHEN 'OR_IN_VBELN'.
SET PARAMETER ID 'VF' FIELD ls_selfield-value.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
WHEN 'OR_DL_VBELN'.
SET PARAMETER ID 'VL' FIELD ls_selfield-value.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
ENDCASE.
IF rb5 IS INITIAL.
READ TABLE ivbeln INDEX ls_selfield-tabindex.
IF sy-subrc EQ 0.
SET PARAMETER ID 'VF' FIELD ivbeln-vbeln.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
ENDIF.
ELSE.
CHECK ls_selfield-value IS NOT INITIAL.
CHECK r_ucomm EQ '&IC1'.
*
CASE ls_selfield-fieldname.
WHEN 'AUBEL'.
SET PARAMETER ID 'VA' FIELD ls_selfield-value.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
WHEN 'VGBEL'.
SET PARAMETER ID 'VL' FIELD ls_selfield-value.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
WHEN 'VBELN'.
SET PARAMETER ID 'VF' FIELD ls_selfield-value.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
WHEN 'OR_IN_VBELN'.
SET PARAMETER ID 'VF' FIELD ls_selfield-value.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
WHEN 'OR_DL_VBELN'.
SET PARAMETER ID 'VL' FIELD ls_selfield-value.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
ENDCASE.
ENDIF.
ENDFORM. "user_command
&----
*& Form modify_ivbeln_cancelled
&----
FORM modify_ivbeln_cancelled.
DELETE ivbeln WHERE sfakn EQ space.
CLEAR ivbeln.
IF NOT ivbeln[] IS INITIAL.
CLEAR : exnum,exbed,exdat.
LOOP AT ivbeln.
ivbeln-vbeln = ivbeln-sfakn.
ON CHANGE OF ivbeln-vbeln.
CLEAR : exnum,exdat,exbed.
SELECT SINGLE exnum exdat FROM j_1iexchdr INTO (exnum,exdat)
WHERE trntyp = 'DLFC'
AND rdoc = ivbeln-sfakn
AND rind = 'N'.
IF sy-subrc = 0.
ENDIF.
ENDON.
ivbeln-exnum = exnum.
ivbeln-exdat = exdat.
MODIFY ivbeln TRANSPORTING exnum exdat exbed vbeln.
CLEAR ivbeln.
ENDLOOP.
ENDIF.
ENDFORM. " modify_ivbeln_cancelled
&----
*& Form read_characteristics
&----
FORM read_characteristics TABLES pchar STRUCTURE ichar
USING p_werks TYPE vbrp-werks
p_matnr TYPE vbrp-matnr
p_charg TYPE vbrp-charg
CHANGING p_char1
p_char2
p_char3
p_char4
p_char5
p_char6
p_char7
p_char8
p_char9
p_char10
p_char11
p_char12
p_char13
p_char14
p_char15.
DATA: t_conf TYPE clobjdat OCCURS 10 WITH HEADER LINE .
DATA text(30) TYPE c .
DATA : value(30) TYPE c.
FIELD-SYMBOLS: <char> .
DATA: class LIKE klah-class,
clint LIKE klah-clint,
objek LIKE kssk-objek,
tclass LIKE sclass OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'ZCFM_BATCH_CLASSIFICATION_DATA'
EXPORTING
ch_charg = p_charg
ch_matnr = p_matnr
ch_werks = p_werks
TABLES
cl_data = t_conf
sel_char = pchar
EXCEPTIONS
no_classification = 1
no_classtypes = 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.
ENDIF.
IF t_conf[] IS INITIAL.
objek = p_matnr.
CLEAR clint.
SELECT SINGLE clint FROM kssk INTO clint
WHERE objek = objek
AND klart = '001'.
CHECK NOT clint IS INITIAL.
CLEAR class.
SELECT SINGLE class FROM klah INTO class WHERE
clint = clint.
CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
EXPORTING
CLASS = class
CLASSTEXT = 'X'
classtype = '001'
CLINT = 0
FEATURES = 'X'
LANGUAGE = SY-LANGU
object = objek
OBJECTTABLE = ' '
KEY_DATE = SY-DATUM
INITIAL_CHARACT = 'X'
NO_VALUE_DESCRIPT =
CHANGE_SERVICE_CLF = 'X'
INHERITED_CHAR = ' '
CHANGE_NUMBER = ' '
TABLES
t_class = tclass
t_objectdata = t_conf
I_SEL_CHARACTERISTIC =
T_NO_AUTH_CHARACT =
EXCEPTIONS
no_classification = 1
no_classtypes = 2
invalid_class_type = 3
OTHERS = 4
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
LOOP AT t_conf.
READ TABLE it_char WITH KEY atnam = t_conf-atnam.
IF sy-subrc = 0 AND t_conf-ausp1 NE '?' .
CONCATENATE 'P_CHAR' it_char-tabix INTO text.
ASSIGN (text) TO <char>.
IF sy-subrc = 0.
CLEAR value.
CONDENSE t_conf-ausp1.
value = t_conf-ausp1.
CONDENSE value.
<char> = value.
ENDIF.
it_char-descrp = t_conf-smbez.
CLEAR ISDCHAR.
READ TABLE ISDCHAR WITH KEY ATNAM = T_CONF-ATNAM.
IT_CHAR-DESCRP = ISDCHAR-DESCR.
MODIFY it_char INDEX it_char-tabix.
ENDIF.
ENDLOOP.
ENDFORM. " read_characteristics
&----
*& Form display_data
&----
FORM display_data.
repname = sy-repid.
SORT ivbeln BY vbeln posnr.
PERFORM display-output TABLES ivbeln.
IF rb1 NE space .
SORT ivbeln BY kunnr name1.
keyinfo-header01 = 'KUNNR'.
keyinfo-item01 = 'KUNNR'.
LOOP AT ivbeln.
ON CHANGE OF ivbeln-kunnr.
MOVE ivbeln-kunnr TO iitem-kunnr.
MOVE ivbeln-name1 TO iitem-name1.
APPEND iitem.
CLEAR iitem.
ENDON.
ENDLOOP.
PERFORM display-output-head TABLES ivbeln iitem
USING 'IITEM' 'IVBELN'.
ENDIF.
*
Use of Radio Buttons
**----
IF rb2 NE space .
SORT ivbeln BY vkbur vbezei.
keyinfo-header01 = 'VKBUR'.
keyinfo-item01 = 'VKBUR'.
LOOP AT ivbeln.
ON CHANGE OF ivbeln-vkbur.
MOVE ivbeln-vkbur TO iitem-vkbur.
MOVE ivbeln-vbezei TO iitem-vbezei.
APPEND iitem.
CLEAR iitem.
ENDON.
ENDLOOP.
PERFORM display-output-head TABLES ivbeln iitem
USING 'IITEM' 'IVBELN'.
ENDIF.
*
IF rb5 NE space .
SORT ivbeln BY vbeln posnr.
PERFORM display-output TABLES ivbeln.
ENDIF.
*
IF rb3 NE space .
SORT ivbeln BY vtweg.
keyinfo-header01 = 'VTWEG'.
keyinfo-item01 = 'VTWEG'.
LOOP AT ivbeln.
ON CHANGE OF ivbeln-vtweg.
SELECT SINGLE vtext INTO iitem-dtext FROM tvtwt
WHERE vtweg EQ ivbeln-vtweg
AND spras EQ sy-langu.
MOVE ivbeln-vtweg TO iitem-vtweg.
APPEND iitem.
CLEAR iitem.
ENDON.
ENDLOOP.
PERFORM display-output-head TABLES ivbeln iitem
USING 'IITEM' 'IVBELN'.
ENDIF.
*
IF rb4 NE space .
SORT ivbeln BY matnr.
keyinfo-header01 = 'MATNR'.
keyinfo-item01 = 'MATNR'.
LOOP AT ivbeln.
ON CHANGE OF ivbeln-matnr.
MOVE ivbeln-matnr TO iitem-matnr.
MOVE ivbeln-arktx TO iitem-arktx.
APPEND iitem.
CLEAR iitem.
ENDON.
ENDLOOP.
PERFORM display-output-head TABLES ivbeln iitem
USING 'IITEM' 'IVBELN'.
ENDIF.
ENDFORM. " display_data
&----
*& Form f_get_batch_chars
&----
FORM f_get_batch_chars TABLES p_char STRUCTURE t_char
USING p_ivbeln_werks
p_ivbeln_charg
p_ivbeln_matnr
CHANGING p_ivbeln_coilno
p_ivbeln_packno.
CALL FUNCTION 'ZSD_BATCH_CLASSIFICATION_DATA'
EXPORTING
ch_charg = p_ivbeln_charg
ch_matnr = p_ivbeln_matnr
ch_werks = p_ivbeln_werks
TABLES
cl_data = i_cl_data
i_sel_characteristic = p_char
EXCEPTIONS
no_classification = 1
no_classtypes = 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.
IF NOT i_cl_data[] IS INITIAL.
READ TABLE i_cl_data WITH KEY atnam = 'COILNUMBER'.
IF sy-subrc EQ 0.
p_ivbeln_coilno = i_cl_data-ausp1.
ENDIF.
READ TABLE i_cl_data WITH KEY atnam = 'HR_PACK_NO'.
IF sy-subrc EQ 0.
p_ivbeln_packno = i_cl_data-ausp1.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " f_get_batch_chars
&----
*& Form get_vbtyptext
&----
FORM get_domtext TABLES p_dd07v USING p_dom .
CALL FUNCTION 'DD_DOMVALUES_GET'
EXPORTING
domname = p_dom
text = 'X'
langu = sy-langu
BYPASS_BUFFER = ' '
IMPORTING
RC =
TABLES
dd07v_tab = p_dd07v
EXCEPTIONS
wrong_textflag = 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. " get_vbtyptext
&----
*& Form ATTACH_CHAR_TO_FIELDCAT
&----
FORM attach_char_to_fieldcat .
DATA : text(20) TYPE c.
DATA : no_lines TYPE i.
DESCRIBE TABLE fieldtab LINES no_lines.
DELETE it_char WHERE descrp EQ space.
*ADD FIELDS TO THE FIELDCAT IN A LOOP.
*----
LOOP AT it_char.
CLEAR cabnt.
CLEAR text.
CONCATENATE 'CHAR' it_char-tabix INTO text.
PERFORM fill_fieldtabnew(zinc_alv1) USING :
'IVBELN' text it_char-descrp 'ATWRT' 'AUSP' no_lines fieldtab ''.
no_lines = no_lines + 1.
ENDLOOP.
ENDFORM. " ATTACH_CHAR_TO_FIELDCAT
&----
*& Form segregate_dist_chann_qty
&----
FORM segregate_dist_chann_qty .
LOOP AT ivbeln.
CASE ivbeln-vtweg .
WHEN '10'.
ivbeln-td_fkimg = ivbeln-fkimg.
WHEN '20'.
ivbeln-nt_fkimg = ivbeln-fkimg.
WHEN '30'.
ivbeln-st_fkimg = ivbeln-fkimg.
ENDCASE.
ivbeln-tot_fkimg = ivbeln-td_fkimg + ivbeln-nt_fkimg.
MODIFY ivbeln.
CLEAR ivbeln.
ENDLOOP.
ENDFORM. " segregate_dist_chann_qty
&----
*& Form get_transporter_data
&----
FORM get_transporter_data .
DATA: kunnr LIKE vbpa-kunnr.
LOOP AT ivbeln.
IF ivbeln-lifnr IS INITIAL.
SELECT SINGLE lifnr FROM vbpa INTO ivbeln-lifnr
WHERE vbeln EQ ivbeln-vgbel
AND parvw EQ 'SP'.
ENDIF.
SELECT SINGLE name1 FROM lfa1 INTO ivbeln-tname
WHERE lifnr EQ ivbeln-lifnr.
MODIFY ivbeln.
ENDLOOP.
ENDFORM. " get_transporter_data
&----
*& Form MODIFY_FIELDCAT_ATTRIBUTE
&----
FORM modify_fieldcat_attribute USING value(p_attribute)
value(p_pos)
value(p_value).
DATA:
p_fieldname(100),
fieldcat TYPE slis_fieldcat_alv.
FIELD-SYMBOLS <fs> TYPE ANY.
CONCATENATE 'FIELDCAT-' p_attribute
INTO p_fieldname IN CHARACTER MODE.
CONDENSE p_fieldname NO-GAPS.
ASSIGN (p_fieldname) TO <fs>.
CHECK <fs> IS ASSIGNED.
CLEAR fieldcat.
READ TABLE fieldtab WITH KEY col_pos = p_pos INTO fieldcat.
IF sy-subrc EQ 0.
<fs> = p_value.
MODIFY fieldtab FROM fieldcat INDEX sy-tabix.
ENDIF.
UNASSIGN <fs>.
ENDFORM. " MODIFY_FIELDCAT_ROUND
*&----
*& Form append_fieldcat_ver2
*&----
FORM append_fieldcat_ver2 USING value(f_name) value(p_text) .
DATA fieldcat TYPE slis_fieldcat_alv.
g_pos = g_pos + 1.
CLEAR fieldcat.
fieldcat-tabname = tabname .
fieldcat-fieldname = f_name.
fieldcat-col_pos = g_pos.
fieldcat-seltext_m = p_text.
APPEND fieldcat TO fieldtab.
ENDFORM. " append_fieldcat_ver2
&----
*& Form get_sd_matgroups
&----
FORM get_sd_matgroups .
LOOP AT IVBELN.
CALL FUNCTION 'ZCFM_SD_MATGROUPS'
EXPORTING
MATNR = IVBELN-MATNR
VKORG = IVBELN-VKORG
VTWEG = IVBELN-VTWEG
IMPORTING
MVGR1 = IVBELN-MVGR1
MVGR1_TEXT = IVBELN-MVGR1_TEXT
MVGR2 = IVBELN-MVGR2
MVGR2_TEXT = IVBELN-MVGR2_TEXT
MVGR3 = IVBELN-MVGR3
MVGR3_TEXT = IVBELN-MVGR3_TEXT
MVGR4 = IVBELN-MVGR4
MVGR4_TEXT = IVBELN-MVGR4_TEXT
MVGR5 = IVBELN-MVGR5
MVGR5_TEXT = IVBELN-MVGR5_TEXT.
MODIFY IVBELN.
CLEAR IVBELN.
ENDLOOP.
ENDFORM. " get_sd_matgroups
&----
*& Form SET_FIELD_ATTRIBUTE
&----
FORM set_field_attribute USING value(p_fieldname)
value(p_attribute)
value(p_value).
DATA:
p_field(100),
fieldcat TYPE slis_fieldcat_alv.
FIELD-SYMBOLS: <fs>.
CONCATENATE 'FIELDCAT-' p_attribute INTO p_field IN CHARACTER MODE.
CONDENSE p_field NO-GAPS.
ASSIGN (p_field) TO <fs>.
READ TABLE fieldtab WITH KEY fieldname = p_fieldname INTO fieldcat .
IF sy-subrc EQ 0.
<fs> = p_value.
MODIFY fieldtab FROM fieldcat INDEX sy-tabix.
ENDIF.
UNASSIGN <fs>.
ENDFORM. " SET_FIELD_ATTRIBUTE
&----
*& Form get_excise_details
&----
FORM get_excise_details .
LOOP AT ivbeln.
SELECT SINGLE exgrp srgrp expind FROM j_1iexchdr
INTO (ivbeln-exgrp,ivbeln-srgrp,ivbeln-expind)
WHERE trntyp = 'DLFC'
AND rdoc = ivbeln-vbeln
AND rind = 'N'
AND status = 'C'.
IF sy-subrc EQ 0.
SELECT SINGLE ddtext FROM dd07t
INTO ivbeln-expind_desc
WHERE domname EQ 'J_1IINDEXP'
AND domvalue_l EQ ivbeln-expind.
ENDIF.
IF ivbeln-fksto EQ 'X'.
ivbeln-fksto_tx = 'Billing Document Cancelled'.
ENDIF.
SELECT SINGLE regio land1 FROM t001w
INTO (ivbeln-pl_regio,ivbeln-pl_land1)
WHERE werks EQ ivbeln-werks.
IF ivbeln-pl_regio IS NOT INITIAL.
SELECT SINGLE bezei FROM t005u
INTO ivbeln-regio_tx
WHERE bland EQ ivbeln-pl_regio
AND land1 EQ ivbeln-pl_land1
AND spras EQ sy-langu.
ENDIF.
IF ivbeln-exti1 IS NOT INITIAL.
ivbeln-tr_count = 1.
ENDIF.
MODIFY ivbeln.
CLEAR ivbeln.
ENDLOOP.
ENDFORM. " get_excise_details
&----
*& Form get_plant_from_po
&----
FORM get_plant_from_po .
LOOP AT ivbeln WHERE fkart EQ 'ZSTF'
OR fkart EQ 'ZSTE'.
SELECT SINGLE werks FROM ekpo
INTO ivbeln-werks
WHERE ebeln EQ ivbeln-aubel.
MODIFY ivbeln.
CLEAR ivbeln.
ENDLOOP.
ENDFORM. " get_plant_from_po
***************************************************************
FORM GET_DAY_LABEL - GETTING FIELD LABELS FOR DAYS
***************************************************************
FORM get_day_label.
DATA: temp(3),temp1(3).
IF p_field1 NE space.
CONCATENATE '0 - ' p_field1 ' Days ' INTO p_ftext1.
MOVE p_field1 TO head-field.
MOVE p_ftext1 TO head-text.
APPEND head.
CLEAR temp1.
temp1 = p_field1.
len = len + 17.
ENDIF.
IF p_field2 NE space.
CLEAR temp.
temp = p_field1 + 1.
CONCATENATE temp ' - ' p_field2 ' Days ' INTO p_ftext2.
MOVE p_field2 TO head-field.
MOVE p_ftext2 TO head-text.
APPEND head.
CLEAR temp1.
temp1 = p_field2.
len = len + 17.
ENDIF.
IF p_field3 NE space.
CLEAR temp.
temp = p_field2 + 1.
CONCATENATE temp ' - ' p_field3 ' Days ' INTO p_ftext3.
MOVE p_field3 TO head-field.
MOVE p_ftext3 TO head-text.
APPEND head.
CLEAR temp1.
temp1 = p_field3.
len = len + 17.
ENDIF.
IF p_field4 NE space.
CLEAR temp.
temp = p_field3 + 1.
CONCATENATE temp ' - ' p_field4 ' Days ' INTO p_ftext4.
MOVE p_field4 TO head-field.
MOVE p_ftext4 TO head-text.
APPEND head.
CLEAR temp1.
temp1 = p_field4.
len = len + 17.
ENDIF.
IF p_field5 NE space.
CLEAR temp.
temp = p_field4 + 1.
CONCATENATE temp ' - ' p_field5 ' Days ' INTO p_ftext5.
MOVE p_field5 TO head-field.
MOVE p_ftext5 TO head-text.
APPEND head.
CLEAR temp1.
temp1 = p_field5.
len = len + 17.
ENDIF.
MOVE 'Other' TO head-field.
CONCATENATE 'Above' temp1 'Days' INTO p_ftext6 SEPARATED BY space.
CONCATENATE 'Above' temp1 'Days' INTO head-text SEPARATED BY space.
APPEND head.
len = len + 17.
ENDFORM. "GET_DAY_LABEL
&----
*& Form check_input
&----
text
----
--> p1 text
<-- p2 text
----
FORM check_input.
IF p_field1 EQ space AND p_field2 EQ space AND p_field3 EQ space
AND p_field4 EQ space AND p_field5 EQ space.
p_field1 = '030'.
p_field2 = '060'.
p_field3 = '090'.
p_field4 = '180'.
p_field5 = '365'.
ENDIF.
IF NOT p_field5 IS INITIAL.
IF p_field5 GT p_field4
AND p_field4 GT p_field3
AND p_field3 GT p_field2
AND p_field2 GT p_field1.
ELSE.
MESSAGE e001.
ENDIF.
ELSE.
IF NOT p_field4 IS INITIAL.
IF p_field4 GT p_field3
AND p_field3 GT p_field2
AND p_field2 GT p_field1.
ELSE.
MESSAGE e001.
ENDIF.
ELSE.
IF NOT p_field3 IS INITIAL.
IF p_field3 GT p_field2
AND p_field2 GT p_field1.
ELSE.
MESSAGE e001.
ENDIF.
ELSE.
IF NOT p_field2 IS INITIAL.
IF p_field2 GT p_field1.
ELSE.
MESSAGE e001.
ENDIF.
ELSE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. "CHECK_INPUT
2008 Dec 30 8:37 AM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |