* @HISTOGR PROCEDUR BP208322 19/08/23 21:15:01 10289 ************************************************************************ * NOM : @HISTOGR * DESCRIPTION : Création/Tracé de données sous forme d'histogramme ************************************************************************ * HISTORIQUE : 2/05/2012 : JCARDO : création de la procédure * HISTORIQUE : 22/08/2019 : BP * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS DE COMPLÉTER LES COMMENTAIRES * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * ENTRÉES :: LVAL1*'LISTREEL' = données à tracer * TOPT1/'TABLE' = mise en forme des barres du graphique * LSOR1/'LOGIQUE' = renvoyer des objets en sortie ? * SORTIES :: EVOHIS/'EVOLUTION' = courbes à transmettre à DESS * TABHIS/'TABLE' = options de format à transmettre à DESS ************************************************************************ * SYNTAXE (GIBIANE) : * * (EVOHIS TABHIS) = @HISTOGR LVAL1 (TOPT1) (LSOR1) * ************************************************************************ * ========================================== * RÉCUPÉRATION ET VÉRIFICATION DES ARGUMENTS * ========================================== SI (NVAL1 EGA 0) ; QUIT @HISTO ; FINS ; * Renvoyer une EVOLUTION et une TABLE en sortie ? BSOR1 = FAUX ; BSOR1 = LSOR1 ; FINS ; * Parcours de la table d'options TOPT1 * ---------------------------------------------------------------- * 'COUL' [MOT ou LISTMOTS] = Couleur(s) des barres (défaut='DEFA') * 'NOMS' [TABLE] = Noms des barres (défaut=aucun) * 'LARG' [LISTREEL] = Largeurs des barres (défaut=0.8) * 'ESPA' [FLOTTANT] = Espace entre 2 barres (défaut=0.2) * 'HPOS' [FLOTTANT] = Décalage horizontal (défaut=0.) * 'INVE' [LOGIQUE] = De droite à gauche ? (défaut=FAUX) * 'DESS' [MOT] = Options passées à DESS (défaut=' ') * ---------------------------------------------------------------- FINS ; * COUL * --------------------------------------------------------------------- LCOUL = MOTS 'DEFA' 'BLEU' 'ROUG' 'ROSE' 'VERT' 'TURQ' 'JAUN' 'BLAN' 'NOIR' 'VIOL' 'ORAN' 'AZUR' 'OCEA' 'CYAN' 'OLIV' 'GRIS' ; COUMULT = FAUX ; SINON ; COUMULT = VRAI ; SINON ; QUIT @HISTO ; FINS ; FINS ; FINS ; * NOMS * --------------------------------------------------------------------- BNOM1 = FAUX ; TNOM1 = TOPT1 . 'NOMS' ; BNOM1 = VRAI ; SINON ; QUIT @HISTO ; FINS ; FINS ; * LARG * --------------------------------------------------------------------- LLAR1 = TOPT1 . 'LARG' ; MESS 'Indice "LARG" : liste de longueur incorrecte' ; QUIT @HISTO ; FINS ; SINON ; QUIT @HISTO ; FINS ; FINS ; * ESPA * --------------------------------------------------------------------- ESPA1 = 0.2 ; ESPA1 = ABS TOPT1 . 'ESPA' ; SINON ; QUIT @HISTO ; FINS ; FINS ; * HPOS * --------------------------------------------------------------------- HPOS1 = 0. ; HPOS1 = TOPT1 . 'HPOS' ; SINON ; QUIT @HISTO ; FINS ; FINS ; * INVE * --------------------------------------------------------------------- DIR1 = 1. ; DIR1 = -1. ; FINS ; SINON ; QUIT @HISTO ; FINS ; FINS ; * DESS * --------------------------------------------------------------------- BDES1 = FAUX ; MDES1 = ' ' ; BDES1 = VRAI ; SINON ; QUIT @HISTO ; FINS ; FINS ; * ============================ * FABRICATION DE L'HISTOGRAMME * ============================ XPOS = DIR1*HPOS1 ; REPE BLOHIS NVAL1 ; * Récupération des paramètres de la barre SI (BNOM1) ; FINS ; FINS ; * Création des listes LX et LY SI (ESPA1 > 0.) ; XPOS = XPOS + (0.5*DIR1*ESPA1) ; FINS ; LX = LX ET XPOS ; LY = LY ET VAL1 ; XPOS = XPOS + (DIR1*LAR1) ; LX = LX ET XPOS ; LY = LY ET VAL1 ; SI (ESPA1 > 0.) ; XPOS = XPOS + (0.5*DIR1*ESPA1) ; FINS ; * Mise à jour de EVOHIS et TABHIS EVOHIS = EVOHIS ET EVO1 ; FIN BLOHIS ; * =================== * FIN DE LA PROCEDURE * =================== SI (BDES1) ; FINS ; SI (BSOR1) ; RESP EVOHIS TABHIS ; FINS ; FINP ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales