Report.Run

From Xojo Documentation

Revision as of 16:50, 26 January 2021 by PLefebvre (talk | contribs) (Sample Code: Added more code samples)
Method

Report.Run(ds as Reports.DataSet, printerSettings as PrinterSetup) As Boolean

Supported for all project types and targets.

Generates a report document from the given dataset.


Method

Report.Run(rs as RowSet, printerSettings as PrinterSetup) As Boolean

New in 2019r3

Supported for all project types and targets.

Generates a Report document from the given RowSet.


Method

Report.Run(rs as RecordSet, printersettings as PrinterSetup) As Boolean

New in 2010r3

Supported for all project types and targets.

Generates a Report document from the given RecordSet. This eliminates the need to first convert a RecordSet to a RecordSetQuery.

Sample Code

Running a report to obtain the rendered pages in Reports.DataSet:

Var rpt As New ListOfProducts
Var rs As RowSet = ordersDB.SelectSQL(sql)
Var ps As New PrinterSetup

If rpt.Run(rs, ps) Then
If rpt.Document <> Nil Then
ShowReport(rpt.Document)
End If
End If

This generates and prints a report:

Var rpt As New MyReport // A report in the project
Var ps As New PrinterSetup

Var g As Graphics
g = OpenPrinterDialog(ps, Nil)

If g <> Nil Then
If Not rpt.Run(data, ps) Then // data is the report data
rpt.Document.Print(g)
Else
MessageBox("There was an error generating the report.")
End If
End If


This generates and prints multiple copies of a report:

Var rpt As New MyReport // A report in the project
Var ps As New PrinterSetup

Var g As Graphics
g = OpenPrinterDialog(ps, Nil)

Var readyToPrint As Boolean = True
If g <> Nil Then
For copies As Integer = 1 To 2 // Number of copies
If Not rpt.Run(data, ps) Then // data is the report data
readyToPrint = False
End If
Next

// Print the results
If readyToPrint Then
rpt.Document.Print(g)
Else
MessageBox("There was an error generating the report.")
End If
End If