Mehrzeiliges Textfeld im Bericht

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Benutzeravatar
OrionVII
**
Beiträge: 29
Registriert: Mo, 09.08.2010 04:56

Mehrzeiliges Textfeld im Bericht

Beitrag von OrionVII »

Hallo nochmal,

in meinem Rechnungsbericht gibt es ein Feld Bezeichnung. Dieses Feld kommt aus dem gleichnamigen Feld der Rechnungsdetails. Wenn nun ein längerer Text eingestellt wird, möchte ich, dass das Feld im Bericht mehrzeilig wird. Im Moment wird so ein rotes Dreieck angezeigt, dass der Text länger ist als das Feld.

Welche Einstellungen sind möglich?
Viele Grüße aus dem Flammkuchenland
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Mehrzeiliges Textfeld im Bericht

Beitrag von RobertG »

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
Benutzeravatar
OrionVII
**
Beiträge: 29
Registriert: Mo, 09.08.2010 04:56

Re: Mehrzeiliges Textfeld im Bericht

Beitrag von OrionVII »

Zusammen mit dem Makro Filtern_und_drucken sieht das dann so aus:

Code: Alles auswählen

SUB Filtern_und_Drucken
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM oDatenquelle AS OBJECT
DIM oVerbindung AS OBJECT
DIM oSQL_Anweisung AS OBJECT
DIM oTables AS OBJECT
DIM oTable AS OBJECT
DIM inT AS INTEGER
DIM inI AS INTEGER
DIM oRows AS OBJECT
DIM oRow AS OBJECT
DIM stSQL AS STRING
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.Forms.getByName("MainForm")
oFeld = oForm.getByName("RechnungsID")
oDatenquelle = ThisComponent.Parent.CurrentController
If NOT (oDatenquelle.isConnected()) THEN
oDatenquelle.connect()
END IF
oVerbindung = oDatenquelle.ActiveConnection()
oSQL_Anweisung = oVerbindung.createStatement()
stSql = "UPDATE ""tblFilter"" SET ""Integer"" = '"+oFeld.GetCurrentValue()+"' WHERE ""ID"" = TRUE"
oSQL_Anweisung.executeUpdate(stSql)
oReport = ThisDatabaseDocument.ReportDocuments.getByName("rptRechnung").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
Sauber, danke...
Viele Grüße aus dem Flammkuchenland
Antworten