von RobertG » Fr, 15.01.2016 19:02
Hallo OrionVII,
das ist ein Nachteil, der für den ReportBuilder noch nicht behoben ist. Die Felder haben nicht die Einstellungsmöglichkeit "automatische Höhe". Wenn Du den Bericht allerdings über ein Makro von einem Formular aus startest, dann steht im Handbuch dazu eine entsprechende Prozedur bereit:
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
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
Im Handbuch wird noch gezeigt, wie der Bericht unsichtbar im Hintergrund gedruckt wird, ohne überhaupt erst im Writerfenster zwischendurch in Erscheinung zu treten.
Gruß
Robert
Hallo OrionVII,
das ist ein Nachteil, der für den ReportBuilder noch nicht behoben ist. Die Felder haben nicht die Einstellungsmöglichkeit "automatische Höhe". Wenn Du den Bericht allerdings über ein Makro von einem Formular aus startest, dann steht im Handbuch dazu eine entsprechende Prozedur bereit:
[code]
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
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
[/code]
Im Handbuch wird noch gezeigt, wie der Bericht unsichtbar im Hintergrund gedruckt wird, ohne überhaupt erst im Writerfenster zwischendurch in Erscheinung zu treten.
Gruß
Robert