1 : C TBMAIN SOURCE CHAT 07/10/29 21:29:16 5940 2 : * PERMET D'AFFICHER SUR ECRAN OU IMPRIMANTE 3 : * UN TABLEAU. 4 : *************************************************** 5 : * ** LISTE DES FONCTIONS ET PROCEDURES: 6 : *************************************************** 7 : * 8 : * TABLEAU SUBROUTINE PRINCIPALE 9 : * EGALE (X,Y,P) FONCTION QUI RENVOIT .TRUE. SI LES 10 : * DEUX REAL*8 X ET Y SONT EGAUX A P PRES. 11 : * EFFACER PERMET D'EFFACER LA FENETRE GRAPHIQUE 12 : * EN REINITIALISANT LE SEGMENT POUR IMPRESSION. 13 : * NTAFFICHE AFFICHE LES ENTETES D'UN TABLEAU 14 : * NAFFICHE AFFICHE UNE CASE 15 : * AFFICHE AFFICHE UNE PAGE 16 : * TRINI ET SES FONCTIONS 17 : * 18 : 19 : SUBROUTINE TBMAIN 20 : IMPLICIT INTEGER(I-N) 21 : -INC CCOPTIO 22 : -INC SMEVOLL 23 : -INC CCGEOME 24 : -INC SMLENTI 25 : -INC TMNTAB 26 : *************************************************** 27 : * ** LISTE DES VARIABLES : 28 : *************************************************** 29 : * LPARAM LISTE DES PARAMETRES A LIRE 30 : * NPARAM NOMBRE DE PARAMETRES DANS LA LISTE 31 : * LEGEND TABLEAU DE CHAINE POUR LES MENUS 32 : * EV POINTEUR SUR UNE EVOLUTION 33 : * NBEVOL NOMBRE DE COURBES DANS L'OJET EVOLUTION 34 : * CURPX PAGE COURANTE EN X 35 : * CURPY PAGE COURANTE EN Y 36 : * ITABX NOMBRE DE COLONNES DE L'OBJET TABTR 37 : * ITABY NOMBRE DE LIGNES DE L'OBJET TABTR 38 : * NBPX NOMBRE DE PAGES EN X 39 : * NBPY NOMBRE DE PAGES EN Y 40 : * NBPAGE NOMBRE DE PAGES DE L'OBJET TABTR 41 : * TABTR SEGMENT POUR LE TABLEAU 42 : 43 : *************************************************** 44 : * ** DEFINITION DES VARIABLES: 45 : *************************************************** 46 : LOGICAL VALEUR,ZN,ZD 47 : CHARACTER*128 TMPCAR 48 : POINTEUR EV.MEVOLL 49 : POINTEUR LI.MLENTI 50 : REAL*8 EPSILN,RA,RB 51 : CHARACTER*10 LPARAM (17) 52 : INTEGER NPARAM 53 : CHARACTER*25 LEGEND (6) 54 : INTEGER CURPX,CURPY,FX,FY 55 : INTEGER ITABX,ITABY 56 : INTEGER PAGESX,PAGESY,NBPX,NBPY 57 : INTEGER NUM,NUM2 58 : 59 : *************************************************** 60 : * ** INITIALISATION DES VARIABLES: 61 : *************************************************** 62 : DATA LPARAM /'TITR','STITR','TCOL','TLIG','NOCENTER', 63 : # 'NOLIG','NODATE','TEXCOU','LIGCOU','COLCOU','TITCOU', 64 : # 'TRILIG','TRICOL','VERTICAL','PAGE','NOPAGE','LOGO'/ 65 : NPARAM = 17 66 : EPSILN = DBLE (0) 67 : ITABX = 0 68 : ITABY = 0 69 : TABTR = 0 70 : LI = 0 71 : 72 : *************************************************** 73 : * ** LECTURE DES OBJETS 74 : *************************************************** 75 : * 76 : * EVOLUTION 77 : * 77 : CALL LIROBJ ('EVOLUTIO',IRET,0,IRETOU) 78 : IF (IRETOU.EQ.1) THEN 78 : CALL EVLIRE ( IRET, TABTR, EPSILN,ITABX, ITABY) 79 : IF (TABTR.EQ.0) GOTO 1000 80 : SEGACT TABTR*MOD 81 : GOTO 200 82 : ENDIF 83 : * 84 : * CHAMP PAR POINT 85 : * 85 : CALL LIROBJ ('CHPOINT',IRET,0,IRETOU) 86 : IF (IRETOU.EQ.1) THEN 86 : CALL CHLIRE ( IRET, TABTR, EPSILN,ITABX, ITABY) 87 : IF (TABTR.EQ.0) GOTO 1000 88 : SEGACT TABTR*MOD 89 : GOTO 200 90 : ENDIF 91 : * 92 : * CHAMP PAR ELEMENT 93 : * 93 : CALL LIROBJ ('MCHAML',IRET,0,IRETOU) 94 : IF (IRETOU.EQ.1) THEN 94 : CALL CELIRE ( IRET, TABTR, EPSILN,ITABX, ITABY) 95 : IF (TABTR.EQ.0) GOTO 1000 96 : SEGACT TABTR*MOD 97 : GOTO 200 98 : ENDIF 99 : * 100 : * PAS D'OBJET 101 : * 102 : GOTO 1000 103 : 104 : *************************************************** 105 : * ** INITIALISATION PAR DEFAUT DE TABTR 106 : *************************************************** 107 : 200 CONTINUE 108 : * 109 : * INITIALISE LA DEFINITION DES PAGES DU TABLEAU 110 : * 111 : IF (ZHORIZ) THEN 111 : CALL TBPAYS (NBPX, NBPY, TABTR, ITABX,ITABY) 112 : ELSE 112 : CALL TBPORT (NBPX, NBPY, TABTR, ITABX,ITABY) 113 : ENDIF 114 : * REGARDE S'IL FAUT METTRE LES NUMEROS DE PAGES 115 : IF (TABTR.PX*TABTR.PY.GT.1) THEN 116 : TABTR.ZPAGE = .TRUE. 117 : ELSE 118 : TABTR.ZPAGE = .FALSE. 119 : ENDIF 120 : 121 : *************************************************** 122 : * ** LECTURE DES MOTS CLE: POST TRAITEMENT DU TABLEAU 123 : *************************************************** 124 : 400 CONTINUE 124 : CALL LIRMOT (LPARAM,NPARAM,INDICE,0) 125 : IF (INDICE.NE.0) THEN 126 : GOTO (405,410,415,420,425,430,435,440,445,450,455, 127 : # 460,465,470,475,480,485),INDICE 128 : * 129 : * MODIFICATION DU TITRE 130 : * 131 : 405 CONTINUE 131 : CALL LIRCHA (TMPCAR,1,IRETOU) 132 : TABTR.TITGEN = TMPCAR 133 : GOTO 400 134 : * 135 : * MODIFICATION DU SOUS TITRE 136 : * 137 : 410 CONTINUE 137 : CALL LIRCHA (TMPCAR,1,IRETOU) 138 : TABTR.SSTITR = TMPCAR 139 : GOTO 400 140 : * 141 : * MODIFICATION DU TITRE D'UNE COLONNE 142 : * 143 : 415 CONTINUE 143 : CALL LIRENT ( NUM, 1,IRETOU) 143 : CALL LIRCHA ( TMPCAR,1,IRETOU) 144 : IF (TABTR.EQ.0) GOTO 400 145 : IF ( (NUM.LT.1).OR. (NUM.GT.ITABX)) GOTO 400 146 : TABTR.ELEM (NUM,1) = TMPCAR 147 : TABTR.TITCOL (NUM) = TMPCAR 148 : IF (ZHORIZ) THEN 148 : CALL TBPAYS ( NBPX, NBPY, TABTR, ITABX,ITABY) 149 : ELSE 149 : CALL TBPORT ( NBPX, NBPY, TABTR, ITABX,ITABY) 150 : ENDIF 151 : GOTO 400 152 : * 153 : * MODIFICATION DU TITRE D'UNE LIGNE 154 : * 155 : 420 CONTINUE 155 : CALL LIRENT ( NUM, 1, IRETOU) 155 : CALL LIRCHA ( TMPCAR,1,IRETOU) 156 : IF (TABTR.EQ.0) GOTO 400 157 : IF ( (NUM.LT.1).OR. (NUM.GT.ITABY)) GOTO 400 158 : TABTR.ELEM (1,NUM) = TMPCAR 159 : GOTO 400 160 : * 161 : * NE PAS CENTRER LES TABLEAUX 162 : * 163 : 425 CONTINUE 164 : TABTR.ZCTRER = .FALSE. 165 : GOTO 400 166 : * 167 : * NE PAS FAIRE L'ENCADREMENT AUTOMATIQUE 168 : * 169 : 430 CONTINUE 170 : TABTR.ZAULIG = .FALSE. 171 : GOTO 400 172 : * 173 : * ENLEVER LA DATE 174 : * 175 : 435 CONTINUE 176 : ZD = .FALSE. 177 : TABTR.ZDATE = .FALSE. 178 : GOTO 400 179 : * 180 : * CHANGER LA COULEUR DU TEXTE 181 : * 182 : 440 CONTINUE 182 : CALL LIRENT ( NUM, 1, IRETOU) 183 : TABTR.ITEXC = NUM 184 : GOTO 400 185 : * 186 : * CHANGER LA COULEUR DES ENCADREMENTS 187 : * 188 : 445 CONTINUE 188 : CALL LIRENT ( NUM, 1, IRETOU) 189 : TABTR.ILIGC = NUM 190 : GOTO 400 191 : * 192 : * CHANGER LA COULEUR DES TITRES DE COLONNES 193 : * 194 : 450 CONTINUE 194 : CALL LIRENT ( NUM, 1, IRETOU) 195 : TABTR.ICOLC = NUM 196 : GOTO 400 197 : * 198 : * CHANGER LA COULEUR DES TITRES 199 : * 200 : 455 CONTINUE 200 : CALL LIRENT ( NUM, 1, IRETOU) 201 : TABTR.ITITC = NUM 202 : GOTO 400 203 : * 204 : * TRIER LES LIGNES 205 : * 206 : 460 CONTINUE 206 : CALL LIRENT ( NUM, 1, IRETOU) 207 : IF ( (NUM.LT.1).OR. (NUM.GT.ITABX)) GOTO 400 207 : CALL TBTRLI ( NUM,3, TABTR, ITABX, ITABY) 208 : GOTO 400 209 : * 210 : * TRIER LES COLONNES 211 : * 212 : 465 CONTINUE 212 : CALL LIRENT ( NUM, 1, IRETOU) 213 : IF ( (NUM.LT.1).OR. (NUM.GT.ITABY)) GOTO 400 213 : CALL TBTRCO ( NUM,3, TABTR, ITABX, ITABY) 214 : GOTO 400 215 : * 216 : * PASSER EN MODE PORTRAIT 217 : * 218 : 470 CONTINUE 218 : if (ZINIPS) CALL TBPORT ( NBPX, NBPY, TABTR, ITABX,ITABY) 219 : GOTO 400 220 : * 221 : * FORCER L'AFFICHAGE DES NUMEROS DE PAGE 222 : * 223 : 475 CONTINUE 224 : TABTR.ZPAGE = .TRUE. 225 : GOTO 400 226 : * 227 : * FORCER LE NON AFFICHAGE DES NUMEROS DE PAGES 228 : * 229 : 480 CONTINUE 230 : TABTR.ZPAGE = .FALSE. 231 : GOTO 400 232 : * 233 : * INSERER LE LOGO 234 : * 235 : 485 CONTINUE 236 : TABTR.ZLOGO = .TRUE. 237 : GOTO 400 238 : * 239 : ENDIF 240 : 241 : *************************************************** 242 : * ** AFFICHAGE DE LA FENETRE 243 : *************************************************** 244 : IF (IOGRA.EQ.1) GOTO 900 245 : IF (IOGRA.EQ.7) GOTO 900 246 : IF (IOGRA.EQ.8) GOTO 900 247 : * INITIALISATION DU NOMBRE DE COULEURS 248 : if (ZHORIZ) then 248 : CALL TRINIT (24,29.7,21.,' ',1.,VALEUR,NBCOUL) 249 : else 249 : CALL TRINIT (24,21.,29.7,' ',1.,VALEUR,NBCOUL) 250 : endif 251 : CURPX = 1 252 : CURPY = 1 253 : * 254 : 255 : *************************************************** 256 : * ** CREATION DU MENU: ATTENTE DES ORDRES 257 : *************************************************** 258 : 600 CONTINUE 259 : * 260 : * AFFICHAGE MENU PRINCIPAL 261 : * 262 : 602 CONTINUE 262 : CALL TBAFF ( CURPX, CURPY, TABTR ) 263 : LEGEND (1)='Fin dessin' 264 : LEGEND (2)=' Suivante ' 265 : LEGEND (3)='Precedante' 266 : LEGEND (4)='Options >>' 267 : IF (ZHORIZ) THEN 268 : LEGEND (5)='Hor/Vert (H)' 269 : ELSE 270 : LEGEND (5)='Hor/Vert (V)' 271 : ENDIF 271 : CALL MENU (LEGEND,5,12) 271 : CALL TRAFF (ICLE) 272 : * FIN DESSIN 273 : IF (ICLE.EQ.0) GOTO 1000 274 : * AFFICHER LA PAGE SUIVANTE 275 : IF (ICLE.EQ.1) THEN 276 : CURPX = CURPX+1 277 : IF (CURPX.EQ. (NBPX+1)) THEN 278 : CURPX=1 279 : CURPY=CURPY+1 280 : IF (CURPY.EQ. (NBPY+1)) THEN 281 : CURPY=1 282 : ENDIF 283 : ENDIF 284 : ENDIF 285 : * AFFICHER LA PAGE PRECEDANTE 286 : IF (ICLE.EQ.2) THEN 287 : CURPX = CURPX - 1 288 : IF (CURPX.EQ.0) THEN 289 : CURPX = NBPX 290 : CURPY = CURPY -1 291 : IF (CURPY.EQ.0) THEN 292 : CURPY = NBPY 293 : ENDIF 294 : ENDIF 295 : ENDIF 296 : * OPTIONS 297 : IF (ICLE.EQ.3) GOTO 610 298 : * BASCULER 299 : IF (ICLE.EQ.4) THEN 300 : IF (ZINIPS) THEN 301 : NBPX = 0 302 : NBPY = 0 303 : IF (ZHORIZ) THEN 303 : CALL TBPORT ( NBPX, NBPY, TABTR ,ITABX,ITABY) 304 : ELSE 304 : CALL TBPAYS ( NBPX, NBPY, TABTR, ITABX,ITABY) 305 : ENDIF 306 : CURPX = 1 307 : CURPY = 1 308 : ENDIF 309 : ENDIF 310 : * RETOUR 311 : GOTO 602 312 : * 313 : * SOUS MENU OPTIONS 314 : * 315 : 610 CONTINUE 315 : CALL TBAFF ( CURPX, CURPY, TABTR ) 316 : LEGEND (1)=' << options' 317 : LEGEND (2)=' Arranger >>' 318 : LEGEND (3)='Encadrement >>' 319 : LEGEND (4)=' Titres >>' 320 : LEGEND (5)=' Couleurs >>' 321 : LEGEND (6)=' Divers >>' 321 : CALL MENU (LEGEND,6,16) 321 : CALL TRAFF (ICLE) 322 : * REVENIR 323 : IF (ICLE.EQ.0) THEN 323 : CALL TBAFF ( CURPX, CURPY, TABTR ) 324 : GOTO 602 325 : ENDIF 326 : * TRIER 327 : IF (ICLE.EQ.1) GOTO 620 328 : * ENCADREMENT 329 : IF (ICLE.EQ.2) GOTO 630 330 : * TITRES 331 : IF (ICLE.EQ.3) GOTO 640 332 : * COULEURS 333 : IF (ICLE.EQ.4) GOTO 650 334 : * DIVERS 335 : IF (ICLE.EQ.5) GOTO 710 336 : * RETOUR 337 : GOTO 610 338 : * 339 : * SOUS MENU ARANGER 340 : * 341 : 620 CONTINUE 341 : CALL TBAFF ( CURPX, CURPY, TABTR ) 342 : LEGEND (1)=' << Aranger' 343 : LEGEND (2)='Trier Colonnes >>' 344 : LEGEND (3)=' Trier Lignes >>' 345 : LEGEND (4)=' Modifier >>' 345 : CALL MENU (LEGEND,4,17) 345 : CALL TRAFF (ICLE) 346 : * REVENIR 347 : IF (ICLE.EQ.0) GOTO 610 348 : * TRIER LES COLONNES 349 : IF (ICLE.EQ.1) GOTO 700 350 : * TRIER LES LIGNES 351 : IF (ICLE.EQ.2) GOTO 690 352 : * MODIFIER 353 : IF (ICLE.EQ.3) GOTO 730 354 : * RETOUR 355 : GOTO 620 356 : * 357 : * SOUS MENU ENCADREMENT 358 : * 359 : 630 CONTINUE 359 : CALL TBAFF ( CURPX, CURPY, TABTR ) 360 : LEGEND (1)='<< encadrement' 361 : LEGEND (2)='inter Colonnes >>' 362 : LEGEND (3)='inter Lignes >> ' 363 : LEGEND (4)=' Cellule >> ' 363 : CALL MENU (LEGEND,4,18) 363 : CALL TRAFF (ICLE) 364 : * REVENIR 365 : IF (ICLE.EQ.0) GOTO 610 366 : * INTER COLONNE 367 : IF (ICLE.EQ.1) THEN 368 : GOTO 680 369 : ENDIF 370 : * INTER LIGNE 371 : IF (ICLE.EQ.2) THEN 372 : GOTO 660 373 : ENDIF 374 : * CELLULE 375 : IF (ICLE.EQ.3) THEN 376 : GOTO 670 377 : ENDIF 378 : * RETOUR 379 : GOTO 630 380 : * 381 : * SOUS MENU TITRES 382 : * 383 : 640 CONTINUE 383 : CALL TBAFF ( CURPX, CURPY, TABTR ) 384 : LEGEND (1)=' << titres' 385 : LEGEND (2)=' General ' 386 : LEGEND (3)='Sous titre' 387 : LEGEND (4)=' Colonne ' 388 : LEGEND (5)=' Ligne ' 388 : CALL MENU (LEGEND,5,10) 388 : CALL TRAFF (ICLE) 389 : * REVENIR 390 : IF (ICLE.EQ.0) GOTO 610 391 : * CHANGER LE TITRE DU TABLEAU 392 : IF (ICLE.EQ.1) THEN 392 : CALL TRGET ('Entrer le nouveau titre:',TMPCAR) 393 : TABTR.TITGEN=TMPCAR 393 : CALL TBAFF ( CURPX, CURPY, TABTR) 394 : ENDIF 395 : * CHANGER LE SOUS TITRE 396 : IF (ICLE.EQ.2) THEN 396 : CALL TRGET ('Entrer le nouveau sous-titre:',TMPCAR) 397 : TABTR.SSTITR=TMPCAR 397 : CALL TBAFF ( CURPX, CURPY, TABTR) 398 : ENDIF 399 : * CHANGER LE TITRE D'UNE COLONNE 400 : IF (ICLE.EQ.3) THEN 400 : CALL TRMESS ('Cliquer sur la colonne.') 400 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 401 : IF ( (IX.LT.1).OR. (IX.GT.ITABX)) THEN 401 : CALL TRMESS ('Emplacement invalide') 402 : GOTO 640 403 : ENDIF 403 : CALL TRGET ('Entrer le nouveau titre de colonne:',TMPCAR) 404 : TABTR.ELEM (IX,1) = TMPCAR 405 : TABTR.TITCOL (IX) = TMPCAR 405 : CALL TBTRHT (TABTR,ITABX) 406 : IF (ZHORIZ) THEN 406 : CALL TBPAYS ( NBPX, NBPY, TABTR, ITABX,ITABY) 407 : ELSE 407 : CALL TBPORT ( NBPX, NBPY, TABTR, ITABX,ITABY) 408 : ENDIF 408 : CALL TBAFF ( CURPX, CURPY, TABTR) 409 : ENDIF 410 : * CHANGER LE TITRE D'UNE LIGNE 411 : IF (ICLE.EQ.4) THEN 411 : CALL TRMESS ('Cliquer sur la ligne.') 411 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 412 : IF ( (IY.LT.1).OR. (IY.GT.ITABY)) THEN 412 : CALL TRMESS ('Emplacement invalide') 413 : GOTO 640 414 : ENDIF 414 : CALL TRGET ('Entrer le nouveau titre de ligne:',TMPCAR) 415 : TABTR.ELEM (1,IY) = TMPCAR 415 : CALL TBAFF ( CURPX, CURPY, TABTR) 416 : ENDIF 417 : * RETOUR 418 : GOTO 640 419 : * 420 : * SOUS MENU COULEURS 421 : * 422 : 650 CONTINUE 422 : CALL TBAFF ( CURPX, CURPY, TABTR ) 423 : LEGEND (1)=' << couleurs' 424 : LEGEND (2)=' Texte ' 425 : LEGEND (3)='Encadrement ' 426 : LEGEND (4)=' Colonnes ' 427 : LEGEND (5)=' Titres ' 428 : LEGEND (6)=' Logo ' 428 : CALL MENU (LEGEND,6,12) 428 : CALL TRAFF (ICLE) 429 : * REVENIR 430 : IF (ICLE.EQ.0) GOTO 610 431 : * TEXTE 432 : IF (ICLE.EQ.1) THEN 433 : NUM=NBCOUL 433 : CALL TRGETC (NUM) 434 : TABTR.ITEXC = NUM 434 : CALL TBAFF ( CURPX, CURPY, TABTR) 435 : ENDIF 436 : * ENCADREMENT 437 : IF (ICLE.EQ.2) THEN 438 : NUM=NBCOUL 438 : CALL TRGETC (NUM) 439 : TABTR.ILIGC = NUM 440 : ENDIF 441 : * COLONNES 442 : IF (ICLE.EQ.3) THEN 443 : NUM=NBCOUL 443 : CALL TRGETC (NUM) 444 : TABTR.ICOLC = NUM 445 : ENDIF 446 : * TITRES 447 : IF (ICLE.EQ.4) THEN 448 : NUM=NBCOUL 448 : CALL TRGETC (NUM) 449 : TABTR.ITITC = NUM 450 : ENDIF 451 : * LOGO 452 : IF (ICLE.EQ.5) THEN 453 : NUM=NBCOUL 453 : CALL TRGETC (NUM) 454 : TABTR.ILOGC = NUM 455 : ENDIF 456 : * RETOUR 457 : GOTO 650 458 : * 459 : * SOUS MENU ENCADREMENT INTER LIGNE 460 : * 461 : 660 CONTINUE 461 : CALL TBAFF ( CURPX, CURPY, TABTR ) 462 : LEGEND (1)='<< encadrement-lignes' 463 : LEGEND (2)=' Normal ' 464 : LEGEND (3)=' Gras ' 465 : LEGEND (4)=' Enlever ' 465 : CALL MENU (LEGEND,4,22) 465 : CALL TRAFF (ICLE) 466 : * REVENIR 467 : IF (ICLE.EQ.0) GOTO 630 468 : * NORMAL 469 : IF (ICLE.EQ.1) THEN 469 : CALL TRMESS ('Cliquer sur la ligne.') 469 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 470 : IF (IY.EQ.0) IY=TABTR.CIDY (CURPX,CURPY)+1 471 : DO 662 IX=1 , ITABX 472 : TABTR.ZHSEP (IX,IY) = .TRUE. 473 : TABTR.ZGHSEP (IX,IY) = .FALSE. 474 : 662 CONTINUE 475 : ENDIF 476 : * GRAS 477 : IF (ICLE.EQ.2) THEN 477 : CALL TRMESS ('Cliquer sur la ligne.') 477 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 478 : IF (IY.EQ.0) IY=TABTR.CIDY (CURPX,CURPY)+1 479 : DO 664 IX=1 , ITABX 480 : TABTR.ZHSEP (IX,IY) = .TRUE. 481 : TABTR.ZGHSEP (IX,IY) = .TRUE. 482 : 664 CONTINUE 483 : ENDIF 484 : * ENLEVER 485 : IF (ICLE.EQ.3) THEN 485 : CALL TRMESS ('Cliquer sur la ligne.') 485 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 486 : IF (IY.EQ.0) IY=TABTR.CIDY (CURPX,CURPY)+1 487 : DO 666 IX=1 , ITABX 488 : TABTR.ZGHSEP (IX,IY) = .FALSE. 489 : TABTR.ZHSEP (IX,IY) = .FALSE. 490 : 666 CONTINUE 491 : ENDIF 492 : * RETOUR 493 : GOTO 660 494 : * 495 : * SOUS MENU ENCADREMENT CELLULE 496 : * 497 : 670 CONTINUE 497 : CALL TBAFF ( CURPX, CURPY, TABTR ) 498 : LEGEND (1)='<MENU (LEGEND,4,23) 501 : CALL TRAFF (ICLE) 502 : * REVENIR 503 : IF (ICLE.EQ.0) GOTO 630 504 : * NORMAL 505 : IF (ICLE.EQ.1) THEN 505 : CALL TRMESS ('Cliquer sur la cellule.') 505 : CALL TBGTXY (CURPX,CURPY,TABTR,NUM,NUM2,FX,FY) 506 : IF (NUM.EQ.0) THEN 507 : IDEBX=1 508 : IFINX=ITABX 509 : ELSE 510 : IDEBX=NUM 511 : IFINX=NUM 512 : ENDIF 513 : IF (NUM2.EQ.0) THEN 514 : IDEBY=1 515 : IFINY=ITABY 516 : ELSE 517 : IDEBY=NUM2 518 : IFINY=NUM2 519 : ENDIF 520 : DO 671 IX=IDEBX , IFINX 521 : TABTR.ZHSEP (IX,IDEBY ) = .TRUE. 522 : TABTR.ZGHSEP (IX,IDEBY ) = .FALSE. 523 : TABTR.ZHSEP (IX,IFINY+1) = .TRUE. 524 : TABTR.ZGHSEP (IX,IFINY+1) = .FALSE. 525 : 671 CONTINUE 526 : DO 672 IY=IDEBY , IFINY 527 : TABTR.ZVSEP (IDEBX ,IY) = .TRUE. 528 : TABTR.ZGVSEP (IDEBX ,IY) = .FALSE. 529 : TABTR.ZVSEP (IFINX+1,IY) = .TRUE. 530 : TABTR.ZGVSEP (IFINX+1,IY) = .FALSE. 531 : 672 CONTINUE 532 : ENDIF 533 : * GRAS 534 : IF (ICLE.EQ.2) THEN 534 : CALL TRMESS ('Cliquer sur la cellule.') 534 : CALL TBGTXY (CURPX,CURPY,TABTR,NUM,NUM2,FX,FY) 535 : IF (NUM.EQ.0) THEN 536 : IDEBX=1 537 : IFINX=ITABX 538 : ELSE 539 : IDEBX=NUM 540 : IFINX=NUM 541 : ENDIF 542 : IF (NUM2.EQ.0) THEN 543 : IDEBY=1 544 : IFINY=ITABY 545 : ELSE 546 : IDEBY=NUM2 547 : IFINY=NUM2 548 : ENDIF 549 : DO 673 IX=IDEBX , IFINX 550 : TABTR.ZHSEP (IX,IDEBY ) = .TRUE. 551 : TABTR.ZGHSEP (IX,IDEBY ) = .TRUE. 552 : TABTR.ZHSEP (IX,IFINY+1) = .TRUE. 553 : TABTR.ZGHSEP (IX,IFINY+1) = .TRUE. 554 : 673 CONTINUE 555 : DO 674 IY=IDEBY , IFINY 556 : TABTR.ZVSEP (IDEBX ,IY) = .TRUE. 557 : TABTR.ZGVSEP (IDEBX ,IY) = .TRUE. 558 : TABTR.ZVSEP (IFINX+1,IY) = .TRUE. 559 : TABTR.ZGVSEP (IFINX+1,IY) = .TRUE. 560 : 674 CONTINUE 561 : ENDIF 562 : * ENLEVER 563 : IF (ICLE.EQ.3) THEN 563 : CALL TRMESS ('Cliquer sur la cellule.') 563 : CALL TBGTXY (CURPX,CURPY,TABTR,NUM,NUM2,FX,FY) 564 : IF (NUM.EQ.0) THEN 565 : IDEBX=1 566 : IFINX=ITABX 567 : ELSE 568 : IDEBX=NUM 569 : IFINX=NUM 570 : ENDIF 571 : IF (NUM2.EQ.0) THEN 572 : IDEBY=1 573 : IFINY=ITABY 574 : ELSE 575 : IDEBY=NUM2 576 : IFINY=NUM2 577 : ENDIF 578 : DO 675 IX=IDEBX , IFINX 579 : TABTR.ZHSEP (IX,IDEBY ) = .FALSE. 580 : TABTR.ZGHSEP (IX,IDEBY ) = .FALSE. 581 : TABTR.ZHSEP (IX,IFINY+1) = .FALSE. 582 : TABTR.ZGHSEP (IX,IFINY+1) = .FALSE. 583 : 675 CONTINUE 584 : DO 676 IY=IDEBY , IFINY 585 : TABTR.ZVSEP (IDEBX ,IY) = .FALSE. 586 : TABTR.ZGVSEP (IDEBX ,IY) = .FALSE. 587 : TABTR.ZVSEP (IFINX+1,IY) = .FALSE. 588 : TABTR.ZGVSEP (IFINX+1,IY) = .FALSE. 589 : 676 CONTINUE 590 : ENDIF 591 : * RETOUR 592 : GOTO 670 593 : * 594 : * SOUS MENU ENCADREMENT INTER COLONNE 595 : * 596 : 680 CONTINUE 596 : CALL TBAFF ( CURPX, CURPY, TABTR ) 597 : LEGEND (1)='R ' 598 : LEGEND (2)=' Normal ' 599 : LEGEND (3)=' Gras ' 600 : LEGEND (4)=' Enlever ' 600 : CALL MENU (LEGEND,4,23) 600 : CALL TRAFF (ICLE) 601 : * REVENIR 602 : IF (ICLE.EQ.0) GOTO 630 603 : * NORMAL 604 : IF (ICLE.EQ.1) THEN 604 : CALL TRMESS ('Cliquer sur la colonne.') 604 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 605 : IF (IX.EQ.0) IX=TABTR.CIDX (CURPX,CURPY)+1 606 : DO 682 IY=1 , ITABY 607 : TABTR.ZVSEP (IX,IY) = .TRUE. 608 : TABTR.ZGVSEP (IX,IY) = .FALSE. 609 : 682 CONTINUE 610 : ENDIF 611 : * GRAS 612 : IF (ICLE.EQ.2) THEN 612 : CALL TRMESS ('Cliquer sur la colonne.') 612 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 613 : IF (IX.EQ.0) IX=TABTR.CIDX (CURPX,CURPY)+1 614 : DO 684 IY=1 , ITABY 615 : TABTR.ZVSEP (IX,IY) = .TRUE. 616 : TABTR.ZGVSEP (IX,IY) = .TRUE. 617 : 684 CONTINUE 618 : ENDIF 619 : * ENLEVER 620 : IF (ICLE.EQ.3) THEN 620 : CALL TRMESS ('Cliquer sur la colonne.') 620 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 621 : IF (IX.EQ.0) IX=TABTR.CIDX (CURPX,CURPY)+1 622 : DO 686 IY=1 , ITABY 623 : TABTR.ZGVSEP (IX,IY) = .FALSE. 624 : TABTR.ZVSEP (IX,IY) = .FALSE. 625 : 686 CONTINUE 626 : ENDIF 627 : * RETOUR 628 : GOTO 680 629 : * 630 : * SOUS MENU TRIER LIGNES 631 : * 632 : 690 CONTINUE 632 : CALL TBAFF ( CURPX, CURPY, TABTR ) 633 : LEGEND (1)='<< trier-lignes' 634 : LEGEND (2)=' Croissant ' 635 : LEGEND (3)=' Decroissant ' 635 : CALL MENU (LEGEND,3,15) 635 : CALL TRAFF (ICLE) 636 : * REVENIR 637 : IF (ICLE.EQ.0) GOTO 620 638 : * CROISSANT 639 : IF (ICLE.EQ.1) THEN 639 : CALL TRMESS ('Cliquer sur la colonne de reference.') 639 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 640 : IF ( (IX.LT.1).OR. (IX.GT.ITABX)) THEN 640 : CALL TRMESS ('Emplacement invalide') 641 : GOTO 690 642 : ENDIF 643 : NUM2 = 3 644 : IF (TABTR.YTYPE (IX).EQ.'LISTENTI') NUM2=5 645 : IF (TABTR.YTYPE (IX).EQ.'LISTREEL') NUM2=1 645 : CALL TBTRLI ( IX, NUM2, TABTR, ITABX, ITABY) 645 : CALL TBAFF ( CURPX, CURPY, TABTR ) 646 : GOTO 610 647 : ENDIF 648 : * DECROISSANT 649 : IF (ICLE.EQ.2) THEN 649 : CALL TRMESS ('Cliquer sur la colonne de reference.') 649 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 650 : IF ( (IX.LT.1).OR. (IX.GT.ITABX)) THEN 650 : CALL TRMESS ('Emplacement invalide') 651 : GOTO 690 652 : ENDIF 653 : NUM2 = 4 654 : IF (TABTR.YTYPE (IX).EQ.'LISTENTI') NUM2=6 655 : IF (TABTR.YTYPE (IX).EQ.'LISTREEL') NUM2=2 655 : CALL TBTRLI ( IX, NUM2, TABTR, ITABX, ITABY) 655 : CALL TBAFF ( CURPX, CURPY, TABTR ) 656 : GOTO 610 657 : ENDIF 658 : * RETOUR 659 : GOTO 690 660 : * 661 : * SOUS MENU TRIER COLONNES 662 : * 663 : 700 CONTINUE 663 : CALL TBAFF ( CURPX, CURPY, TABTR ) 664 : LEGEND (1)='<< trier-colonnes' 665 : LEGEND (2)=' Croissant ' 666 : LEGEND (3)=' Decroissant ' 666 : CALL MENU (LEGEND,3,18) 666 : CALL TRAFF (ICLE) 667 : * REVENIR 668 : IF (ICLE.EQ.0) GOTO 620 669 : * CROISSANT 670 : IF (ICLE.EQ.1) THEN 670 : CALL TRMESS ('Cliquer sur la ligne de reference.') 670 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 671 : IF ( (IY.LT.1).OR. (IY.GT.ITABY)) THEN 671 : CALL TRMESS ('Emplacement invalide') 672 : GOTO 620 673 : ENDIF 673 : CALL TBTRCO ( IY, 3, TABTR, ITABX, ITABY) 673 : CALL TBAFF ( CURPX, CURPY, TABTR ) 674 : GOTO 610 675 : ENDIF 676 : * DECROISSANT 677 : IF (ICLE.EQ.2) THEN 677 : CALL TRMESS ('Cliquer sur la ligne de reference.') 677 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 678 : IF ( (IY.LT.1).OR. (IY.GT.ITABY)) THEN 678 : CALL TRMESS ('Emplacement invalide') 679 : GOTO 620 680 : ENDIF 680 : CALL TBTRCO ( IY, 4, TABTR, ITABX, ITABY) 680 : CALL TBAFF ( CURPX, CURPY, TABTR ) 681 : GOTO 610 682 : ENDIF 683 : * RETOUR 684 : GOTO 700 685 : * 686 : * SOUS MENU DIVERS 687 : * 688 : 710 CONTINUE 688 : CALL TBAFF ( CURPX, CURPY, TABTR ) 689 : LEGEND (1)='<< options-divers' 690 : IF (TABTR.ZDATE) THEN 691 : LEGEND (2)=' (X) date' 692 : ELSE 693 : LEGEND (2)=' ( ) date' 694 : ENDIF 695 : IF (TABTR.ZCTRER) THEN 696 : LEGEND (3)=' (X) centrer' 697 : ELSE 698 : LEGEND (3)=' ( ) centrer' 699 : ENDIF 700 : IF (TABTR.ZAULIG) THEN 701 : LEGEND (4)=' (X) lignes' 702 : ELSE 703 : LEGEND (4)=' ( ) lignes' 704 : ENDIF 705 : IF (TABTR.ZPAGE) THEN 706 : LEGEND (5)=' (X) No page' 707 : ELSE 708 : LEGEND (5)=' ( ) No page' 709 : ENDIF 710 : LEGEND (6)=' Logo >> ' 710 : CALL MENU (LEGEND,6,17) 710 : CALL TRAFF (ICLE) 711 : * REVENIR 712 : IF (ICLE.EQ.0) GOTO 610 713 : * DATE 714 : IF (ICLE.EQ.1) THEN 715 : TABTR.ZDATE = .NOT.TABTR.ZDATE 716 : GOTO 710 717 : ENDIF 718 : * CENTRER 719 : IF (ICLE.EQ.2) THEN 720 : TABTR.ZCTRER = .NOT.TABTR.ZCTRER 720 : CALL TBTRXY (TABTR,NBPX,NBPY) 721 : GOTO 710 722 : ENDIF 723 : * AUTOLIGNES 724 : IF (ICLE.EQ.3) THEN 725 : TABTR.ZAULIG = .NOT.TABTR.ZAULIG 726 : GOTO 710 727 : ENDIF 728 : * PAGES 729 : IF (ICLE.EQ.4) THEN 730 : TABTR.ZPAGE = .NOT.TABTR.ZPAGE 731 : GOTO 710 732 : ENDIF 733 : * LOGO 734 : IF (ICLE.EQ.5) THEN 735 : GOTO 720 736 : ENDIF 737 : * RETOUR 738 : GOTO 710 739 : * 740 : * SOUS MENU LOGO 741 : * 742 : 720 CONTINUE 742 : CALL TBAFF ( CURPX, CURPY, TABTR ) 743 : LEGEND (1)=' << logo' 744 : LEGEND (2)='Position' 745 : LEGEND (3)='Couleur' 746 : LEGEND (4)='Taille' 747 : IF (TABTR.ZLOGO) THEN 748 : LEGEND (5)=' (X) Logo' 749 : ELSE 750 : LEGEND (5)=' ( ) Logo' 751 : ENDIF 751 : CALL MENU (LEGEND,5,9) 751 : CALL TRAFF (ICLE) 752 : * REVENIR 753 : IF (ICLE.EQ.0) GOTO 710 754 : * POSITION 755 : IF (ICLE.EQ.1) THEN 755 : CALL TRMESS ('Cliquer sur la nouvelle position.') 755 : CALL TRDIG (TABTR.XLPOS,TABTR.YLPOS,inouse) 756 : ENDIF 757 : * COULEUR 758 : IF (ICLE.EQ.2) THEN 759 : NUM=NBCOUL 759 : CALL TRGETC (NUM) 760 : TABTR.ILOGC = NUM 761 : ENDIF 762 : * TAILLE 763 : IF (ICLE.EQ.3) THEN 763 : CALL TRGET ('Entrer la nouvelle taille du logo:',TMPCAR) 764 : RA = F_ATOL (TMPCAR) 765 : NUM = F_ATOI (TMPCAR) 766 : IF ( (RA.LT.0.5).OR. (RA.GT.15.0)) RA=DBLE (NUM) 767 : IF ( (RA.LT.0.5).OR. (RA.GT.15.0)) THEN 767 : CALL TRMESS ('Taille invalide') 768 : ELSE 769 : TABTR.TLOGO = REAL (RA) 770 : ENDIF 771 : ENDIF 772 : * ON/OFF 773 : IF (ICLE.EQ.4) THEN 774 : TABTR.ZLOGO = .NOT.TABTR.ZLOGO 775 : ENDIF 776 : * RETOUR 777 : GOTO 720 778 : * 779 : * SOUS MENU MODIFIER 780 : * 781 : 730 CONTINUE 781 : CALL TBAFF ( CURPX, CURPY, TABTR ) 782 : LEGEND (1)=' << modifier' 783 : LEGEND (2)='Sup. Colonne' 784 : LEGEND (3)=' Sup. Ligne ' 785 : LEGEND (4)='Modif. Cell.' 785 : CALL MENU (LEGEND,4,12) 785 : CALL TRAFF (ICLE) 786 : * REVENIR 787 : IF (ICLE.EQ.0) GOTO 620 788 : * SUPPRIMER COLONNE 789 : IF (ICLE.EQ.1) THEN 789 : CALL TRMESS ('Cliquer sur la colonne à suprimer.') 789 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 790 : IF ( (IX.LT.1).OR. (IX.GT.ITABX)) THEN 790 : CALL TRMESS ('Emplacement invalide') 791 : ELSE 791 : CALL TBDELC (IX,NBPX,NBPY,TABTR,ITABX,ITABY) 792 : ENDIF 793 : ENDIF 794 : * SUPPRIMER LIGNE 795 : IF (ICLE.EQ.2) THEN 795 : CALL TRMESS ('Cliquer sur la ligne à suprimer.') 795 : CALL TBGTXY (CURPX,CURPY,TABTR,IX,IY,FX,FY) 796 : IF ( (IY.LT.1).OR. (IY.GT.ITABY)) THEN 796 : CALL TRMESS ('Emplacement invalide') 797 : ELSE 797 : CALL TBDELL (IY,NBPX,NBPY,TABTR,ITABX,ITABY) 798 : ENDIF 799 : ENDIF 800 : * MODIFIER CELLULE 801 : IF (ICLE.EQ.3) THEN 802 : ENDIF 803 : * RETOUR 804 : GOTO 730 805 : * 806 : 807 : *************************************************** 808 : * ** TRAITEMENT DES BATCHS 809 : *************************************************** 810 : 900 CONTINUE 811 : C print *,'On rentre dans la partie Traitement des batchs' 812 : 813 : DO 920 IY=1 , NBPY 814 : DO 910 IX=1 , NBPX 815 : 815 : CALL TBAFF (IX, IY, TABTR) 815 : CALL TRAFF (ICLE) 816 : 817 : 910 CONTINUE 818 : 920 CONTINUE 819 : 820 : *************************************************** 821 : * ** SORTIR ET LIBERER LA MEMOIRE 822 : *************************************************** 823 : 1000 CONTINUE 824 : IF (TABTR.NE.0) SEGSUP TABTR 825 : IF (LI.NE.0) SEGSUP LI 826 : ZHORIZ = .TRUE. 827 : END 828 : 829 : 830 : 831 : 832 : 833 : 834 : 835 : 836 : 837 : 838 : 839 :
© Cast3M 2003 - All rights reserved.
Disclaimer