Sei sulla pagina 1di 47

************************************************************************--ZQM01

* OBJECT ID :
* PROGRAM TITLE : QC105_MQ Analysis Report
* MODULE : QM(Quality Management)
* CREATED BY : DINESH KUMAR(HMSI)
*Functional Analyst : Ravi Arora(IBM)
* CREATION DATE & Time : 28.05.2013
*-----------------------------------------------------------------------
* DESCRIPTION : Display Warranty Data from(QM01)
*
************************************************************************
* Modification history:
* --------------------------------------------------------------------------------
* DATE : 04.09.2013 |User ID : 7213 |TS Ver | Transport Request | Description
* --------------------------------------------------------------------------------
REPORT zqm_warranty NO STANDARD PAGE HEADING.
TABLES: zmqanalysis.
*DATA: lt_dropdown TYPE lvc_t_drop,
* ls_dropdown TYPE lvc_s_drop.

DATA: lt_dral TYPE lvc_t_dral,


ls_dral TYPE lvc_s_dral.

DATA: stable TYPE lvc_s_stbl.


DATA: gstring TYPE c.
DATA: qm_container TYPE REF TO cl_gui_custom_container,"FOR CONTAINER
qm_grid TYPE REF TO cl_gui_alv_grid, "FOR ALV GRID
qm_layout TYPE lvc_s_layo, "FOR LAYOUT
it_fieldcat TYPE lvc_t_fcat, "FOR FIELDCAT
wa_fieldcat LIKE LINE OF it_fieldcat.
* go_handler type ref to lcl_event_receiver.

DATA:l_layout TYPE disvariant.


DATA : lt_exclude TYPE ui_functions.

DATA: lt_f4 TYPE lvc_t_f4 WITH HEADER LINE."08.07.2013

DATA: gv_mdtxt TYPE imrg-mdtxt.


DATA: id TYPE tdid, " for long text
lang TYPE spras VALUE 'E',
nam TYPE thead-tdname,
object TYPE thead-tdobject,
lines TYPE TABLE OF tline.
DATA: wa_line LIKE LINE OF lines.
*********************************Select Option Variables***************
DATA: plant TYPE pnwtyh-werks,
date TYPE pnwtyh-creadat,
matnr TYPE mara-matnr,
claim TYPE pnwtyh-clmno,
symptom_code TYPE char20,
part_damage TYPE char30.

*********************************Structure Declaration Strat***************


DATA: lv_mq TYPE pnwtyh-clmno.

TYPES: BEGIN OF ty_pnwty,


parnr TYPE pnwtyh-parnr,
creadat TYPE pnwtyh-creadat,
clmno TYPE pnwtyh-clmno,
relob_ext(18) TYPE c," pnwtyh-relob_ext,"frame no
zzmodel(11) TYPE c,"pnwtyh-zzmodel,
clmty TYPE pnwtyh-clmty,
werks TYPE pnwtyh-werks,
pnguid TYPE pnwtyh-pnguid,
pncnt TYPE pnwtyh-pncnt,
refno TYPE pnwtyh-refno,
* OBJNR TYPE pnwtyh-OBJNR,
reldt TYPE pnwtyh-reldt,
refdt TYPE pnwtyh-refdt,
* knumv TYPE pnwtyh-knumv,
END OF ty_pnwty.

TYPES: BEGIN OF ty_kna1,


kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
END OF ty_kna1.

TYPES: BEGIN OF ty_model,


zzffcd TYPE char8,
zzmodel(11) TYPE c," TYPE zzmodel,
zzdesc TYPE char11,"zzframeqc-zzdesc,
zzvehicle TYPE zzframeqc-zzvehicle,
zzmodel2 TYPE zzframeqc-zzmodel2,
END OF ty_model.

TYPES: BEGIN OF ty_model1,


zzmodel(11) TYPE c," zzmodel-zzmodel,
zzdesc TYPE char11,"zzmodel-zzdesc,
END OF ty_model1.

TYPES: BEGIN OF ty_bgm, " table name - BGMKOBJ FOR TAKE DATE OF SALE FIELD NAME-
GWLDT
j_objnr TYPE bgmkobj-j_objnr,
gwldt TYPE bgmkobj-gwldt,
END OF ty_bgm.

TYPES: BEGIN OF ty_equi,


equnr(18) TYPE c," equi-equnr,
objnr TYPE equi-objnr,
sernr TYPE equi-sernr,
matnr TYPE equi-matnr,
datlwb TYPE equi-datlwb,
erdat TYPE equi-erdat,
END OF ty_equi.

TYPES: BEGIN OF ty_mbew,


matnr TYPE mbew-matnr,
stprs TYPE mbew-stprs,
END OF ty_mbew.

TYPES: BEGIN OF ty_konv,"for condition record


knumv TYPE konv-knumv,
kschl TYPE konv-kschl,
kawrt TYPE konv-kawrt,
kwert TYPE konv-kwert,
kposn TYPE konv-kposn,
kbetr TYPE konv-kbetr,
END OF ty_konv.

TYPES: BEGIN OF ty_lfa1,"for VENDOR


lifnr TYPE lfa1-lifnr,
name1 TYPE lfa1-name1,
END OF ty_lfa1.

TYPES: BEGIN OF ty_makt,"for Material Description


matnr TYPE makt-matnr,
maktx TYPE makt-maktx,
END OF ty_makt.

TYPES: BEGIN OF ty_imptt,


mandt TYPE sy-mandt,
point TYPE imptt-point,
mpobj TYPE imptt-mpobj,
***********mpobj(20) TYPE c,
*mpobj TYPE ty_pnwty-relob_ext,
mrngu TYPE imptt-mrngu,
END OF ty_imptt.

*TYPES: BEGIN OF ty_imrg,


*point TYPE imrg-point,
*mdtxt TYPE imrg-mdtxt,
*erdat TYPE imrg-erdat,
*eruhr TYPE imrg-eruhr,
*recdv TYPE imrg-recdv,
*END OF ty_imrg.

TYPES: BEGIN OF ty_status,


rejcd TYPE cwty003t-rejcd,
rejcd_txt TYPE cwty003t-rejcd_txt,
END OF ty_status.

TYPES: BEGIN OF ty_mara,


matnr TYPE mara-matnr,
zzefcd TYPE mara-zzefcd,
END OF ty_mara.

TYPES: BEGIN OF ty_eina,


infnr TYPE eina-infnr,
matnr TYPE eina-matnr,
lifnr TYPE eina-lifnr,
END OF ty_eina.

TYPES: BEGIN OF ty_eine,


infnr TYPE eine-infnr,
netpr TYPE eine-netpr,
END OF ty_eine.

TYPES: BEGIN OF ty_tab,


creadat TYPE zmqanalysis-creadat,
clmno TYPE zmqanalysis-clmno,
zzposnr TYPE zmqanalysis-zzposnr,
zsection TYPE zmqanalysis-zsection,
zsection2 TYPE zmqanalysis-zsection2,
zlot TYPE zmqanalysis-zlot,
zrecieved TYPE zmqanalysis-zrecieved,
zok_ng TYPE zmqanalysis-zok_ng,
zfault TYPE zmqanalysis-zok_ng,
zcause TYPE zmqanalysis-zcause,
zcause2 TYPE zmqanalysis-zcause2,
zmis TYPE zmqanalysis-zmis,
zbreakup TYPE zmqanalysis-zbreakup,
zupdate TYPE zmqanalysis-zbreakup,
zzveh TYPE zmqanalysis-zzveh,
zzvehicle TYPE zmqanalysis-zzvehicle,
END OF ty_tab.

TYPES: BEGIN OF ty_final,


parnr TYPE pnwtyh-parnr, "Partner code in Warranty document
creadat TYPE pnwtyh-creadat, "from date of warranty claim
clmno TYPE pnwtyh-clmno, "SAP Claim no.
relob_ext TYPE pnwtyh-relob_ext, "frame no
clmty TYPE pnwtyh-clmty, "Claim Type
werks TYPE pnwtyh-werks, "Plant
refno TYPE pnwtyh-refno, "DEALER CODE REF NO
* OBJNR TYPE PNWTYH-OBJNR, "DEALER CODE REF NO
reldt TYPE pnwtyh-reldt,
refdt TYPE pnwtyh-refdt,
j_objnr TYPE bgmkobj-j_objnr,
gwldt TYPE bgmkobj-gwldt,
kunnr TYPE kna1-kunnr, "Customer No
name1 TYPE kna1-name1, "Customer Name
zzmodel TYPE zzmodel-zzmodel, "Model Code
zzdesc TYPE zzmodel-zzdesc, "Model Description
equnr TYPE equi-equnr, "Equipment No
objnr TYPE equi-objnr, "Object number
quant TYPE char10,"pvwty-quant,
sernr TYPE equi-sernr,
matnr TYPE equi-matnr,
stprs TYPE mbew-stprs,
datlwb TYPE equi-datlwb,
zsection TYPE zqm_email-zfecod,
zsection2 TYPE zmqanalysis-zsection2,
zlot TYPE zmqanalysis-zlot,
zrecieved TYPE zmqanalysis-zrecieved,
zok_ng TYPE zmqanalysis-zok_ng,
zfault TYPE zmqanalysis-zfault,
zcause TYPE zmqanalysis-zcause,
zcause2 TYPE zmqanalysis-zcause2,
zmis TYPE zmqanalysis-zmis,
zbreakup TYPE zmqanalysis-zbreakup,
zfr1 TYPE zmqanalysis-zfr1 ,
zpart2 TYPE zmqanalysis-zpart2,
zpart3 TYPE zmqanalysis-zpart3,
zupdate TYPE zmqanalysis-zupdate,
veh TYPE zmqanalysis-zzvehicle,
chk TYPE c,
gv_days TYPE i,
knumv TYPE konv-knumv,"********18.06.2013
kschl TYPE konv-kschl,
kawrt TYPE konv-kawrt,
kwert TYPE konv-kwert,
ndp TYPE konv-kawrt,"ADDITIONAL 18.06.2013
plc TYPE konv-kawrt,
plc_amt TYPE konv-kawrt,
plc_amt1 TYPE konv-kawrt,
frt TYPE konv-kawrt,
lbr TYPE konv-kawrt,
lbr_amt TYPE konv-kawrt,
condition TYPE konv-knumv,
total_prts TYPE konv-kawrt,
total_prts_lab TYPE konv-kawrt,"************"18.06.2013
claim_type(10) TYPE c,
claim_type1(10) TYPE c,
claim_type2(10) TYPE c,
zztreat_cd TYPE zde_treat,
zzhtr TYPE char20,
zzdate_mf TYPE sy-datum,
zzdes_mf TYPE char40,
zzfill_dt TYPE sy-datum,
zzremark TYPE char40,
zzstatus TYPE char100,
zzven_name TYPE name1,
zzven_price TYPE dmbtr,
zzexport TYPE char10,
zzpart_send TYPE sy-datum,
zzpart_rec TYPE sy-datum,
zzresubmit TYPE char40,
item_no TYPE posnr,
gv_senddate TYPE i,
gv_recdate TYPE i,
gv_srdate TYPE i,
symtom TYPE char8,
code1 TYPE char4,
code TYPE char4,
herst TYPE wty_herst,
lifnr TYPE lfa1-lifnr,
ven_name TYPE lfa1-name1,
currency TYPE wty_crncy,
maktx TYPE makt-maktx,
part_other TYPE char10,
symtom_other TYPE char10,
milage TYPE cha_class_view-sollwert,
codegruppe TYPE qcodegrp,
point TYPE imrg-point,
mdtxt TYPE imrg-mdtxt,
erdat TYPE imrg-erdat,
eruhr TYPE imrg-eruhr,
recdv TYPE imrg-recdv,
mpobj(20) TYPE c,
mrngu TYPE imptt-mrngu,
kbetr TYPE konv-kbetr,
kposn TYPE posnr,
din TYPE posnr,
zzvehicle TYPE zzframeqc-zzvehicle,
* veh TYPE zzmq-zzvehicle,
zzmodel2 TYPE zzframeqc-zzmodel2,
cr_dt TYPE equi-erdat,
tdline(40) TYPE c,
zzmodel1 TYPE char11,
* zzdesc type zzmodel-zzdesc,
zzposnr TYPE zmqanalysis-zzposnr,
zzveh TYPE zmqanalysis-zzveh,
gv_per TYPE i,
symtem_text TYPE char10,
rejcd TYPE cwty003t-rejcd,
rejcd_txt TYPE cwty003t-rejcd_txt,
total_k TYPE konv-kawrt,
ndp_input TYPE konv-kawrt,
sbl TYPE konv-kawrt,
efcd TYPE mara-zzefcd,
dist TYPE char5,
infnr TYPE eina-infnr,
* matnr TYPE eina-matnr,
* lifnr TYPE eina-lifnr,
netpr TYPE eine-netpr,
gv_mb TYPE numc3,
gv_mb1 TYPE char6,
gv_mb2 TYPE sy-datum,
matnr_p TYPE mara-matnr,
END OF ty_final.

