Tabellenaufruf aus Listbox

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

Moderator: Moderatoren

lutkas
*
Beiträge: 15
Registriert: Do, 07.04.2005 12:59

Tabellenaufruf aus Listbox

Beitrag von lutkas »

In einer Listbox habe ich die Tabellennamen meines Dokumentes eingetragen. Nun möchte ich über die Auswahl der entsprechenden Tabelle, daß diese geöffnet wird.
Mittlerweile habe ich sämtliche Beispiele der Makrovorlagen unter OpenOffice -> Listbox durchprobiert. Auch aus dem Programmierhandbuch bin ich noch nicht so richtig schlau geworden.':(' Die meisten Beispiele befassen sich mit den Einträgen in die Listbox.
Eigentlich will ich doch nur was ganz "simples".
Kann mir jemand einen Tipp geben, wo ich ansetzen muß??

Gruß lutkas
Frank Lauer
***
Beiträge: 88
Registriert: Mi, 30.07.2003 18:06
Wohnort: Wiesloch

Beitrag von Frank Lauer »

Hallo Lukas,

ich gehe mal davon aus, das du dich in Calc rumtreibst. Versuch mal folgendes:
Bau dir einen Dialog namens "DWahl". Dieser Dialog braucht dann eine Liste namens "eListe" und einen Button mit dem "Sub ButtonPressed" verknüpft wird. sub OpenFPosWahl öffnet den Dialog und füllt die Liste. Sub ButtonPressed Schließt den Dialog und springt zur Tabelle.

Private DFWahl as Object

sub OpenFPosWahl

Dim Liste as Object
dim oTabellenEnum as Object

DialogLibraries.LoadLibrary("Standard")
DFWahl = createUnoDialog( DialogLibraries.Standard.DWahl )
Liste = DFWahl.getControl("eListe")
oTabellenEnum = ThisComponent.Sheets().createEnumeration
Do While oTabellenEnum.hasMoreElements()
Liste.addItem(oTabellenEnum.nextElement.getName(),Liste.ItemCount)
Loop
DFWahl.execute()
end sub

Sub ButtonPressed
Liste = DFWahl.getControl("eListe")
ThisComponent.CurrentController.SetActiveSheet(ThisComponent.Sheets.getByName(Liste.getSelectedItem()))
DFWahl.endExecute()
End Sub
OOo 2.1 , Win XP
lutkas
*
Beiträge: 15
Registriert: Do, 07.04.2005 12:59

Beitrag von lutkas »

Hallo Frank,
vielen Dank für Deine Unterstützung. War genau das was ich brauchte. Wär ich aber beim besten Willen nie allein darauf gekommen.
Zumindest verstehe ich jetzt, was man mit den Dialogen so alles anfangen kann.
Schönes Wochenende

Gruß lutkas
lutkas
*
Beiträge: 15
Registriert: Do, 07.04.2005 12:59

Beitrag von lutkas »

Leider Gottes zu früh gefreut.
Wie gesagt hatte ich ein neues Dokument erstellt und alles klappte zur vollsten Zufriedenheit. Danach habe ich genau das gleiche Makro in mein Ursprungsdokument übernommen und in der Hälfte bricht es ab.
Dar Dialog klappt noch , aber beim Aufruf der ausgewaählten Tabelle bleibt er an folgender Stelle hängen:
Liste = DFWahl.getControl("eListe")
Die Bibliothek heißt "DFWahl" und die List "eListe". Ich habe auch schon beides umbenannt, bleibt trotzdem an der gleichen Stelle hängen.
Ist das logisch?

Gruß lutkas
Frank Lauer
***
Beiträge: 88
Registriert: Mi, 30.07.2003 18:06
Wohnort: Wiesloch

Beitrag von Frank Lauer »

Hast du DFWahl im Kopf des Moduls mit Private DFWahl as Object definiert?

Wenn nicht, dann ist der Fehler verständlich, da dann DFWahl nur innerhalb von "sub OpenFPosWahl" gültig ist. Damit würde also "Liste = DFWahl.getControl("eListe") " in "Sub ButtonPressed" zu einem Fehler führen, da das DFWahl in "Sub ButtonPressed" nicht das gleiche wäre wie in "sub OpenFPosWahl" und DFWahl in "Sub ButtonPressed" deshalb keine "eListe" kennt.

Schau einfach nochmal nach, ob du am Beginn deines Modules (Außerhalb aller Subs) "Private DFWahl as Object" stehen hast. Falls das nicht funktioniert dann schreibe stattdessen mal "Public DFWahl as Object".
OOo 2.1 , Win XP
lutkas
*
Beiträge: 15
Registriert: Do, 07.04.2005 12:59

Beitrag von lutkas »

Genau das war mein Fehler.
Vielen Dank für die schnelle Antwort.

Gruß lutkas
Antworten