🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

ods Datei mit Inhalt aus einer SQL Abfrage füllen

Alles zur Programmierung im LibreOffice.
Antworten
Kenji
Beiträge: 16
Registriert: So 29. Nov 2015, 12:03

ods Datei mit Inhalt aus einer SQL Abfrage füllen

Beitrag von Kenji » Mi 15. Jun 2016, 10:02

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

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: ods Datei mit Inhalt aus einer SQL Abfrage füllen

Beitrag von gogo » Mi 15. Jun 2016, 13:38

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.
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Kenji
Beiträge: 16
Registriert: So 29. Nov 2015, 12:03

Re: ods Datei mit Inhalt aus einer SQL Abfrage füllen

Beitrag von Kenji » Fr 17. Jun 2016, 07:45

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

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: ods Datei mit Inhalt aus einer SQL Abfrage füllen

Beitrag von gogo » Fr 17. Jun 2016, 18:57

reicht es nicht, "aData()" mit den richtigen Daten zu füllen?
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Kenji
Beiträge: 16
Registriert: So 29. Nov 2015, 12:03

Re: ods Datei mit Inhalt aus einer SQL Abfrage füllen

Beitrag von Kenji » So 19. Jun 2016, 15:56

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

Kenji
Beiträge: 16
Registriert: So 29. Nov 2015, 12:03

Re: ods Datei mit Inhalt aus einer SQL Abfrage füllen

Beitrag von Kenji » Do 23. Jun 2016, 11:58

Hallo zusammen,

ist hier niemand mehr, der mir weiterhelfen kann?

Grüße

Kenji


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten