Seite 1 von 1

Methoden vom Chart-Object in Libre Calc

Verfasst: Mi 17. Jul 2013, 08:55
von GlebG
Hey,

ich versuche in einem Makro auf eine Grapg zuzugreifen mit Hilfe seines Namens. Hierfuer wuerde ich gerne wissen, welche Methoden das Object Chart dafuer zur verfuegung stellt. Kann mir jemand sagen, wo diese Information gefunden werden kann?

Danke

Re: Methoden vom Chart-Object in Libre Calc

Verfasst: Mi 17. Jul 2013, 11:21
von GlebG
Hey,
ich bin ein wenig weiter gekommen:
laut http://wiki.openoffice.org/wiki/Documen ... _of_Charts kann ich mit getByName() mir mein Chart holen. Das habe ich versucht:

Code: Alles auswählen

oCharts = oDoc.Sheets.getByName("LMI_Report").Charts
oChart = oCharts.getByName("Created_Devices_By_Month").embeddedObject
Sowohl der Titel als auch der Name der Charts ist "Created_Devices_By_Month". Jedoch kriege ich immer den runtime Fehler vom Typ "com.sun.star.container.NoSuchElementException Message:.:

Das Chart habe ich vorher mit Libre Calc erstellt und Title und Name eingegeben. Ich weis, dass mitauch mit Index arbeiten kann, jedoch will ich ueber den Namen an das Chart kommen.

Re: Methoden vom Chart-Object in Libre Calc

Verfasst: Mi 17. Jul 2013, 12:58
von karolus
Hallo
Wirf mal einen aufmerksamen Blick auf den Beispielscode der von dir verlinkten Seite...

Karolus

Re: Methoden vom Chart-Object in Libre Calc

Verfasst: Do 18. Jul 2013, 02:02
von GlebG
Hi,

sehe da keinen Unterschied: Ich hole mir zuerst das Charts Objekt mit Hilfe des Sheet Objektes. Danach hole ich mir das eigentliche Chart mit Hilfe des Charts Objektes. Habe ich ein Syntax Fehler drin, den ich nicht sehe?

Code: Alles auswählen

	Dim oLMI_Sheet AS Object
	Dim oData_Sheet AS Object
	Dim oDoc AS Object
	Dim oDataCell AS Object
	Dim oChart AS Object
	Dim oCharts AS Object

	oDoc = ThisComponent
	
	oLMI_Sheet = oDoc.Sheets.getByName("LMI_Report")
	oData_Sheet = oDoc.Sheets.getByName("LMI_Data")

	
	oCharts = oLMI_Sheet.Charts
	oChart = oCharts.getByName("Created_Devices_By_Month").EmbeddedObject
Grus,
GlebG

Re: Methoden vom Chart-Object in Libre Calc

Verfasst: Do 18. Jul 2013, 04:45
von karolus
Hallo

Bei dir fehlt u.A die Zeile:

Code: Alles auswählen

oCharts.addNewByName("Created_Devices_By_Month", Rect, RangeAddress(), True, True)
Karolus

Re: Methoden vom Chart-Object in Libre Calc

Verfasst: Do 18. Jul 2013, 04:54
von GlebG
Hey,

habe folgendes gefunden: http://comments.gmane.org/gmane.comp.op ... rman/79718
Wie es aussieht, wird manuel erstellen Diagrammen ein automaisch generierter Name gegeben "Object X", wobei X die Nummer ist. D.h. wenn ich in einem Makro mit vorher manuell erstellten Tabellen arbeiten will, muss ich erst heraus finden, wie sie heisen, da rechtsklich/Name aendern nicht hilft...kann das jemand bestaetigen?

Gruss,
Gleb

Re: Methoden vom Chart-Object in Libre Calc

Verfasst: Do 18. Jul 2013, 06:20
von F3K Total
Moin,
der manuell vergebene Name wird im Shape-Object des Diagramms gespeichert, darum muß man über die Drawpage gehen.

Code: Alles auswählen

sub S_Diagramm_getbyname
    opage = thiscomponent.sheets.getByName("LMI_Report").drawpage
    for i = 0 to opage.count -1
        if opage(i).Name = "Created_Devices_By_Month" then
            ochart = opage(i).embeddedObject.Component
        endif
    next i
    'xray ochart
end sub
Gruß R