DATA: lv_frm TYPE char2.


TYPES: BEGIN OF ys_qpcd,
* codegruppe TYPE qpcd-codegruppe,
code TYPE qpcd-code,

END OF ys_qpcd.

TYPES: BEGIN OF ty_qpcd,


* katalogart TYPE qpcd-katalogart,
codegruppe TYPE qpcd-codegruppe,
code TYPE qpcd-code,
END OF ty_qpcd.

TYPES: BEGIN OF ty_f4,


zsection2 TYPE zmqanalysis-zsection2,
END OF ty_f4.

TYPES: BEGIN OF ty_f5,


zrecieved TYPE zmqanalysis-zrecieved,
END OF ty_f5.

TYPES: BEGIN OF ty_f6,


zok_ng TYPE zmqanalysis-zok_ng,
END OF ty_f6.

TYPES: BEGIN OF ty_f7,


zfault TYPE zmqanalysis-zfault,
END OF ty_f7.

TYPES: BEGIN OF ty_f8,


zlot TYPE zmqanalysis-zlot,
END OF ty_f8.

TYPES: BEGIN OF ty_f9,


zupdate TYPE zmqanalysis-zupdate,
END OF ty_f9.

DATA: it_grp TYPE TABLE OF ty_qpcd,


wa_grp TYPE ty_qpcd.
" Local Vars
DATA: it_f4 TYPE TABLE OF ty_f4,
wa_f4 TYPE ty_f4.

DATA: it_f5 TYPE TABLE OF ty_f5,


wa_f5 TYPE ty_f5.

DATA: it_f6 TYPE TABLE OF ty_f6,


wa_f6 TYPE ty_f6.

DATA: it_f7 TYPE TABLE OF ty_f7,


wa_f7 TYPE ty_f7.

DATA: it_f8 TYPE TABLE OF ty_f8,


wa_f8 TYPE ty_f8.

DATA: it_f9 TYPE TABLE OF ty_f9,


wa_f9 TYPE ty_f9.

DATA: lt_bwtar TYPE TABLE OF ys_qpcd,


ls_bwtar TYPE ys_qpcd,
lt_map TYPE TABLE OF dselc,
ls_map TYPE dselc,
lt_return TYPE TABLE OF ddshretval,
ls_return TYPE ddshretval,
ls_stable TYPE lvc_s_stbl.
" Field-symbols
FIELD-SYMBOLS: <l_out> TYPE ty_final. " ALV table line

TYPES: BEGIN OF ty_mara1,


matnr TYPE mara-matnr,
zzmodel TYPE mara-zzmodel,
END OF ty_mara1.

*DATA: lv_recdv TYPE imrg-recdv.


*DATA: lv_mdtxt TYPE imrg-mdtxt.
*DATA: lv_point TYPE imrg-point.
********************************************Structure Declarations
End************************
********************************Internal
Tables***********************************************
DATA: t_pnwty TYPE STANDARD TABLE OF ty_pnwty INITIAL SIZE 0.
DATA: it_tab1 TYPE STANDARD TABLE OF ty_pnwty INITIAL SIZE 0.
DATA: t_kna1 TYPE STANDARD TABLE OF ty_kna1 INITIAL SIZE 0.
DATA: t_model TYPE STANDARD TABLE OF ty_model INITIAL SIZE 0.
DATA: t_model1 TYPE STANDARD TABLE OF ty_model1 INITIAL SIZE 0.
DATA: t_equi TYPE STANDARD TABLE OF ty_equi INITIAL SIZE 0.
DATA: t_mbew TYPE STANDARD TABLE OF ty_mbew INITIAL SIZE 0.
DATA: t_bgm TYPE STANDARD TABLE OF ty_bgm INITIAL SIZE 0.
DATA: t_final TYPE STANDARD TABLE OF ty_final INITIAL SIZE 0.
DATA: it_pbo TYPE STANDARD TABLE OF ty_final INITIAL SIZE 0.
DATA: it_zmq TYPE STANDARD TABLE OF zmqanalysis INITIAL SIZE 0.
DATA: it_zzmq TYPE STANDARD TABLE OF ty_tab INITIAL SIZE 0.
DATA: it_konv TYPE STANDARD TABLE OF ty_konv INITIAL SIZE 0.
DATA: it_konv1 TYPE STANDARD TABLE OF ty_konv INITIAL SIZE 0.
DATA: it_konv2 TYPE STANDARD TABLE OF ty_konv INITIAL SIZE 0.
DATA: it_konv3 TYPE STANDARD TABLE OF ty_konv INITIAL SIZE 0.
DATA: it_lfa1 TYPE STANDARD TABLE OF ty_lfa1 INITIAL SIZE 0.
DATA: it_makt TYPE STANDARD TABLE OF ty_makt INITIAL SIZE 0.
*DATA: it_imptt TYPE STANDARD TABLE OF ty_imptt INITIAL SIZE 0.
*DATA: it_imrg TYPE STANDARD TABLE OF ty_imrg INITIAL SIZE 0.
DATA: it_status TYPE STANDARD TABLE OF ty_status INITIAL SIZE 0.
DATA: it_mara TYPE STANDARD TABLE OF ty_mara INITIAL SIZE 0.
DATA: it_mara1 TYPE STANDARD TABLE OF ty_mara1 INITIAL SIZE 0.
DATA: it_eina TYPE STANDARD TABLE OF ty_eina INITIAL SIZE 0.
DATA: it_eine TYPE STANDARD TABLE OF ty_eine INITIAL SIZE 0.
DATA: it_tab TYPE STANDARD TABLE OF ty_tab INITIAL SIZE 0.

TYPES: BEGIN OF ty_imp,


mandt TYPE sy-mandt,
point TYPE imptt-point,
mpobj TYPE imptt-mpobj,
mrngu TYPE imptt-mrngu,
END OF ty_imp.

DATA: it_imptt TYPE TABLE OF ty_imp.


DATA: wa_imptt TYPE ty_imptt."ty_imp.
*********************************Work Area's**************
DATA: wa_pnwty LIKE LINE OF t_pnwty.
DATA: wa_tab1 LIKE LINE OF it_tab1.
DATA: wa_kna1 LIKE LINE OF t_kna1.
DATA: wa_model LIKE LINE OF t_model.
DATA: wa_model1 LIKE LINE OF t_model1.
DATA: wa_equi LIKE LINE OF t_equi.
DATA: wa_mbew LIKE LINE OF t_mbew.
DATA: wa_bgm LIKE LINE OF t_bgm.
DATA: wa_final LIKE LINE OF t_final.
DATA: wa_zmq LIKE LINE OF it_zmq.
DATA: wa_konv LIKE LINE OF it_konv.
DATA: wa_konv1 LIKE LINE OF it_konv.
DATA: wa_konv2 LIKE LINE OF it_konv.
DATA: wa_konv3 LIKE LINE OF it_konv.
DATA: wa_mara1 LIKE LINE OF it_mara1.
DATA: wa_tab LIKE LINE OF it_tab.
DATA: wa_lfa1 TYPE lfa1.
DATA: wa_makt LIKE LINE OF it_makt.
DATA: wa_zzmq LIKE LINE OF it_zzmq.

TYPES: BEGIN OF ty_imrg,


mandt TYPE sy-mandt,
point TYPE imrg-point,
mdtxt TYPE imrg-mdtxt,
erdat TYPE imrg-erdat,
eruhr TYPE imrg-eruhr,
recdv TYPE imrg-recdv,
* recdv TYPE imrg-recdv,
* mdtxt TYPE imrg-mdtxt ,
* point TYPE imrg-point,
END OF ty_imrg.

*DATA: wa_imptt TYPE imptt.


DATA: it_imrg TYPE TABLE OF ty_imrg.
DATA: wa_imrg TYPE ty_imrg.

DATA: wa_mara LIKE LINE OF it_mara.


DATA: wa_status LIKE LINE OF it_status.
DATA: wa_eina LIKE LINE OF it_eina.
DATA: wa_eine LIKE LINE OF it_eine.

DATA:diff LIKE rf60v-nlaufz.


*types: LO_HANDLER type xxxxxx.
*DATA: gv_date1 TYPE vtbbewe-dbervon.
*DATA: gv_date2 TYPE vtbbewe-dbervon.
DATA: gv_date1 TYPE datum.
DATA: gv_date2 TYPE datum.
*DATA: gv_days TYPE vtbbewe-dbervon.

DATA: gv_date3 TYPE datum.


DATA: gv_date4 TYPE datum.
DATA: gv_date5 TYPE datum.
DATA: gv_date6 TYPE datum.
DATA: lv_diff3 TYPE i.
DATA: gv_days TYPE i.
DATA: lv_diff4 TYPE i.
DATA: gv_da TYPE i.
DATA: flag.
DATA: flag1.
*********************************Selection Screen*************************
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_date FOR date OBLIGATORY,
s_clmno FOR claim.
SELECTION-SCREEN: END OF BLOCK b1.
***************************************Function Module for display quantity**
DATA:
et_pnwtyh TYPE pnwtyh_tab,
wa_pnwtyh TYPE pnwtyh,
et_pnwtyv TYPE pnwtyv_tab WITH HEADER LINE,
et_pvwty TYPE pvwty_tab WITH HEADER LINE ,
gv_tab TYPE pvwty_tab WITH HEADER LINE ,
et_wtyv_imrg TYPE wtyv_imrg_tab,
et_partner TYPE wty_partner_t,
lv_guid TYPE wty_pnguid_tab WITH HEADER LINE.

DATA:
wa_pv LIKE LINE OF et_pvwty,
wa_pvd LIKE LINE OF et_pvwty,
gv_pv LIKE LINE OF et_pvwty,
wa_pnwtyv LIKE LINE OF et_pnwtyv.

DATA: wa_pnt LIKE LINE OF et_pnwtyv.


* wa_pnt LIKE LINE OF et_pnwtyv.

DATA: wa_et LIKE LINE OF et_pnwtyh.

DATA: BEGIN OF fcode,


code TYPE char10,
END OF fcode.

DATA: gv_date7 LIKE sy-datum,


gv_date8 LIKE sy-datum.

*****************************Kilometers Data types***********


DATA: gv_atflv TYPE atflv,
gv_warranty_kilometers TYPE cha_class_view-sollwert.
TYPES: BEGIN OF ty_class,
atflv TYPE cawn-atflv,
atinn TYPE cawn-atinn,
END OF ty_class.
DATA: it_class TYPE STANDARD TABLE OF ty_class INITIAL SIZE 0.
DATA: wa_class LIKE LINE OF it_class.
DATA: gv_mpobj TYPE imptt-mpobj,
gv_point TYPE imptt-point,
gv_mrngu TYPE imptt-mrngu.
*----------------------------------------------------------------------*
* CLASS lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION FINAL.

