◆ DtoMes_Documenti.bpl + detail plugins

Documents module

Production document management with a plugin architecture for detail types. MVP controller, import/management/detail as independent frames, integrated FastReport printing and a label designer.

3
BPLs (Docs + 2 plugins)
20+
Pascal units
7
Frame interfaces
2
Detail plugins
Architecture
Controller + Host + detail plugins

The first module developed with a full MVP pattern. 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.

UB2DtoDoc_Controller.pas — IDtoDocView interface
type
  IDtoDocView = interface
    ['{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}']
    function GetSelectedCodart: string;
    function GetSelectedTipo: Integer;
    procedure RefreshGrid;
    procedure SetStatusText(const AText: string);
    function ConfirmAction(const AMessage: string): Boolean;
  end;
Interfaces
7 interfaces for pluggable frames
InterfaceBPLPurpose
IFrameGestioneDtoMes_DocumentiMain document grid
IFrameImportDtoMes_DocumentiFile/scanner import
IFrameWorkAreaDtoMes_DocumentiDocument work area
IFrameArticoliDtoMes_ProdottiItem master data
IFrameDettaglioTipoADtoMes_DocTipoACategory A detail
IFrameDettaglioTipoBDtoMes_DocTipoBCategory B detail
IDtoDocViewDtoMes_DocumentiController → View communication

The interfaces let the detail plugins be separate BPLs that register at runtime without modifying the module's code. Adding a new type = creating a new BPL with its own Registration.

Documents, laboratory, production. One system.

Each module is an independent BPL, but they are part of the same ecosystem.

Production →Architecture↑ Back to overview