Beruflich Dokumente
Kultur Dokumente
TABLES:vbak,vbap,cdpos,tvko,tvkoV, TVAK,kna1,tvag.
type-pools: slis.
*creating the fieldcatalog
data : it_fcat type slis_t_fieldcat_alv .
*CREATING THE INTERNAL TABLE IT_VBAK
DATA:BEGIN OF IT_VBAK OCCURS 2,
VBELN
VDATU
AEDAT
KUNNR
LIKE
LIKE
LIKE
LIKE
VBAK-VBELN,
VBAK-VDATU,
VBAK-AEDAT,
VBAK-KUNNR,
END OF IT_VBAK.
*CREATING THE INTERNAL TABLE IT_VBAP
DATA:BEGIN OF IT_VBAP OCCURS 3,
vbeln like vbap-vbeln,
POSNR LIKE VBAP-POSNR,
MATNR LIKE VBAP-MATNR,
KDMAT LIKE VBAP-KDMAT,
PRCTR LIKE VBAP-PRCTR,
ABGRU LIKE VBAP-ABGRU,
KWMENG LIKE VBAP-KWMENG,
END OF IT_VBAP.
*creating the WORK AREA g_R_soinfo
data : begin of g_T_soinfo OCCURS 2,
VBELN
VDATU
AEDAT
KUNNR
LIKE
LIKE
LIKE
LIKE
VBAK-VBELN,
VBAK-VDATU,
VBAK-AEDAT,
VBAK-KUNNR,
end of G_T_FINAL.
*select-options
SELECT-OPTIONS
SELECT-OPTIONS
SELECT-OPTIONS
SELECT-OPTIONS
SELECT-OPTIONS
SELECT-OPTIONS
S_VKORG
S_VTWEG
S_AUART
S_AUDAT
S_KUNNR
S_ABGRU
*start-of-selection
start-of-selection.
perform get_vakpa.
FOR
FOR
FOR
FOR
FOR
FOR
TVKO-VKORG.
tvkoV-vtweg.
TVAK-AUART.
VBAK-AUDAT .
KNA1-KUNNR .
TVAG-ABGRU .
perform
perform
perform
perform
perform
perform
get_vbak.
get_vbap.
g_t_soinfo.
g_t_vbkd.
get_chage_dates.
final_table.
*&---------------------------------------------------------------------*
*&
Form get_vakpa
*&---------------------------------------------------------------------*
FORM get_vakpa .
select vbeln from vakpa into table g_t_vakpa where kunde in s_kunnr and
vkorg in s_vkorg and
vtweg in s_vtweg and
audat in s_audat and
kunnr in s_kunnr.
ENDFORM.
" get_vakpa
*&---------------------------------------------------------------------*
*&
Form get_vbak
*&---------------------------------------------------------------------*
FORM get_vbak.
select VBELN
VDATU
AEDAT
KUNNR from vbak into corresponding fields of table it_vbak for
all
entries in g_t_vakpa where vbeln = g_t_vakpa-vbeln and
audat in s_audat and vkorg in s_vkorg and vtweg in s_vtweg
and auart in s_auart and kunnr in s_kunnr ." and abgru in s_abgru.
ENDFORM.
" get_vbak
*&---------------------------------------------------------------------*
*&
Form get_vbap
*&---------------------------------------------------------------------*
FORM get_vbap .
select vbeln
POSNR
MATNR
KDMAT
PRCTR
ABGRU
KWMENG from vbap into corresponding fields of table it_vbap for
all
entries in it_vbak where vbeln = it_vbak-vbeln .
ENDFORM.
" get_vbap
*&---------------------------------------------------------------------*
*&
Form g_t_soinfo
*&---------------------------------------------------------------------*
FORM g_t_soinfo .
loop at it_vbap.
read table it_vbak with key vbeln = it_vbap-vbeln .
if sy-subrc = 0.
g_t_soinfo-VBELN
g_t_soinfo-VDATU
g_t_soinfo-AEDAT
g_t_soinfo-KUNNR
=
=
=
=
it_vbak-vbeln.
it_vbak-vdatu.
it_vbak-aedat.
it_vbak-kunnr.
endif.
g_t_soinfo-MATNR = it_vbap-MATNR.
G_T_SOINFO-POSNR = IT_VBAP-POSNR.
g_t_soinfo-KDMAT = it_vbap-kDMAT.
g_t_soinfo-PRCTR = it_vbap-PRCTR.
g_t_soinfo-ABGRU = it_vbap-ABGRU.
g_t_soinfo-KWMENG = IT_VBAP-KWMENG.
append g_t_soinfo.
clear g_t_soinfo.
endloop.
eNDFORM.
" g_t_soinfo
*&---------------------------------------------------------------------*
*&
Form g_t_vbkd
*&---------------------------------------------------------------------*
FORM g_t_vbkd .
IF G_T_SOINFO[] IS NOT INITIAL.
select VBELN
POSNR
BSTKD FROM VBKD INTO CORRESPONDING FIELDS OF TABLE G_T_VBKD
FOR ALL ENTRIES IN g_t_soinfo
WHERE VBELN = G_T_SOINFO-VBELN.
ENDIF.
ENDFORM.
" g_t_vbkd
*&---------------------------------------------------------------------*
*&
Form get_chage_docs
*&---------------------------------------------------------------------*
FORM get_chage_dates .
SELECT OBJECTID
VALUE_NEW
VALUE_OLD
FROM CDPOS
INTO TABLE g_t_cdpos
WHERE OBJECTCLAS = 'VERKBELEG'
AND TABNAME = 'VBAK'
AND FNAME = 'VDATU'.
LOOP AT g_t_soinfo.
IF g_t_soinfo-aedat <> '00000000'.
READ TABLE g_t_cdpos WITH KEY OBJECTID = g_t_soinfo-vbeln.
g_r_cdpos-objectid = g_t_cdpos-objectid.
g_r_cdpos-value_new = g_t_cdpos-value_new.
g_r_cdpos-value_old = g_t_cdpos-value_old.
APPEND g_r_cdpos.
CLEAR g_r_cdpos.
endif.
ENDLOOP.
ENDFORM.
" get_chage_dates
*&---------------------------------------------------------------------*
*&
Form final_table
*&---------------------------------------------------------------------*
FORM final_table .
g_t_final-posnr = g_t_soinfo-posnr.
g_t_final-kunnr = g_t_soinfo-kunnr.
" final_table
*&---------------------------------------------------------------------*
*&
Form display_final
*&---------------------------------------------------------------------*
FORM display_final .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME
= SY-REPID
I_INTERNAL_TABNAME
= 'G_T_FINAL'
I_INCLNAME
= SY-REPID
CHANGING
CT_FIELDCAT
= IT_FCAT
EXCEPTIONS
INCONSISTENT_INTERFACE
= 1
PROGRAM_ERROR
= 2
OTHERS
= 3
.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM
= sy-repid
IT_FIELDCAT
= IT_FCAT
TABLES
T_OUTTAB
= g_t_final
EXCEPTIONS
PROGRAM_ERROR
= 1
OTHERS
= 2
.
ENDFORM.
" display_final