Professional Documents
Culture Documents
Programs
Programs
tables :but000,dfkkko,fkkvkp.
*&----------------------------------------------------------------------
* Ecran de sélection
*&----------------------------------------------------------------------
selection-screen begin of block b1 with frame title text-001.
parameters pgsber like fkkvkp-gsber MATCHCODE object zsh_tgsb
OBLIGATORY.
SELECT-OPTIONS s_period for sy-datum no-EXTENSION.
selection-screen end of block b1.
*&----------------------------------------------------------------------
* Variables, structures et tables internes
*&----------------------------------------------------------------------
data JNAME LIKE TBTCO-JOBNAME.
data JNUMB LIKE RSJOBINFO-JOBNUMB.
data gv_like(10).
*&----------------------------------------------------------------------
INITIALIZATION.
*&----------------------------------------------------------------------
*&----------------------------------------------------------------------
START-OF-SELECTION.
*&----------------------------------------------------------------------
case pgsber.
WHEN 'DR01'. gv_like = 'D%'.
WHEN 'DR02'. gv_like = 'R%'.
WHEN 'DR03'. gv_like = 'M%'.
WHEN 'DR04'. gv_like = 'F%'.
WHEN 'DR05'. gv_like = 'J%'.
WHEN 'DR06'. gv_like = 'H%'.
WHEN 'DR07'. gv_like = 'A%'.
WHEN 'DR08'. gv_like = 'L%'.
WHEN 'DR09'. gv_like = 'B%'.
WHEN 'DR10'. gv_like = 'N%'.
ENDCASE.
***
free r_gsber.
r_gsber-low = pgsber.
r_gsber-option = 'EQ'.
r_gsber-sign = 'I'.
append r_gsber.
CLEAR JNAME.
if pbt eq 'X'.
CONCATENATE 'SRM_RELEVE_BT_' pgsber '_' gs_gsr-regiogroup
INTO JNAME.
endif.
if pmt eq 'X'.
CONCATENATE 'SRM_RELEVE_MT_' pgsber '_' gs_gsr-regiogroup
INTO JNAME.
endif.
IF SY-SUBRC <> 0.
WRITE :/ 'Erreur création job : ' , jname.
exit.
ENDIF.
IF SY-SUBRC <> 0.
WRITE :/ 'Erreur lancement job : ' , jname.
else.
WRITE :/ 'Job ', jname, ' lancé'.
ENDIF.
ENDLOOP.
*&----------------------------------------------------------------------
*& Auteur : Hassan ABOUBAKR
*& Date :
*&----------------------------------------------------------------------
*& Description : Projet SRM : Extraction résultats de relevé
*&
*&----------------------------------------------------------------------
*& Historique des modifications
*&----------------------------------------------------------------------
*& Date ! Auteur ! Description
*& ! !
*$ ! !
*&----------------------------------------------------------------------
report ZSRM_EXTRACT_RESULT_RELEVE NO STANDARD PAGE HEADING line-size 200.
TYPE-POOLS: slis,truxs,sccr.
tables : fkkvkp,eanlh,ever,equi,iflo,evbs,eanl,eabl,etdz,erdk.
*&----------------------------------------------------------------------
* Ecran de sélection
*&----------------------------------------------------------------------
selection-screen begin of block b1 with frame title text-001.
SELECT-options s_gsber FOR fkkvkp-gsber MATCHCODE object zsh_tgsb
OBLIGATORY.
select-options s_gsr for fkkvkp-regiogr_ca_t OBLIGATORY.
*SELECT-OPTIONS s_ur for eanlh-ableinh.
SELECT-OPTIONS s_gpart for fkkvkp-gpart.
SELECT-OPTIONS s_vkont for fkkvkp-vkont.
SELECT-OPTIONS s_vtg for ever-vertrag.
SELECT-OPTIONS s_period for sy-datum no-EXTENSION OBLIGATORY.
selection-screen end of block b1.
*&----------------------------------------------------------------------
* Variables, structures et tables internes
*&----------------------------------------------------------------------
data gv_lines type i.
data gv_bh.
*&----------------------------------------------------------------------
START-OF-SELECTION.
*&----------------------------------------------------------------------
clear : gv_bt,gv_mt.
if pmt eq 'X'.
* gv_vktyp = 'MT'.
gv_aklasse = 'ERMT'.
endif.
*&----------------------------------------------------------------------
* Contrôle autorisation GSR
*&----------------------------------------------------------------------
select REGIOGROUP into TABLE @data(gt_gsr)
from ADRREGGRP where regiogroup in @s_gsr.
if gt_gsr[] is INITIAL.
message s398(00) with 'GSR(s) inexistant(s)' DISPLAY LIKE 'E'.
exit.
endif.
if sy-subrc = 1.
delete gt_gsr.
endif.
endloop.
if gt_gsr[] is INITIAL.
message s398(00) with 'Prob autorisation GSR' DISPLAY LIKE 'E'.
exit.
endif.
free r_gsr.
CLEAR r_gsr.
r_gsr-sign = 'I'.
r_gsr-option = 'EQ'.
*&----------------------------------------------------------------------
* Sélection données
*&----------------------------------------------------------------------
select ever~vertrag, ever~einzdat, ever~auszdat
INTO table @data(gt_ever)
from FKKVKP as fkkvkp
inner join EVER as ever
on EVER~VKONTO = FKKVKP~VKONT
* inner join fkkvk as fkkvk
* on fkkvk~VKONT = FKKVKP~VKONT
where "fkkvk~vktyp eq @gv_vktyp
* and
FKKVKP~vkont in @s_vkont
and FKKVKP~gpart in @s_gpart
and FKKVKP~GSBER in @s_gsber
and FKKVKP~REGIOGR_CA_T in @r_GSR
and ever~vertrag in @s_vtg.
free r_ever.
CLEAR r_ever.
r_ever-sign = 'I'.
r_ever-option = 'EQ'.
CLEAR gv_cpt.
if sy-subrc ne 0.
delete gt_ever.
continue.
endif.
r_ever-low = gs_ever-vertrag.
APPEND r_ever.
add 1 to gv_cpt.
if gv_cpt eq 1000.
PERFORM write_data.
free r_ever.
CLEAR r_ever.
r_ever-sign = 'I'.
r_ever-option = 'EQ'.
CLEAR gv_cpt.
ENDIF.
ENDLOOP.
if pbt eq 'X'.
write :/5 gv_bt, 'Ligne(s) relevé BT insérée(s) / modifiée(s)'.
else.
write :/5 gv_mt, 'Ligne(s) relevé MT insérée(s) / modifiée(s)'.
endif.
*&---------------------------------------------------------------------*
*& Form WRITE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM WRITE_DATA .
select
FKKVKP~GSBER, FKKVKP~regiogr_ca_t, FKKVKP~gpart, FKKVKP~VKONT,
EANLH~ANLAGE,EVER~VERTRAG,EABLG~ADATSOLL,EABLG~ABLESGR,EABL~ZWNUMME
R,
EABLG~ABLBELNR, EABLG~ABLEINH,eastl~kondigr,
EABL~EQUNR,EABL~ADAT, EABL~AEDAT, EABL~V_ZWSTAND, EABL~ABLSTAT,
EABL~ABLHINW, EABL~STABLHW, EABL~ABLESART, EABL~ISTABLART,
EQUI~MATNR, EQUI~SERNR,
etdz~kennziff,EVER~AUSZDAT,
etrg~trigstat,
erch~belnr, erch~billing_period,
erchc~opbel
from FKKVKP as fkkvkp
inner join EVER as ever
on EVER~VKONTO = FKKVKP~VKONT
inner join EANLH as eanlh
on EANLH~ANLAGE = EVER~ANLAGE
inner join EABLG as eablg
on EABLG~ANLAGE = EANLH~ANLAGE
INNER JOIN eastl as eastl
on eastl~anlage = eablg~anlage
and Eastl~AB <= eablg~ADATSOLL
and Eastl~BIS >= eablg~ADATSOLL
inner join EABL as eabl
on EABL~ABLBELNR = EABLG~ABLBELNR
inner join EQUI as equi
on EQUI~EQUNR = EABL~EQUNR
left OUTER JOIN etdz as etdz
on ETDZ~EQUNR = EABL~EQUNR
and ETDZ~ZWNUMMER = eabl~ZWNUMMER
and ETDZ~AB <= eabl~ADAT
and ETDZ~BIS >= eabl~ADAT
LEFT OUTER JOIN etrg as etrg
on etrg~anlage = eablg~anlage
and etrg~adatsoll = eablg~adatsoll
LEFT OUTER JOIN erch as erch
on erch~vertrag = ever~vertrag
and ERCH~adatsoll = eablg~ADATSOLL
and ERCH~STORNODAT eq '00000000'
and ERCH~SIMULATION eq ' '
and ERCH~SC_BELNR_H eq ' '
LEFT OUTER JOIN erchc as erchc
on erch~belnr = erchc~belnr
and ERCHC~INTCPUDT eq '00000000'
and ERCHC~SIMULATED eq ' '
where
ever~vertrag in @r_ever
and ever~einzdat <= eabl~ADAT
and ever~auszdat >= eabl~ADAT
and eanlh~aklasse eq @gv_aklasse
and eanlh~ab <= eabl~ADAT
and eanlh~bis >= eabl~ADAT
and eabl~adat in @s_period
INTO table @data(gt_data).
if pbt eq 'X'.
* delete gt_data where ( matnr eq '1STA2F5-
30A230V_D' or matnr eq '1STA4F10-60A400V_D' ) and
* ( zwnummer eq 1 or zwnummer eq 2 ).
delete gt_data where ( matnr ne '1STA2F5-
30A230V_D' and matnr ne '1STA4F10-60A400V_D' ) and
( zwnummer ne 1 ).
else.
* loop at gt_data into data(gs_data).
* if 'EAITT/ERIHL/ERIHP/ERIHC/EAEHL/EAEHP/EAEHC/EAETT/EAIPH1/EAIPH2/EA
IPH3/EAEPH1/EAEPH2/EAEPH3'
* cs gs_data-kennziff.
* delete gt_data.
* endif.
* endloop.
endif.
free gt_rel.
if pbt eq 'X'.
free : gt_rel_bt.
LOOP AT gt_rel.
clear gt_rel_bt.
LOOP AT gt_data into gs_data where anlage eq gt_rel-anlage
and adatsoll eq gt_rel-adatsoll
and ablesgr eq gt_rel-ablesgr.
if gs_data-zwnummer eq 1.
move gs_data-ablbelnr to gt_rel_bt-ablbelnr.
ENDIF.
* CASE gs_data-zwnummer.
* WHEN 1 or 4. gt_rel_bt-Index_eai_eaihp = gs_data-V_ZWSTAND.
* WHEN 3. gt_rel_bt-Index_eaihl = gs_data-V_ZWSTAND.
* WHEN 5. gt_rel_bt-Index_eaihc = gs_data-V_ZWSTAND.
* WHEN 2. gt_rel_bt-Index_eaitt = gs_data-V_ZWSTAND.
* ENDCASE.
clear gv_bh.
if gs_data-matnr eq '1STA2F5-30A230V_D' or
gs_data-matnr eq '1STA4F10-60A400V_D'.
gv_bh = 'X'.
* clear : gt_rel_bt-istablart,gt_rel_bt-ablstat,gt_rel_bt-ablhinw.
endif.
CASE gs_data-kennziff.
WHEN 'EAIHP'.
gt_rel_bt-Index_eai_eaihp = gs_data-V_ZWSTAND.
gt_rel_bt-istablart_eai_eaihp = gs_data-istablart.
gt_rel_bt-statut_eai_eaihp = gs_data-ablstat.
gt_rel_bt-notice_eai_eaihp = gs_data-ablhinw.
WHEN 'EAIHL'.
gt_rel_bt-Index_eaihl = gs_data-V_ZWSTAND.
gt_rel_bt-istablart_eaihl = gs_data-istablart.
gt_rel_bt-statut_eaihl = gs_data-ablstat.
gt_rel_bt-notice_eaihl = gs_data-ablhinw.
WHEN 'EAIHC'.
gt_rel_bt-Index_eaihc = gs_data-V_ZWSTAND.
gt_rel_bt-istablart_eaihc = gs_data-istablart.
gt_rel_bt-statut_eaihc = gs_data-ablstat.
gt_rel_bt-notice_eaihc = gs_data-ablhinw.
WHEN 'EAITT'.
if gv_bh eq 'X'.
gt_rel_bt-Index_eaitt = gs_data-V_ZWSTAND.
gt_rel_bt-istablart_eaitt = gs_data-istablart.
gt_rel_bt-statut_eaitt = gs_data-ablstat.
gt_rel_bt-notice_eaitt = gs_data-ablhinw.
else.
gt_rel_bt-Index_eai_eaihp = gs_data-V_ZWSTAND.
gt_rel_bt-istablart_eai_eaihp = gs_data-istablart.
gt_rel_bt-statut_eai_eaihp = gs_data-ablstat.
gt_rel_bt-notice_eai_eaihp = gs_data-ablhinw.
endif.
when 'EAI'.
gt_rel_bt-Index_eai_eaihp = gs_data-V_ZWSTAND.
gt_rel_bt-istablart_eai_eaihp = gs_data-istablart.
gt_rel_bt-statut_eai_eaihp = gs_data-ablstat.
gt_rel_bt-notice_eai_eaihp = gs_data-ablhinw.
WHEN 'PA1'.
gt_rel_bt-Index_pai = gs_data-V_ZWSTAND.
gt_rel_bt-CONS_PAI = gt_rel_bt-Index_pai.
gt_rel_bt-istablart_pai = gs_data-istablart.
gt_rel_bt-statut_pai = gs_data-ablstat.
gt_rel_bt-notice_pai = gs_data-ablhinw.
ENDCASE.
LOOP AT gt_erdz.
CASE gt_erdz-belzart.
WHEN 'XEAT' or 'XEAHP'.
if gt_erdz-i_abrmenge ge 0.
add gt_erdz-i_abrmenge to gt_rel_bt-CONS_EAI_EAIHP_FACT.
add gt_erdz-I_ZWSTDIFF to gt_rel_bt-CONS_EAI_EAIHP.
endif.
WHEN 'XEAHL'.
if gt_erdz-i_abrmenge ge 0.
add gt_erdz-i_abrmenge to gt_rel_bt-CONS_EAIHL_FACT.
add gt_erdz-I_ZWSTDIFF to gt_rel_bt-CONS_EAIHL.
endif.
WHEN 'XEAHC'.
if gt_erdz-i_abrmenge ge 0.
add gt_erdz-i_abrmenge to gt_rel_bt-CONS_EAIHC_FACT.
add gt_erdz-I_ZWSTDIFF to gt_rel_bt-CONS_EAIHC.
endif.
WHEN 'XEATT'.
if gt_erdz-i_abrmenge ge 0.
* add gt_erdz-i_abrmenge to gt_rel_bt-CONS_EAITT_FACT.
add gt_erdz-I_ZWSTDIFF to gt_rel_bt-CONS_EAITT.
endif.
* WHEN 'XPS'.
* if gv_bh eq 'X'.
* if gt_erdz-i_abrmenge ge 0.
* add gt_erdz-i_abrmenge to gt_rel_bt-CONS_PAI_FACT.
* add gt_erdz-I_ZWSTDIFF to gt_rel_bt-CONS_PAI.
* endif.
* endif.
ENDCASE.
ENDLOOP.
endif.
ENDLOOP.
append gt_rel_bt.
ENDLOOP.
else.
free : gt_rel_mt.
LOOP AT gt_rel.
clear gt_rel_mt.
LOOP AT gt_data into gs_data where anlage eq gt_rel-anlage
and adatsoll eq gt_rel-adatsoll
and ablesgr eq gt_rel-ablesgr.
if gs_data-zwnummer eq 1.
move gs_data-ablbelnr to gt_rel_mt-ablbelnr.
ENDIF.
CASE gs_data-kondigr.
WHEN 'ERMTCPTB10'. gt_rel_mt-type_comptage = 'B10'.
WHEN 'ERMTCPT10'. gt_rel_mt-type_comptage = '10'.
WHEN 'ERMTCPT11'. gt_rel_mt-type_comptage = '11'.
ENDCASE.
CASE gs_data-kennziff.
WHEN 'EAIHP'.
gt_rel_mt-Index_eaihp = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaihp = gs_data-ablhinw.
gt_rel_mt-statut_eaihp = gs_data-ablstat.
WHEN 'EAIHL'.
gt_rel_mt-Index_eaihl = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaihl = gs_data-ablhinw.
gt_rel_mt-statut_eaihl = gs_data-ablstat.
WHEN 'EAIHC'.
gt_rel_mt-Index_eaihc = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaihc = gs_data-ablhinw.
gt_rel_mt-statut_eaihc = gs_data-ablstat.
WHEN 'ERITT'.
gt_rel_mt-Index_eritt = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eritt = gs_data-ablhinw.
gt_rel_mt-statut_eritt = gs_data-ablstat.
WHEN 'PAIHP'.
gt_rel_mt-Index_paihp = gs_data-V_ZWSTAND.
gt_rel_mt-notice_paihp = gs_data-ablhinw.
gt_rel_mt-statut_paihp = gs_data-ablstat.
WHEN 'PAIHL'.
gt_rel_mt-Index_paihl = gs_data-V_ZWSTAND.
gt_rel_mt-notice_paihl = gs_data-ablhinw.
gt_rel_mt-statut_paihl = gs_data-ablstat.
WHEN 'PAIHC'.
gt_rel_mt-Index_paihc = gs_data-V_ZWSTAND.
gt_rel_mt-notice_paihc = gs_data-ablhinw.
gt_rel_mt-statut_paihc = gs_data-ablstat.
* WHEN 'PAIHP' or 'PAIHL' or 'PAIHC'.
* if gt_rel_mt-Index_pmax < gs_data-V_ZWSTAND.
* gt_rel_mt-Index_pmax = gs_data-V_ZWSTAND.
* endif.
WHEN 'HU' or 'MNU'.
gt_rel_mt-Index_hu_mnu = gs_data-V_ZWSTAND.
gt_rel_mt-notice_hu_mnu = gs_data-ablhinw.
gt_rel_mt-statut_hu_mnu = gs_data-ablstat.
WHEN 'EAITT'.
gt_rel_mt-Index_eaitt = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaitt = gs_data-ablhinw.
gt_rel_mt-statut_eaitt = gs_data-ablstat.
WHEN 'ERIHL'.
gt_rel_mt-Index_erihl = gs_data-V_ZWSTAND.
gt_rel_mt-notice_erihl = gs_data-ablhinw.
gt_rel_mt-statut_erihl = gs_data-ablstat.
WHEN 'ERIHP'.
gt_rel_mt-Index_erihp = gs_data-V_ZWSTAND.
gt_rel_mt-notice_erihp = gs_data-ablhinw.
gt_rel_mt-statut_erihp = gs_data-ablstat.
WHEN 'ERIHC'.
gt_rel_mt-Index_erihc = gs_data-V_ZWSTAND.
gt_rel_mt-notice_erihc = gs_data-ablhinw.
gt_rel_mt-statut_erihc = gs_data-ablstat.
WHEN 'EAEHL'.
gt_rel_mt-Index_eaehl = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaehl = gs_data-ablhinw.
gt_rel_mt-statut_eaehl = gs_data-ablstat.
WHEN 'EAEHP'.
gt_rel_mt-Index_eaehp = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaehp = gs_data-ablhinw.
gt_rel_mt-statut_eaehp = gs_data-ablstat.
WHEN 'EAEHC'.
gt_rel_mt-Index_eaehc = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaehc = gs_data-ablhinw.
gt_rel_mt-statut_eaehc = gs_data-ablstat.
WHEN 'EAETT'.
gt_rel_mt-Index_eaett = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaett = gs_data-ablhinw.
gt_rel_mt-statut_eaett = gs_data-ablstat.
WHEN 'EAIPH1'.
gt_rel_mt-Index_eaiph1 = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaiph1 = gs_data-ablhinw.
gt_rel_mt-statut_eaiph1 = gs_data-ablstat.
WHEN 'EAIPH2'.
gt_rel_mt-Index_eaiph2 = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaiph2 = gs_data-ablhinw.
gt_rel_mt-statut_eaiph2 = gs_data-ablstat.
WHEN 'EAIPH3'.
gt_rel_mt-Index_eaiph3 = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaiph3 = gs_data-ablhinw.
gt_rel_mt-statut_eaiph3 = gs_data-ablstat.
WHEN 'EAEPH1'.
gt_rel_mt-Index_eaeph1 = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaeph1 = gs_data-ablhinw.
gt_rel_mt-statut_eaeph1 = gs_data-ablstat.
WHEN 'EAEPH2'.
gt_rel_mt-Index_eaeph2 = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaeph2 = gs_data-ablhinw.
gt_rel_mt-statut_eaeph2 = gs_data-ablstat.
WHEN 'EAEPH3'.
gt_rel_mt-Index_eaeph3 = gs_data-V_ZWSTAND.
gt_rel_mt-notice_eaeph3 = gs_data-ablhinw.
gt_rel_mt-statut_eaeph3 = gs_data-ablstat.
ENDCASE.
ENDLOOP.
append gt_rel_Mt.
ENDLOOP.
endif.
ENDFORM.
at SELECTION-SCREEN OUTPUT.
LOOP AT screen.
if screen-name eq 'S_PERIOD-HIGH'.
screen-required = 1.
MODIFY SCREEN.
exit.
endif.
ENDLOOP.
*&----------------------------------------------------------------------
*& Description : Projet SRM : Reporting résultats de relevé BT
*d'apurement
*&
*&----------------------------------------------------------------------
*& Historique des modifications
*&----------------------------------------------------------------------
*& Date ! Auteur ! Description
*& ! !
*$ ! !
*&----------------------------------------------------------------------
*&----------------------------------------------------------------------
* Ecran de sélection
*&----------------------------------------------------------------------
selection-screen begin of block b1 with frame title text-001.
select-options s_gsber for fkkvkp-gsber OBLIGATORY.
select-options s_gsr for fkkvkp-regiogr_ca_t OBLIGATORY .
SELECT-OPTIONS s_ur for ZSRM_RELeve_BT-ableinh.
SELECT-OPTIONS s_inst for ZSRM_RELeve_BT-anlage.
SELECT-OPTIONS s_cont for ever-vertrag.
SELECT-OPTIONS s_drp for ZSRM_RELeve_BT-adatsoll.
selection-screen end of block b1.
*&----------------------------------------------------------------------
* Variables, structures et tables internes
*&----------------------------------------------------------------------
TYPE-POOLS: slis.
*&----------------------------------------------------------------------
START-OF-SELECTION.
*&----------------------------------------------------------------------
********************** sélection données ******************
SELECT * INTO table gt_data
from ZSRM_RELeve_BT
where anlage in s_inst
and adatsoll in s_drp
and gsber in s_gsber
and REGIOGR_CA_T in s_gsr
and vertrag in s_cont
and ableinh in s_ur.
***********************
*&---------------------------------------------------------------------
*& Design -------------------------------------------------------------
*&---------------------------------------------------------------------
gs_layout-zebra = 'X'.
gs_layout-window_titlebar =
'SRM - Résultats de relevé BT'.
gs_layout-colwidth_optimize = 'X'.
*&---------------------------------------------------------------------
*& Catalogue ----------------------------------------------------------
*&---------------------------------------------------------------------
free gt_fieldcat.
IF zcat-fieldname = 'INDEX_EAI_EAIHP'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Index EAI/EAIHP'.
ENDIF.
IF zcat-fieldname = 'INDEX_EAIHL'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Index EAIHL'.
ENDIF.
IF zcat-fieldname = 'INDEX_EAIHC'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Index EAIHC'.
ENDIF.
IF zcat-fieldname = 'CONS_EAI_EAIHP'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cons EAI/EAIHP'.
ENDIF.
IF zcat-fieldname = 'CONS_EAIHL'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cons EAIHL'.
ENDIF.
IF zcat-fieldname = 'CONS_EAIHC'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cons EAIHC'.
ENDIF.
IF zcat-fieldname = 'CONS_EAI_EAIHP_FACT'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cons Fact EAI/EAIHP'.
ENDIF.
IF zcat-fieldname = 'CONS_EAIHL_FACT'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cons Fact EAIHL'.
ENDIF.
IF zcat-fieldname = 'CONS_EAIHC_FACT'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cons Fact EAIHC'.
ENDIF.
IF zcat-fieldname = 'INDEX_EAITT'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Index EAITT'.
ENDIF.
IF zcat-fieldname = 'CONS_EAITT'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cons EAITT'.
ENDIF.
IF zcat-fieldname = 'CONS_EAITT_FACT'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cons Fact EAITT'.
ENDIF.
IF zcat-fieldname = 'INDEX_PAI'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Index PAI'.
ENDIF.
IF zcat-fieldname = 'CONS_PAI'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cons PAI'.
ENDIF.
IF zcat-fieldname = 'CONS_PAI_FACT'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cons Fact PAI'.
ENDIF.
IF zcat-fieldname = 'ISTABLART_EAI_EAIHP'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cat. Rel. EAI/EAIHP'.
ENDIF.
IF zcat-fieldname = 'ISTABLART_EAIHL'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cat. Rel. EAIHL'.
ENDIF.
IF zcat-fieldname = 'ISTABLART_EAIHC'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cat. Rel EAIHC'.
ENDIF.
IF zcat-fieldname = 'ISTABLART_EAITT'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cat. Rel EAITT'.
ENDIF.
IF zcat-fieldname = 'ISTABLART_PAI'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Cat. Rel PAI'.
ENDIF.
IF zcat-fieldname = 'STATUT_EAI_EAIHP'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Statut EAI/EAIHP'.
ENDIF.
IF zcat-fieldname = 'STATUT_EAIHL'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Statut EAIHL'.
ENDIF.
IF zcat-fieldname = 'STATUT_EAIHC'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Statut EAIHC'.
ENDIF.
IF zcat-fieldname = 'STATUT_EAITT'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Statut EAITT'.
ENDIF.
IF zcat-fieldname = 'STATUT_PAI'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'Statut PAI'.
ENDIF.
IF zcat-fieldname = 'NOTICE_EAI_EAIHP'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'NOTICE EAI/EAIHP'.
ENDIF.
IF zcat-fieldname = 'NOTICE_EAIHL'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'NOTICE EAIHL'.
ENDIF.
IF zcat-fieldname = 'NOTICE_EAIHC'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'NOTICE EAIHC'.
ENDIF.
IF zcat-fieldname = 'NOTICE_EAITT'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'NOTICE EAITT'.
ENDIF.
IF zcat-fieldname = 'NOTICE_PAI'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'NOTICE PAI'.
ENDIF.
IF sy-subrc <> 0.
MESSAGE e208(00) WITH 'Erreur affichage ALV'.
ENDIF.
*&---------------------------------------------------------------------
*& Status -------------------------------------------------------------
*&---------------------------------------------------------------------
FORM stat USING extab TYPE slis_t_extab.
SET PF-STATUS 'PF01' EXCLUDING extab.
ENDFORM. "stat
*&---------------------------------------------------------------------
*& Commandes ----------------------------------------------------------
*&---------------------------------------------------------------------
FORM commandes USING rf_ucomm
LIKE sy-ucomm rs_selfield TYPE slis_selfield.
CASE rf_ucomm.
WHEN OTHERS.
READ TABLE gt_data INDEX rs_selfield-tabindex.
if rs_selfield-fieldname eq 'VERTRAG'.
CALL FUNCTION 'ISU_S_CONTRACT_DISPLAY'
EXPORTING
X_VERTRAG = gt_data-vertrag
EXCEPTIONS
NOT_FOUND = 1
KEY_INVALID = 2
SYSTEM_ERROR = 3
NOT_AUTHORIZED = 4
OTHERS = 5.
endif.
ENDCASE.
ENDFORM. "commandes
* top
FORM top.
free gt_list_top_of_page.
* Entete
CLEAR ztop.
ztop-typ = 'H'.
ztop-info = 'SRM - Résultats de relevé BT'.
APPEND ztop TO gt_list_top_of_page.
* lignes type s
CLEAR ztop.
ztop-typ = 'S'.
ztop-key = 'Nombre de lignes : '.
ztop-info = gv_lines.
APPEND ztop TO gt_list_top_of_page.
CLEAR ztop.
ztop-typ = 'S'.
APPEND ztop TO gt_list_top_of_page.
APPEND ztop TO gt_list_top_of_page.
APPEND ztop TO gt_list_top_of_page.
ENDFORM. "top
*&---------------------------------------------------------------------
*& Auteur : Hassan ABOUBAKR
*&----------------------------------------------------------------------
*& Description : Projet SRM : Création fichier résultats relevé BT
*&
*&
*&----------------------------------------------------------------------
*& Historique des modifications
*&----------------------------------------------------------------------
*& Date ! Auteur ! Description
*& ! !
*$ ! !
*&----------------------------------------------------------------------
report ZSRM_FILE_RESULT_RELEVE_BT
NO STANDARD PAGE HEADING line-size 200.
TYPE-POOLS: slis,truxs,sccr.
tables : fkkvkp,ZSRM_RELEVE_BT,ever.
*&----------------------------------------------------------------------
* Ecran de sélection
*&----------------------------------------------------------------------
selection-screen begin of block b1 with frame title text-001.
*select-options s_gsber for fkkvkp-gsber OBLIGATORY.
PARAMETERS pgsber like fkkvkp-gsber OBLIGATORY.
select-options s_gsr for fkkvkp-regiogr_ca_t.
SELECT-OPTIONS s_ur for ZSRM_RELeve_BT-ableinh.
SELECT-OPTIONS s_inst for ZSRM_RELeve_BT-anlage.
SELECT-OPTIONS s_cont for ever-vertrag.
SELECT-OPTIONS s_drp for ZSRM_RELeve_BT-adatsoll.
selection-screen end of block b1.
SELECTION-SCREEN skip 1.
SELECTION-SCREEN skip 1.
*&----------------------------------------------------------------------
* Variables, structures et tables internes
*&----------------------------------------------------------------------
data gt_data type STANDARD TABLE OF ZSRM_releve_bt WITH HEADER LINE.
data w_fich(128).
DATA tab_ent TYPE truxs_t_text_data.
DATA tab_txt TYPE truxs_t_text_data.
data str_entete(4096) type c.
FIELD-SYMBOLS <fsf>.
data w_lines type i.
ranges r_gsr for fkkvkp-regiogr_ca_t.
data gv_cpt TYPE i.
*&----------------------------------------------------------------------
INITIALIZATION.
*&----------------------------------------------------------------------
*&----------------------------------------------------------------------
START-OF-SELECTION.
*&----------------------------------------------------------------------
SELECT single region into @data(gv_region) from zsrm_dr
WHERE gsber eq @pgsber.
if sy-subrc ne 0.
MESSAGE s398(00) with 'Direction régionale non codifiée pour SRM'
DISPLAY LIKE 'E'.
exit.
endif.
gv_type = 'E'.
if ( s_gsr[] is INITIAL or
( line_exists( s_gsr[ low = '*' sign = 'I' option = 'CP' ] )
and lines( s_gsr ) eq 1 ) ) and
( s_ur[] is INITIAL or
( line_exists( s_ur[ low = '*' sign = 'I' option = 'CP' ] )
and lines( s_ur ) eq 1 ) ) and
( s_cont[] is INITIAL or
( line_exists( s_cont[ low = '*' sign = 'I' option = 'CP' ] )
and lines( s_cont ) eq 1 ) ) and
( s_drp[] is INITIAL or
( line_exists( s_drp[ low = '*' sign = 'I' option = 'CP' ] )
and lines( s_drp ) eq 1 ) ) and
( s_inst[] is INITIAL or
( line_exists( s_inst[ low = '*' sign = 'I' option = 'CP' ] )
and lines( s_inst ) eq 1 ) ).
gv_type = 'C'.
endif.
*&----------------------------------------------------------------------
* Contrôle autorisation GSR
*&----------------------------------------------------------------------
select REGIOGROUP into TABLE @data(gt_gsr)
from ADRREGGRP where regiogroup in @s_gsr.
if gt_gsr[] is INITIAL.
message s398(00) with 'GSR(s) inexistant(s)' DISPLAY LIKE 'E'.
exit.
endif.
if sy-subrc = 1.
delete gt_gsr.
endif.
endloop.
if gt_gsr[] is INITIAL.
message s398(00) with 'Prob autorisation GSR' DISPLAY LIKE 'E'.
exit.
endif.
free r_gsr.
CLEAR r_gsr.
r_gsr-sign = 'I'.
r_gsr-option = 'EQ'.
if alv ne 'X'.
free gt_entete.
append gs_entete to gt_entete.
if fich eq 'X'.
LOOP AT tab_ent ASSIGNING <fsf>.
TRANSFER <fsf> TO w_fich.
ENDLOOP.
endif.
if floc eq 'X'.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = ploc
append = ' '
TABLES
DATA_TAB = tab_ent.
endif.
***
select * into table @data(gt_TE609T)
from TE609T WHERE spras eq @sy-langu.
***
clear last_doc.
free gt_alv.
clear : gv_cnt,gv_nb.
free r_numord.
clear r_numord.
r_numord-sign = 'I'.
r_numord-option = 'EQ'.
add 1 to : gv_cnt,gv_nb.
PERFORM select_fact.
free r_numord.
clear r_numord.
r_numord-sign = 'I'.
r_numord-option = 'EQ'.
clear gv_cnt.
ENDLOOP.
***
if alv ne 'X'.
write :/5 'Date :',25 sy-datum.
write :/5 'Heure :',25 sy-uzeit.
skip 1.
if fich eq 'X'.
CLOSE DATASET w_fich.
write :/5 'Nom fichier :',25 w_fich.
else.
write :/5 'Nom fichier :',25 ploc.
endif.
***********************
END-OF-SELECTION.
at selection-screen output.
if fich eq 'X'.
loop at screen.
if screen-name eq 'PLOC'.
clear ploc.
screen-input = 0.
MODIFY SCREEN.
endif.
endloop.
elseif floc eq 'X'.
loop at screen.
if screen-name eq 'PFILE'.
clear ploc.
screen-input = 0.
MODIFY SCREEN.
endif.
endloop.
else.
loop at screen.
if screen-name eq 'PFILE' or
screen-name eq 'PLOC'.
clear ploc.
screen-input = 0.
MODIFY SCREEN.
endif.
endloop.
endif.
if floc eq 'X'.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'PLOC'
IMPORTING
FILE_NAME = Ploc2.
ploc = ploc2.
endif.
*&---------------------------------------------------------------------*
*& Form CONV_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CONV_DATA .
data lv_ablstat type DD07V-DOMVALUE_L.
data lv_ablstatt type DD07V-DDTEXT.
free gt_conv.
loop at gt_data.
clear gt_conv.
gt_conv-ANN_HIS_CSO = gt_data-adat(4).
gt_conv-PER_HIS_CSO = gt_data-adat+4(2).
gt_conv-NUM_APT_ORI = gt_data-equnr.
gt_conv-NUM_PL_ORI = gt_data-anlage.
gt_conv-NUM_CTA_ORI = gt_data-vertrag.
gt_conv-A1 = gt_data-ablesgr.
gt_conv-A2 = GT_TE609T[ ablesgr = gt_data-ablesgr ]-text40.
clear : lv_ablstat,lv_ablstatt.
lv_ablstat = gt_data-statut_eai_eaihp.
gt_conv-A10 = lv_ablstatt.
gt_conv-A11 = gt_data-statut_eaihl.
clear : lv_ablstat,lv_ablstatt.
lv_ablstat = gt_data-statut_eaihl.
gt_conv-A12 = lv_ablstatt.
gt_conv-A13 = gt_data-statut_eaihc.
clear : lv_ablstat,lv_ablstatt.
lv_ablstat = gt_data-statut_eaihc.
gt_conv-A14 = lv_ablstatt.
gt_conv-A15 = gt_data-statut_eaitt.
clear : lv_ablstat,lv_ablstatt.
lv_ablstat = gt_data-statut_eaitt.
gt_conv-A16 = lv_ablstatt.
gt_conv-A17 = gt_data-statut_pai.
clear : lv_ablstat,lv_ablstatt.
lv_ablstat = gt_data-statut_pai.
gt_conv-A18 = lv_ablstatt.
* endif.
gt_conv-A31 = gt_data-ISTABLART_EAIHL.
gt_conv-A33 = gt_data-ISTABLART_EAIHC.
gt_conv-A35 = gt_data-ISTABLART_EAITT.
append gt_conv.
endloop.
if alv eq 'X'.
APPEND LINES OF gt_conv to gt_alv.
endif.
if alv ne 'X'.
CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'
EXPORTING
i_field_seperator = '|'
"cl_abap_char_utilities=>horizontal_tab
TABLES
i_tab_sap_data = gt_conv
CHANGING
i_tab_converted_data = tab_txt
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE e398(00) WITH 'Erreur conversion TXT'.
ENDIF.
endif.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SELECT_FACT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SELECT_FACT .
PERFORM conv_data.
***************************************************************
* Fichier serveur
***************************************************************
if fich eq 'X'.
LOOP AT tab_txt ASSIGNING <fsf>.
TRANSFER <fsf> TO w_fich.
ENDLOOP.
endif.
******************************************************************
* Fichier local
******************************************************************
if floc eq 'X'.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = ploc
append = 'X'
TABLES
DATA_TAB = tab_txt.
endif.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ALV_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ALV_DISPLAY .
*& Design -------------------------------------------------------------
gs_layout-zebra = 'X'.
gs_layout-window_titlebar =
'Projet SRM : Résultats relevé BT'.
gs_layout-colwidth_optimize = 'X'.
*gs_layout-coltab_fieldname = 'CELLCOLOR'.
* zsort-group = 'X'.
* CLEAR zsort-up.
case zcat-fieldname.
IF zcat-fieldname = 'REGIOGR_CA_T'.
zcat-ddictxt = 'L'.
zcat-seltext_l = 'GSR'.
ENDIF.
IF sy-subrc <> 0.
MESSAGE e208(00) WITH 'Erreur ALV'.
ENDIF.
ENDFORM.
*& Status -------------------------------------------------------------
FORM stat USING extab TYPE slis_t_extab.
SET PF-STATUS 'PF01' EXCLUDING extab.
ENDFORM. "stat
ENDCASE.
ENDFORM. "commandes
* top
FORM top.
REFRESH gt_list_top_of_page.
* Entete
CLEAR ztop.
ztop-typ = 'H'.
ztop-info = 'Projet SRM : Résultats relevé BT'.
APPEND ztop TO gt_list_top_of_page.
* lignes type s
CLEAR ztop.
ztop-typ = 'S'.
APPEND ztop TO gt_list_top_of_page.
CLEAR ztop.
ztop-typ = 'S'.
ztop-key = 'Nombre de lignes :'.
ztop-info = w_lines.
APPEND ztop TO gt_list_top_of_page.
* lignes type A
CLEAR ztop.
ztop-typ = 'A'.
APPEND ztop TO gt_list_top_of_page.
CLEAR ztop.
ztop-typ = 'A'.
APPEND ztop TO gt_list_top_of_page.
ENDFORM. "top