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 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292
|
Extrait du programme dédition dun Certificat Administratif (289 lignes / 959 lignes) :
{================================} DEFINE {==================================}
{} {}
{} PARAM[1] p_n_ca INTEGER {}
{} {}
{} VARIABLE v_total_net DECIMAL(10,2) {}
{} VARIABLE v_integer INTEGER {}
{} VARIABLE v_euros INTEGER {}
{} VARIABLE v_centimes INTEGER {}
{} {}
{} VARIABLE v_centaines CHAR(20) {}
{} VARIABLE v_dizaines CHAR(20) {}
{} VARIABLE v_unites CHAR(20) {}
{} VARIABLE v_total CHAR(100) {}
{} {}
{} VARIABLE j_loop SMALLINT {}
{} {}
{==================================} END {===================================}
{======================}
{===========================} DATABASE mabase END {===========================}
{======================}
{==================================} SELECT {==================================}
ca.n_ca ca_n_ca,
ca.montant ca_montant,
FROM ca
WHERE ca.n_ca = $p_n_ca
GROUP BY ca.n_ca
===============================} ORDER BY {================================}
ca_n_ca
{==================================} END {===================================}
{=================================} FORMAT {=================================}
{---------------------- TRADUCTION TEXTUELLE DUN MONTANT ---------------------}
{ TRADUCTION TEXTUELLE DES EUROS ----------------------------------------------}
LET v_total_net = ca_montant
LET v_total = ""
PRINT ESC, "&a425H"; { Positionnement du curseur dans la page }
FOR j_loop = 1 TO 2 STEP 1
DO BEGIN
{}
{} LET v_centaines = ""
{} LET v_dizaines = ""
{} LET v_unites = ""
{}
{} IF j_loop = 1 { Traduction textuelle des milliers dEuros }
{} THEN BEGIN
{} LET v_euros = v_total_net
{} LET v_integer = v_euros / 1000
{} LET v_euros = v_integer
{} END
{}
{} IF j_loop = 2 { Traduction textuelle des Euros entre 1 et 999 }
{} THEN BEGIN
{} LET v_euros = v_total_net
{} LET v_integer = v_euros / 1000
{} LET v_euros = v_euros - (v_integer * 1000)
{} END
{}
{ TRADUCTION TEXTUELLE DES CENTAINES DEUROS ----------------------------------}
{}
{} IF v_euros >= 100 THEN LET v_centaines = "CENT"
{} IF v_euros >= 200 THEN LET v_centaines = "DEUX-CENT"
{} IF v_euros >= 300 THEN LET v_centaines = "TROIS-CENT"
{} IF v_euros >= 400 THEN LET v_centaines = "QUATRE-CENT"
{} IF v_euros >= 500 THEN LET v_centaines = "CINQ-CENT"
{} IF v_euros >= 600 THEN LET v_centaines = "SIX-CENT"
{} IF v_euros >= 700 THEN LET v_centaines = "SEPT-CENT"
{} IF v_euros >= 800 THEN LET v_centaines = "HUIT-CENT"
{} IF v_euros >= 900 THEN LET v_centaines = "NEUF-CENT"
{}
{} IF v_euros >= 100
{} THEN BEGIN
{} LET v_integer = v_euros / 100
{} LET v_euros = v_euros - (v_integer * 100)
{} END
{}
{} IF j_loop = 2
{} AND v_centaines IS NOT NULL
{} AND v_centaines <> "CENT"
{} AND v_euros = 0
{} THEN LET v_centaines = v_centaines CLIPPED, "S"
{}
{ TRADUCTION TEXTUELLE DES DIZAINES DEUROS -----------------------------------}
{}
{} IF v_euros >= 20 THEN LET v_dizaines = "VINGT"
{} IF v_euros >= 30 THEN LET v_dizaines = "TRENTE"
{} IF v_euros >= 40 THEN LET v_dizaines = "QUARANTE"
{} IF v_euros >= 50 THEN LET v_dizaines = "CINQUANTE"
{} IF v_euros >= 60 THEN LET v_dizaines = "SOIXANTE"
{} IF v_euros >= 70 THEN LET v_dizaines = "SOIXANTE"
{} IF v_euros >= 80 THEN LET v_dizaines = "QUATRE-VINGT"
{}
{ TRADUCTION TEXTUELLE DES UNITES DEUROS -------------------------------------}
{}
{} LET v_integer = v_euros / 10
{} LET v_integer = v_integer * 10
{}
{} IF (v_euros >= 10 AND v_euros < 20)
{} OR (v_euros >= 70 AND v_euros < 80)
{} OR (v_euros >= 90)
{} THEN LET v_euros = v_euros - v_integer + 10
{} ELSE LET v_euros = v_euros - v_integer
{}
{} IF v_dizaines = "QUATRE-VINGT"
{} AND v_euros = 0 THEN LET v_dizaines = "QUATRE-VINGTS"
{}
{} IF v_dizaines IS NOT NULL
{} AND v_dizaines <> "QUATRE-VINGTS"
{} AND v_euros > 0 THEN LET v_dizaines = v_dizaines CLIPPED,"-"
{}
{} IF v_euros = 1 THEN LET v_unites = "UN"
{}
{} IF (v_dizaines <> "QUATRE-VINGT" AND v_dizaines IS NOT NULL)
{} AND v_euros = 1 THEN LET v_unites = "ET UN"
{}
{} IF v_euros = 2 THEN LET v_unites = "DEUX"
{} IF v_euros = 3 THEN LET v_unites = "TROIS"
{} IF v_euros = 4 THEN LET v_unites = "QUATRE"
{} IF v_euros = 5 THEN LET v_unites = "CINQ"
{} IF v_euros = 6 THEN LET v_unites = "SIX"
{} IF v_euros = 7 THEN LET v_unites = "SEPT"
{} IF v_euros = 8 THEN LET v_unites = "HUIT"
{} IF v_euros = 9 THEN LET v_unites = "NEUF"
{} IF v_euros = 10 THEN LET v_unites = "DIX"
{} IF v_euros = 11 THEN LET v_unites = "ONZE"
{} IF v_euros = 11 AND v_dizaines = "SOIXANTE"
{} THEN LET v_unites = "ET ONZE"
{} IF v_euros = 12 THEN LET v_unites = "DOUZE"
{} IF v_euros = 13 THEN LET v_unites = "TREIZE"
{} IF v_euros = 14 THEN LET v_unites = "QUATORZE"
{} IF v_euros = 15 THEN LET v_unites = "QUINZE"
{} IF v_euros = 16 THEN LET v_unites = "SEIZE"
{} IF v_euros = 17 THEN LET v_unites = "DIX-SEPT"
{} IF v_euros = 18 THEN LET v_unites = "DIX-HUIT"
{} IF v_euros = 19 THEN LET v_unites = "DIX-NEUF"
{}
{} LET v_euros = 0
{}
{ MISE EN FORME DU LIBELLE DES EUROS ------------------------------------------}
{}
{} IF v_centaines IS NOT NULL
{} THEN LET v_total = v_centaines CLIPPED
{}
{} IF v_dizaines IS NOT NULL
{} THEN IF v_total IS NULL
{} THEN LET v_total = v_dizaines CLIPPED
{} ELSE LET v_total = v_total CLIPPED, "-", v_dizaines CLIPPED
{}
{} IF v_unites IS NOT NULL
{} AND v_total IS NULL
{} THEN LET v_total = v_unites CLIPPED
{}
{} IF v_unites IS NOT NULL
{} AND v_total IS NOT NULL
{} THEN IF v_unites = "ET UN"
{} OR v_unites = "ET ONZE"
{} THEN LET v_total = v_total CLIPPED, 1 SPACE, v_unites CLIPPED
{} ELSE LET v_total = v_total CLIPPED, "-", v_unites CLIPPED
{}
{} IF j_loop = 1
{} AND v_total_net >= 2000
{} THEN LET v_total = v_total CLIPPED, 1 SPACE, "MILLE"
{}
{} IF j_loop = 1
{} AND v_total_net >= 1000
{} AND v_total_net < 2000
{} THEN LET v_total = "MILLE"
{}
{} END {DO}
{ IMPRESSION DU LIBELLE DES EUROS ---------------------------------------------}
LET v_euros = v_total_net
LET v_centimes = (v_total_net * 100) - (v_euros * 100)
IF v_total[51,100] = " "
OR (v_total[61,100] = " " AND v_centimes = 0)
THEN PRINT ESC, "(s1p10v0s0b4101T";
ELSE PRINT ESC, "(s1p9v0s0b4101T";
PRINT v_total CLIPPED, " EUROS ";
LET v_total = ""
{ TRADUCTION TEXTUELLE DES DIZAINES DE CENTIMES -------------------------------}
LET v_euros = v_total_net
LET v_centimes = (v_total_net * 100) - (v_euros * 100)
LET v_dizaines = ""
LET v_unites = ""
IF v_centimes >= 20 THEN LET v_dizaines = "VINGT"
IF v_centimes >= 30 THEN LET v_dizaines = "TRENTE"
IF v_centimes >= 40 THEN LET v_dizaines = "QUARANTE"
IF v_centimes >= 50 THEN LET v_dizaines = "CINQUANTE"
IF v_centimes >= 60 THEN LET v_dizaines = "SOIXANTE"
IF v_centimes >= 70 THEN LET v_dizaines = "SOIXANTE"
IF v_centimes >= 80 THEN LET v_dizaines = "QUATRE-VINGT"
LET v_integer = v_centimes / 10
LET v_integer = v_integer * 10
IF (v_centimes >= 10 AND v_centimes < 20)
OR (v_centimes >= 70 AND v_centimes < 80)
OR (v_centimes >= 90)
THEN LET v_centimes = v_centimes - v_integer + 10
ELSE LET v_centimes = v_centimes - v_integer
IF v_dizaines = "QUATRE-VINGT"
AND v_centimes = 0 THEN LET v_dizaines = "QUATRE-VINGTS"
{ TRADUCTION TEXTUELLE DES UNITES DE CENTIMES ---------------------------------}
IF v_dizaines IS NULL
AND v_centimes = 0 THEN LET v_unites = "ZERO"
IF v_centimes = 1 THEN LET v_unites = "UN"
IF (v_dizaines <> "QUATRE-VINGT" AND v_dizaines IS NOT NULL)
AND v_centimes = 1 THEN LET v_unites = "ET UN"
IF v_centimes = 2 THEN LET v_unites = "DEUX"
IF v_centimes = 3 THEN LET v_unites = "TROIS"
IF v_centimes = 4 THEN LET v_unites = "QUATRE"
IF v_centimes = 5 THEN LET v_unites = "CINQ"
IF v_centimes = 6 THEN LET v_unites = "SIX"
IF v_centimes = 7 THEN LET v_unites = "SEPT"
IF v_centimes = 8 THEN LET v_unites = "HUIT"
IF v_centimes = 9 THEN LET v_unites = "NEUF"
IF v_centimes = 10 THEN LET v_unites = "DIX"
IF v_centimes = 11 THEN LET v_unites = "ONZE"
IF v_centimes = 11 AND v_dizaines = "SOIXANTE"
THEN LET v_unites = "ET ONZE"
IF v_centimes = 12 THEN LET v_unites = "DOUZE"
IF v_centimes = 13 THEN LET v_unites = "TREIZE"
IF v_centimes = 14 THEN LET v_unites = "QUATORZE"
IF v_centimes = 15 THEN LET v_unites = "QUINZE"
IF v_centimes = 16 THEN LET v_unites = "SEIZE"
IF v_centimes = 17 THEN LET v_unites = "DIX-SEPT"
IF v_centimes = 18 THEN LET v_unites = "DIX-HUIT"
IF v_centimes = 19 THEN LET v_unites = "DIX-NEUF"
LET v_centimes = 0
{ MISE EN FORME ET IMPRESSION DU LIBELLE DES CENTIMES -------------------------}
IF v_total_net < 200000
THEN BEGIN
IF v_total IS NOT NULL
THEN PRINT "EUROS ";
LET v_total = ""
IF v_dizaines IS NOT NULL
THEN LET v_total = v_dizaines CLIPPED
IF v_unites IS NOT NULL
AND v_total IS NULL
THEN LET v_total = v_unites CLIPPED
IF v_unites IS NOT NULL
AND v_total IS NOT NULL
THEN IF v_unites = "ET UN"
OR v_unites = "ET ONZE"
THEN LET v_total = v_total CLIPPED, 1 SPACE, v_unites CLIPPED
ELSE LET v_total = v_total CLIPPED, "-", v_unites CLIPPED
PRINT v_total CLIPPED;
IF v_dizaines IS NULL
AND (v_unites = "ZERO" OR v_unites = "UN")
THEN PRINT " CENTIME", ESC, "(s0B"
ELSE PRINT " CENTIMES", ESC, "(s0B"
END
ELSE PRINT ESC, "(s0B"
{===================================} END {==================================} |
Partager