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

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

dark_diver
Beiträge: 4
Registriert: Di, 01.03.2011 00:24

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

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Werte des Listenfeldes aus einer Calc Datei

Beitrag von komma4 »

Willkommen im Forum.

Deine Frage bezieht sich auf ein Listenfeld eines Formulars einer BASE-Datei?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
dark_diver
Beiträge: 4
Registriert: Di, 01.03.2011 00:24

Re: Werte des Listenfeldes aus einer Calc Datei

Beitrag von dark_diver »

Genau...es geht um ein "Listenfeld eines Formulars einer BASE-Datei"...
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Werte des Listenfeldes aus einer Calc Datei

Beitrag von komma4 »

Nein.

Jedenfalls nicht mit den eingebauten Bordmitteln. BASE kann nur auf die Daten der eigenen Tabellen zugreifen.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
dark_diver
Beiträge: 4
Registriert: Di, 01.03.2011 00:24

Re: Werte des Listenfeldes aus einer Calc Datei

Beitrag 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 =)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Werte des Listenfeldes aus einer Calc Datei

Beitrag 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?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
dark_diver
Beiträge: 4
Registriert: Di, 01.03.2011 00:24

Re: Werte des Listenfeldes aus einer Calc Datei

Beitrag 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
Antworten