Höhe eines Textfeldes im Bericht flexibel gestalten

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
nippes
Beiträge: 2
Registriert: Fr 23. Feb 2018, 20:59

Höhe eines Textfeldes im Bericht flexibel gestalten

Beitrag von nippes » Fr 23. Feb 2018, 21:21

In einem Bericht habe ich mehrere Textfelder. Die zugrunde liegenden Daten haben den Datentyp "Memo". Diese Textfelder enthalten Texte von unterschiedlicher Länge. Ich möchte den Ausdruck so gestalten, dass die Breite dieser Textfelder immer gleich bleibt. Die Höhe dieser Textfelder soll sich an der Menge des Textes orientieren.
In den Eigenschaften der Textfelder kann ich allerdings nur einen festen Wert für die Höhe eintragen. Das führte dazu, dass Textfelder mit wenig Text überwiegend leer bleiben. Bei Textfeldern mit viel Text wird der Text nur unvollständig dargestellt und ausgedruckt.
Die Frage ist also: Gibt es eine Möglichkeit die Höhe eines Textfeldes in Abhängigkeit von der Menge des Inhaltes zu gestalten ?
(Windows 7 und Libreoffice 5.4.4.2 X64)



RobertG
Beiträge: 1646
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Höhe eines Textfeldes im Bericht flexibel gestalten

Beitrag von RobertG » Sa 24. Feb 2018, 09:44

Hallo nippes,

zur Zeit geht die automatische Höhe der Textfelder noch nicht. Du kannst sie allerdings per Makro beeinflussen:

Code: Alles auswählen

SUB BerichtZeilenhoeheAuto
DIM oTables AS OBJECT
DIM oTable AS OBJECT
DIM inT AS INTEGER
DIM inI AS INTEGER
DIM oRows AS OBJECT
DIM oRow AS OBJECT
oSQL_Anweisung.executeUpdate(stSql)
oReport = ThisDatabaseDocument.ReportDocuments.getByName("Berichtsname").open
oTables = oReport.getTextTables()
FOR inT = 0 TO oTables.count() - 1
oTable = oTables.getByIndex(inT)
IF Left$(oTable.name, 6) = "Detail" THEN
oRows = oTable.Rows
FOR inI = 0 TO oRows.count - 1
oRow = oRows.getByIndex(inI)
oRow.IsAutoHeight = True
NEXT inI
ENDIF
NEXT inT
END SUB
Du startest den Bericht über einen Button in einem Formular. "Berichtsname" ist der Name, der eben in Base unter "Berichte" zu finden ist. Das Makro geht alle Tabellen durch und stellt die automatische Höhe für Zellen im Bereich "Detail" ein.

Siehe dazu auch den entsprechenden Text im Handbuch.

Gruß

Robert

nippes
Beiträge: 2
Registriert: Fr 23. Feb 2018, 20:59

Re: Höhe eines Textfeldes im Bericht flexibel gestalten

Beitrag von nippes » Sa 24. Feb 2018, 18:03

Danke für die Lösung und herzlichen Dank an Robert. Es funktioniert.
Ich hatte im Handbuch im Kapitel BERICHTE gesucht. Die Lösung steht jedoch im Kapitel MAKROS.
Es wär doch vielleicht für viele Anwendungen hilfreich, wenn man nach dem nächsten Update von Libreoffice die
automatische Höheneinstellung im Eigenschaftsfenster eines Textfeldes durch anklicken einstellen könnte, oder ?



Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste