1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243
| REPORT zhra_elections_genrales.
INCLUDE ZHRA_ELECTIONS_GENERALES_DATA.
*INCLUDE ZHRA_ELECTIONS_MANDATS_DATA.
INCLUDE ZHRA_ELECTIONS_GENERALES_FORM.
*INCLUDE ZHRA_ELECTIONS_MANDATS_FORM.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
DATA: ld_fullpath TYPE string,
ld_path TYPE string,
ld_filename TYPE string.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
default_extension = 'XLS'
default_file_name = 'ELECTIONS_GENERALES' " nom du fichier lors de la sauvegarde
initial_directory = 'c:\'
CHANGING
filename = ld_filename
path = ld_path
fullpath = ld_fullpath.
p_file = ld_fullpath.
START-OF-SELECTION.
REFRESH itab.
GET peras.
CLEAR line_itab.
CLEAR age.
CLEAR sexe.
LOOP AT p0001 WHERE begda <= pn-endda AND endda >= pn-begda AND ( persg EQ '1' or persg EQ '2')
AND ( persk NE 'CA'
AND persk NE 'CV'
AND persk NE 'JE'
AND persk NE 'JS'
AND persk NE 'JX'
AND persk NE 'VA'
AND persk NE 'VX'
AND persk NE 'VO'
) .
SELECT personid_ext FROM pa0709 INTO personid_ext
WHERE pernr = p0001-pernr AND begda <= pn-endda AND endda >= pn-begda.
MOVE personid_ext TO line_itab-personid_ext.
ENDSELECT.
move p0001-pernr to line_itab-pernr.
* " subterfuge pour avoir les dates au bon format.
* CONCATENATE '''' pn-begda+6(2) '/' pn-begda+4(2) '/' pn-begda+0(4) INTO line_itab-debut_per_conc.
* CONCATENATE '''' pn-endda+6(2) '/' pn-endda+4(2) '/' pn-endda+0(4) INTO line_itab-fin_per_conc.
SELECT * FROM pa0002 INTO it0002 WHERE pernr = p0001-pernr AND begda <= pn-endda AND endda >= pn-begda.
MOVE it0002-nachn TO line_itab-nom.
MOVE it0002-vorna TO line_itab-prenom.
CONCATENATE '''' it0002-gbdat+6(2) '/' it0002-gbdat+4(2) '/' it0002-gbdat+0(4) INTO line_itab-date_naissance.
MOVE it0002-gesch TO sexe.
IF sexe = '1'.
MOVE 'M' TO line_itab-sexe.
ELSEIF sexe = '2'.
MOVE 'F' TO line_itab-sexe.
ENDIF.
ENDSELECT.
SELECT * FROM pa0001 INTO it0001 WHERE pernr = p0001-pernr AND begda <= pn-endda AND endda >= pn-begda AND ( persg EQ '1' or persg EQ '2') .
MOVE it0001-persk TO line_itab-statut.
move it0001-persg to line_itab-persg.
* ZZETP_ADM = it0001-ZZETP_ADM * 100.
MOVE it0001-zzetp_adm TO line_itab-zzetp_adm.
move it0001-zzniveau to line_itab-zzniveau.
move it0001-ZZQUALIF to line_itab-ZZQUALIF.
move it0001-zzacad_ecran to line_itab-zzacad_ecran.
ENDSELECT.
CALL FUNCTION 'HR_READ_SUBTYPE'
EXPORTING
* TCLAS = 'A'
PERNR = p0001-pernr
INFTY = '9032'
SUBTY = '0005'
* SPRPS = '*'
BEGDA = pnpbegda
ENDDA = pnpendda
TABLES
INFTY_TAB = it9032
EXCEPTIONS
INFTY_NOT_FOUND = 1
INVALID_INPUT = 2
OTHERS = 3.
IF SY-SUBRC EQ 0.
SORT it9032 BY BEGDA ASCENDING. "L'adresse interne la plus ancienne est prise par défaut si manuelle
LOOP AT it9032 into wa_line2.
IF wa_line2-RB2_ADR_INT EQ 'X'."L'adresse interne est manuelle.
move wa_line2-CODE_PINT to LINE_ITAB-CODE_PINT.
move wa_line2-CODE_CAMPUS to LINE_ITAB-CODE_CAMPUS.
exit.
else.
" Aller chercher l'adresse dans la structure Org
perform GET_ADRESSE_INTERNE using p0001-pernr pnpbegda pnpendda changing wa_line2.
"pnpendda changing wa_line2.
move wa_line2-CODE_PINT to LINE_ITAB-CODE_PINT.
move wa_line2-CODE_CAMPUS to LINE_ITAB-CODE_CAMPUS.
exit.
ENDIF.
endloop.
* else." Pas d'IT9032 subty 0005 pour la personne --> Aller chercher l'adresse dans la structure Org
* clear wa_line2.
* perform GET_ADRESSE_INTERNE using P_PERNR_CHEF p_begda p_endda changing wa_line2.
* move wa_line2-CODE_PINT to P_LINE_ITAB_CHEF_SERV-CPI.
endif.
CALL FUNCTION 'HR_READ_SUBTYPE'
EXPORTING
* TCLAS = 'A'
PERNR = p0001-pernr
INFTY = '9032'
SUBTY = '0002'
* SPRPS = '*'
BEGDA = pnpbegda
ENDDA = pnpendda
TABLES
INFTY_TAB = it9032
EXCEPTIONS
INFTY_NOT_FOUND = 1
INVALID_INPUT = 2
OTHERS = 3.
IF SY-SUBRC EQ 0.
SORT it9032 BY BEGDA ASCENDING. "L'adresse interne la plus ancienne est prise par défaut si manuelle
LOOP AT it9032 into wa_line2.
move wa_line2-COMM_PERS to line_itab-COMM_PERS.
endloop.
* else." Pas d'IT9032 subty 0005 pour la personne --> Aller chercher l'adresse dans la structure Org
* clear wa_line2.
* perform GET_ADRESSE_INTERNE using P_PERNR_CHEF p_begda p_endda changing wa_line2.
* move wa_line2-CODE_PINT to P_LINE_ITAB_CHEF_SERV-CPI.
endif.
"Get Faculté
CALL FUNCTION 'ZHRA_GET_FAC'
EXPORTING
pernr = pernr-pernr
orgeh = p0001-orgeh
datum = sy-datum
IMPORTING
* FACULTE =
* FAC_OBJID =
fac_id = line_itab-faculte.
APPEND line_itab TO itab.
Sort itab ASCENDING by nom.
""SUPPRIMER LES LIGNES QUI SONT LES MEMES MODIF DU 15/12/2016
DELETE ADJACENT DUPLICATES FROM itab .
ENDLOOP.
END-OF-SELECTION.
"" en fonction du choix fait au départ affichage ou sauvegarde du fichier
IF p_displ EQ 'X'.
PERFORM display_alv.
ELSE.
IF p_file IS NOT INITIAL.
PERFORM export_alv.
ENDIF.
ENDIF. |
Partager