[gelöst] Das Tabellenblatt/Sheet einer DrawPage herausfinden

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

Moderator: Moderatoren

Maggus
****
Beiträge: 108
Registriert: Mo, 01.08.2005 13:32
Kontaktdaten:

[gelöst] Das Tabellenblatt/Sheet einer DrawPage herausfinden

Beitrag von Maggus »

Hallo,

ich bin gerade verwundert darüber, dass man anscheinend nicht ohne weiteres herausfinden kann, zu welchem Sheet eine DrawPage gehört.
mit

Code: Alles auswählen

MeineDrawPage = thisComponent.Sheets(3).DrawPage
kann ich die DrawPage ansprechen, aber wenn ich jetzt irgendwo im Dokument z.B. Zugriff auf ein Zeichnungsobjekt habe, wie kriege ich heraus, in welchem Tabellenblatt es sich befindet?
Ich hätte sowas vermutet wie:

Code: Alles auswählen

MeinSheetName = MeinShape.Parent.Parent.Name
Also praktisch vom Zeichenobjekt auf die DrawPage zum Sheet.

Das einzige was mir jetzt einfällt wäre eine Schleife über alle Sheets und deren DrawPage und da z.B. eine hasByName Abfrage. Aber geht das nicht einfacher?

Gruß,
Zuletzt geändert von Maggus am Mo, 20.02.2012 13:34, insgesamt 1-mal geändert.
Maggus (:o)
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Das Tabellenblatt / Sheet einer DrawPage herausfinden

Beitrag von Karolus »

Hallo
Benutzt du Xray oder mri ? -solltest du aber tun!

Code: Alles auswählen

ThisComponent.getDrawPages.getByIndex( 3 )
Anscheinend hat ein sheet und die zugehörige Drawpage den gleichen Index

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Frieder D.
****
Beiträge: 115
Registriert: Di, 10.01.2012 10:51
Kontaktdaten:

Re: Das Tabellenblatt / Sheet einer DrawPage herausfinden

Beitrag von Frieder D. »

Hallo Maggus

Wie bekommst du den Zugriff auf das Zeichenobjekt?
Normalerweise weißt du doch durch den Zugriff, auf welcher Tabelle es ist.
Es sei den es wird durch ein Event (z.B.Klicken auf.) der Zugang zu dem Object erreicht.
(oEvent.Source )

Dann kannst du aber herausfinden, auf welcher Tabelle du dich gerade befindet:

Code: Alles auswählen

sSheetName=ThisComponent.CurrentController.ActiveSheet.Name
iSheetIndex=ThisComponent.CurrentController.ActiveSheet.getCellByPosition(0,0).CellAddress.Sheet
Gruß Frieder
Maggus
****
Beiträge: 108
Registriert: Mo, 01.08.2005 13:32
Kontaktdaten:

Re: Das Tabellenblatt / Sheet einer DrawPage herausfinden

Beitrag von Maggus »

Hallo Karolus,

entweder hast du mich nicht verstanden, oder ich verstehe deine Aussage nicht ganz.

Ich habe Zugriff auf ein Zeichnungsobjekt und möchte herausfinden auf welchem Sheet es sich in der DrawPage befindet. Vorgegeben ist also nur das Objekt und kein Index.
Ist jetzt kein akkutes Problem, will einfach nur mal wissen, ob das so einfach geht.
Karolus hat geschrieben:Benutzt du Xray ...?
Selbstverständlich ;-)

Gruß,
Maggus (:o)
Maggus
****
Beiträge: 108
Registriert: Mo, 01.08.2005 13:32
Kontaktdaten:

Re: Das Tabellenblatt / Sheet einer DrawPage herausfinden

Beitrag von Maggus »

Hallo Frieder,
Ja, das stimmt.
Frieder D. hat geschrieben:Es sei den es wird durch ein Event (z.B.Klicken auf.) der Zugang zu dem Object erreicht.
In dem Zusammenhang bin ich auch auf die Frage gestoßen.

Es ist wie gesagt auch kein Problem, sondern nur eine Verständnisfrage, weil es mich irgendwie wundert, dass man von einer DrawPage nicht einfach so sagen kann, an welchem Sheet sie hängt.

Also gehe ich richtig der Annahme, dass es so wie oben beschrieben (über Parent, etc.) nicht geht?

Gruß,
Maggus (:o)
Maggus
****
Beiträge: 108
Registriert: Mo, 01.08.2005 13:32
Kontaktdaten:

Re: Das Tabellenblatt / Sheet einer DrawPage herausfinden

Beitrag von Maggus »

Karolus hat geschrieben:Anscheinend hat ein sheet und die zugehörige Drawpage den gleichen Index
Moment mal, ein Sheet hat einen Index zwischen 0 und Sheet Anzahl minus 1
Eine DrawPage ist in Calc immer auf einem Sheet und da jedes Sheet nur eine DrawPage hat, müsste doch jede DrawPage den Index 0 haben, oder irre ich??

Gruß,
Maggus (:o)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Das Tabellenblatt / Sheet einer DrawPage herausfinden

Beitrag von Stephan »

oder irre ich??
Ja Du irrst, was Du erkennen würdest wenn Du den Code von Karolus ausprobiert hättest.

Ich jedenfalls kann die Aussage von Karolus nur bestätigen.


Gruß
Stephan
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Das Tabellenblatt / Sheet einer DrawPage herausfinden

Beitrag von Karolus »

Hallo
Von einer selektierten Schaltfläche komme ich zum Tabellenobjekt per →Mri→Selektion:

~.getByIndex(0).getAnchor.getSpreadsheet

Edit:
Du kannst auf 2 Wegen zur selben Drawpage kommen:
1. ThisComponent.sheets(2).getDrawpage()
2. ThisComponent.getDrawPages.getByIndex( 2 )

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Maggus
****
Beiträge: 108
Registriert: Mo, 01.08.2005 13:32
Kontaktdaten:

Re: Das Tabellenblatt / Sheet einer DrawPage herausfinden

Beitrag von Maggus »

Karolus hat geschrieben:~.getByIndex(0).getAnchor.getSpreadsheet
DAS habe ich gesucht! :D Also gehts doch so. Da wär ich ja nie drauf gekommen, das über Anchor zu finden...
Danke dir!

Also müsste es statt wie angenommen so heißen:

Code: Alles auswählen

MeinSheetName = MeinShape.Anchor.Spreadsheet.Name
PS: den 2. Weg bin ich bisher nie gegangen. So gehts also auch. Wieder dazugelernt. Danke

Gruß,
Maggus (:o)
Antworten