Seite 1 von 1

[Gelöst] Via Makro Datensätz zu Diagramm hinzufügen

Verfasst: Di, 29.07.2014 16:15
von Rasakul
Hallo liebe Community!

Folgendes Problem: ich möchte über ein Makro (siehe Code im Anhang) mehrere Datensätze aus einem Calc Dokument auslesen und einem Streudiagramm übergeben, um sie darzustellen.Der Datensatz besteht aus einem Namen, und je einem x-/y-Wert.

Das hinzufügen schaffe ich mittlerweile, auch dank https://wiki.openoffice.org/wiki/Docume ... ata_Access, allerdings verarbeitet das Diagramm die Daten falsch, die Unterscheidung von x- und y-Werten geht verloren, es werden nur einzelne y-Werte erkannt und entsprechend die Datensätze verdoppelt (siehe angehängtes Bild).

Ich vermute mal, dass die Art, wie ich die Daten übergebe nicht richtig ist, leider finde ich aber hierzu nichts genaueres in der Dokumentation.

Mit dem momentanen Code baue ich im Prinzip den Datensatz nach, den ich mittels XRay aus einem manuel erstellten Diagram auslesen kann.

Mir gehen mittlerweilen echt die Ideen aus.... x_x :-?

Ich hoffe, man versteht halbwegs, was ich vorhabe
Vielen Dank schon mal im vorraus für jede Art der Hilfe!
MfG Rasakul

--------------------------------------------------------
Windows 7
OpenOffice 4.1.0
Java 7 Update 55
--------------------------------------------------------

Der verkürzte Code (ich laufe eigentlich mit einer Schleife über das Dokument, hab ich aber wegen der Übersicht rausgenommen)

Code: Alles auswählen

    
sheet = oMap.Sheets.getByIndex(0)   'oMap ist das Dokument
embed = sheet.Charts.getByIndex(0).EmbeddedObject
        
Dim oDataArray(0 To 1) As Object
Dim oNameArray(0 To 1) As String
      
Dim XData( 0 To 0 ) As Double   'X-Wert des Datensatzes
Dim YData( 0 To 0 ) As Double   'Y-Wert des Datensatzes
Dim oName( 0 To 0 ) As String   Beschriftung des Datensatzes

x=3
y=4   'Position des ersten Datensatzes

'Daten auslesen
YData(0) = sheet.getCellByPosition(x,y).value
XData(0) = sheet.getCellByPosition(x,y+1).value
oName(0) = sheet.getCellByPosition(x-3,y).string

'Array zusammensetzen        
oDataArray(i) = XData()
oDataArray(i+1) = YData()        
oNameArray(i+1) = oDesc(0)

'überprüfen    
'XRay oDataArray
'XRay oNameArray

'vergleichen mit manuel erstelltem Diagram
'XRay embed.getData().getData()
'XRay embed.getData().getRowDescriptions()

'Daten dem Diagram übergeben
embed.getData().setData(oDataArray)
embed.getData().setRowDescriptions(oDescArray)

Re: Via Makro Datensätz zu Diagramm hinzufügen

Verfasst: Di, 05.08.2014 12:19
von Rasakul
Ich habe das Problem mittlerweile selber gelöst - der Ansatz war komplett falsch

falls jemand in Zukunft das selbe Problem hat, findet er/sie hier die Lösung: https://forum.openoffice.org/en/forum/v ... =20&t=8991