PUBLIC SECTION.
METHODS
handle_on_f4
FOR EVENT onf4 OF cl_gui_alv_grid
IMPORTING e_fieldname
es_row_no
er_event_data.

ENDCLASS. "lcl_event_handler DEFINITION

*----------------------------------------------------------------------*
* CLASS lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
*--Handle On F4

METHOD handle_on_f4.
PERFORM handle_on_f4
USING e_fieldname
es_row_no
er_event_data.

ENDMETHOD. "handle_on_f4
ENDCLASS. "lcl_event_handler IMPLEMENTATION

START-OF-SELECTION.
* break cab01.
IF sy-mandt EQ '300'.
SELECT parnr creadat clmno relob_ext zzmodel clmty werks pnguid pncnt refno
reldt refdt FROM pnwtyh INTO TABLE t_pnwty
WHERE creadat IN s_date AND clmty NOT IN ('ZHFS' , 'ZFRS' , 'ZHDC' , 'ZHEX')
AND clmno IN s_clmno AND creadat GT '20140102'.
ENDIF.

IF sy-mandt EQ '130' OR sy-mandt EQ '200' OR sy-mandt EQ '220' .


SELECT parnr creadat clmno relob_ext zzmodel clmty werks pnguid pncnt refno
reldt refdt FROM pnwtyh INTO TABLE t_pnwty
WHERE creadat IN s_date AND clmty NOT IN ('ZHFS' , 'ZFRS' , 'ZHDC' , 'ZHEX')
AND clmno IN s_clmno." and creadat gt '20140102'.
ENDIF.
* LOOP AT t_pnwty INTO wa_pnwty.
* CLEAR lv_guid[].
*
* lv_guid = wa_pnwty-pnguid.
* APPEND lv_guid.
* CLEAR:et_pnwtyh[],et_pnwtyv[],et_pvwty[].
* CALL FUNCTION 'PVSDBWTY_CLAIM_GET'
* EXPORTING
* it_pnguid = lv_guid[]
* IMPORTING
* et_pnwtyh = et_pnwtyh[]
* et_pnwtyv = et_pnwtyv[]
* et_pvwty = et_pvwty[]
* et_wtyv_imrg = et_wtyv_imrg
* et_partner = et_partner.
* ENDLOOP.

* break cab01.
IF t_pnwty[] IS NOT INITIAL.
SELECT zzffcd zzmodel zzdesc zzvehicle zzmodel2 FROM zzframeqc INTO TABLE
t_model
FOR ALL ENTRIES IN t_pnwty WHERE zzffcd = t_pnwty-relob_ext(8).

SELECT equnr objnr sernr matnr datlwb erdat FROM equi INTO TABLE t_equi
FOR ALL ENTRIES IN t_pnwty WHERE equnr = t_pnwty-relob_ext.

IF t_model IS NOT INITIAL.


SELECT zzmodel zzdesc FROM zzmodel INTO TABLE t_model1 FOR ALL ENTRIES IN
t_model WHERE zzmodel = t_model-zzdesc.

ENDIF.
* break cab01.
IF t_equi IS NOT INITIAL.
SELECT matnr stprs FROM mbew INTO TABLE t_mbew FOR ALL ENTRIES IN
t_equi WHERE matnr = t_equi-matnr.

IF t_equi IS NOT INITIAL.


SELECT matnr zzmodel FROM mara INTO TABLE it_mara1 FOR ALL ENTRIES IN
t_equi WHERE matnr = t_equi-matnr.
ENDIF.

SELECT zzmodel zzdesc FROM zzmodel INTO TABLE t_model1 FOR ALL ENTRIES IN
it_mara1 WHERE zzmodel = it_mara1-zzmodel.

SELECT j_objnr gwldt FROM bgmkobj INTO TABLE t_bgm FOR ALL ENTRIES IN
t_equi WHERE j_objnr = t_equi-objnr.
ENDIF.

LOOP AT t_pnwty INTO wa_pnwty.


* CLEAR lv_guid[].
lv_guid = wa_pnwty-pnguid.
APPEND lv_guid.
ENDLOOP.
CLEAR:et_pnwtyh[],et_pnwtyv[],et_pvwty[].
CALL FUNCTION 'PVSDBWTY_CLAIM_GET'
EXPORTING
it_pnguid = lv_guid[]
IMPORTING
et_pnwtyh = et_pnwtyh[]
et_pnwtyv = et_pnwtyv[]
et_pvwty = et_pvwty[]
et_wtyv_imrg = et_wtyv_imrg
et_partner = et_partner.

RANGES: r_mpobj FOR imptt-mpobj.


REFRESH r_mpobj.

LOOP AT et_pnwtyh INTO wa_pnwtyh.


IF wa_pnwtyh-relob_ext CO '0123456789 ' .
UNPACK wa_pnwtyh-relob_ext TO wa_pnwtyh-relob_ext.
ENDIF.
r_mpobj-sign = 'I'.
r_mpobj-option = 'EQ'.
CONCATENATE 'IE' wa_pnwtyh-relob_ext+0(17) INTO r_mpobj-low.
APPEND r_mpobj.
ENDLOOP.

SELECT mandt point mpobj mrngu


FROM imptt CLIENT SPECIFIED
INTO TABLE it_imptt
WHERE mandt EQ sy-mandt
AND mpobj IN r_mpobj."AND mrngu = 'KM'
IF sy-subrc IS INITIAL.
DELETE it_imptt WHERE mrngu NE 'KM'.
IF it_imptt IS NOT INITIAL.
SELECT mandt point mdtxt erdat eruhr recdv
FROM imrg CLIENT SPECIFIED
INTO TABLE it_imrg
FOR ALL ENTRIES IN it_imptt
WHERE mandt EQ sy-mandt
AND point = it_imptt-point.
SORT it_imrg BY point mdtxt.
ENDIF.
ENDIF.

*RANGES: r_mpobj FOR imptt-mpobj.


* REFRESH r_mpobj.
* r_mpobj-sign = 'I'.
* r_mpobj-option = 'CP'.
* CONCATENATE '*' wa_pnwtyh-relob_ext+0(17) INTO r_mpobj-low.
* APPEND r_mpobj.

* data: lv_con type char2.


* concatenate lv_con wa_pnwtyh-relob_ext+0(17) into lv_con.

SELECT creadat
clmno
zzposnr
zsection
zsection2
zlot
zrecieved
zok_ng
zfault
zcause
zcause2
zmis
zbreakup
zupdate
zzveh
zzvehicle FROM zmqanalysis INTO TABLE it_zzmq FOR ALL ENTRIES IN
et_pvwty
WHERE zzposnr = et_pvwty-posnr AND creadat = et_pvwty-creadat.

* SELECT recdv mdtxt point FROM imrg INTO TABLE it_imrg.

* SELECT mrngu mpobj point FROM imptt INTO TABLE it_imptt


* FOR ALL ENTRIES IN it_imrg WHERE mrngu = 'KM' AND point = it_imrg-point.

SELECT lifnr name1 FROM lfa1 INTO TABLE it_lfa1 FOR ALL ENTRIES IN et_pvwty
WHERE lifnr = et_pvwty-herst.

SELECT matnr maktx FROM makt INTO TABLE it_makt FOR ALL ENTRIES IN et_pvwty
WHERE matnr = et_pvwty-matnr.

SELECT kunnr name1 FROM kna1 INTO TABLE t_kna1 FOR ALL ENTRIES IN et_pnwtyv
WHERE kunnr = et_pnwtyv-v_parnr.

SELECT knumv kschl kawrt kwert kposn kbetr FROM konv INTO TABLE it_konv FOR
ALL ENTRIES IN et_pnwtyv WHERE
knumv = et_pnwtyv-knumv AND
kschl IN ('ZNDP' , 'ZPLC' , 'ZFRT' , 'ZLBR' , 'ZSBL').

*
***********************************************************************************
**************
ELSE.
MESSAGE 'Data not found' TYPE 'S' DISPLAY LIKE 'E'. "#EC NOTEXT
ENDIF.

SELECT rejcd rejcd_txt FROM cwty003t INTO TABLE it_status FOR ALL ENTRIES IN
et_pnwtyv
WHERE rejcd = et_pnwtyv-v_rejcd AND spras = 'EN'.

SELECT matnr zzefcd FROM mara INTO TABLE it_mara FOR ALL ENTRIES IN et_pvwty
WHERE matnr = et_pvwty-matnr.

SELECT infnr matnr lifnr FROM eina INTO TABLE it_eina


FOR ALL ENTRIES IN et_pvwty WHERE matnr = et_pvwty-matnr AND lifnr = et_pvwty-
herst.
IF it_eina IS NOT INITIAL.
SELECT infnr netpr FROM eine INTO TABLE it_eine FOR ALL ENTRIES IN it_eina
WHERE infnr = it_eina-infnr.
ENDIF.

SORT it_konv BY knumv.


LOOP AT it_konv INTO wa_konv WHERE kschl EQ 'ZPLC'.
wa_konv1-knumv = wa_konv-knumv.
wa_konv1-kawrt = wa_konv-kawrt.
wa_konv1-kschl = wa_konv-kschl.
COLLECT wa_konv1 INTO it_konv1.
CLEAR: wa_konv1 , wa_konv.
ENDLOOP.

SORT it_konv BY knumv.


LOOP AT it_konv INTO wa_konv WHERE kschl EQ 'ZFRT'.
wa_konv2-knumv = wa_konv-knumv.
wa_konv2-kbetr = wa_konv-kbetr.
wa_konv2-kschl = wa_konv-kschl.
COLLECT wa_konv2 INTO it_konv2.
CLEAR: wa_konv2 , wa_konv.
ENDLOOP.

SORT it_konv BY knumv.


LOOP AT it_konv INTO wa_konv WHERE kschl EQ 'ZSBL'.
wa_konv3-knumv = wa_konv-knumv.
wa_konv3-kbetr = wa_konv-kbetr.
wa_konv3-kschl = wa_konv-kschl.
COLLECT wa_konv INTO it_konv3.
CLEAR: wa_konv3 , wa_konv.
ENDLOOP.

* break cab01.

gv_tab[] = et_pvwty[].
LOOP AT et_pvwty INTO wa_pv.
wa_final-quant = wa_pv-quant.
CONDENSE wa_final-quant.
wa_final-item_no = wa_pv-posnr.
wa_final-matnr = wa_pv-matnr.
wa_final-zzven_name = wa_pv-zzven_name.
wa_final-herst = wa_pv-herst.

* IF wa_final-item_no EQ 1 OR wa_final-item_no GT 1."Reapet Add DAta


* clear: wa_pv.
LOOP AT et_pvwty INTO wa_pvd WHERE version_guid = wa_pv-version_guid.
IF wa_pvd-zzdate_mf IS NOT INITIAL.
wa_final-zztreat_cd = wa_pvd-zztreat_cd.
wa_final-zzhtr = wa_pvd-zzhtr.
wa_final-zzdate_mf = wa_pvd-zzdate_mf.
wa_final-zzdes_mf = wa_pvd-zzdes_mf.
wa_final-zzfill_dt = wa_pvd-zzfill_dt.
wa_final-zzremark = wa_pvd-zzremark.
* wa_final-zzstatus = wa_pv-zzstatus.

* wa_final-zzven_price = wa_pv-contr.
wa_final-zzexport = wa_pvd-zzexport.
wa_final-zzpart_send = wa_pvd-zzpart_send.
wa_final-zzpart_rec = wa_pvd-zzpart_rec.
wa_final-zzresubmit = wa_pvd-zzresubmit.
wa_final-symtom = wa_pvd-zzsymtom.
wa_final-code1 = wa_pvd-zzcode.
wa_final-zzresubmit = wa_pvd-zzresubmit.
ENDIF.
ENDLOOP.

READ TABLE et_pnwtyv INTO wa_pnwtyv WITH KEY pnguid = wa_pv-version_guid.


IF sy-subrc = 0.

READ TABLE et_pnwtyh INTO wa_pnwtyh WITH KEY pnguid = wa_pnwtyv-header_guid.


IF sy-subrc = 0.
wa_final-creadat = wa_pnwtyh-creadat.

CALL FUNCTION 'CCM_GO_BACK_MONTHS'


EXPORTING
currdate = wa_final-creadat
backmonths = 01
IMPORTING
newdate = wa_final-gv_mb2.

* = wa_final-creadat(6).

CONCATENATE wa_final-gv_mb2(4) wa_final-gv_mb2+4(2) INTO wa_final-gv_mb1.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'


EXPORTING
input = wa_pnwtyh-clmno
IMPORTING
output = wa_final-clmno.

wa_final-relob_ext = wa_pnwtyh-relob_ext.
wa_final-werks = wa_pnwtyh-werks.
wa_final-refno = wa_pnwtyh-refno.
* wa_final-OBJNR = wa_pnwty-OBJNR.
wa_final-reldt = wa_pnwtyh-reldt.
wa_final-refdt = wa_pnwtyh-refdt.
wa_final-clmty = wa_pnwtyh-clmty.

lv_frm = wa_final-relob_ext+10(1).
IF lv_frm EQ '8'.
wa_final-werks = 'MNSR'.
ELSEIF lv_frm EQ '7'.
wa_final-werks = 'TPKR'.
ELSEIF lv_frm EQ 'T'.
wa_final-werks = 'NSPR'.
ENDIF.

CONCATENATE '562' wa_final-creadat+4(2) INTO wa_final-dist.


* break cab01.
CLEAR:wa_model.
READ TABLE t_model INTO wa_model WITH KEY zzffcd = wa_pnwtyh-relob_ext(8).
IF sy-subrc EQ 0.
wa_final-zzmodel = wa_model-zzmodel.
* wa_final-zzdesc = wa_model-zzdesc.
wa_final-zzmodel2 = wa_model-zzmodel2.
wa_final-zzvehicle = wa_model-zzvehicle.
ENDIF.

* CLEAR wa_model1.
*
* READ TABLE t_model1 INTO wa_model1 WITH KEY zzmodel = wa_model-zzdesc.
* IF sy-subrc EQ 0.
* wa_final-zzdesc = wa_model1-zzdesc.
* ENDIF.
* break cab01.

CLEAR:wa_equi.
READ TABLE t_equi INTO wa_equi WITH KEY equnr = wa_pnwtyh-relob_ext.
IF sy-subrc EQ 0.
wa_final-sernr = wa_equi-sernr.
wa_final-matnr_p = wa_equi-matnr.
wa_final-datlwb = wa_equi-datlwb.
wa_final-cr_dt = wa_equi-erdat.
wa_final-objnr = wa_equi-objnr.
ENDIF.

CLEAR: wa_mara1.
READ TABLE it_mara1 INTO wa_mara1 WITH KEY matnr = wa_final-matnr_p.
IF sy-subrc EQ 0.
wa_final-zzmodel1 = wa_mara1-zzmodel.
ENDIF.

CLEAR wa_model1.
READ TABLE t_model1 INTO wa_model1 WITH KEY zzmodel = wa_mara1-zzmodel.
IF sy-subrc EQ 0.
wa_final-zzdesc = wa_model1-zzdesc.
ENDIF.

* LOOP AT et_pnwtyv INTO wa_pnt.


* wa_final-parnr = wa_pnt-v_parnr.
* ENDLOOP.

* break cab01.

*************************************************problem

CLEAR: wa_lfa1.
* SELECT SINGLE name1 into name1 FROM lfa1 WHERE lifnr = wa_pv-herst.
READ TABLE it_lfa1 INTO wa_lfa1 WITH KEY lifnr = wa_pv-herst.
IF sy-subrc EQ 0.
wa_final-ven_name = wa_lfa1-name1.
ENDIF.

* break cab01.
CLEAR: wa_eina.
READ TABLE it_eina INTO wa_eina WITH KEY matnr = wa_final-matnr lifnr =
wa_final-herst.
IF sy-subrc EQ 0.
wa_final-infnr = wa_eina-infnr.
ENDIF.

CLEAR: wa_eine.
READ TABLE it_eine INTO wa_eine WITH KEY infnr = wa_eina-infnr.
IF sy-subrc EQ 0.
wa_final-zzven_price = wa_eine-netpr.
ENDIF.

* ******************
CLEAR: wa_makt.
* SELECT SINGLE * FROM makt INTO wa_makt WHERE matnr = wa_pv-matnr.
READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_pv-matnr.
IF sy-subrc EQ 0.
wa_final-maktx = wa_makt-maktx.
ENDIF.

CLEAR: wa_mara.
READ TABLE it_mara INTO wa_mara WITH KEY matnr = wa_pv-matnr.
IF sy-subrc EQ 0.
wa_final-efcd = wa_mara-zzefcd.
ENDIF.

* LOOP AT et_pnwtyv INTO wa_pnwtyv .


wa_final-parnr = wa_pnwtyv-v_parnr.

CLEAR: wa_kna1.
READ TABLE t_kna1 INTO wa_kna1 WITH KEY kunnr = wa_pnwtyv-v_parnr.
* SELECT SINGLE * FROM kna1 INTO wa_kna1 WHERE kunnr = wa_pnwtyv-v_parnr.
IF sy-subrc EQ 0.
wa_final-name1 = wa_kna1-name1.
ENDIF.

CLEAR: wa_status.
READ TABLE it_status INTO wa_status WITH KEY rejcd = wa_pnwtyv-v_rejcd.
IF sy-subrc EQ 0.
wa_final-zzstatus = wa_status-rejcd_txt.
ENDIF.

wa_final-condition = wa_pnwtyv-knumv.
wa_final-currency = wa_pnwtyv-v_crncy.

CLEAR: wa_konv.
READ TABLE it_konv INTO wa_konv WITH KEY knumv = wa_pnwtyv-knumv kschl =
'ZNDP' kposn = wa_pv-posnr."*********AMT DISPLAY USING DIFF CONDITION
IF sy-subrc EQ 0.
* wa_final-knumv = wa_konv-knumv.
wa_final-ndp = wa_konv-kwert.
wa_final-ndp_input = wa_konv-kbetr.

ENDIF.

CLEAR: wa_konv.
READ TABLE it_konv INTO wa_konv WITH KEY knumv = wa_pnwtyv-knumv kschl =
'ZPLC' kposn = wa_pv-posnr."PLCA %
IF sy-subrc EQ 0.
wa_final-plc = wa_konv-kbetr / 10."
ENDIF.

"for ZSBL 7 DEC


* break cab01.
CLEAR: wa_konv3.
READ TABLE it_konv3 INTO wa_konv3 WITH KEY knumv = wa_pnwtyv-knumv kschl =
'ZSBL'." kposn = wa_pv-posnr."PLCA %
IF sy-subrc EQ 0.
wa_final-sbl = wa_konv3-kbetr."
ENDIF.

CLEAR: wa_konv1.
READ TABLE it_konv1 INTO wa_konv1 WITH KEY knumv = wa_pnwtyv-knumv kschl =
'ZPLC'.
IF sy-subrc EQ 0.
* IF flag IS INITIAL.
wa_final-total_k = wa_konv1-kawrt.
* flag = 'X'.
* ENDIF.
ENDIF.

**************************************
CLEAR: wa_konv2.
READ TABLE it_konv2 INTO wa_konv2 WITH KEY knumv = wa_pnwtyv-knumv kschl =
'ZFRT'." kposn = wa_pv-posnr.
IF sy-subrc EQ 0.
wa_final-frt = wa_konv2-kbetr.
ENDIF.

CLEAR: wa_konv.
READ TABLE it_konv INTO wa_konv WITH KEY knumv = wa_pnwtyv-knumv kschl =
'ZLBR'." kposn = wa_pv-posnr.
IF sy-subrc EQ 0.
wa_final-lbr = wa_konv-kbetr / 10.
ENDIF.

wa_final-lbr_amt = ( wa_final-frt * wa_final-lbr ) + wa_final-sbl."7 DEC

* ENDLOOP.

CLEAR: wa_mbew.
READ TABLE t_mbew INTO wa_mbew WITH KEY matnr = wa_equi-matnr.
IF sy-subrc EQ 0.
wa_final-stprs = wa_mbew-stprs.
ENDIF.

CLEAR:wa_bgm.
READ TABLE t_bgm INTO wa_bgm WITH KEY j_objnr = wa_equi-objnr.
IF sy-subrc EQ 0.
wa_final-gwldt = wa_bgm-gwldt.
ENDIF.
******************************************************************************
gv_date1 = wa_final-zzdate_mf.
gv_date2 = wa_final-gwldt .

CALL FUNCTION 'ZCALCULATE_DAYS'


EXPORTING
beg_da = gv_date2
end_da = gv_date1
IMPORTING
* NO_DAY =
* NO_MONTH =
* NO_YEAR =
no_cal_day = gv_days
* EXCEPTIONS
* DATEINT_ERROR = 1
* OTHERS = 2
.
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.

wa_final-gv_per = gv_days.

IF wa_final-gv_per LT 0.
wa_final-gv_per = '0'.
ENDIF.

* CLEAR: wa_zmq.
* lv_mq = wa_final-clmno.
* IF lv_mq CO '0123456789 '.
** UNPACK lv_mq TO lv_mq. 00000 + 1008519
* PACK lv_mq TO lv_mq. "1008519
* ENDIF.
* CONDENSE lv_mq.
* break cab01.
* SELECT SINGLE * FROM zmqanalysis INTO wa_zmq WHERE clmno = lv_mq AND
zzposnr = wa_pv-posnr
* AND creadat = wa_pnwty-creadat.

* SELECT SINGLE * FROM zmqanalysis INTO wa_zmq .

READ TABLE it_zzmq INTO wa_zzmq WITH KEY clmno = wa_pnwty-clmno zzposnr =
wa_pv-posnr creadat = wa_pnwty-creadat.

* READ TABLE it_tab INTO wa_tab WITH KEY clmno = lv_mq zzposnr = wa_pv-
posnr creadat = wa_pnwty-creadat.
wa_final-code = wa_zzmq-zsection.
wa_final-zsection2 = wa_zzmq-zsection2.
wa_final-zlot = wa_zzmq-zlot .
wa_final-zrecieved = wa_zzmq-zrecieved.
wa_final-zok_ng = wa_zzmq-zok_ng.
wa_final-zfault = wa_zzmq-zfault.
wa_final-zcause = wa_zzmq-zcause.
wa_final-zcause2 = wa_zzmq-zcause2.
wa_final-zmis = wa_zzmq-zmis.
wa_final-zbreakup = wa_zzmq-zbreakup.
wa_final-zupdate = wa_zzmq-zupdate.
* wa_final-codegruppe = wa_zmq-codegruppe.
wa_final-veh = wa_zzmq-zzveh.
wa_final-zzvehicle = wa_zzmq-zzvehicle.
* ENDIF.

wa_final-zfr1 = wa_final-relob_ext+11(6). "last 6 digit of frame number


wa_final-zpart2 = wa_final-matnr+0(6)."first 6 digit of frame number
"relob_ext+0(6).
wa_final-zpart3 = wa_final-matnr+0(8)."first 8 digit of frame number
"relob_ext+0(6).

IF wa_final-gv_per = 0.
wa_final-claim_type = 'PDI'.
ELSEIF wa_final-gv_per BETWEEN 1 AND 90.
wa_final-claim_type = '1To90'.
ELSEIF wa_final-gv_per GT 90.
wa_final-claim_type = 'IPPAN'.
ENDIF.

