Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
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
Bonjour,
Merci d'avance
Hors ligne