Difference between revisions of "Report.Run"

From Xojo Documentation

m (Text replacement - "{{Deprecated |" to "{{DeprecatedItem |")
(Sample Code: Added more code samples)
Line 47: Line 47:
 
   If rpt.Document <> Nil Then
 
   If rpt.Document <> Nil Then
 
     ShowReport(rpt.Document)
 
     ShowReport(rpt.Document)
 +
  End If
 +
End If
 +
</rbcode>
 +
 +
This generates and prints a report:
 +
<rbcode>
 +
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
 +
</rbcode>
 +
 +
 +
This generates and prints multiple copies of a report:
 +
<rbcode>
 +
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
 
End If
 
End If
 
</rbcode>
 
</rbcode>

Revision as of 16:50, 26 January 2021

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