Diagramm per Makro erstellen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

RasmusV
*
Beiträge: 14
Registriert: Sa, 23.02.2013 19:16

Diagramm per Makro erstellen

Beitrag von RasmusV »

Hallo liebe Forengemeinde,

ich hoffe es gibt nicht bereits ein Thema zu meiner Fragestellung. Wenn doch, Schande über mein haupt, dass ich es nicht gefunden habe.

Ich möchte ein Diagramm per Makro erstellen. Vorliegend habe ich mehrere Calc Dokumente ähnlichen Aufbaus. Die Spalten sind quasi bei jedem Dokument gleich vergeben und lediglich die Anzahl der Zeilen ist unterschiedlich (Je nach dem wie viele Tage von einem Jahr gemessen wurden).

Ich möchte nun über ein Makro ein Dialog aufrufen, welches mir die Möglichkeit gibt unterschiedliche Diagramm per einfachen Knopfdruck zu erstellen. Jedes Mal durch alle Menüs bis zum fertig formatierten Diagramm durchzuklicken erscheint bei der Anzahl der Dokumente und möglichen Diagrammen erheblich zu aufwändig.

Leider habe ich nun keinerlei Infos gefunden, wie man Diagramm über ein Makro erstellt.

Gibt es irgendelche Tutorials die das gut erklären? Oder könnt ihr mir hier im Forum dabei helfen?

Meine andere Idee wäre, dass ich ein Vorlagen Dokument erstelle in dem die Diagramme bereits drinnen sind und das Dokument per Makro mit Daten fülle. Erstere Variante wäre mir allerdings lieber, da sie erheblich bequemer und eleganter wäre.

Freue mich auf Eure Hilfe!

Beste Grüße!

PS: So Makros die feststellen wie viele Zeilen überhaupt mit Daten gefüllt sind etc. und damit die "Range" an ein Diagramm weitergeben könnten, habe ich schon alle geschrieben. Läuft auch wunderbar... daran scheitert es also nicht. Nur eben alles was mit Diagrammen zu tun hat. Daran scheitert es :-(
RasmusV
*
Beiträge: 14
Registriert: Sa, 23.02.2013 19:16

Re: Diagramm per Makro erstellen

Beitrag von RasmusV »

Entschuldigt bitte... es war natürlich klar, dass ich erst NACH Erstellen des Themas im Forum mehr oder minder fündig werde.

viewtopic.php?t=61421&p=229846

Ich werde die gegebenen Beispiele erst ein mal durcharbeiten und dann mit genaueren Problemstellungen hier wieder fragen.

Falls jemand noch weitere Tutorials parat hat, würde ich mich natürlich sehr darüber freuen.

EDIT: Leider komme ich dann mit dem obrigen Link doch nicht so viel weiter. Es geht um ein XY Diagramm. Ich brauche einfach eine Hilfestellung, damit ich überhaupt weiß wie ich irgendwie anfangen soll. Es muss doch eine Art Tutorial dazu geben. Bitte helft mir!
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Diagramm per Makro erstellen

Beitrag von lorbass »

Kapitel 9 im OpenOffice.org BASIC Guide beschäftigt sich mit Charts (Diagrams).

Vielleicht wirst du auch bei Andrew Pitonyak, Abschnitt Useful Macro Links, fündig. Zumindest sein 584-Seiten-Epos OpenOffice.org Macros Explained oder dessen nach und nach übersetzte deutsche Fassung erscheinen vielversprechend zu sein.

Gruß
lorbass
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Diagramm per Makro erstellen

Beitrag von lorbass »

Und dann gibt's da noch…
Alles wie für dich geschrieben ;-)

Gruß
lorbass
RasmusV
*
Beiträge: 14
Registriert: Sa, 23.02.2013 19:16

Re: Diagramm per Makro erstellen

Beitrag von RasmusV »

Hey,

das ist exakt das was ich gesucht habe! Gefällt mir sehr gut! Vielen Dank für deine Hilfe!

Ich habe jetzt nur noch zwei kleine Schwierigkeiten (hoffentlich kleine):

- wie greife ich auf die Formatierung der Linien bei einem Liniendiagramm zu(Dicke, Farbe, der verschiedenen Datenbereiche, etc.)

- wie kann ich die Datenbereiche genauer festlegen? In den Beispielen wird lediglich der gesamte Datenbereich aufgespannt quasi implizit. Ich würde gerne die Datenbereiche explizit zuweisen. Da z.B. in Spalte A die Daten für die X Achse liegen aber erst in Spalte D die Daten für die Y Achse. Auch das Feld für den Namen der Datenreihe würde ich gerne separat festlegen können.



Am hilfreichsten fand ich den OpenOffice.org BASIC Programming Guide. Vielen Dank dafür!
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Diagramm per Makro erstellen

Beitrag von F3K Total »

Hallo,
Ich empfehle Dir die Verwendung eines Inspection-Tools wie MRI oder Xray
Damit kannst Du alle OOo-Dokumente hinsichtlich ihres Aufbaues durchleuchten und natürlich auch die Eigenschaften der Diagramme finden.
Mit deren Hilfe konnte ich gerade herausfinden, dass man mit diesem aus dem Tutorial abgewandelten Code

Code: Alles auswählen

Global aRect As New com.sun.star.awt.Rectangle
Global mRangeAddress(1) As New com.sun.star.table.CellRangeAddress
Global oCharts As Object