* IF wa_final-symtom GT 99.
* wa_final-claim_type = 'OTHERS'.
* ENDIF.

IF wa_final-item_no GT 1. "30.08.2013 7:15:AM


wa_final-claim_type = 'OTHERS'.
wa_final-zrecieved = 'NO CHECK'.
wa_final-zok_ng = '---'.
wa_final-zfault = 'HMSI'.
wa_final-zcause = 'CONSEQUENCIAL'.
ENDIF.
* 1ENDIF.

IF wa_final-claim_type = 'PDI'.
wa_final-claim_type1 = '0 TO 90'.
ELSEIF wa_final-claim_type = '1To90'.
wa_final-claim_type1 = '0TO90'.
ELSEIF wa_final-claim_type = 'IPPAN'.
wa_final-claim_type1 = 'IPPAN'.
ELSEIF wa_final-claim_type = 'OTHERS'.
wa_final-claim_type1 = 'OTHERS'.
ENDIF.
wa_final-claim_type2 = 'TOTAL'.

IF wa_final-zupdate = ' '. "logic for default Set 'No' value in Dropdawn
List---24.06.2013
wa_final-zupdate = 'NO'.
ENDIF.

IF wa_final-zzvehicle IS NOT INITIAL. "30.08.2013


wa_final-veh = wa_final-zzvehicle.
ENDIF.

* ********** Dinesh Kumar(HMSI)06.12.2013 2:36:50 PM


gv_date3 = wa_final-refdt. .
gv_date4 = wa_final-zzdate_mf .

CALL FUNCTION 'ZCALCULATE_DAYS'


EXPORTING
beg_da = gv_date4
end_da = gv_date3
IMPORTING
* NO_DAY =
* NO_MONTH =
* NO_YEAR =
no_cal_day = lv_diff3
* EXCEPTIONS
* DATEINT_ERROR = 1
* OTHERS = 2
.
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.

wa_final-gv_senddate = lv_diff3.

IF wa_final-gv_senddate LT 0."No of days not in negative


wa_final-gv_senddate = '0'.
ENDIF.

***********************************************************************

gv_date5 = wa_final-zzpart_send. "date of rec - date of repair


gv_date6 = wa_final-refdt.

CALL FUNCTION 'ZCALCULATE_DAYS'


EXPORTING
beg_da = gv_date6
end_da = gv_date5
IMPORTING
* NO_DAY =
* NO_MONTH =
* NO_YEAR =
no_cal_day = lv_diff4
* EXCEPTIONS
* DATEINT_ERROR = 1
* OTHERS = 2
.
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.
wa_final-gv_recdate = lv_diff4.

IF wa_final-gv_recdate LT 0.
wa_final-gv_recdate = '0'.
ENDIF.

gv_date7 = wa_final-zzpart_rec.
gv_date8 = wa_final-zzpart_send.

CALL FUNCTION 'ZCALCULATE_DAYS'


EXPORTING
beg_da = gv_date8
end_da = gv_date7
IMPORTING
* NO_DAY =
* NO_MONTH =
* NO_YEAR =
no_cal_day = gv_da
* EXCEPTIONS
* DATEINT_ERROR = 1
* OTHERS = 2
.
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.
wa_final-gv_srdate = gv_da.
IF wa_final-gv_srdate LT 0.
wa_final-gv_srdate = '0'.
ENDIF.

********** IF wa_pnwty-relob_ext CO '0123456789 ' . " for Zero


********** UNPACK wa_pnwty-relob_ext TO wa_pnwty-relob_ext.
********** ENDIF.

*************************************************************************
* concatenate wa_pnwty-relob_ext 'IE' into wa_pnwty-relob_ext.

********** RANGES: r_mpobj FOR imptt-mpobj.


********** REFRESH r_mpobj.
********** r_mpobj-sign = 'I'.
********** r_mpobj-option = 'CP'.
********** CONCATENATE '*' wa_pnwtyh-relob_ext+0(17) INTO r_mpobj-low.
********** APPEND r_mpobj.

* DATA: lv_mpobj TYPE imptt-mpobj,


* lv_point type imptt-point,
* lv_mrngu type imptt-mrngu.

* CLEAR: gv_mpobj, gv_point , gv_mrngu.


* SELECT SINGLE * FROM imptt INTO wa_imptt
* WHERE mrngu = 'KM' AND mpobj IN r_mpobj.

* IF sy-subrc EQ 0.
* wa_final-mpobj = wa_imptt-mpobj.
** IF wa_imptt-mpobj+2(17) EQ wa_pnwtyh-relob_ext.
* IF wa_imptt-mpobj+2(17) EQ wa_pnwtyh-relob_ext.
* wa_final-point = wa_imptt-point.
* wa_final-mrngu = wa_imptt-mrngu.
* SHIFT wa_final-mpobj BY 2 PLACES.
* CONDENSE wa_final-mpobj.
* ENDIF.
* ENDIF.
* break cab01.
********** CLEAR: gv_mpobj , gv_point, gv_mrngu.
********** SELECT SINGLE mpobj point mrngu INTO (gv_mpobj , gv_point,
gv_mrngu) FROM
********** imptt WHERE mrngu = 'KM' AND mpobj IN r_mpobj.
********** IF sy-subrc EQ 0.
********** wa_final-mpobj = gv_mpobj.
*********** IF wa_imptt-mpobj+2(17) EQ wa_pnwtyh-relob_ext.
********** IF gv_mpobj+2(17) EQ wa_pnwtyh-relob_ext.
********** wa_final-point = gv_point.
********** wa_final-mrngu = gv_mrngu.
********** SHIFT wa_final-mpobj BY 2 PLACES.
********** CONDENSE wa_final-mpobj.
********** ENDIF.
********** ENDIF.
CLEAR wa_imptt.
LOOP AT it_imptt INTO wa_imptt WHERE mrngu = 'KM' AND mpobj CS wa_pnwtyh-
relob_ext.
wa_final-mpobj = wa_imptt-mpobj.
wa_final-point = wa_imptt-point.
wa_final-mrngu = wa_imptt-mrngu.
SHIFT wa_final-mpobj BY 2 PLACES.
CONDENSE wa_final-mpobj.
ENDLOOP.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'


EXPORTING
input = wa_final-clmno
IMPORTING
output = wa_final-clmno.
CONCATENATE 'Warranty Claim' wa_final-clmno INTO gv_mdtxt SEPARATED BY
space. "#EC NOTEXT

*********** data: gv_recdv type imrg-recdv.


*********** CLEAR: gv_recdv , gv_mdt ,gv_point.
********** SELECT SINGLE * FROM imrg INTO wa_imrg
********** WHERE point = gv_point AND mdtxt = gv_mdtxt.
*********** WHERE point = wa_imptt-point AND mdtxt = gv_mdtxt.
*********** READ TABLE it_imrg INTO wa_imrg WITH KEY mdtxt = gv_mdtxt.
********** IF sy-subrc EQ 0.
********** wa_final-recdv = wa_imrg-recdv.
********** wa_final-mdtxt = wa_imrg-mdtxt.
********** wa_final-point = wa_imrg-point.
********** SHIFT wa_final-mdtxt BY 15 PLACES.
********** CONDENSE wa_final-mdtxt.
********** ENDIF.
*

CLEAR wa_imrg.
READ TABLE it_imrg INTO wa_imrg WITH KEY point = wa_imptt-point mdtxt =
gv_mdtxt BINARY SEARCH.
IF sy-subrc EQ 0.
wa_final-recdv = wa_imrg-recdv.
wa_final-mdtxt = wa_imrg-mdtxt.
SHIFT wa_final-mdtxt BY 15 PLACES.
CONDENSE wa_final-mdtxt.
ENDIF.

CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION' " important logic


EXPORTING
i_number_of_digits = 0
i_fltp_value = wa_imrg-recdv
IMPORTING
e_char_field = gv_warranty_kilometers.
CONDENSE gv_warranty_kilometers.

wa_final-milage = gv_warranty_kilometers.

APPEND wa_final TO t_final.


CLEAR: wa_mbew, wa_lfa1 , wa_imptt , wa_imrg.
CLEAR: wa_final-ven_name , wa_final-ndp_input ,wa_final-ndp ." ,
wa_pnwty ,wa_pnwtyv.
ENDIF.
ENDIF.
* ENDLOOP.
CLEAR: wa_final , wa_pnwty ,wa_pnwtyv,wa_pnwtyh.
ENDLOOP.

* break cab01.
LOOP AT t_final INTO wa_final.
wa_final-total_prts = wa_final-total_k + wa_final-plc_amt.
wa_final-plc_amt = ( wa_final-plc * wa_final-total_prts ) / 100.
wa_final-total_prts = wa_final-total_k + wa_final-plc_amt.
wa_final-total_prts_lab = wa_final-total_prts + wa_final-lbr_amt.
MODIFY t_final FROM wa_final TRANSPORTING total_prts total_prts_lab plc_amt.
CLEAR wa_final.
ENDLOOP.

break cab01.
LOOP AT t_final INTO wa_final. "LONG TEXT ADDED ON 17.08.2013
REFRESH lines.
CLEAR: lines , wa_line.
nam = wa_final-relob_ext.
id = 'LTXT'.
object = 'EQUI'.
CALL FUNCTION 'READ_TEXT'
EXPORTING
* CLIENT = SY-MANDT
id = id
language = lang
name = nam
object = object
* ARCHIVE_HANDLE = 0
* LOCAL_CAT = ' '
* IMPORTING
* HEADER = HEADER
TABLES
lines = lines
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.
* wa_line-tdline = ' '.
* APPEND wa_line TO lines.
* ENDIF.
LOOP AT lines INTO wa_line.
CONCATENATE wa_final-tdline wa_line-tdline INTO wa_final-tdline SEPARATED BY
space.
ENDLOOP.
MODIFY t_final FROM wa_final TRANSPORTING tdline.
CLEAR : id , wa_line , wa_final , nam , object.
ENDLOOP.
SORT t_final BY clmno item_no.

* break cab01.
DELETE t_final WHERE zupdate = 'YES'.."WHERE chk = 'X'."SAVED RECORDS DOES'T SHOW
IN THE REPORT NEXT EXECUTION OF OUTPUT.

* break cab01.
* DELETE ADJACENT DUPLICATES FROM t_final COMPARING clmno. " Dinesh
Kumar(HMSI)03.12.2013 09:08:19
***********************************************Fieldcats***************************
****
CREATE OBJECT qm_grid
EXPORTING
i_parent = cl_gui_container=>screen0."qm_container
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

wa_fieldcat-col_pos = 1.
wa_fieldcat-fieldname = 'CHK'.
wa_fieldcat-coltext = 'SELECTED ROWS'.
wa_fieldcat-checkbox = 'X'.
wa_fieldcat-edit = 'X'.
wa_fieldcat-emphasize = 'C412'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 2.
wa_fieldcat-fieldname = 'MILAGE'.
wa_fieldcat-coltext = 'MILAGE'.
* wa_fieldcat-outputlen = '12'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 3.
wa_fieldcat-fieldname = 'MRNGU'.
wa_fieldcat-coltext = 'UNIT'.
* wa_fieldcat-outputlen = '12'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*
wa_fieldcat-col_pos = 4.
wa_fieldcat-fieldname = 'CREADAT'.
wa_fieldcat-coltext = 'DATE'.
*WA_FIELDCAT-checkbox = 'X'.
* wa_fieldcat-emphasize = '4'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*
wa_fieldcat-col_pos = 5.
wa_fieldcat-fieldname = 'CLMNO'.
wa_fieldcat-coltext = 'CLAIM NO'.
* wa_fieldcat-outputlen = '12'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 6.
wa_fieldcat-fieldname = 'PARNR'.
wa_fieldcat-coltext = 'DEALER CODE'.
* wa_fieldcat-outputlen = '12'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 7.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-coltext = 'DEALER NAME'.
* wa_fieldcat-outputlen = '12'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 8.
wa_fieldcat-fieldname = 'REFNO'.
wa_fieldcat-coltext = 'DEALER CLM REFNO'.
* wa_fieldcat-outputlen = '30'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 9.
wa_fieldcat-fieldname = 'RELOB_EXT'.
wa_fieldcat-coltext = 'FRAME NO'.
*WA_FIELDCAT-HOTSPOT = 'X'.
* wa_fieldcat-outputlen = '12'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 10.
wa_fieldcat-fieldname = 'TDLINE'.
wa_fieldcat-coltext = 'CUSTOMER NAME'.
* wa_fieldcat-outputlen = '18'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 11.
wa_fieldcat-fieldname = 'ZZMODEL1'.
wa_fieldcat-coltext = 'MODEL NAME'.
* wa_fieldcat-outputlen = '15'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 12.
wa_fieldcat-fieldname = 'ZZDESC'.
wa_fieldcat-coltext = 'MODEL CODE'.
*WA_FIELDCAT-HOTSPOT = 'X'.
* wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 13.
wa_fieldcat-fieldname = 'ZZMODEL2'.
wa_fieldcat-coltext = 'MODEL NAME2'.
* wa_fieldcat-outputlen = '18'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 14.
wa_fieldcat-fieldname = 'QUANT'.
wa_fieldcat-coltext = 'QUANTITY'.
* wa_fieldcat-outputlen = '18'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 15.
wa_fieldcat-fieldname = 'SERNR'.
wa_fieldcat-coltext = 'ENGINE NO'.
* wa_fieldcat-outputlen = '18'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

* wa_fieldcat-fieldname = 'STPRS'.
* wa_fieldcat-coltext = 'COST'.
**WA_FIELDCAT-HOTSPOT = 'X'.
* APPEND wa_fieldcat TO it_fieldcat.
* CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 16.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-coltext = 'PART NO'.
* wa_fieldcat-outputlen = '18'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 17.
wa_fieldcat-fieldname = 'MAKTX'.
wa_fieldcat-coltext = 'PART DESC'.
* wa_fieldcat-outputlen = '40'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 18.
wa_fieldcat-fieldname = 'ITEM_NO'.
wa_fieldcat-coltext = 'PART S.NO'.
* wa_fieldcat-outputlen = '18'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 19.
wa_fieldcat-fieldname = 'WERKS'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-coltext = 'PLANT'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 20.
wa_fieldcat-fieldname = 'DATLWB'.
wa_fieldcat-coltext = 'PRD MONTH'.
* wa_fieldcat-outputlen = '25'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 21.
wa_fieldcat-fieldname = 'ZFR1'.
wa_fieldcat-coltext = 'FR1'."'LAST SIX DIGIT OF FRAME NO'.
* wa_fieldcat-outputlen = '30'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 22.
wa_fieldcat-fieldname = 'ZPART2'.
wa_fieldcat-coltext = 'INIT 5 DIGIT OF MAT'.
* wa_fieldcat-outputlen = '40'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 23.
wa_fieldcat-fieldname = 'ZPART3'.
wa_fieldcat-coltext = 'INIT 8 DIGIT OF MAT'.
* wa_fieldcat-outputlen = '40'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 24.
wa_fieldcat-fieldname = 'REFDT'.
wa_fieldcat-coltext = 'DT OF REPAIR'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 25.
wa_fieldcat-fieldname = 'GWLDT'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-coltext = 'DATE OF SALE'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 26.
wa_fieldcat-fieldname = 'GV_PER'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-coltext = 'PERIOD/DAYS'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 27.
wa_fieldcat-fieldname = 'NDP'.
wa_fieldcat-coltext = 'TOTAL COST'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 28.
wa_fieldcat-fieldname = 'PLC'.
wa_fieldcat-coltext = 'PLCA%'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 29.
wa_fieldcat-fieldname = 'PLC_AMT'.
wa_fieldcat-coltext = 'PLCA AMT'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 30.
wa_fieldcat-fieldname = 'FRT'.
wa_fieldcat-coltext = 'TOT FRT'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 31.
wa_fieldcat-fieldname = 'LBR'.
wa_fieldcat-coltext = 'LBR RATE'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 32.
wa_fieldcat-fieldname = 'LBR_AMT'.
wa_fieldcat-coltext = 'TOT LBR COST'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 33.
wa_fieldcat-fieldname = 'TOTAL_PRTS'.
wa_fieldcat-coltext = 'TOT PRT AMT'.
* wa_fieldcat-outputlen = '20'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 34.
wa_fieldcat-fieldname = 'TOTAL_PRTS_LAB'.
wa_fieldcat-coltext = 'TOT PRTS & LAB AMT'.
* wa_fieldcat-outputlen = '30'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 35.
wa_fieldcat-fieldname = 'CLAIM_TYPE'.
wa_fieldcat-coltext = 'CLAIM TYPE'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 36.
wa_fieldcat-fieldname = 'CLAIM_TYPE1'.
wa_fieldcat-coltext = 'CLAIM TYPE1'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 37.
wa_fieldcat-fieldname = 'CLAIM_TYPE2'.
wa_fieldcat-coltext = 'CLAIM TYPE2'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 38.
wa_fieldcat-fieldname = 'ZZTREAT_CD'.
wa_fieldcat-coltext = 'TREATMENT CODE'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 39.
wa_fieldcat-fieldname = 'ZZHTR'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-coltext = 'HTR NO.'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 40.
wa_fieldcat-fieldname = 'ZZDATE_MF'.
wa_fieldcat-coltext = 'DT OF MALFUNC'.
* wa_fieldcat-outputlen = '30'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 41.
wa_fieldcat-fieldname = 'ZZDES_MF'.
wa_fieldcat-coltext = 'DES OF MALFUNC'.
* wa_fieldcat-outputlen = '22'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 42.
wa_fieldcat-fieldname = 'ZZFILL_DT'.
wa_fieldcat-coltext = 'FILING DATE'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 43.
wa_fieldcat-fieldname = 'ZZREMARK'.
wa_fieldcat-coltext = 'WTY REMARKS'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 44.
wa_fieldcat-fieldname = 'ZZSTATUS'.
wa_fieldcat-coltext = 'STATUS'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 45.
wa_fieldcat-fieldname = 'VEN_NAME'.
wa_fieldcat-coltext = 'VEND NAME'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 46.
wa_fieldcat-fieldname = 'ZZVEN_PRICE'.
wa_fieldcat-coltext = 'VEND PRICE'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 47.
wa_fieldcat-fieldname = 'ZZEXPORT'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-coltext = 'DOM/EXP'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 48.
wa_fieldcat-fieldname = 'CURRENCY'.
wa_fieldcat-coltext = 'CURRENCY'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 49.
wa_fieldcat-fieldname = 'ZZPART_SEND'. "
wa_fieldcat-coltext = 'Dt SEND PARTS'.
* wa_fieldcat-outputlen = '40'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 50.
wa_fieldcat-fieldname = 'ZZPART_REC'. "
wa_fieldcat-coltext = 'PART REC DATE'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 51.
wa_fieldcat-fieldname = 'ZZRESUBMIT'.
wa_fieldcat-coltext = 'RESUBMIT'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 52.
wa_fieldcat-fieldname = 'GV_SENDDATE'.
wa_fieldcat-coltext = 'DORP-DOM'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 53.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-fieldname = 'GV_RECDATE'.
wa_fieldcat-coltext = 'DOS-DORP'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 54.
wa_fieldcat-fieldname = 'GV_SRDATE'. "
wa_fieldcat-coltext = 'DOR-DOS'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 55.
wa_fieldcat-fieldname = 'SYMTOM'.
wa_fieldcat-coltext = 'SYMPTOM Code'.
* wa_fieldcat-outputlen = '30'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 56.
wa_fieldcat-fieldname = 'CODE1'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-coltext = 'SYMPTOM CODE'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 57.
wa_fieldcat-fieldname = 'HERST'.
wa_fieldcat-coltext = 'VENDOR CODE'.
* wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 58.
wa_fieldcat-fieldname = 'CODE'. "F4 help F4 help F4 help VERY
IMP
wa_fieldcat-coltext = 'SECTION CODE'.
wa_fieldcat-f4availabl = 'X'.
wa_fieldcat-ref_table = 'QPCD'."ZQM_EMAIL'.
wa_fieldcat-ref_field = 'CODE'."'ZFECOD'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-edit = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 59.
wa_fieldcat-fieldname = 'ZSECTION2'. "F4 help F4 help F4 help
VERY IMP
wa_fieldcat-coltext = 'SECTION2'.
wa_fieldcat-f4availabl = 'X'.
* wa_fieldcat-ref_table = 'QPCD'."ZQM_EMAIL'.
wa_fieldcat-ref_field = 'ZSECTION2'."'ZFECOD'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-edit = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 60.
wa_fieldcat-fieldname = 'ZLOT'. "F4 help F4 help F4 help VERY
IMP
wa_fieldcat-coltext = 'LOT'.
wa_fieldcat-f4availabl = 'X'.
wa_fieldcat-ref_field = 'ZLOT'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-edit = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 61.
wa_fieldcat-fieldname = 'ZRECIEVED'. "F4 help F4 help F4 help
VERY IMP
wa_fieldcat-coltext = 'RECIEVED'.
wa_fieldcat-f4availabl = 'X'.
wa_fieldcat-ref_field = 'ZRECIEVED'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-edit = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 62.
wa_fieldcat-fieldname = 'ZOK_NG'. "F4 help F4 help F4 help VERY
IMP
wa_fieldcat-coltext = 'OK/NG'.
wa_fieldcat-f4availabl = 'X'.
wa_fieldcat-ref_field = 'ZOK_NG'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-edit = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 63.
wa_fieldcat-fieldname = 'ZFAULT'. "F4 help F4 help F4 help VERY
IMP
wa_fieldcat-coltext = 'ZFAULT'.
wa_fieldcat-f4availabl = 'X'.
wa_fieldcat-ref_field = 'ZFAULT'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-edit = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 64.
wa_fieldcat-fieldname = 'ZCAUSE'.
wa_fieldcat-coltext = 'CAUSE'.
wa_fieldcat-edit = 'X'.
* wa_fieldcat-outputlen = '40'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 65.
wa_fieldcat-fieldname = 'ZCAUSE2'.
wa_fieldcat-coltext = 'CAUSE2'.
wa_fieldcat-edit = 'X'.
* wa_fieldcat-outputlen = '40'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 66.
wa_fieldcat-fieldname = 'ZMIS'.
wa_fieldcat-coltext = 'MISCAUSE'.
wa_fieldcat-edit = 'X'.
* wa_fieldcat-outputlen = '40'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 67.
wa_fieldcat-fieldname = 'ZBREAKUP'.
wa_fieldcat-coltext = 'CONS BREKUP'.
wa_fieldcat-edit = 'X'.
* wa_fieldcat-outputlen = '40'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 68.
wa_fieldcat-fieldname = 'ZZVEHICLE'.
wa_fieldcat-coltext = 'VEH FOR QC'.
wa_fieldcat-edit = 'X'.
* wa_fieldcat-outputlen = '18'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 69.
wa_fieldcat-fieldname = 'VEH'.
wa_fieldcat-coltext = 'VEH'.
* wa_fieldcat-outputlen = '10'.
* wa_fieldcat-edit = 'X'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 70.
wa_fieldcat-fieldname = 'ZUPDATE'. "F4 help F4 help F4 help
VERY IMP
wa_fieldcat-coltext = 'FIN UPDATE'.
wa_fieldcat-f4availabl = 'X'.
wa_fieldcat-ref_field = 'ZUPDATE'.
* wa_fieldcat-outputlen = '18'.
wa_fieldcat-edit = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

