Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Required Shade column

Former Member
0 Likes
1,338

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

1 REPLY 1
Read only

Former Member
0 Likes
777

I have solved my query....