Sub chart_init
'sheetdoc_init()
aRect.X = 8000
aRect.Y = 1000
aRect.Width = 20000
aRect.Height = 10000
'mRangeAddress(0) = 0. Spalte (A)  = X-Achsenwerte
mRangeAddress(0).Sheet = 0
mRangeAddress(0).StartColumn = 0
mRangeAddress(0).StartRow = 0
mRangeAddress(0).EndColumn = 0
mRangeAddress(0).EndRow = 19
'mRangeAddress(0) = 5. und 6. Spalte (F und G)  = Y-Achsenwerte
mRangeAddress(1).Sheet = 0
mRangeAddress(1).StartColumn = 5
mRangeAddress(1).StartRow = 0
mRangeAddress(1).EndColumn = 6
mRangeAddress(1).EndRow = 19
oCharts = thiscomponent.Sheets(0).Charts
End Sub

Sub chart1_sample
chart_init()
oCharts.addNewByName("BarChart",aRect,mRangeAddress(),TRUE, TRUE)
End Sub


Sub chart2_sample
chart_init()
oCharts.addNewByName("BarChart",aRect,mRangeAddress(),TRUE, TRUE)
Dim oChart As Object
oChart = oCharts.getByName("BarChart").embeddedObject
oChart.diagram.DataRowSource = com.sun.star.chart.ChartDataRowSource.COLUMNS
End Sub

Sub chart3_sample
Dim oChart As Object

chart_init()

oCharts.addNewByName("LineDiagram",aRect,mRangeAddress(),TRUE, TRUE)
oChart = oCharts.getByName("LineDiagram").embeddedObject
oChart.diagram =_
oChart.createInstance("com.sun.star.chart.LineDiagram")
oChart.diagram.DataRowSource = com.sun.star.chart.ChartDataRowSource.COLUMNS
End Sub
ein Diagramm mit X-Werten aus A2:A20 und Y-Werten aus F2:G20 erzeugt.
Also statt

Code: Alles auswählen

Global mRangeAddress(0) As New com.sun.star.table.CellRangeAddress
mit

Code: Alles auswählen

Global mRangeAddress(1) As New com.sun.star.table.CellRangeAddress
zwei Bereiche definieren kann/muss.
Gruß R
RasmusV
*
Beiträge: 14
Registriert: Sa, 23.02.2013 19:16

Re: Diagramm per Makro erstellen

Beitrag von RasmusV »

Hey Danke!

Rein so von der Logik her hatte ich mir das auch so vorgestellt, dass man dann eben mehrere Bereiche definiert also statt mRangeAddress(0) eben mRangeAddress(1).

Mir ist jetzt nur nicht ganz klar, wie er die Inhalte der Spalten und Zeilen als x- bzw. y-Werte zuweist.

Und eben wie ich die Linien der Graphen formatiere. Im OpenOffice.org BASIC Programming Guide im Kapitel Charts wird quasi alles erklärt. Nur nicht wie ich die Liniendicke Farbe etc. ändere.

Beste Grüße!

Edit:

Ich denke, ich bin nicht genügend in der ooo Basic Sprache drinnen. Also Xray ist mir nicht ganz klar, was ich mir damit angucken kann.

Ich brauche irgendwie etwas, wie ich die Datenreihen genau zuweisen kann und wie ich auch den Datenreihen ihre Achse zu weisen kann. Sollte zB eine sekundäre Y-Achse verwendet werden.
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Diagramm per Makro erstellen

Beitrag von F3K Total »

RasmusV hat geschrieben:Ich denke, ich bin nicht genügend in der ooo Basic Sprache drinnen
Es gibt reichlich Lektüre: viewtopic.php?f=18&t=1553
RasmusV hat geschrieben:Ich brauche irgendwie etwas, wie ich die Datenreihen genau zuweisen kann und wie ich auch den Datenreihen ihre Achse zu weisen kann. Sollte zB eine sekundäre Y-Achse verwendet werden.
Tja, die Sache ist halt nicht so ganz einfach. Was erwartest Du, das dir jemand ein Makro schreibt? Für Umme?
Vielleicht hast Du Glück!
Du scheinst Dich ja besser aufs Bitten als aufs Lernen zu verstehen.
R
RasmusV
*
Beiträge: 14
Registriert: Sa, 23.02.2013 19:16

Re: Diagramm per Makro erstellen

Beitrag von RasmusV »

Die 500 seitige von Pitonyak ist bereits mein Standartnachschlagewerk. Leider behandelt dieses nicht wirklich das Erstellen von Diagrammen.

Ich erwarte nicht, dass mir jemand ein Makro schreibt. Schon gar nicht welches ich benötige. Mit alle Funktionen und Dialogen wird es doch ein wenig aufwändiger.

Ich erhoffte mir lediglich Tipps für das Erstellen von Diagrammen. Bisher war die hier gegebene Hilfe ausgezeichnet. Weiterhin hoffte ich, dass das Zuweisen der Datenreihen dem Formatieren von Diagrammen ähnlich einfach ist - dies scheint leider nicht der Fall.

Da ich das, ich nenn es mal Interne, von Basic nicht verstehe, weiß ich auch nicht, wie ich überhaupt, außer mit Fragen, an die Problemstellung herangehen könnte.
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Diagramm per Makro erstellen

Beitrag von F3K Total »

Dann habe ich noch diese Idee:
http://lmgtfy.com/?q=makro+%2Bdiagramm+ ... ffice.info
181 Treffer, vielleicht ist ein hilfreicher dabei.

Gruß und viel Erfolg
R
Antworten