* wa_fieldcat-col_pos = 71.
* wa_fieldcat-fieldname = 'SYMTEM_TEXT'.
* wa_fieldcat-coltext = 'WTY CLAIM TYPE'.
* wa_fieldcat-outputlen = '15'.
** wa_fieldcat-edit = 'X'.
**WA_FIELDCAT-HOTSPOT = 'X'.
* APPEND wa_fieldcat TO it_fieldcat.
* CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 72.
wa_fieldcat-fieldname = 'SBL'.
wa_fieldcat-coltext = 'OTHER EXP'.
* wa_fieldcat-outputlen = '10'.
* wa_fieldcat-edit = 'X'.
*WA_FIELDCAT-HOTSPOT = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 73.
wa_fieldcat-fieldname = 'EFCD'.
wa_fieldcat-coltext = 'EFCD'.
* wa_fieldcat-outputlen = '10'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 74.
wa_fieldcat-fieldname = 'DIST'.
wa_fieldcat-coltext = 'DIST CODE MONTH'.
* wa_fieldcat-outputlen = '40'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 75.
wa_fieldcat-fieldname = 'GV_MB1'.
wa_fieldcat-coltext = 'YEAR/MONTH'.
* wa_fieldcat-outputlen = '10'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 76.
wa_fieldcat-fieldname = 'TOTAL_K'.
wa_fieldcat-coltext = 'PART AMOUNT'.
* wa_fieldcat-outputlen = '12'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 77.
wa_fieldcat-fieldname = 'NDP_INPUT'.
wa_fieldcat-coltext = 'INPUT PRICE'.
* wa_fieldcat-outputlen = '12'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

l_layout-report = sy-repid.
qm_layout-grid_title = 'WARRANTY CLAIM REPORT'.
qm_layout-zebra = 'X'.
* qm_layout-no_rowmark = 'X'.
qm_layout-cwidth_opt = 'X'.
*QM_LAYOUT-EDIT_MODE = 'X'.
* qm_layout-frontend = 'X'.
* qm_layout-sel_mode = 'B'.
qm_layout-sel_mode = 'A'. "Dinesh Kumar(HMSI)22.11.2013 11:10:30
* qm_layout-box_fname = 'SEL'.
* qm_layout->f4_layouts( ). "Activate F4 Help for Layouts"

* qm_layout-box_fname = 'CHECKBOX'.

PERFORM f003_exclude_tb_functions CHANGING lt_exclude.


CALL METHOD qm_grid->set_table_for_first_display
EXPORTING
* i_buffer_active =
* i_bypassing_buffer =
* i_consistency_check = 'X'
* i_structure_name =
is_variant = l_layout
i_save = 'A'
* i_default = 'X'
is_layout = qm_layout
* is_print =
* it_special_groups =
it_toolbar_excluding = lt_exclude
* it_hyperlink =
* it_alv_graphics =
* it_except_qinfo =
* ir_salv_adapter =
CHANGING
it_outtab = t_final
it_fieldcatalog = it_fieldcat
* it_sort =
* it_filter =
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD qm_grid->set_toolbar_interactive.
* CALL METHOD cl_gui_control=>set_focus
* EXPORTING
* control = qm_grid.
CALL METHOD qm_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.

qm_grid->check_changed_data( ).

CLEAR lt_f4.
lt_f4-fieldname = 'CODE'.
lt_f4-register = 'X'.
APPEND lt_f4.

* Dinesh Kumar(HMSI)16.12.2013 17:02:12


CLEAR lt_f4.
lt_f4-register = 'X'.
lt_f4-fieldname = 'ZFAULT'.
* INSERT TABLE lt_f4.
APPEND lt_f4.

CLEAR lt_f4.
lt_f4-register = 'X'.
lt_f4-fieldname = 'ZLOT'.
* INSERT TABLE lt_f4.
APPEND lt_f4.

CLEAR lt_f4.
lt_f4-register = 'X'.
lt_f4-fieldname = 'ZOK_NG'.
* INSERT TABLE lt_f4.
APPEND lt_f4.
*

CLEAR lt_f4.
lt_f4-register = 'X'.
lt_f4-fieldname = 'ZRECIEVED'.
* INSERT TABLE lt_f4.
APPEND lt_f4.

CLEAR lt_f4.
*
lt_f4-register = 'X'.
lt_f4-fieldname = 'ZSECTION2'.
* INSERT TABLE lt_f4.
APPEND lt_f4.

CLEAR lt_f4.
*
lt_f4-register = 'X'.
lt_f4-fieldname = 'ZUPDATE'.
* INSERT TABLE lt_f4.
APPEND lt_f4.

DATA : lo_handler TYPE REF TO lcl_event_handler.


CREATE OBJECT lo_handler.
" Register F4 for BWTAR
CALL METHOD qm_grid->register_f4_for_fields
EXPORTING
it_f4 = lt_f4[].

" Set Handler


SET HANDLER lo_handler->handle_on_f4 FOR qm_grid.

* DATA go_handler TYPE REF TO lcl_event_receiver.


* CREATE OBJECT go_handler.
* SET HANDLER go_handler->delayed_change_select FOR qm_grid.
* CALL METHOD qm_grid->register_delayed_event
* EXPORTING
* i_event_id = cl_gui_alv_grid=>mc_evt_delayed_change_select.
CALL SCREEN 100."screen call
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT

*----------------------------------------------------------------------*
* MODULE USER_COMMAND_0100 INPUT
MODULE user_command_0100 INPUT.
* break cab01.
CASE sy-ucomm.
WHEN 'BACK' OR 'EXIT' OR 'CANCLE' .
LEAVE TO SCREEN 0.

WHEN 'SAVE'.

qm_grid->check_changed_data( ).

READ TABLE t_final INTO wa_final WITH KEY chk = 'X'.


IF sy-subrc NE 0.
MESSAGE 'Select Atleast One Row' TYPE 'I'. "#EC NOTEXT
EXIT.
ENDIF.

LOOP AT t_final INTO wa_final WHERE chk = 'X'." and creadat = wa_pnwty-
creadat and clmno = wa_pnwty-clmno and zzposnr = wa_pv-posnr. .
wa_zmq-parnr = wa_final-parnr.
wa_zmq-creadat = wa_final-creadat.
wa_zmq-clmno = wa_final-clmno.
wa_zmq-relob_ext = wa_final-relob_ext.
wa_zmq-werks = wa_final-werks.
wa_zmq-name1 = wa_final-name1.
wa_zmq-zzmodel = wa_final-zzmodel.
wa_zmq-zzdesc = wa_final-zzdesc.
wa_zmq-quant = wa_final-quant.
wa_zmq-sernr = wa_final-sernr.
wa_zmq-matnr = wa_final-matnr.
* wa_zmq-stprs = wa_final-stprs.
wa_zmq-datlwb = wa_final-cr_dt. " Creation date of Frame no.
wa_zmq-zsection = wa_final-code.
wa_zmq-zsection2 = wa_final-zsection2.
wa_zmq-zlot = wa_final-zlot.
wa_zmq-zrecieved = wa_final-zrecieved.
wa_zmq-zok_ng = wa_final-zok_ng.
wa_zmq-zfault = wa_final-zfault.
wa_zmq-zcause = wa_final-zcause.
wa_zmq-zcause2 = wa_final-zcause2.
wa_zmq-zmis = wa_final-zmis.
wa_zmq-zbreakup = wa_final-zbreakup.
wa_zmq-zfr1 = wa_final-zfr1.
wa_zmq-zpart2 = wa_final-zpart2.
wa_zmq-zpart3 = wa_final-zpart3.
* wa_zmq-chk = wa_final-chk.
wa_zmq-refno = wa_final-refno.
wa_zmq-reldt = wa_final-refdt.
* wa_zmq-reldt = wa_final-reldt.
wa_zmq-gwldt = wa_final-gwldt.
wa_zmq-per_days = wa_final-gv_per."gv_days. 7 dEC
wa_zmq-ndp = wa_final-ndp.
wa_zmq-plc = wa_final-plc.
wa_zmq-plc_amt = wa_final-plc_amt .
wa_zmq-frt = wa_final-frt.
wa_zmq-lbr = wa_final-lbr.
wa_zmq-lbr_amt = wa_final-lbr_amt.
wa_zmq-total_prts = wa_final-total_prts.
wa_zmq-total_prts_lab = wa_final-total_prts_lab.
wa_zmq-claim_type = wa_final-claim_type.
wa_zmq-claim_type1 = wa_final-claim_type1.
wa_zmq-claim_type2 = wa_final-claim_type2.
wa_zmq-zupdate = wa_final-zupdate.
wa_zmq-zztreat_cd = wa_final-zztreat_cd."""""""""""29.06.2013
wa_zmq-zzhtr = wa_final-zzhtr.
wa_zmq-zzdate_mf = wa_final-zzdate_mf.
wa_zmq-zzdes_mf = wa_final-zzdes_mf.
wa_zmq-zzfill_dt = wa_final-zzfill_dt.
wa_zmq-zzremark = wa_final-zzremark.
wa_zmq-zzstatus = wa_final-zzstatus.
wa_zmq-zzven_name = wa_final-ven_name.
wa_zmq-zzven_price = wa_final-zzven_price.
wa_zmq-zzexport = wa_final-zzexport.
wa_zmq-zzpart_send = wa_final-zzpart_send .
wa_zmq-zzpart_rec = wa_final-zzpart_rec.
wa_zmq-zzresubmit = wa_final-zzresubmit.
wa_zmq-zzsend_days = wa_final-gv_senddate.
wa_zmq-zzrec_days = wa_final-gv_recdate.
wa_zmq-zzsr_days = wa_final-gv_srdate.
wa_zmq-zzsymtom = wa_final-symtom.
wa_zmq-zzcode = wa_final-code1.
wa_zmq-zzven_code = wa_final-herst.
wa_zmq-zzcurrency = wa_final-currency.
wa_zmq-zzmaktx = wa_final-maktx.
wa_zmq-zzposnr = wa_final-item_no.
* wa_zmq-zzsymtom_other = wa_final-symtom_other.
* wa_zmq-zzpart_other = wa_final-part_other.
* wa_zmq-codegruppe = wa_final-codegruppe.
wa_zmq-milage = wa_final-milage.
wa_zmq-mrngu = wa_final-mrngu.
wa_zmq-zzmodel2 = wa_final-zzmodel2.
wa_zmq-zzvehicle = wa_final-zzvehicle.
wa_zmq-zzveh = wa_final-veh.
wa_zmq-total_k = wa_final-total_k.
wa_zmq-ndp_input = wa_final-ndp_input.
wa_zmq-sbl = wa_final-sbl.
wa_zmq-efcd = wa_final-efcd.
wa_zmq-dist = wa_final-dist.
wa_zmq-tdline = wa_final-tdline.
wa_zmq-year_month = wa_final-gv_mb1.
APPEND wa_zmq TO it_zmq.
CLEAR:wa_zmq , wa_final.
ENDLOOP.
MODIFY zmqanalysis FROM TABLE it_zmq.

* *A pop up is called to confirm the saving of changed data

CALL FUNCTION 'POPUP_TO_CONFIRM'


EXPORTING
titlebar = 'SAVING DATA' "#EC NOTEXT
text_question = 'Do You Want to Continue..?' "#EC NOTEXT
icon_button_1 = 'icon_booking_ok'
IMPORTING
answer = gstring
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF ( gstring = '1' ).
MESSAGE 'Data has been successfully saved' TYPE 'S'. "#EC NOTEXT
*Now the changed data is stored in the it_pbo internal table
it_pbo = t_final.
*Subroutine to display the ALV with changed data.
PERFORM redisplay.
ELSE.
*When user clicks NO or Cancel
MESSAGE 'Data not Saved' TYPE 'S'. "#EC NOTEXT
ENDIF.

WHEN 'SELECT'.
* wa_final-chk = 'X'.
PERFORM checkboxx.
WHEN 'DESELECT'.
PERFORM checkboxd.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*

MODULE status_0100 OUTPUT.


SET PF-STATUS 'QM_STATUS'.
* SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_0100 OUTPUT

*&---------------------------------------------------------------------*
*& Form set_drdn_table
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
"set_drdn_table

*&---------------------------------------------------------------------*
*& Form redisplay
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM redisplay .
CALL METHOD qm_grid->set_ready_for_input
EXPORTING
i_ready_for_input = 0.
stable-col = 'X'.
qm_grid->check_changed_data( ).
**REfreshed ALV display with the changed values
*This ALV is non editable and contains new values
CALL METHOD qm_grid->refresh_table_display
EXPORTING
is_stable = stable
EXCEPTIONS
finished = 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. "redisplay
*&---------------------------------------------------------------------*
*& Form CHECKBOXX
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM checkboxx .
* qm_grid->check_changed_data( ).
LOOP AT t_final INTO wa_final.
wa_final-chk = 'X'.
MODIFY t_final FROM wa_final TRANSPORTING chk.
ENDLOOP.
CALL METHOD qm_grid->refresh_table_display
EXCEPTIONS
finished = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
ENDFORM. " CHECKBOXX
*&---------------------------------------------------------------------*
*& Form CHECKBOXD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM checkboxd .
* qm_grid->check_changed_data( ).
LOOP AT t_final INTO wa_final.
wa_final-chk = ' '.
MODIFY t_final FROM wa_final TRANSPORTING chk.
ENDLOOP.
CALL METHOD qm_grid->refresh_table_display
EXCEPTIONS
finished = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
ENDFORM. "CHECKBOXD

*&---------------------------------------------------------------------*
*& Form f003_exclude_tb_functions
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LT_EXCLUDE text
*----------------------------------------------------------------------*
FORM f003_exclude_tb_functions CHANGING p_lt_exclude TYPE ui_functions.
*To exclude tool bar fucctions which are not Required.
DATA ls_exclude TYPE ui_func.
REFRESH p_lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
APPEND ls_exclude TO p_lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
APPEND ls_exclude TO p_lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
APPEND ls_exclude TO p_lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
APPEND ls_exclude TO p_lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.
APPEND ls_exclude TO p_lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
APPEND ls_exclude TO p_lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
APPEND ls_exclude TO p_lt_exclude.

ls_exclude = cl_gui_alv_grid=>mc_fc_select_all.
APPEND ls_exclude TO p_lt_exclude.
ENDFORM. "f003_exclude_tb_functions

*&---------------------------------------------------------------------*
*& Form handle_on_f4
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->E_FIELDNAME text
* -->ES_ROW_NO text
* -->ER_EVENT_DATA text
*----------------------------------------------------------------------*
FORM handle_on_f4
USING e_fieldname TYPE lvc_fname
es_row_no TYPE lvc_s_roid
er_event_data TYPE REF TO cl_alv_event_data.
*
* " Types
*
* " Check which field raise f4 event
*
* break cab01.
* qm_grid->check_changed_data( ).
* qm_grid->get_changed_data( ).

CASE e_fieldname.
* * ***************************
* WHEN 'CODEGRUPPE'.
* " Read current line
* READ TABLE t_final ASSIGNING <l_out>
* INDEX es_row_no-row_id.
* " Load F4 Data
*
* SELECT codegruppe code "katalogart
* FROM qpcd
* INTO TABLE it_grp
* WHERE codegruppe = 'ZSEC-1F' OR codegruppe = 'ZSEC-2F' OR codegruppe =
'ZSEC-3F' ."katalogart = '9'.AND
* " Set return field
* CLEAR ls_map.
* ls_map-fldname = 'F0001'."CODEGRUPPE'."F0001'.
* ls_map-dyfldname = 'CODEGRUPPE'.
* APPEND ls_map TO lt_map.
*
* " Call Search Help Popup Function
*
* CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
* EXPORTING
* retfield = 'CODEGRUPPE'
* value_org = 'S'
* TABLES
* value_tab = it_grp
* dynpfld_mapping = lt_map
* return_tab = lt_return
* EXCEPTIONS
* parameter_error = 1
* no_values_found = 2
* OTHERS = 3.
* " Read selected f4 value
* READ TABLE lt_return INTO ls_return WITH KEY fieldname = 'F0001'.
* IF ls_return IS NOT INITIAL.
* " Update ALV table
* <l_out>-codegruppe = ls_return-fieldval.
* ENDIF.

WHEN 'CODE'.
" Read current line
READ TABLE t_final ASSIGNING <l_out> INDEX es_row_no-row_id.

REFRESH:lt_map, lt_bwtar, lt_return.


" Load F4 Data
SELECT code
FROM qpcd INTO TABLE lt_bwtar
WHERE codegruppe EQ 'ZSEC-1F'." <l_out>-codegruppe." FOR ALL ENTRIES IN
it_grp WHERE codegruppe = it_grp-codegruppe ."#EC CI_GENBUFF.

" Set return field


CLEAR ls_map.
ls_map-fldname = 'F0001'.
ls_map-dyfldname = 'CODE'.
APPEND ls_map TO lt_map.

" Call Search Help Popup Function


CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CODE'
value_org = 'S'
TABLES
value_tab = lt_bwtar
dynpfld_mapping = lt_map
return_tab = lt_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
" Read selected f4 value
READ TABLE lt_return INTO ls_return WITH KEY fieldname = 'F0001'.
IF ls_return IS NOT INITIAL.
" Update ALV table
<l_out>-code = ls_return-fieldval.
ENDIF.
************************************************************* Dinesh
Kumar(HMSI)16.12.2013 16:56:05
WHEN 'ZSECTION2'.
" Read current line
READ TABLE t_final ASSIGNING <l_out>
INDEX es_row_no-row_id.
" Load F4 Data

REFRESH:lt_map, it_f4, lt_return.

wa_f4-zsection2 = 'IN HOUSE'.


APPEND wa_f4 TO it_f4.
wa_f4-zsection2 = 'BOP'.
APPEND wa_f4 TO it_f4.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
retfield = 'ZSECTION2'
value_org = 'S'
TABLES
value_tab = it_f4
dynpfld_mapping = lt_map
return_tab = lt_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
" Read selected f4 value
READ TABLE lt_return INTO ls_return WITH KEY fieldname = 'F0001'.
IF ls_return IS NOT INITIAL.
" Update ALV table
<l_out>-zsection2 = ls_return-fieldval.
ENDIF.

WHEN 'ZRECIEVED'.
" Read current line
READ TABLE t_final ASSIGNING <l_out>
INDEX es_row_no-row_id.
" Load F4 Data

REFRESH:lt_map, it_f5, lt_return.

wa_f5-zrecieved = 'YES'.
APPEND wa_f5 TO it_f5.
wa_f5-zrecieved = 'NO'.
APPEND wa_f5 TO it_f5.
wa_f5-zrecieved = 'NO CHECK'.
APPEND wa_f5 TO it_f5.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
retfield = 'ZRECIEVED'
value_org = 'S'
TABLES
value_tab = it_f5
dynpfld_mapping = lt_map
return_tab = lt_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
" Read selected f4 value
READ TABLE lt_return INTO ls_return WITH KEY fieldname = 'F0001'.
IF ls_return IS NOT INITIAL.
" Update ALV table
<l_out>-zrecieved = ls_return-fieldval.
ENDIF.

WHEN 'ZOK_NG'.
" Read current line
READ TABLE t_final ASSIGNING <l_out>
INDEX es_row_no-row_id.
" Load F4 Data

REFRESH:lt_map, it_f5, lt_return.

wa_f5-zrecieved = 'OK'.
APPEND wa_f5 TO it_f5.
wa_f5-zrecieved = 'NG'.
APPEND wa_f5 TO it_f5.
wa_f5-zrecieved = '---'.
APPEND wa_f5 TO it_f5.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
retfield = 'ZOK_NG'
value_org = 'S'
TABLES
value_tab = it_f5
dynpfld_mapping = lt_map
return_tab = lt_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
" Read selected f4 value
READ TABLE lt_return INTO ls_return WITH KEY fieldname = 'F0001'.
IF ls_return IS NOT INITIAL.
" Update ALV table
<l_out>-zok_ng = ls_return-fieldval.
ENDIF.

WHEN 'ZFAULT'.
" Read current line
READ TABLE t_final ASSIGNING <l_out>
INDEX es_row_no-row_id.
" Load F4 Data

REFRESH:lt_map, it_f7, lt_return.

wa_f7-zfault = 'HMSI'.
APPEND wa_f7 TO it_f7.
wa_f7-zfault = 'VENDOR'.
APPEND wa_f7 TO it_f7.
wa_f7-zfault = 'SERVICE'.
APPEND wa_f7 TO it_f7.
wa_f7-zfault = 'OTHERS'.
APPEND wa_f7 TO it_f7.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
retfield = 'ZFAULT'
value_org = 'S'
TABLES
value_tab = it_f7
dynpfld_mapping = lt_map
return_tab = lt_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
" Read selected f4 value
READ TABLE lt_return INTO ls_return WITH KEY fieldname = 'F0001'.
IF ls_return IS NOT INITIAL.
" Update ALV table
<l_out>-zfault = ls_return-fieldval.
ENDIF.

WHEN 'ZLOT'.
" Read current line
READ TABLE t_final ASSIGNING <l_out>
INDEX es_row_no-row_id.
" Load F4 Data

REFRESH:lt_map, it_f8, lt_return.

wa_f8-zlot = '1'.
APPEND wa_f8 TO it_f8.
wa_f8-zlot = '2'.
APPEND wa_f8 TO it_f8.
wa_f8-zlot = '3'.
APPEND wa_f8 TO it_f8.
wa_f8-zlot = '4'.
APPEND wa_f8 TO it_f8.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
retfield = 'ZLOT'
value_org = 'S'
TABLES
value_tab = it_f8
dynpfld_mapping = lt_map
return_tab = lt_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
" Read selected f4 value
READ TABLE lt_return INTO ls_return WITH KEY fieldname = 'F0001'.
IF ls_return IS NOT INITIAL.
" Update ALV table
<l_out>-zlot = ls_return-fieldval.
ENDIF.
WHEN 'ZUPDATE'.
" Read current line
READ TABLE t_final ASSIGNING <l_out>
INDEX es_row_no-row_id.
" Load F4 Data

REFRESH:lt_map, it_f9, lt_return.

wa_f9-zupdate = 'YES'.
APPEND wa_f9 TO it_f9.
wa_f9-zupdate = 'NO'.
APPEND wa_f9 TO it_f9.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
retfield = 'ZUPDATE'
value_org = 'S'
TABLES
value_tab = it_f9
dynpfld_mapping = lt_map
return_tab = lt_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
" Read selected f4 value
READ TABLE lt_return INTO ls_return WITH KEY fieldname = 'F0001'.
IF ls_return IS NOT INITIAL.
" Update ALV table
<l_out>-zupdate = ls_return-fieldval.
ENDIF.
***********************************************************************************
****************

ENDCASE.
ls_stable = 'XX'. " Set stable refresh for row and column

* qm_grid->check_changed_data( ).
" ALV Refresh
CALL METHOD qm_grid->refresh_table_display
EXPORTING
is_stable = ls_stable
i_soft_refresh = 'X'
EXCEPTIONS
finished = 1
OTHERS = 2.
" Avoid possible standard Search Help
er_event_data->m_event_handled = 'X'.

ENDFORM. "handle_on_f4

Potrebbero piacerti anche