Professional Documents
Culture Documents
Page…subform.
REPORT zmm_goods_rece.
TABLES:nast.
TYPES:BEGIN OF ty_mseg,
mblnr TYPE mblnr,
bwart TYPE bwart,
matnr TYPE matnr,
maktx TYPE maktx,
lifnr TYPE lifnr,
budat_mkpf TYPE budat,
ebeln TYPE bstnr,
meins TYPE meins,
werks TYPE werks_d,
lgort TYPE lgort_d,
charg TYPE charg_d,
menge TYPE menge_d,
bukrs TYPE bukrs,
xblnr TYPE xblnr1,
END OF ty_mseg,
BEGIN OF ty_ekko,
ebeln TYPE bstnr,
aedat TYPE aedat,
zterm TYPE dzterm,
menge TYPE menge_d,
END OF ty_ekko,
BEGIN OF ty_lfa1,
lifnr TYPE lifnr,
name1 TYPE name1_gp,
stras TYPE stras_gp,
telf1 TYPE telf1,
END OF ty_lfa1,
BEGIN OF ty_t001,
bukrs TYPE bukrs,
adrnr TYPE adrnr,
END OF ty_t001,
BEGIN OF ty_adrc,
addrnumber TYPE adrc-addrnumber,
city1 TYPE ad_city1,
tel_number TYPE ad_tlnmbr1,
END OF ty_adrc.
DATA: gt_final TYPE TABLE OF zmm_gr_strc,
gs_final TYPE zmm_gr_strc,
gt_mseg TYPE TABLE OF ty_mseg,
gs_mseg TYPE ty_mseg,
gt_ekko TYPE TABLE OF ty_ekko,
gs_ekko TYPE ty_ekko,
gt_lfa1 TYPE TABLE OF ty_lfa1,
gs_lfa1 TYPE ty_lfa1,
gt_adrc TYPE TABLE OF ty_adrc,
gs_adrc TYPE ty_adrc,
gt_t001 TYPE TABLE OF ty_t001,
gs_t001 TYPE ty_t001.
DATA:lv_bukrs TYPE bukrs,
lv_city TYPE ad_city1,
lv_telno TYPE ad_tlnmbr1,
lv_lname TYPE name1_gp,
lv_stras TYPE stras_gp,
lv_ctel TYPE telf1,
lv_adate TYPE lfdat,
lv_pono TYPE bstnr,
lv_pdate TYPE aedat,
lv_zterm TYPE dzterm,
lv_sno TYPE i,
lv_oqty TYPE menge_d,
lv_rqty TYPE menge_d,
lv_openq TYPE menge_d,
lv_mblnr TYPE mblnr,
lv_lifnr TYPE lifnr,
lv_dnote TYPE xblnr1,
Shar_addr TYPE STRING,
S_BOX TYPE STRING,
S_BOX_ABB TYPE STRING,
S_BOX_TEL TYPE STRING,
S_BOX_final TYPE STRING,
S_ADD TYPE STRING,
S_ADD_ABB TYPE STRING,
S_ADD_TEL TYPE STRING,
S_ADD_final TYPE STRING,
TEL1 TYPE STRING,
TEL2 TYPE STRING.
DATA : l_date TYPE sy-datum,
l_time TYPE sy-uzeit.
DATA : lt_date(10),
lt_time(8),
l_dt_time(20) TYPE c.
DATA:wa_outputparams TYPE sfpoutputparams,
wa_docparams TYPE sfpdocparams,
i_fmname TYPE funcname,
i_params TYPE sfpoutputparams,
i_docparams TYPE sfpdocparams,
fs_per_info TYPE pa0001-pernr,
l_fm_name TYPE rs38l_fnam,
l_formname TYPE fpname VALUE 'ZMM_GR_FORM',
fp_docparams TYPE sfpdocparams,
fp_formoutput TYPE fpformoutput,
fp_outputparams TYPE sfpoutputparams.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS:p_mblnr TYPE mseg-mblnr.
SELECTION-SCREEN END OF BLOCK b1.
CLASS lcl_gr DEFINITION DEFERRED.
DATA lc_obj TYPE REF TO lcl_gr.
CLASS lcl_gr DEFINITION.
PUBLIC SECTION.
METHODS:get_data,get_disp.
ENDCLASS.
CLASS lcl_gr IMPLEMENTATION.
METHOD get_data .
SELECT
a~mblnr
a~bwart
a~matnr
b~maktx
a~lifnr
a~budat_mkpf
a~ebeln
a~meins
a~werks
a~lgort
a~charg
a~menge
a~bukrs
c~xblnr
FROM mseg AS a INNER JOIN makt AS b
ON ( a~matnr EQ b~matnr )
INNER JOIN mkpf as c on ( a~mblnr eq c~mblnr )
INTO TABLE gt_mseg
WHERE a~mblnr EQ nast-objky
AND bwart eq '101'.
IF gt_mseg IS NOT INITIAL.
SELECT
a~ebeln
a~aedat
a~zterm
b~menge
FROM ekko as a INNER JOIN ekpo as b
on ( a~ebeln eq b~ebeln )
INTO TABLE gt_ekko
FOR ALL ENTRIES IN gt_mseg
WHERE a~ebeln eq gt_mseg-ebeln.
SELECT
lifnr
name1
stras
telf1
FROM lfa1
INTO TABLE gt_lfa1
FOR ALL ENTRIES IN gt_mseg
WHERE lifnr eq gt_mseg-lifnr.
SELECT
bukrs
adrnr
FROM t001
INTO TABLE gt_t001
FOR ALL ENTRIES IN gt_mseg
WHERE bukrs EQ gt_mseg-bukrs.
IF gt_t001 IS NOT INITIAL.
SELECT
addrnumber
city1
tel_number
FROM adrc
INTO TABLE gt_adrc
FOR ALL ENTRIES IN gt_t001
WHERE addrnumber eq gt_t001-adrnr.
ENDIF.
else.
MESSAGE 'No Data Found' TYPE 'E'.
ENDIF.
LOOP AT gt_mseg INTO gs_mseg.
lv_sno = lv_sno + 1.
lv_bukrs = gs_mseg-bukrs.
lv_adate = gs_mseg-budat_mkpf.
lv_pono = gs_mseg-ebeln.
lv_lifnr = gs_mseg-lifnr.
lv_mblnr = gs_mseg-mblnr.
LV_DNOTE = gs_mseg-XBLNR.
READ TABLE gt_t001 INTO gs_t001 with key bukrs = gs_mseg-bukrs.
IF sy-subrc eq 0.
READ TABLE gt_adrc INTO gs_adrc with key addrnumber = gs_t001-adrnr.
IF sy-subrc eq 0.
lv_city = gs_adrc-city1.
lv_telno = gs_adrc-tel_number.
ENDIF.
ENDIF.
READ TABLE gt_lfa1 INTO gs_lfa1 with key lifnr = gs_mseg-lifnr.
IF sy-subrc eq 0.
lv_lname = gs_lfa1-lifnr.
lv_stras = gs_lfa1-stras.
lv_ctel = gs_lfa1-telf1.
ENDIF.
READ TABLE gt_ekko INTO gs_ekko with key ebeln = gs_mseg-ebeln.
IF sy-subrc eq 0.
lv_pdate = gs_ekko-aedat.
lv_zterm = gs_ekko-zterm.
gs_final-pqty = gs_ekko-menge.
ENDIF.
gs_final-sno = lv_sno.
gs_final-item_code = gs_mseg-matnr.
gs_final-desc = gs_mseg-maktx.
gs_final-plant = gs_mseg-werks.
gs_final-sloc = gs_mseg-lgort.
gs_final-batch = gs_mseg-charg.
gs_final-rqty = gs_mseg-menge.
gs_final-uom = gs_mseg-meins.
gs_final-oqty = gs_final-pqty - gs_final-rqty.
lv_oqty = lv_oqty + gs_final-pqty.
lv_rqty = lv_rqty + gs_final-rqty.
APPEND gs_final to gt_final.
CLEAR:gs_final,gs_mseg,gs_ekko,gs_lfa1,
gs_t001,gs_adrc.
ENDLOOP.
lv_openq = lv_oqty - lv_rqty.
l_date = sy-datum.
l_time = sy-uzeit.
*READ TABLE gt_item INTO GS_item INDEX 1 .
*SELECT SINGLE VKORG FROM MVKE INTO VKORG WHERE MATNR = GS_ITAB-MATNR .
IF LV_BUKRS = 2100 .
SHAR_ADDR = 'SHAR-Jeddah Cold Store'.
S_BOX = 'P.O BOX 34314'.
S_BOX_ABB = 'CR'.
S_BOX_TEL = '4030168934'.
S_ADD = 'Jeddah 21468'.
S_ADD_ABB = 'CCM'.
S_ADD_TEL = '119931'.
TEL1 = '+966 12 2680000'.
TEL2 = '+966 12 2686666'.
ELSEIF LV_BUKRS = 2200 .
SHAR_ADDR = 'SHAR- Riyadh Cold Store'.
S_BOX = 'P.O BOX 25507'.
S_BOX_ABB = 'CR'.
S_BOX_TEL = '1010230789'.
S_ADD = 'Riyadh 21468'.
S_ADD_ABB = 'CCM'.
S_ADD_TEL = '5005'.
TEL1 = '+966 11 2655222'.
TEL2 = '+966 12 2656222'.
ELSEIF lv_bukrs = 1100 .
shar_addr = 'SHAR-Construction'.
s_box = 'P.O BOX 25507'.
s_box_abb = 'CR'.
s_box_tel = '1010230789'.
s_add = 'Riyadh 11476'.
s_add_abb = 'CCM'.
s_add_tel = '5005'.
tel1 = '+966 11 2655222'.
tel2 = '+966 12 2656222'.
ENDIF.
CONCATENATE S_BOX S_BOX_ABB S_BOX_TEL INTO s_box_final SEPARATED by space.
CONCATENATE S_add S_add_ABB S_add_TEL INTO s_add_final SEPARATED by space.
CONCATENATE l_date+6(2)
l_date+4(2)
l_date+0(4)
INTO lt_date
SEPARATED BY '.'.
CONCATENATE l_time+0(2)
l_time+2(2)
INTO lt_time
SEPARATED BY ':'.
CONCATENATE lt_date
lt_time
INTO l_dt_time
SEPARATED BY SPACE.
ENDMETHOD.
METHOD get_disp.
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
ie_outputparams = wa_outputparams
EXCEPTIONS
cancel = 1
usage_error = 2
system_error = 3
internal_error = 4
OTHERS = 5
.
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
EXPORTING
i_name = 'ZMM_GR_FORM'
IMPORTING
e_funcname = i_fmname
.
wa_docparams-langu = 'E'.
CALL FUNCTION i_fmname
EXPORTING
/1BCDWB/DOCPARAMS = fp_docparams
GT_FINAL = gt_final
LV_BUKRS = lv_bukrs
LV_CITY = lv_city
LV_TELNO = lv_telno
LV_CTEL = lv_ctel
LV_ADATE = lv_adate
LV_PONO = lv_pono
LV_PDATE = lv_pdate
LV_ZTERM = lv_zterm
LV_OQTY = lv_oqty
LV_RQTY = lv_rqty
LV_OPENQ = lv_openq
LV_LIFNR = lv_lifnr
LV_LNAME = lv_lname
LV_MBLNR = lv_mblnr
LV_STRAS = lv_stras
LV_dnote = lv_dnote
S_BOX_final = S_BOX_final
S_ADD_final = S_ADD_final
TEL1 = TEL1
TEL2 = TEL2
s_datetime = l_dt_time
IMPORTING
/1BCDWB/FORMOUTPUT = fp_formoutput
EXCEPTIONS
USAGE_ERROR = 1
SYSTEM_ERROR = 2
INTERNAL_ERROR = 3
OTHERS = 4
.
CALL FUNCTION 'FP_JOB_CLOSE'
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4
.
ENDMETHOD.
ENDCLASS.
FORM ENTRY_GR USING RETURN_CODE US_SCREEN.
CREATE OBJECT lc_obj.
lc_obj->get_data( ).
lc_obj->get_disp( ).
ENDFORM.