IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

4D Discussion :

Graphe & SVG


Sujet :

4D

  1. #1
    Membre averti
    Homme Profil pro
    Bientôt retraité
    Inscrit en
    Juillet 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Bientôt retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 312
    Points : 385
    Points
    385
    Par défaut Graphe & SVG
    Bonjour

    Quelqu'un aurait-il un exemple de modification d'un graphe généré en 4D par la commande Graphe et, une modification de son contenu du SVG.
    Je fais des essais simples pour changer une couleur par défaut depuis quelques jours et je tourne en bourrique.
    Ci dessous le code de mes tests. L'image n'est toujours pas bonne.
    Je suis sous Windows.

    A+

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    GRAPHE($MonGraphe;4;$TabDate;$Tab1;$Tab2)
    PARAMETRES DU GRAPHE($MonGraphe;0;0;-1;$Max;Faux;Faux;Vrai;"Success";"Abend")
     
    $svg_file:="MonGrapheB2CJour.svg"
    Si (Tester chemin acces(Dossier 4D(Dossier racine HTML)+$svg_file)=Est un document)
    SUPPRIMER DOCUMENT(Dossier 4D(Dossier racine HTML)+$svg_file)
    Fin de si 
    ECRIRE FICHIER IMAGE(Dossier 4D(Dossier racine HTML)+$svg_file;$MonGraphe;".svg")
     
    $svgRef:=SVG_Open_file (Dossier 4D(Dossier racine HTML)+$svg_file)
    $MTexte:=SVG_Export_to_XML ($svgRef)
    SVG_CLEAR ($svgRef)
    $pos:=Position("179,112,0";$MTexte)
    $MTexte:=Remplacer chaine($MTexte;"179,112,0";"255,0,50")
    $pos:=Position("179,112,0";$MTexte)
    $pos:=Position("90,56,0";$MTexte)
    $MTexte:=Remplacer chaine($MTexte;"90,56,0";"255,0,0")
    $pos:=Position("90,56,0";$MTexte)
    $va_domRef:=DOM Analyser variable XML($MTexte)
     
    Si (SVG_Is_reference_valid ($va_domRef)) 
    $vi_image:=SVG_Export_to_picture ($va_domRef;2)
    Fin de si 
    DOM FERMER XML($va_domRef)
    ECRIRE FICHIER IMAGE(Dossier 4D(Dossier racine HTML)+"MonGrapheB2CJour.gif";$vi_image;".GIF")

  2. #2
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 17
    Points
    17
    Par défaut Voilà comment je m'y prends
    Bonjour,
    C'est délicat de travailler comme ça, mais pourquoi pas, en fait. Ceci dit, attention aux versions, 4D est champion dans ce domaine, il change certaines de ses macros à chaque nouvelle version. Entre V12 et V13 par exemple, les macros SVG ont changées.
    Pour revenir à notre pb, lorsque j'ai eu à changer un svg (infobulle avec changement de couleur en fonction d'une donnée du graphique, par exemple) , j'ai fait travaillé par éléments :
    1-SVG_ELEMENTS_TO_ARRAYS : Pour énumérer les éléments du grahique
    2-BOUCLE : Pour rechercher l'élément qui me convient.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    SVG_ELEMENTS_TO_ARRAYS (SVGobj_groupLegende{$ve_ChartIndex};->$pointeurTabRef;->$pointTabTypes;->$pointTabNoms)
    $idxMax:=Taille tableau($pointTabNoms)
    Boucle ($idx;0;$idxMax)  // Pour tous les éléments du groupe
    Si ($pointTabNoms{$idx}="66614A41666-G-0")  //$vt_IdSurvole)
    SVG_GET_ATTRIBUTES ($pointeurTabRef{$idx};->$pointTabAttrs;->$pointTabValeurs)
    Boucle ($idxAttr;1;Taille tableau($pointTabAttrs))  // Pour tous les attributs
    Si ($pointTabAttrs{$idxAttr}="x")
    $oldPX:=Num($pointTabValeurs{$idxAttr})
    Fin de si 
    Si ($pointTabAttrs{$idxAttr}="y")
    $oldPY:=Num($pointTabValeurs{$idxAttr})
    Fin de si 
    Fin de boucle 
     
    $x:=$x-$gauche
    $y:=$y-$haut
     
    $ve_deltaX:=$x-$oldPX
    $ve_deltaY:=$y-$oldPY
     
    Fin de si 
    Fin de boucle

  3. #3
    Membre averti
    Homme Profil pro
    Bientôt retraité
    Inscrit en
    Juillet 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Bientôt retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 312
    Points : 385
    Points
    385
    Par défaut
    Bonjour,

    merci pour la piste, je me plonge dedans immédiatement.

    A +

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/06/2015, 14h52
  2. librairie de graphe SVG
    Par falifalibe2 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 12/01/2010, 08h55
  3. faire fonctionner l'exemple de SVG::Graph::Bar
    Par Keldou dans le forum Ruby
    Réponses: 1
    Dernier message: 01/05/2007, 16h54
  4. Réponses: 10
    Dernier message: 19/04/2007, 18h52
  5. [C#][SVG] Combinaison de plusieurs graphe sur une même page
    Par doudoustephane dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/11/2006, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo