Contained WithinFind More DocumentationFeatured Support Resources | PDF로 이 문서 다운로드 (1328 KB)
Chapitre 9 DiagrammesStarOffice peut afficher les données dans un diagramme : des liaisons graphiques sont alors créées entre les données sous forme de barres, de diagrammes à secteurs, de lignes et autres éléments. Les données peuvent être affichées sous forme d'images 2D ou 3D, et l'apparence des éléments du diagramme peut être adaptée individuellement de la même manière que pour les éléments de dessin. Si les données sont disponibles dans une feuille de calcul, elles peuvent être liées au diagramme de façon dynamique. Toute modification apportée aux données de base peut, dans le cas présent, être immédiatement visualisée dans le diagramme assigné. Ce chapitre présente l'interface de programmation des modules de diagramme de StarOffice et s'intéresse à l'utilisation des diagrammes au sein des classeurs. Utilisation de diagrammes dans les classeursLes diagrammes ne sont pas traités comme des documents indépendants dans StarOffice, mais comme les objets incorporés d'un document existant. Les diagrammes des documents texte et de dessin restent isolés du contenu du document ; en revanche, lorsqu'ils sont utilisés dans les classeurs, un mécanisme permet d'établir une liaison entre les données du document et les diagrammes incorporés. L'exemple suivant explique l'interaction entre un classeur et un diagramme : Dim Doc As Object
Dim Charts As Object
Dim Chart as Object
Dim Rect As New com.sun.star.awt.Rectangle
Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress
Doc = StarDesktop.CurrentComponent
Charts = Doc.Sheets(0).Charts
Rect.X = 8000
Rect.Y = 1000
Rect.Width = 10000
Rect.Height = 7000
RangeAddress(0).Sheet = 0
RangeAddress(0).StartColumn = 0
RangeAddress(0).StartRow = 0
RangeAddress(0).EndColumn = 2
RangeAddress(0).EndRow = 12
Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True)
Bien que le code utilisé dans cet exemple puisse paraître complexe, les processus centraux sont limités à trois lignes : la première ligne centrale crée la variable de document Doc, qui fait référence au classeur actif (ligne Doc = StarDesktop.CurrentComponent). Le code utilisé dans l'exemple crée ensuite une liste contenant tous les diagrammes de la première feuille de calcul (ligne Charts = Doc.Sheets(0).Charts). Enfin, un nouveau diagramme est ajouté à la dernière ligne de cette liste à l'aide de la méthode addNewByName. L'utilisateur peut ensuite visualiser ce nouveau diagramme. La dernière ligne initialise les structures auxiliaires Rect et RangeAddress, que la méthode addNewByName fournit également comme paramètre. Rect détermine la position du diagramme dans la feuille de calcul. RangeAddress détermine la plage de données à lier au diagramme. L'exemple précédent crée un diagramme à barres. Si vous souhaitez créer un autre type d'image, vous devez remplacer le diagramme à barres de façon explicite : Chart = Charts.getByName("MyChart").embeddedObject
Chart.Diagram = Chart.createInstance("com.sun.star.chart.LineDiagram")
La première ligne définit l'objet Chart correspondant. La seconde remplace le diagramme actif par un nouveau : dans cet exemple, un diagramme linéaire. Remarque – Dans Excel, une distinction est faite entre les diagrammes ayant été insérés comme une page séparée dans un document Excel et ceux qui sont incorporés dans une page de table. Par conséquent, deux méthodes d'accès différentes sont définies ici pour les diagrammes. Cette distinction n'existe pas dans StarOffice Basic, car les diagrammes de StarOffice Calc sont toujours créés en tant qu'objets incorporés d'une page de table. L'accès aux diagrammes s'effectue toujours à l'aide de la liste Charts de l'objet Sheet associé. Structure des diagrammesLa structure d'un diagramme, et donc de la liste des services et interfaces qu'il prend en charge, dépend de son type. Les méthodes et propriétés de l'axe Z, par exemple, sont uniquement disponibles dans les diagrammes 3D, mais pas dans les diagrammes 2D. Dans les diagrammes à secteurs, il n'existe aucune interface permettant d'utiliser des axes. Éléments individuels d'un diagrammeTitre, sous-titre et légendeLes titre, sous-titre et légende constituent les éléments de base de chaque diagramme. Les diagrammes possèdent leurs propres objets pour chacun de ces éléments. L'objet Chart offre les propriétés suivantes de gestion de ces éléments :
À de nombreux égards, les éléments spécifiés correspondent à un élément de dessin. Cela est dû au fait que les services com.sun.star.chart.ChartTitle et com.sun.star.chart.ChartLegendPosition prennent en charge le service com.sun.star.drawing.Shape, qui constitue la base technique du programme des éléments de dessin. Les utilisateurs ont donc la possibilité de déterminer la position et la taille de l'élément à l'aide des propriétés Size et Position. Les propriétés de remplissage et de ligne (services com.sun.star.drawing.FillProperties et com.sun.star.drawing.LineStyle), ainsi que les propriétés de caractère (service com.sun.star.style.CharacterProperties), sont fournies pour le formatage des éléments. com.sun.star.chart.ChartTitle contient non seulement les propriétés de format nommées, mais également deux autres propriétés :
La légende du diagramme (service com.sun.star.chart.ChartLegend) contient la propriété supplémentaire suivante :
L'exemple suivant crée un diagramme et lui assigne le titre "Test", le sous-titre "Test 2" et une légende. La légende, dont la couleur d'arrière-plan est grise, se trouve au bas du diagramme et a une taille de caractère de 7 points. Dim Doc As Object
Dim Charts As Object
Dim Chart as Object
Dim Rect As New com.sun.star.awt.Rectangle
Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress
Rect.X = 8000
Rect.Y = 1000
Rect.Width = 10000
Rect.Height = 7000
RangeAddress(0).Sheet = 0
RangeAddress(0).StartColumn = 0
RangeAddress(0).StartRow = 0
RangeAddress(0).EndColumn = 2
RangeAddress(0).EndRow = 12
Doc = StarDesktop.CurrentComponent
Charts = Doc.Sheets(0).Charts
Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True)
Chart = Charts.getByName("MyChart").EmbeddedObject
Chart.HasMainTitle = True
Chart.Title.String = "Test"
Chart.HasSubTitle = True
Chart.Subtitle.String = "Test 2"
Chart.HasLegend = True
Chart.Legend.Alignment = com.sun.star.chart.ChartLegendPosition.BOTTOM
Chart.Legend.FillStyle = com.sun.star.drawing.FillStyle.SOLID
Chart.Legend.FillColor = RGB(210, 210, 210)
Chart.Legend.CharHeight = 7
Arrière-planChaque diagramme présente une zone d'arrière-plan. Chaque zone possède un objet, accessible en utilisant les propriétés suivantes de l'objet Diagram :
L'arrière-plan d'un diagramme recouvre l'ensemble de sa zone, y compris la zone située sous le titre, le sous-titre et la légende du diagramme. Le service com.sun.star.chart.ChartArea associé prend en charge les propriétés de ligne et de remplissage, et n'offre aucune autre propriété extensive. Parois et planchers du diagrammeBien que l'arrière-plan du diagramme recouvre la zone complète du diagramme, la paroi arrière du diagramme se limite à la zone se trouvant directement derrière la plage de données. Il existe généralement deux parois dans les diagrammes 3D : l'une se situe derrière la plage de données et l'autre sert de démarcation à gauche de l'axe Y. De plus, les diagrammes 3D ont généralement un plancher.
Les objets spécifiés prennent en charge le service com.sun.star.chart.ChartArea, qui offre à son tour les propriétés habituelles de remplissage et de ligne via les services com.sun.star.drawing.FillProperties et com.sun.star.drawing.LineStyle. Pour plus d'informations, reportez-vous au Chapitre 8, Dessins et présentations. L'accès aux parois et au plancher du diagramme s'effectue par l'intermédiaire de l'objet Chart, qui fait également partie de l'objet Chart : Charte.Area.FillBitmapName = "Sky" L'exemple suivant montre comment une image (nommée Sky) déjà contenue dans StarOffice peut servir d'arrière-plan à un diagramme. Dim Doc As Object
Dim Charts As Object
Dim Chart as Object
Dim Rect As New com.sun.star.awt.Rectangle
Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress
Rect.X = 8000
Rect.Y = 1000
Rect.Width = 10000
Rect.Height = 7000
RangeAddress(0).Sheet = 0
RangeAddress(0).StartColumn = 0
RangeAddress(0).StartRow = 0
RangeAddress(0).EndColumn = 2
RangeAddress(0).EndRow = 12
Doc = StarDesktop.CurrentComponent
Charts = Doc.Sheets(0).Charts
Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True)
Chart = Charts.getByName("MyChart").EmbeddedObject
Charte.Area.FillStyle = com.sun.star.drawing.FillStyle.BITMAP
Chart.Area.FillBitmapName = "Sky"
Chart.Area.FillBitmapMode = com.sun.star.drawing.BitmapMode.REPEAT
AxesStarOffice reconnaît cinq axes différents pouvant être utilisés dans un diagramme. Dans le scénario le plus simple, il s'agit des axes X et Y. Lorsque vous utilisez des diagrammes 3D, un axe Z est parfois ajouté. Pour les diagrammes dans lesquels les valeurs des différentes lignes dévient de façon significative l'une de l'autre, StarOffice fournit des X et Y supplémentaires pour des opérations de mises à l'échelle secondaires. Axes X, Y et Z primairesOutre l'axe réel, il peut également y avoir, pour chacun des axes X, Y et Z primaires, un titre, une description, une grille principale et une grille secondaire. Il existe une option permettant d'afficher et de masquer tous ces éléments. L'objet Diagram offre les propriétés de gestion suivantes pour ces fonctionnalités (en prenant l'exemple d'un axe X, les propriétés des axes Y et Z étant structurées de la même manière) :
Axes X et Y secondairesLes propriétés suivantes sont disponibles pour les axes X et Y secondaires (propriétés prenant exemple sur l'axe secondaire X) :
Propriétés des axesLes objets Axis d'un diagramme StarOffice prennent en charge le service com.sun.star.chart.ChartAxis. Outre les propriétés de caractère (service com.sun.star.style.CharacterProperties : reportez-vous au Chapitre 6, Documents texte) et de ligne (service com.sun.star.drawing.LineStyle : reportez-vous au chapitre 8, Chapitre 8, Dessins et présentations), il offre les propriétés suivantes :
Propriétés de la grille de l'axeL'objet de la grille de l'axe est basé sur le service com.sun.star.chart.ChartGrid, qui prend en charge les propriétés de ligne du service de support com.sun.star.drawing.LineStyle. Pour plus d'informations, reportez-vous au Chapitre 8, Dessins et présentations. Propriétés du titre de l'axeLes objets de formatage du titre de l'axe sont basés sur le service com.sun.star.chart.ChartTitle, également utilisé pour les titres des diagrammes. ExempleL'exemple suivant crée un diagramme linéaire. La couleur blanche est définie pour la paroi arrière du diagramme. Les axes X et Y possèdent une grille secondaire grise pour un meilleur repérage visuel. La valeur minimale de l'axe Y est fixée à 0 et sa valeur maximale à 100, de manière à conserver la résolution du diagramme même en cas de modification des valeurs. Dim Doc As Object Dim Charts As Object Dim Chart as Object
Dim Rect As New com.sun.star.awt.Rectangle
Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress
Doc = StarDesktop.CurrentComponent Charts = Doc.Sheets(0).Charts
Rect.X = 8000 Rect.Y = 1000 Rect.Width = 10000 Rect.Height = 7000
RangeAddress(0).Sheet = 0
RangeAddress(0).StartColumn = 0
RangeAddress(0).StartRow = 0
RangeAddress(0).EndColumn = 2
RangeAddress(0).EndRow = 12
Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True)
Chart = Charts.getByName("MyChart").embeddedObject
Chart.Diagram = Chart.createInstance("com.sun.star.chart.LineDiagram")
Chart.Diagram.Wall.FillColor = RGB(255, 255, 255)
Chart.Diagram.HasXAxisGrid = True
Chart.Diagram.XMainGrid.LineColor = RGB(192, 192, 192)
Chart.Diagram.HasYAxisGrid = True
Chart.Diagram.YMainGrid.LineColor = RGB(192, 192, 192)
Chart.Diagram.YAxis.Min = 0
Chart.Diagram.YAxis.Max = 100
Diagrammes 3DLa plupart des diagrammes de StarOffice peuvent également s'afficher avec des images 3D. Tous les types de diagrammes offrant cette option prennent en charge le service com.sun.star.chart.Dim3DDiagram. Ce service n'offre qu'une propriété : Diagrammes empilésLes diagrammes empilés sont des diagrammes organisés avec plusieurs valeurs individuelles empilées pour produire une valeur totale. Cette vue montre non seulement les valeurs individuelles, mais également une présentation de toutes les valeurs. Dans StarOffice, il est possible d'afficher plusieurs types de diagrammes sous forme empilée. Tous ces diagrammes prennent en charge le service com.sun.star.chart.StackableDiagram, qui fournit quant à lui les propriétés suivantes :
Types de diagrammesDiagrammes linéairesLes diagrammes linéaires (service com.sun.star.chart.LineDiagram) prennent en charge un axe X, deux axes Y et un axe Z. Ils peuvent s'afficher sous forme d'images 2D ou 3D (service com.sun.star.chart.Dim3Ddiagram). Les lignes peuvent être empilées (com.sun.star.chart.StackableDiagram). Les diagrammes linéaires offrent les propriétés suivantes :
Diagrammes de surfaceLes diagrammes de surface (service com.sun.star.chart.AreaDiagram) prennent en charge un axe X, deux axes Y et un axe Z. Ils peuvent s'afficher sous forme d'images 2D ou 3D (service com.sun.star.chart.Dim3Ddiagram). Les surfaces peuvent être empilées (com.sun.star.chart.StackableDiagram). Diagrammes à barresLes diagrammes à barres (service com.sun.star.chart.BarDiagram) prennent en charge un axe X, deux axes Y et un axe Z. Ils peuvent s'afficher sous forme d'images 2D ou 3D (service com.sun.star.chart.Dim3Ddiagram). Les barres peuvent être empilées (com.sun.star.chart.StackableDiagram). Ils offrent les propriétés suivantes :
Diagrammes à secteursLes diagrammes à secteurs (service com.sun.star.chart.PieDiagram) ne contiennent pas d'axes et ne peuvent pas être empilés. Ils peuvent s'afficher sous forme d'images 2D ou 3D (service com.sun.star.chart.Dim3Ddiagram). |