von komma4 » Mi, 02.03.2011 07:53
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?
[quote="dark_diver"]Wie würde dann die Methode aussehen mittels "nicht eingebauter Bordmittel".[/quote]
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]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[/code]
Hilft Dir das weiter?