unit uInfVentasAlbArticuloController; interface uses Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, uBizInfVentasArticulo, uIDataModuleInfVentasArticulo, uInformeBaseController, uBizInformes; type IInfVentasAlbArticuloController = interface (IInformeBaseController) ['{1EA7396B-D88E-4006-8BF3-C0A4BFFB16FD}'] function BuscarTodos(const AColumns: String; const AWhere: String): IBizInfVentasAlbArticulo; end; TInfVentasAlbArticuloController = class(TInterfacedObject, IInfVentasAlbArticuloController, IInformeBaseController) protected FDataModule : IDataModuleInfVentasArticulo; function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; function BuscarTodos(const AColumns: String; const AWhere: String): IBizInfVentasAlbArticulo; procedure AsignarDataModule; virtual; public constructor Create; virtual; destructor Destroy; override; procedure Nuevo(AInforme : IBizInforme); procedure Ver(AInforme : IBizInforme); end; implementation uses Forms, cxControls, DB, uEditorRegistryUtils, uIEditorInfVentasAlbArticulo, uDataModuleUsuarios, uDataModuleInfVentasArticulo, uFactuGES_App, uDAInterfaces, uDataTableUtils, uDateUtils, uROTypes, DateUtils, Controls, Windows, dialogs, Variants, uControllerDetallesBase, uDialogUtils, schInfVentasArticuloClient_Intf; { TInfVentasArticuloController } procedure TInfVentasAlbArticuloController.AsignarDataModule; begin FDataModule := TdmInfVentasArticulo.Create(Nil); end; function TInfVentasAlbArticuloController.BuscarTodos(const AColumns: String; const AWhere: String): IBizInfVentasAlbArticulo; begin Result := FDataModule.GetItemsAlbaranes(AColumns, AWhere); // FiltrarEmpresa(Result); end; constructor TInfVentasAlbArticuloController.Create; begin AsignarDataModule; end; function TInfVentasAlbArticuloController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; begin Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); end; destructor TInfVentasAlbArticuloController.Destroy; begin FDataModule := Nil; inherited; end; procedure TInfVentasAlbArticuloController.Ver(AInforme: IBizInforme); var AEditor : IEditorInfVentasAlbArticulo; begin AEditor := NIL; ShowHourglassCursor; try CreateEditor('EditorInfVentasAlbArticulo', IEditorInfVentasAlbArticulo, AEditor); with (AEditor as IEditorInfVentasAlbArticulo) do begin if not Assigned(FDataModule) then AsignarDataModule; Controller := Self; //OJO ORDEN MUY IMPORTANTE Informe := AInforme; end; finally HideHourglassCursor; end; if Assigned(AEditor) then try AEditor.ShowModal; AEditor.Release; finally AEditor := NIL; end; end; procedure TInfVentasAlbArticuloController.Nuevo(AInforme: IBizInforme); begin AInforme.Insert; AInforme.CATEGORIA := 'VENTAS ARTICULOS'; AInforme.CONTROLLER := 'InfVentasAlbArticuloController'; AInforme.ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; end; end.