Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 24-09-2010 16:10:39

Gox60  
Membre
Date d'inscription: 24-09-2010
Messages: 2
Pépites: 13
Banque: 0

Modifier les couleurs des séries dans un graph

Bonjour,
j'ai une composite pour l'impression qui contient deux reports.
Le premier est une crosstab avec des arguments qui m'affiche un tableau de valeurs.
Le deuxième est une dw contenant un graph qui affiche les mêmes valeurs sous différentes formes.

Je souhaite pouvoir modifier les couleurs de mes séries à la fois à l'écran et à l'impression.
A l'écran mon tableau et mon graphe sont dans 2 dw control différents.

J'ai écrit une petite fonction qui fait :
if ai_destination = 1 then
    ldw_graph = tab_observation.tabpage_graphique.dw_graph
    ldw_graph.setredraw( false)
else
    ldw_graph = dw_imprimer.object.dw_graph
end if

CHOOSE CASE ai_type_graphique
    CASE 1
        // Courbe
        ldw_graph.object.gr_1.GraphType = 12 // Line
        // Supprimer les symboles de toutes les séries
        li_nb_series = ldw_graph.seriescount("gr_1")
        for li = 1 to li_nb_series
            ls_serie = ldw_graph.SeriesName("gr_1", li)
            ldw_graph.SetseriesStyle("gr_1",  ls_serie, nosymbol!)
            ldw_graph.SetSeriesStyle("gr_1",  ls_serie, Foreground!, il_couleur_variable_select[li])
        next
       
    CASE 2
        // Courbe avec marques
        ldw_graph.object.gr_1.GraphType = 12 // Line
        // Ajouter les symboles à toutes les séries       
        li_nb_series = ldw_graph.seriescount("gr_1")
        for li = 1 to li_nb_series
            ls_serie = ldw_graph.SeriesName("gr_1", li)
            ldw_graph.SetseriesStyle("gr_1",  ls_serie, SymbolSolidCircle!)
            ldw_graph.SetSeriesStyle("gr_1",  ls_serie, Foreground!, il_couleur_variable_select[li])
        next
       
    CASE 3
        // Histogramme
        ldw_graph.object.gr_1.GraphType = 7 // Col
        // Remettre la couleur
        li_nb_series = ldw_graph.seriescount("gr_1")
        for li = 1 to li_nb_series
            ls_serie = ldw_graph.SeriesName("gr_1", li)
            ldw_graph.SetSeriesStyle("gr_1",  ls_serie, Foreground!, il_couleur_variable_select[li])
        next

Cette fonction marche très bien à l'écran (ai_destination = 1).
Par contre ça ne marche pas pour l'impression.
J'ai tenté de faire un GetChild pour récupérer le report graph de ma composite. Malheureusement Seriescount et setseriesstyle n'existent pas pour une datawindowchild.
Je suis obligé de mettre mon crosstab dans une composite car il a des arguments.
J'ai envisagé de faire une freeform avec un report vide et un graph.
Il n'y a pas de problème pour le graph.
Par contre il faut remplir le report avec le crosstab. J'ai essayé avec getfullstate et setfullstate mais ça ne marche pas sur des child.

Bref je ne vois pas de solution.
Si quelqu'un a une idée.
Pedro

Hors ligne

 

#2 24-09-2010 16:27:17

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2487
Pépites: 88
Banque: 9,223,372,036,854,776,000

Re: Modifier les couleurs des séries dans un graph

Bonjour,

Merci d'avance


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22