Print a letter or report¶
Ensures a report/letter has been rendered to PDF bytes, then prints it via the internally owned clsPrint instance.
| Field | Value |
|---|---|
| Operation ID | OP-REPORTING-PRINT |
| Trigger | Caller invokes Reporting.ReportBase.Print(printer, overwrite) |
| Inputs | printer, overwrite flag |
| Outputs | Boolean success flag |
| Primary components | Reporting.ReportBase.Print |
| Entry point | SAIF.Services.Printing\Reporting\ReportBase.vb |
Steps¶
- If no rendered file exists yet (or
overwriteis requested), calls Render a letter or report first. - On failure: no rendered file becomes available; see step 3.
- If a rendered file is now available, sets
xPrint.Printer = printerand callsxPrint.printPDF(m_reportFile)— delegates to Print raw PDF bytes — then returnsTrue. - Returns
Falseif no rendered file could be produced.
Process flow¶
flowchart TD
Start([Print called]) --> Check{Rendered file exists and not overwrite?}
Check -->|No| Render[Call Render]
Check -->|Yes| HasFile[File already available]
Render --> HasFile2{File available now?}
HasFile2 -->|Yes| SetPrinter[Set xPrint.Printer]
HasFile2 -->|No| EndFail([Return False])
HasFile --> SetPrinter
SetPrinter --> Call[Call xPrint.printPDF]
Call --> EndOk([Return True])
Failure and edge-case behavior¶
- Returns
Falseif Render a letter or report could not produce a rendered file.
Related documentation¶
Sources¶
SAIF.Services.Printing\Reporting\ReportBase.vb