1 : * @HISTOGR PROCEDUR JC220346 12/05/02 21:15:01 7366 2 : ************************************************************************ 3 : * NOM : @HISTOGR 4 : * DESCRIPTION : Création/Tracé de données sous forme d'histogramme 5 : ************************************************************************ 6 : * HISTORIQUE : 2/05/2012 : JCARDO : création de la procédure 7 : * HISTORIQUE : 8 : * HISTORIQUE : 9 : ************************************************************************ 10 : * Prière de PRENDRE LE TEMPS DE COMPLÉTER LES COMMENTAIRES 11 : * en cas de modification de ce sous-programme afin de faciliter 12 : * la maintenance ! 13 : ************************************************************************ 14 : * ENTRÉES :: LVAL1*'LISTREEL' = données à tracer 15 : * TOPT1/'TABLE' = mise en forme des barres du graphique 16 : * LSOR1/'LOGIQUE' = renvoyer des objets en sortie ? 17 : * SORTIES :: EVOHIS/'EVOLUTION' = courbes à transmettre à DESS 18 : * TABHIS/'TABLE' = options de format à transmettre à DESS 19 : ************************************************************************ 20 : * SYNTAXE (GIBIANE) : 21 : * 22 : * (EVOHIS TABHIS) = @HISTOGR LVAL1 (TOPT1) (LSOR1) 23 : * 24 : ************************************************************************ 25 : 26 : DEBP @HISTOGR LVAL1*'LISTREEL' TOPT1/'TABLE' LSOR1/'LOGIQUE' ; 27 : 28 : EVO1 = VIDE 'EVOLUTIO' ; 29 : 30 : * ========================================== 31 : * RÉCUPÉRATION ET VÉRIFICATION DES ARGUMENTS 32 : * ========================================== 33 : 34 : NVAL1 = DIME LVAL1 ; 35 : SI (NVAL1 EGA 0) ; 36 : QUIT @HISTO ; 37 : FINS ; 38 : 39 : * Renvoyer une EVOLUTION et une TABLE en sortie ? 40 : BSOR1 = FAUX ; 41 : SI (EXIS LSOR1) ; 42 : BSOR1 = LSOR1 ; 43 : FINS ; 44 : 45 : * Parcours de la table d'options TOPT1 46 : * ---------------------------------------------------------------- 47 : * 'COUL' [MOT ou LISTMOTS] = Couleur(s) des barres (défaut='DEFA') 48 : * 'NOMS' [TABLE] = Noms des barres (défaut=aucun) 49 : * 'LARG' [LISTREEL] = Largeurs des barres (défaut=0.8) 50 : * 'ESPA' [FLOTTANT] = Espace entre 2 barres (défaut=0.2) 51 : * 'HPOS' [FLOTTANT] = Décalage horizontal (défaut=0.) 52 : * 'INVE' [LOGIQUE] = De droite à gauche ? (défaut=FAUX) 53 : * 'DESS' [MOT] = Options passées à DESS (défaut=' ') 54 : * ---------------------------------------------------------------- 55 : SI (NON (EXIS TOPT1)) ; 56 : TOPT1 = TABL ; 57 : FINS ; 58 : 59 : * COUL 60 : * --------------------------------------------------------------------- 61 : LCOUL = MOTS 'DEFA' 'BLEU' 'ROUG' 'ROSE' 'VERT' 'TURQ' 'JAUN' 'BLAN' 62 : 'NOIR' 'VIOL' 'ORAN' 'AZUR' 'OCEA' 'CYAN' 'OLIV' 'GRIS' ; 63 : COUMULT = FAUX ; 64 : LCOU1 = MOTS 'DEFA' ; 65 : SI (EXIS TOPT1 'COUL') ; 66 : SI (EGA (TYPE (TOPT1 . 'COUL')) 'MOT') ; 67 : LCOU1 = MOTS (TOPT1 . 'COUL') ; 68 : SINON ; 69 : SI (EGA (TYPE (TOPT1 . 'COUL')) 'LISTMOTS') ; 70 : COUMULT = VRAI ; 71 : LCOU1 = TOPT1 . 'COUL' ; 72 : SINON ; 73 : MESS 'Indice "COUL" : type d objet incorrect' ; 74 : QUIT @HISTO ; 75 : FINS ; 76 : FINS ; 77 : FINS ; 78 : 79 : * NOMS 80 : * --------------------------------------------------------------------- 81 : BNOM1 = FAUX ; 82 : SI (EXIS TOPT1 'NOMS') ; 83 : SI (EGA (TYPE (TOPT1 . 'NOMS')) 'TABLE') ; 84 : TNOM1 = TOPT1 . 'NOMS' ; 85 : BNOM1 = VRAI ; 86 : SINON ; 87 : MESS 'Indice "NOMS" : type d objet incorrect' ; 88 : QUIT @HISTO ; 89 : FINS ; 90 : FINS ; 91 : 92 : * LARG 93 : * --------------------------------------------------------------------- 94 : LLAR1 = PROG NVAL1*0.8 ; 95 : SI (EXIS TOPT1 'LARG') ; 96 : SI (EGA (TYPE (TOPT1 . 'LARG')) 'LISTREEL') ; 97 : LLAR1 = TOPT1 . 'LARG' ; 98 : SI (NEG (DIME LLAR1) NVAL1) ; 99 : MESS 'Indice "LARG" : liste de longueur incorrecte' ; 100 : QUIT @HISTO ; 101 : FINS ; 102 : SINON ; 103 : MESS 'Indice "LARG" : type d objet incorrect' ; 104 : QUIT @HISTO ; 105 : FINS ; 106 : FINS ; 107 : 108 : * ESPA 109 : * --------------------------------------------------------------------- 110 : ESPA1 = 0.2 ; 111 : SI (EXIS TOPT1 'ESPA') ; 112 : SI (EGA (TYPE (TOPT1 . 'ESPA')) 'FLOTTANT') ; 113 : ESPA1 = ABS TOPT1 . 'ESPA' ; 114 : SINON ; 115 : MESS 'Indice "ESPA" : type d objet incorrect' ; 116 : QUIT @HISTO ; 117 : FINS ; 118 : FINS ; 119 : 120 : * HPOS 121 : * --------------------------------------------------------------------- 122 : HPOS1 = 0. ; 123 : SI (EXIS TOPT1 'HPOS') ; 124 : SI (EGA (TYPE (TOPT1 . 'HPOS')) 'FLOTTANT') ; 125 : HPOS1 = TOPT1 . 'HPOS' ; 126 : SINON ; 127 : MESS 'Indice "HPOS" : type d objet incorrect' ; 128 : QUIT @HISTO ; 129 : FINS ; 130 : FINS ; 131 : 132 : * INVE 133 : * --------------------------------------------------------------------- 134 : DIR1 = 1. ; 135 : SI (EXIS TOPT1 'INVE') ; 136 : SI (EGA (TYPE (TOPT1 . 'INVE')) 'LOGIQUE') ; 137 : SI (EGA (TOPT1 . 'INVE') VRAI) ; 138 : DIR1 = -1. ; 139 : FINS ; 140 : SINON ; 141 : MESS 'Indice "INVE" : type d objet incorrect' ; 142 : QUIT @HISTO ; 143 : FINS ; 144 : FINS ; 145 : 146 : * DESS 147 : * --------------------------------------------------------------------- 148 : BDES1 = FAUX ; 149 : MDES1 = ' ' ; 150 : SI (EXIS TOPT1 'DESS') ; 151 : SI (EGA (TYPE (TOPT1 . 'DESS')) 'MOT') ; 152 : BDES1 = VRAI ; 153 : MDES1 = TOPT1 . 'DESS' ; 154 : SINON ; 155 : MESS 'Indice "DESS" : type d objet incorrect' ; 156 : QUIT @HISTO ; 157 : FINS ; 158 : FINS ; 159 : 160 : 161 : * ============================ 162 : * FABRICATION DE L'HISTOGRAMME 163 : * ============================ 164 : 165 : EVOHIS TABHIS = VIDE 'EVOLUTIO' 'TABLE' ; 166 : TABHIS . 'TITRE' = TABL ; 167 : 168 : XPOS = DIR1*HPOS1 ; 169 : REPE BLOHIS NVAL1 ; 170 : 171 : * Récupération des paramètres de la barre 172 : VAL1 = EXTR LVAL1 &BLOHIS ; 173 : LAR1 = EXTR LLAR1 &BLOHIS ; 174 : MCOU1 = EXTR LCOU1 ((@MOD (&BLOHIS - 1) (DIME LCOU1)) + 1) ; 175 : NOM1 = ' ' ; 176 : SI (BNOM1) ; 177 : SI (EXIS TNOM1 &BLOHIS) ; 178 : NOM1 = CHAI TNOM1 . &BLOHIS ; 179 : FINS ; 180 : FINS ; 181 : 182 : * Création des listes LX et LY 183 : LX = PROG ; 184 : LY = PROG ; 185 : SI (ESPA1 > 0.) ; 186 : XPOS = XPOS + (0.5*DIR1*ESPA1) ; 187 : FINS ; 188 : LX = LX ET XPOS ; 189 : LY = LY ET VAL1 ; 190 : XPOS = XPOS + (DIR1*LAR1) ; 191 : LX = LX ET XPOS ; 192 : LY = LY ET VAL1 ; 193 : SI (ESPA1 > 0.) ; 194 : XPOS = XPOS + (0.5*DIR1*ESPA1) ; 195 : FINS ; 196 : 197 : * Mise à jour de EVOHIS et TABHIS 198 : EVO1 = EVOL MCOU1 'MANU' 'TYPE' 'HIST' NOM1 LX NOM1 LY ; 199 : EVOHIS = EVOHIS ET EVO1 ; 200 : TABHIS . 'TITRE' . &BLOHIS = CHAI NOM1 ; 201 : TABHIS . &BLOHIS = MOT 'REMP' ; 202 : FIN BLOHIS ; 203 : 204 : 205 : * =================== 206 : * FIN DE LA PROCEDURE 207 : * =================== 208 : 209 : SI (BDES1) ; 210 : DESS EVOHIS TABHIS (TEXT MDES1) ; 211 : FINS ; 212 : 213 : SI (BSOR1) ; 214 : RESP EVOHIS TABHIS ; 215 : FINS ; 216 : 217 : FINP ; 218 :
© Cast3M 2003 - All rights reserved.
Disclaimer