Seite 1 von 1
Tabellenfeld manuell mit Werten füllen
Verfasst: Do, 04.11.2010 18:21
von AtzeLenin
Hallo liebe Leute,
Es gibt ja die Möglichkeit ein leeres Tabellen-Kontrollelement zu erstellen (als ohne eine Verknüpfung zu einer Tabelle, Abfrage oder SQL Befehl)
Zugriff hab ich auf das Element dann z.B. über
Code: Alles auswählen
tab_feld = ThisComponent.Drawpage.Forms.getByName("MainForm").getByName("tab")
Außerdem kann ich ja manuell Spalten hinzufügen und bennennen (z.B. Ort, Name und Datum)
Wir kann ich dann aber konkret Daten in die Tabelle einlesen? Ich dachte an irgendwas wie:
Code: Alles auswählen
tab_feld = ThisComponent.Drawpage.Forms.getByName("MainForm").getByName("tab")
tab_feld.moveToInsertRow()
tab_feld.updateString(1,"Ort")
tab_feld.updateString(2,"Name")
tab_feld.updateString(3,"Datum")
tab_feld.insertRow()
tab_feld.updateRow()
Geht aber leider nicht... Habt ihr Ideen wie ich das umsetzen kann?
Vielen DAnk für die Hilfe!
Re: Tabellenfeld manuell mit Werten füllen
Verfasst: Fr, 05.11.2010 21:25
von DPunch
Aloha
Ich bezweifle, dass das überhaupt geht, ein Tabellenkontrollfeld basiert in OpenOffice (bis jetzt, da wird wohl dran gearbeitet) einzig und allein auf einem RowSet, ohne dieses hast Du keine Daten darin und wirst vermutlich auch keine hinenbekommen.
Re: Tabellenfeld manuell mit Werten füllen
Verfasst: So, 07.11.2010 23:37
von AtzeLenin
Und kann ich nicht ein passendes RowSet erstellen und zuweisen? Da muss es doch ne Möglichkeit geben... ggrrrrr
Re: Tabellenfeld manuell mit Werten füllen
Verfasst: Mo, 08.11.2010 06:01
von herz4
Guten Morgen,
womöglich ist dem eigentlichen Datenproblem(!) auch in Base beizukommen - ohne exotische Tabelle ...!?
Welcher Art ist dieses?
Re: Tabellenfeld manuell mit Werten füllen
Verfasst: Mo, 08.11.2010 12:45
von AtzeLenin
Ich möchte eine Formatierte Ausgabe und die Sortierfunktion nutzen (beim Klick auf die Reiter)
Ich kann den SQL-Befehl aber nicht direkt an das übergeordnete Formular übergeben, weil er schlichtweg nicht ausgeführt wird (ist zu komplex und variabel und geht nur über direkt ausführen / es wird ausserdem nur eine select-anfrage unterstützt (und nicht zum beispiel 2 verschachtelte)...) also muss ich es manuell machen und die daten dann zuordnen.
Re: Tabellenfeld manuell mit Werten füllen
Verfasst: Mo, 08.11.2010 12:49
von herz4
Was hältst Du von einer Dummy-Tabelle - gemeint Datentabelle - die Du per Makro befüllst ...
Re: Tabellenfeld manuell mit Werten füllen
Verfasst: Mo, 08.11.2010 13:13
von AtzeLenin
Und das geht wie?
Als Input hab ich einen SQL-Befehl mit bekannten feldern. Wie fülle ich das?
Besten Dank für den Support!
Re: Tabellenfeld manuell mit Werten füllen
Verfasst: Mo, 08.11.2010 13:36
von herz4
Zunächst die Datentabelle einrichten, PK nicht vergessen.
Die SQL-Abfrage erstellen, die die Daten für die Befüllung bereitstellt (dürfte schon vorhanden sein).
Aus dieser Abfrage einen Insert-Befehl zur Befüllung der neuen Tabelle erstellen und testen!
Diesen Befehl im Makro entsprechend
http://www.ooowiki.de/BaseApi#head-6d60 ... 60dc46f455 oder Beiträgen im Forum ausführen lassen zum Aktualisieren der Tabelle im Formular, eventuell bei seinem Aufruf starten?! Hierbei vor Neu-Befüllung der Tabelle alte Datensätze löschen lassen!
Re: Tabellenfeld manuell mit Werten füllen
Verfasst: Mo, 08.11.2010 14:38
von AtzeLenin
Mhh hab eine Vorstellung dazu und das müsste wohl auch gehen.
Meine Frage:
1.) Ist das auch noch angemessen schnell oder krieg ich da ein Probelm (bei einigen hundert einträgen)
2.) mit drop lösch ich die tabelle, aber wie leere ich sie... unter mysql geht es ja mit TRUNCATE TABLE 'table' aber das scheint unter hsqldb nicht zu funktionieren
EDIT: alles klar, habs gefunden: DELETE FROM tabelle
Aber ich glaub, dass kann ich so umsetzen!
Vielen Dank
Re: Tabellenfeld manuell mit Werten füllen
Verfasst: Di, 09.11.2010 10:05
von AtzeLenin
Ein Problem hab ich noch:
Irgendwie kann ich nicht die Datensätze des Subformulars ein/auslesen...
Das Funktioniert
Code: Alles auswählen
fo = ThisComponent.Drawpage.Forms.getByName("MainForm")
fo.moveToInsertRow()
fo.updateLong(1,123)
fo.insertRow()
fo.updateRow()
Und das nicht...
Code: Alles auswählen
fo = ThisComponent.Drawpage.Forms.getByName("MainForm").getByName("Sub")
fo.moveToInsertRow()
fo.updateLong(1,123)
fo.insertRow()
fo.updateRow()
verrückt...
EDIT: Mhh hat sich auch erledigt... Lad daran, das der Variablen-Typ irgendwie anders sein sollte. Ekliger Fehler, aber ich habs letztlich gefunden.

Re: Tabellenfeld manuell mit Werten füllen
Verfasst: Di, 09.11.2010 10:10
von herz4
Die Datensätze des Sub- wie auch des Formulars basieren doch wohl auf einer/mehreren Tab bzw. Abfr. Warum sprichst Du die nicht per von mir bereits gewiesener Base-Api an?!
Re: Tabellenfeld manuell mit Werten füllen
Verfasst: Di, 09.11.2010 11:05
von AtzeLenin
Hab ich ja nur eben an anderer Stelle
Dein Vorschlag hat super funktioniert und ist auch ausreichend schnell!
Vielen lieben Dank dafür!