Seite 1 von 1

[gelöst] Neue Seite mit Tabelle

Verfasst: Mi 23. Jun 2021, 13:40
von HeiDieLX2
Hallo liebe Mitstreiter: Innen,
auf Hilfe hoffe ich bei einer Makroprogrammierung bei der ich seit Tagen in einer Sackgasse festsitze.

Um was geht es: Ich öffne aus einer Base-Anwendung eine ott-Datei welche mehrere Seiten mit Text-Tabellen enthält. Für jeden Bereich eine Seite. Nun fülle ich aus einer PostgrSQL-Tabelle die Informationen jeweils in die vorhanden Text-Tabellen.
Dies funktioniert auch sehr gut. Sind jedoch in der PSQL-Tabelle mehr Sätze enthalten als Platz in meiner Text-Tabelle in Writer beginnt mein Problem.
Wie stelle ich es also am geschicktesten an, in diesem Fall ein weiteres Blatt mit entsprechender Tabelle bereitzustellen.
Dabei ist mein Problem meine nur begrenzte Kenntnis der Interna des Writer-Dokuments.
Stichworte: Positionierung, Einfügepunkt, Tabellen Format, Tabellen Name etc.

Eine neue Seite einzufügen in der Test-Writer-Datei ist zwar kein Problem, wenn ich das ganze jedoch von Base aus ansteuere ist das Ergebnis weniger als mittelprächtig.

Ich würde gerne eine SUB haben die das erledigt und mit passenden Parametern wenn nötig aufgerufen wird. Weil im Falle des Überlaufs das auf den weiteren Seiten ebenfalls zu erwarten ist.

Re: Neue Seite mit Tabelle

Verfasst: Do 24. Jun 2021, 10:59
von gogo
Wie kommt die Info bezüglich der Zeilenzahl in das Writer-Dokument?
In der BaseReportExtension wird die Zeilenzahl der Daten (nZeilen) ermittelt und dann mittels: .getRows().insertByIndex() die entsprechende Zeilenzahl angefügt ("nZeilen-1" weil die erste Zeile der Tabelle im ott-Dokument schon vorhanden ist)

Zitat aus dem Code der BaseReportExtension:

Code: Alles auswählen

 Modul: BRX_MAIN
 Zeile 322:
	myTable.getRows().insertByIndex(iStartAtRow, nZeilen-1)

Re: Neue Seite mit Tabelle

Verfasst: Mo 28. Jun 2021, 14:16
von HeiDieLX2
Hallo,
ich versuche es nochmal mit mehr infos.
Zunächst bin ich noch in der Probier- bzw. Testphase.

Alles spielt sich im HC_AngSaniBase_3.odt ab.
Da drin gibt es Makros
sub InsertNeueSeite: Fügt eine neue Seite mit Überschrift, Untertitel und Blattzahl ein. Der Cursor steht unter der ersten Tabelle bei Ausführung.
Sub InsertFormatTable: erstellt eine neue Tabelle auf der oben eingefügten Seite, landet dann jedoch auf dieser Fehlermeldung:
siehe Bild im Anhang

Für mich ergeben sich bislang noch einige Probleme:
- Format der Tabelle d. h. Anpassen der Spaltenbreite, Ausblenden der Umrandungen, Schriftart in der Tabelle anpassen, Innenabstand 0,10 cm.
- im Zuge der Bearbeitung aus Base: ?? keine Ahnung wie da die Positionierung im odt/ott abläuft.

Ich habe in Teilen Thomas Krumbeins Makro Grundlagen als auch Andrew Pitonyak BASIC-Makros für OpenOffice und LibreOffice gelesen.

Re: [gelöst] Neue Seite mit Tabelle

Verfasst: Do 1. Jul 2021, 15:29
von HeiDieLX2
Hallo,
zumindest das Problem mit der o. g. Fehlermeldung ist gelöst.
An den anderen Punkten arbeite ich noch.

oTable.TableColumnSeparators liefert ein Array zurück. Dies beißt sich natürlich mit meiner Initialisierung
DIM oTableTrenner as Object - richtig wäre
DIM oTableTrenner() was jedoch wegen dem ersten Buchstaben in die Irre führt, also ganz richtig ist somit
DIM aTableTrenner()

HTH