Skip to content

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

  1. If no rendered file exists yet (or overwrite is requested), calls Render a letter or report first.
  2. On failure: no rendered file becomes available; see step 3.
  3. If a rendered file is now available, sets xPrint.Printer = printer and calls xPrint.printPDF(m_reportFile) — delegates to Print raw PDF bytes — then returns True.
  4. Returns False if 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

Sources

  • SAIF.Services.Printing\Reporting\ReportBase.vb