[Gelöst] Combobox Wert über Index selektieren

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

Moderator: Moderatoren

CDSchorsch
*
Beiträge: 13
Registriert: Sa, 19.05.2012 14:45

[Gelöst] Combobox Wert über Index selektieren

Beitrag von CDSchorsch »

Hallo zusammen,

ich hab ein fertiges Excelsheet und das ist nicht von mir. Dieses möchte ich nun über Java befüllen. Das Java-Programm kennt den Index von der Combobox. Das einzige was ich im Execlsheet kenne, ist die Zelle in der die Combobox enthalten ist. Also, wie komme ich nun an die Combobox oder an das Model.
Ein "setFormula()" auf die Zelle bringt nix. Dann steht als Wert nur der Indexwert drin.
Und bitte keine Basic Beispiele. Ich programmiere in Java.
Zuletzt geändert von CDSchorsch am Do, 21.06.2012 16:35, insgesamt 1-mal geändert.
Frieder D.
****
Beiträge: 115
Registriert: Di, 10.01.2012 10:51
Kontaktdaten:

Re: Combobox Wert über Index selektieren

Beitrag von Frieder D. »

Hallo CDSchorsch
ich hab ein fertiges Excelsheet
Dies ist kein Exel-Forum, sondern ein OpenOffice und LiebreOffice Forum.
Wenn du Hilfe für Exel suchst, suche dir das passende Forum.

Falls du jedoch "Calc" also das Tabellenkalkulationsprogramm von LiebreOffice oder OpenOffice meinst, dann schreib dies auch bitte.
Und bitte keine Basic Beispiele. Ich programmiere in Java.
Es sollte für dich doch kein Problem sein Basic-Code in Java zu übersetzen, wenn du bereits Zugriff auf das Dokument hast.
Das Java-Programm kennt den Index von der Combobox
Dann kannst du mit folgenden Code(Achtung Basic) auf die Combobox zugreifen:

Code: Alles auswählen

iIndex=1    Rem Der Index der Combobox
osheet= thisComponent.sheets.getByName("Tabelle1")  Rem Zugriff auf die Tabelle.
oComboBox=osheet.DrawPage.Forms(0).getByIndex( iIndex)  Rem zugriff auf die Combobox
Rem oder
Rem oComboBox=osheet.DrawPage.Forms(0).getByName("Name der Combobox") 
Da ich nicht weis, was du weiter mit der combobox machen willst (befüllen, selektierten Text auslesen, die gesamte Liste auslesen oder überschreiben, ein Element hinzufügen, die Box verstecken, Farbe ändern, Schriftart ändern, ......), kann ich dir jetzt auch nicht weiter helfen.

Gruß Frieder
CDSchorsch
*
Beiträge: 13
Registriert: Sa, 19.05.2012 14:45

Re: Combobox Wert über Index selektieren

Beitrag von CDSchorsch »

Hallo Frieder
Dies ist kein Exel-Forum, sondern ein OpenOffice und LiebreOffice Forum.
Ich glaube nicht, dass es verboten ist ein MS Office Dokument mit Open Office zu öffnen. Des weiteren ist mir auch nicht bekannt, dass es eine Java-API für MS Office gibt. Also bin ich hier schon völlig richtig in diesem Forum.
Es sollte für dich doch kein Problem sein Basic-Code in Java zu übersetzen, wenn du bereits Zugriff auf das Dokument hast.
Es hat schon seine Berechtigung warum ich das geschrieben habe. Bitte keine Basic-Beispiele.
Bsp: Dokumentschutz

Code: Alles auswählen

dim oSpreadsheet as object

oSpreadsheet.Unprotect("")
oCell = oSpreadsheet.getCellRangeByName("A1")
oCell.String = "test"
oSpreadsheet.Protect("") 
Laut diesem Basic Code gibt es die Mehtoden "Unprotect()" und "Protect()" dirket im Spreadsheet Objekt. Die dazugehörige Javaklasse kennt aber diese Methoden nicht. Nach langem suchen habe ich dafür das Interface XProtectable gefunden. Also bringt mir das Beispiel garnichts, wenn ich erst suchen muss, ob es irgendwelche Interfaces gibt, die diese Funktionalität besitzen. Und dann stellt sich immer wieder die Frage, welche Objekt ich dann in was casten muss.
Das Java-Programm kennt den Index von der Combobox
Dieser Index bezieht sich auf das Valuset der Combobox und nicht wie in dem Beispiel der Index für die Methode "getByIndex()".
In Java würde ich schreiben:

Code: Alles auswählen

comboBox.setSelectedIndex(index)
Also noch einmal mein Anliegen. Ich habe das Excelsheet, welche in den Zellen XYZ ComboBoxen/Auswahllisten enthalten. Ich möchte nun wissen, wie komme ich über die Zellbeziehung an die ComboBox und an das dazugehörige Model. Da ich, soweit ich das mitbekommen habe, nur über das Model den Value ändern kann. Ich brauche also das Model um dann über den Index einen Wert aus dem internen Valueset auszuwählen.

Gruss CDSchorsch
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Combobox Wert über Index selektieren

Beitrag von Karolus »

Hallo

Hol dir MRI öffne dein Excelsheet mit Calc, inspiziere deine Combobox mit MRI und schau dir den Javacode an, der von MRI generiert wird.
Hint: MRI hat einen 'Hilfe'-button
MRI_combobox_javacode.png
MRI_combobox_javacode.png (14 KiB) 2331 mal betrachtet
Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
CDSchorsch
*
Beiträge: 13
Registriert: Sa, 19.05.2012 14:45

Re: Combobox Wert über Index selektieren

Beitrag von CDSchorsch »

Hallo Karo,

danke für den Hinweis auf MRI. Ist sehr interressant. Ist aber trotzdem kompliziert herauszufinden wie die Combobox aufgebaut ist.
Ich geh jetzt den Weg einfach den Value der Combobox in die Zelle zu schreiben. Damit ist er anschliessend auch der selektierte Wert.

Carsten
Antworten