Production laboratory management with a plugin architecture for detail types. MVP controller, import/management/detail as independent frames, integrated printing with FastReport and a label designer.
The Controller handles the business logic; the Host orchestrates the frames through interfaces. The detail types (Type A, Type B) are separate BPLs that register automatically.
type ILabView = interface ['{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}'] function GetSelectedCodart: string; procedure RefreshGrid; procedure SetStatusText(const AText: string); function ConfirmAction(const AMessage: string): Boolean; end;
The Host manages a PageControl with dynamically loaded frames. Each frame implements a specific interface.
Main grid. Filters by type, status, period. Actions: open, edit, delete, change status. Implements IFrameGestione.
Import from file system or scanner. Image preview, item-code assignment, saving to database.
Detail for category A. Separate BPL with automatic registration. Integrated label printing.
Detail for category B. Separate BPL with a dedicated label editor, preview and customizable templates.
Printing system based on FastReport with an integrated label designer. Preview, PDF and HTML export.
Label generation configured from JSON. Multiple formats per item and document type.
Visual designer to create and edit templates. Based on FastReport, saves .FR3 templates.
Management of print types per document with a dedicated editor. Integrated PDF and HTML export.
Adding a new detail type = creating a new BPL with its own Registration.