Seite 1 von 1
ods Datei mit Inhalt aus einer SQL Abfrage füllen
Verfasst: Mi 15. Jun 2016, 10:02
von Kenji
Hallo zusammen,
Problematiken lassen einen irgendwie nicht mehr los....
Nachdem die letzte Schwierigkeit perfekt gelöst worden ist gibt es nun ein weiteres Anliegen.
Kurz zum Hintergrund. Es existiert ein Dialog, der verschiedene Dropdown und Textfelder enthält, welche meist durch SQL Abfragen auf eine Postgre SQL DB gefüllt werden.
Nun möchte ich diese abgefragten Daten in eine ods Datei speichern.
Beispiel:
Dropdown 1 enthält alle Länder
Ich möchte nun für jedes Land ein neues Tabellenblatt in der ods Datei erzeugen und dies entsprechend benennen
Dropdown 2 enthält alle Städte, die zum jeweiligen Land gehören
Ich möchte nun dass alle Städte des jeweiligen Landes in das entsprechende Tabellenblatt untereinander in einer bestimmten Spalte geschrieben werden
Leider habe ich nichtmal einen Ansatz wie das funktionieren könnte. Sicherlich mit einer Schleife, aber ich hoffe Ihr könnt mir hier nochmals auf die Sprünge helfen....
Viele Grüße
Kenji
Re: ods Datei mit Inhalt aus einer SQL Abfrage füllen
Verfasst: Mi 15. Jun 2016, 13:38
von gogo
schau mal hier.
http://www.libreoffice-forum.de/viewtop ... 183#p20183
Das Makro das Du brauchst heisst "TOOL_SQLToCalc", da sind alle Funktionalitäten drin um Resultsets in ein Calc-Sheet zu transferieren... muss aber sicher noch umgearbeitet werden, damit Deine speziellen Vorstellungen funktionieren.
Re: ods Datei mit Inhalt aus einer SQL Abfrage füllen
Verfasst: Fr 17. Jun 2016, 07:45
von Kenji
Hallo,
erst einmal vielen Dank für die Rückmeldung. Das Tool und die dazugehörigen Beiträge haben mir schon gut geholfen. Nun bin ich soweit, dass mit in mein erstes Tabellenblatt die gewünschten Daten hineingeschrieben werden.
Außerdem funktioniert bereits, dass für jedes "Land", was in Spalte A steht ein neues Tabellenblatt generiert wird. Nun möchte ich weiter, dass diese neu generierten Tabellenblätter gefüllt werden mit Daten aus einer anderen SQL Abfrage...
Code: Alles auswählen
REM Bibliothek laden
globalScope.BasicLibraries.loadLibrary("Tools")
REM Dateipfad
STEUrl = DirectoryNameoutofPath(convertfromurl(thisComponent.url), getPathSeparator())
REM Abfrage
Testabfrage = SQL_Anweisung.executeQuery("SELECT ""test1"",""test2"",""test3"",""test4"",""test5"" FROM ""laender"" ORDER BY ""test1""")
aColumns = Testabfrage.Columns.ElementNames
AuswDoc = StarDesktop.loadComponentFromURL("file:///" & STEUrl & "\" & "Vorlagen\Auswertung.ods", "_blank", 0, Args()
oSheet = AuswDoc.Sheets(0)
nColumnCount = UBound(aColumns)
Dim aLine(nColumnCount)
Dim aData(0)
aData(0) = aColumns
nUpperBoundary = 0
Do While Testabfrage.Next
nUpperBoundary = UBound(aData)+1
ReDim Preserve aData(nUpperBoundary)
ReDim aLine(nColumnCount)
For i = 0 To nColumnCount
aLine(i) = Testabfrage.getString(i+1)
Next i
aData(nUpperBoundary) = aLine
AuswDoc.sheets.insertNewByName(Testabfrage.getString(2), 1)
Loop
oRange = oSheet.getCellRangeByPosition(0,0,nColumnCount,nUpperBoundary)
oRange.setDataArray(aData)
Call Sortieren_steigend
Wäre super wenn mich jemand nochmal auf die richtige Fährte lotsen kann....
Grüße
Kenji
Re: ods Datei mit Inhalt aus einer SQL Abfrage füllen
Verfasst: Fr 17. Jun 2016, 18:57
von gogo
reicht es nicht, "aData()" mit den richtigen Daten zu füllen?
Re: ods Datei mit Inhalt aus einer SQL Abfrage füllen
Verfasst: So 19. Jun 2016, 15:56
von Kenji
Hallo,
ich kann dir leider nicht sagen, ob das das Problem löst, denn ich stehe grade völlig auf dem Schlauch und hab null Ansatz, wie es weitergehen könnte....
Hast du da evtl. einen Beispielcode für mich oder etwas, was mich wieder etwas in die korrekte Richtung führt?
Ich benötige wirklich alles im Makro selber und habe keinen Spielraum, dass die Abfragen in extra InputBoxen oder Ähnlichem eingetragen werden.
Grüße
Kenji
Re: ods Datei mit Inhalt aus einer SQL Abfrage füllen
Verfasst: Do 23. Jun 2016, 11:58
von Kenji
Hallo zusammen,
ist hier niemand mehr, der mir weiterhelfen kann?
Grüße
Kenji