tbafnt
C TBAFNT SOURCE GOUNAND 16/06/23 21:15:10 8982 c subroutine utilisee dans tableau *************************************************** * * AFFICHE LE TITRE SOUS TITRE ET DATE * A LA BONNE POSITION * *************************************************** * * DEFINITION DES VARIABLES * IMPLICIT INTEGER(I-N) -INC TMNTAB -INC SMLENTI -INC PPARAM -INC CCOPTIO INTEGER IPX,IPY INTEGER IEX,IX,IDEBX,IFINX,IXD INTEGER IEY,IY,IDEBY,IFINY,IYD INTEGER NBC,ICOUL CHARACTER*128 TMPCAR REAL RXPOS,RYPOS,HMIN POINTEUR LI.MLENTI LOGICAL ZH,ZB,ZG,ZD,ZGH,ZGB,ZGG,ZGD LOGICAL ZZH,ZZB,ZZGH,ZZGB INTEGER N,NBMCX,A,B * LI = 0 * * AFFICHAGE DU TITRE * ICOUL = TABTR.ITITC CALL CHCOUL (ICOUL) TMPCAR = TABTR.TITGEN IF (LI.EQ.0) GOTO 1202 RXPOS = 1. IF (ZHORIZ) THEN RYPOS = 20.5 ELSE RYPOS = 29.2 ENDIF SEGACT LI DO 1201 N=1 , NBMCX A = LI.LECT (2*N-1) B = LI.LECT (2*N) NBC = B-A+1 CALL TRLABL (RXPOS,RYPOS,0.,TMPCAR (A:B),NBC,HMIN) RYPOS = RYPOS - 0.5 1201 CONTINUE SEGSUP LI 1202 CONTINUE * * AFFICHAGE DU SOUS TITRE * TMPCAR = TABTR.SSTITR IF (LI.EQ.0) GOTO 1204 RXPOS = 1. IF (ZHORIZ) THEN RYPOS = 19.5 ELSE RYPOS = 28.2 ENDIF SEGACT LI DO 1203 N=1 , NBMCX A = LI.LECT (2*N-1) B = LI.LECT (2*N) NBC = B-A+1 CALL TRLABL (RXPOS,RYPOS,0.,TMPCAR (A:B),NBC,HMIN) RYPOS = RYPOS - 0.5 1203 CONTINUE SEGSUP LI 1204 CONTINUE * * AFFICHAGE DE LA DATE * IF ( TABTR.ZDATE ) THEN CALL GIBDAT (JOUR,MOIS,IANNEE) iannee=mod(iannee,100) TMPCAR (1:14)='Le 00/00/20 ' WRITE (TMPCAR (4:5),FMT='(I2)') JOUR WRITE (TMPCAR (7:8),FMT='(I2)') MOIS WRITE (TMPCAR (12:13),FMT='(I2)') IANNEE IF (ZHORIZ) THEN RXPOS = 20. RYPOS = 19.5 ELSE RXPOS = 15. RYPOS = 28.2 ENDIF CALL TRLABL (RXPOS,RYPOS,0.,TMPCAR (1:14),14,HMIN) ENDIF * * AFFICHAGE DES TIRES DE COLONNES * IXD = TABTR.IHDEC (IPX,IPY) IYD = TABTR.IVDEC (IPX,IPY) IDEBX = TABTR.CSGX (IPX,IPY) IFINX = TABTR.CIDX (IPX,IPY) IX=2+IXD DO 1210 IEX=IDEBX , IFINX LI = 0 IF (TABTR.ZAULIG) THEN ZG = .TRUE. ZH = .TRUE. ZD = .TRUE. ZB = .TRUE. ZGG = TABTR.ZGVSEP (IEX ,1 ) ZGH = TABTR.ZGHSEP (IEX ,1 ) ZGD = TABTR.ZGVSEP (IEX+1,1 ) ZGB = .TRUE. ELSE ZG = TABTR.ZVSEP (IEX ,1 ) ZH = TABTR.ZHSEP (IEX ,1 ) ZD = TABTR.ZVSEP (IEX+1,1 ) ZB = TABTR.ZHSEP (IEX ,2 ) ZGG = TABTR.ZGVSEP (IEX ,1 ) ZGH = TABTR.ZGHSEP (IEX ,1 ) ZGD = TABTR.ZGVSEP (IEX+1,1 ) ZGB = TABTR.ZGHSEP (IEX ,2 ) ENDIF TMPCAR = TABTR.TITCOL (IEX) IF (TABTR.IHTCOL.EQ.1) THEN ICOUL = TABTR.ICOLC > ,ZGH,ZGB,ZGG,ZGD,TABTR) ELSE IF (LI.EQ.0) GOTO 1210 SEGACT LI DO 1240 N=1 , TABTR.IHTCOL IF (N.EQ.1) THEN ZZH = ZH ZZGH = ZGH ELSE ZZH = .FALSE. ZZGH = .FALSE. ENDIF IF (N.EQ.TABTR.IHTCOL) THEN ZZB = ZB ZZGB = ZGB ELSE ZZB = .FALSE. ZZGB = .FALSE. ENDIF IF (N.LE.NBMCX) THEN A = LI.LECT (2*N-1) B = LI.LECT (2*N) ICOUL = TABTR.ICOLC > ,ZZGH,ZZGB,ZGG,ZGD,TABTR) ELSE TMPCAR = ' ' ICOUL = TABTR.ICOLC > ,ZZGH,ZZGB,ZGG,ZGD,TABTR) ENDIF 1240 CONTINUE SEGSUP LI ENDIF IX = IX + 1 1210 CONTINUE * * AFFICHAGE DU TITRE DE LA COLONNE 1 * IEX = 1 LI = 0 IF (TABTR.ZAULIG) THEN ZG = .TRUE. ZH = .TRUE. ZD = .TRUE. ZB = .TRUE. ZGG = .TRUE. ZGH = TABTR.ZGHSEP (IEX ,1 ) ZGD = TABTR.ZGVSEP (IEX+1,1 ) ZGB = .TRUE. ELSE ZG = TABTR.ZVSEP (IEX ,1 ) ZH = TABTR.ZHSEP (IEX ,1 ) ZD = TABTR.ZVSEP (IEX+1,1 ) ZB = TABTR.ZHSEP (IEX ,2 ) ZGG = TABTR.ZGVSEP (IEX ,1 ) ZGH = TABTR.ZGHSEP (IEX ,1 ) ZGD = TABTR.ZGVSEP (IEX+1,1 ) ZGB = TABTR.ZGHSEP (IEX ,2 ) ENDIF TMPCAR = TABTR.TITCOL (IEX) IF (TABTR.IHTCOL.EQ.1) THEN ICOUL = TABTR.ICOLC > ,ZGH,ZGB,ZGG,ZGD,TABTR) ELSE IF (LI.EQ.0) GOTO 1260 SEGACT LI DO 1250 N=1 , TABTR.IHTCOL IF (N.EQ.1) THEN ZZH = ZH ZZGH = ZGH ELSE ZZH = .FALSE. ZZGH = .FALSE. ENDIF IF (N.EQ.TABTR.IHTCOL) THEN ZZB = ZB ZZGB = ZGB ELSE ZZB = .FALSE. ZZGB = .FALSE. ENDIF IF (N.LE.NBMCX) THEN A = LI.LECT (2*N-1) B = LI.LECT (2*N) ICOUL = TABTR.ICOLC > ,ZZGH,ZZGB,ZGG,ZGD,TABTR) ELSE TMPCAR = ' ' ICOUL = TABTR.ICOLC > ,ZZGH,ZZGB,ZGG,ZGD,TABTR) ENDIF 1250 CONTINUE SEGSUP LI ENDIF 1260 CONTINUE * * AFFICHAGE DES TIRES DE LIGNES * ICOUL = TABTR.ITEXC IDEBY = TABTR.CSGY (IPX,IPY) IFINY = TABTR.CIDY (IPX,IPY) IY=5+TABTR.IHTCOL+IYD DO 1220 IEY=IDEBY , IFINY ZB = TABTR.ZHSEP (1,IEY+1) ZH = TABTR.ZHSEP (1,IEY ) ZGG= TABTR.ZGVSEP (1,IEY ) IF ( (IEY.EQ.IFINY).AND.TABTR.ZAULIG) THEN TABTR.ZHSEP (1,IEY+1)=.TRUE. ENDIF IF ( (IEY.EQ.IDEBY).AND.TABTR.ZAULIG) THEN TABTR.ZHSEP (1,IEY)=.TRUE. ENDIF IF (TABTR.ZAULIG) THEN TABTR.ZGVSEP (1,IEY ) = .TRUE. ENDIF TABTR.ZHSEP (1,IEY+1) = ZB TABTR.ZHSEP (1,IEY ) = ZH TABTR.ZGVSEP (2,IEY ) = ZGG IY = IY + 1 1220 CONTINUE * * AFFICHAGE DU NUMERO DE PAGE * ICOUL = TABTR.ITEXC CALL CHCOUL (ICOUL) IF (TABTR.ZPAGE) THEN TMPCAR = 'page 000/000' WRITE (TMPCAR (6:8) ,FMT=' (I3)') (TABTR.PX* (IPY-1)+IPX) WRITE (TMPCAR (10:12),FMT=' (I3)') (TABTR.PX*TABTR.PY) IF (ZHORIZ) THEN RXPOS = 12. RYPOS = 0. ELSE RXPOS = 8.5 RYPOS = 0. ENDIF CALL TRLABL (RXPOS,RYPOS,0.,TMPCAR (1:12),12,HMIN) ENDIF * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales