Seite 1 von 1

[gelöst] Werte des Listenfeldes aus einer Calc Datei

Verfasst: Di, 01.03.2011 06:50
von dark_diver
Hallo alle zusammen,

ich habe folgende Frage.
Ist es möglich die Werte eines Listenfeldes im Formular aus einer Spalte in einer Calc Tabelle zu beziehen. Wenn Ja, wie wäre diese Verknüpfung/Abfrage zu realisieren.

Ich Danke im Voraus für Eure Hilfe und Aufmerksamkeit

Re: Werte des Listenfeldes aus einer Calc Datei

Verfasst: Di, 01.03.2011 07:41
von komma4
Willkommen im Forum.

Deine Frage bezieht sich auf ein Listenfeld eines Formulars einer BASE-Datei?

Re: Werte des Listenfeldes aus einer Calc Datei

Verfasst: Di, 01.03.2011 16:43
von dark_diver
Genau...es geht um ein "Listenfeld eines Formulars einer BASE-Datei"...

Re: Werte des Listenfeldes aus einer Calc Datei

Verfasst: Di, 01.03.2011 16:56
von komma4
Nein.

Jedenfalls nicht mit den eingebauten Bordmitteln. BASE kann nur auf die Daten der eigenen Tabellen zugreifen.

Re: Werte des Listenfeldes aus einer Calc Datei

Verfasst: Mi, 02.03.2011 00:01
von dark_diver
Wie würde dann die Methode aussehen mittels "nicht eingebauter Bordmittel". Irgenwelche Extentions oder Scripts?
Hilf mir bitte auf die Sprünge, in welcher Richtung ich weiter nachforschen soll?

Danke =)

Re: Werte des Listenfeldes aus einer Calc Datei

Verfasst: Mi, 02.03.2011 07:53
von komma4
dark_diver hat geschrieben:Wie würde dann die Methode aussehen mittels "nicht eingebauter Bordmittel".
Aufmerksam gelesen!


Das soll belohnt werden... Stückchen Code, welches zu einer bereits geöffneten BASE-Datei:


* die Daten aus der angegebenen CALC-Datei holt und aufbereitet
* das Formular öffnet
* das angegebene Listenfeld besetzt

Code: Alles auswählen

Sub de47173_LB_fuellen
' 2011-03-02


' ANPASSEN !
' Name wie in der BASE-Datei zu sehen
sFormularName = "frm_externerListboxInhalt"

' intern vergebener Name
sFormName = "MainForm"

' Name des Listenfeldes
sListboxName = "extern_Listenfeld"

' Pfad und Name der Calc Datei
sPfadZurCalc = "/media/disk/archiv/ooo/calc_Monate.ods"
' Name Tabellenblatt mit Daten
sBlattname = "Tabelle2"
' Bereich der Daten
sDatenbereich = "A2:A13"

' ------------------------------------------------------------------
' Daten holen
Dim OpenProperties(1) as new com.sun.star.beans.PropertyValue
OpenProperties(0).Name = "Hidden"
OpenProperties(0).Value = True

sCalcURL = ConvertToURL( sPfadZurCalc ) 

oCalcDok = StarDesktop.loadComponentFromURL( _
   sCalcURL, "_blank" , 0 , OpenProperties() )

oBereich = _
   oCalcDok.Sheets().getByName( sBlattname )._
   getCellRangeByName( sDatenbereich )

mDaten()  = oBereich.getDataArray()


oCalcDok.close( TRUE )


' ------------------------------------------------------------------
' Aufbereitung der Daten
mEinzelDaten() = mDaten

sListeninhalt = ""

For i = 0 To UBound( mEinzeldaten() )
   sTemp = mEinzelDaten( i )
   sListeninhalt = sListeninhalt & sTemp(0) & "|" 
Next i

' letzten Umbruch entfernen
sListeninhalt = Left( sListeninhalt, Len( sListeninhalt) - 1 )
' aufteilen in Matrix
mListeninhalt = Split( sListeninhalt, "|" )



' ------------------------------------------------------------------
' Formular öffnen und Daten setzen
oListBoxDok = _
   StarDesktop.CurrentComponent.FormDocuments().getByName( sFormularName )._
   open()

oListBox = oListBoxDok.Drawpage.Forms().getByName( "MainForm" )
oListBox.StringItemList = mListeninhalt() 

End Sub

Hilft Dir das weiter?

Re: Werte des Listenfeldes aus einer Calc Datei

Verfasst: Do, 03.03.2011 15:26
von dark_diver
Ich danke dir für deine sachkundige professionelle Hilfe.

Dein Lösungsvorschlag hat mich mit einem Quantensprung direkt ans Ziel gebracht.
Somit kann man die Aufgabestellung dieses Threades als *gelöst* bezeichen.
Die Unterstützung in diesem Forum ist sehr kompetent und rational.

Noch mal ein großes menschliches Danke