Reporting.IReport¶
IReport is the contract implemented by Reporting.ReportBase (and, by inheritance, any concrete report/letter subclass) that defines the full lifecycle of a letter/report: build its XML content, render it to PDF bytes, and print, distribute, or save the rendered output. It exists so that consumers can depend on a stable report/letter abstraction rather than a concrete implementation.*
Purpose¶
- Define the create/render/print/distribute/save lifecycle that every concrete report/letter type must support.
- Define the output-profile switching contract (default vs. draft/watermark) used before rendering.
Context¶
- Namespace:
SAIF.Services.Printing.Reporting - Assembly/package:
SAIF.Services.Printing(embedded, front-end referenced)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
Create(overwrite) |
Function Create(overwrite As Boolean) As Object |
Builds (or rebuilds, if overwrite) the report/letter's XML document tree. Implemented by ReportBase as an overridable base with subclass override points; see Render a letter or report. |
Render(overwrite) |
Function Render(overwrite As Boolean) As Boolean |
Renders the built XML into PDF bytes; see Render a letter or report. |
Print(printer, overwrite) |
Function Print(printer As String, overwrite As Boolean) As Boolean |
Renders (if needed) and prints the report/letter; see Print a letter or report. |
Distribute(overwrite) |
Function Distribute(overwrite As Boolean) As Boolean |
Builds XML (if needed) and distributes the report/letter; see Distribute a letter or report. |
Save(overwrite) |
Function Save(overwrite As Boolean) As Boolean |
Renders (if needed) and writes the resulting bytes to disk; see Save a rendered report to disk. |
SetDefaultProfile() |
Sub SetDefaultProfile() |
Switches to the standard PDF output profile; see Switch output profile. |
SetDraftProfile() |
Sub SetDraftProfile() |
Switches to the draft-watermark PDF output profile; see Switch output profile. |
Behavioral notes¶
- The only confirmed implementer in the scanned repository is
Reporting.ReportBase; the only confirmed concrete subclass is the test-onlyMyReportinSAIF.Services.Printing.Tests. Whether production code elsewhere implements this interface directly is unknown.**
Constraints and usage notes¶
- Consumers depending on
IReportrather thanReportBasedirectly gain the ability to substitute alternative implementations, though none besidesReportBasewas found in this repository.*
Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.
Sources¶
SAIF.Services.Printing\Reporting\IReport.vbSAIF.Services.Printing\SAIF.Services.Printing.Tests\MyReport.vb