unit uEditorPedidosProveedor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uViewGrid, pngimage, JvComponentBase, uEditorGridBase, uBizPedidosProveedor, uIEditorPedidosProveedor, uPedidosProveedorController, uCustomView, uViewBase, uViewBarraSeleccion, uViewGridBase, uViewPedidosProveedor, JvExComCtrls, JvStatusBar; type TfEditorPedidosProveedor = class(TfEditorGridBase, IEditorPedidosProveedor) frViewPedidosProveedor1: TfrViewPedidosProveedor; procedure FormShow(Sender: TObject); protected FPedidos: IBizPedidoProveedor; FController : IPedidosProveedorController; function GetPedidos: IBizPedidoProveedor; procedure SetPedidos(const Value: IBizPedidoProveedor); function GetController : IPedidosProveedorController; virtual; procedure SetController (const Value : IPedidosProveedorController); virtual; procedure NuevoInterno; override; procedure ModificarInterno; override; procedure EliminarInterno; override; procedure DuplicarInterno; override; public procedure PonerTitulos(const ATitulo: string = ''); override; property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos; property Controller : IPedidosProveedorController read GetController write SetController; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation uses uDataModulePedidosProveedor, uDataModuleUsuarios; {$R *.dfm} { *************************** TfEditorPedidosProveedor *************************** } constructor TfEditorPedidosProveedor.Create(AOwner: TComponent); begin inherited; ViewGrid := frViewPedidosProveedor1; //CreateView(TfrViewPedidosProveedor) as IViewPedidosProveedor; end; destructor TfEditorPedidosProveedor.Destroy; begin FPedidos := NIL; FController := NIL; inherited; end; procedure TfEditorPedidosProveedor.DuplicarInterno; var APedido : IBizPedidoProveedor; begin inherited; APedido := FController.Duplicar(Pedidos); try FController.Ver(APedido); finally actRefrescar.Execute; end; end; procedure TfEditorPedidosProveedor.EliminarInterno; begin if (Application.MessageBox('¿Desea borrar esta factura de cliente?', 'Atención', MB_YESNO) = IDYES) then begin FController.Eliminar(Pedidos); inherited; end; end; procedure TfEditorPedidosProveedor.FormShow(Sender: TObject); begin inherited; if not Assigned(ViewGrid) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(Pedidos) then raise Exception.Create('No hay ningún presupuesto asignado'); Pedidos.DataTable.Active := True; ViewGrid.GotoFirst; end; function TfEditorPedidosProveedor.GetController: IPedidosProveedorController; begin Result := FController; end; function TfEditorPedidosProveedor.GetPedidos: IBizPedidoProveedor; begin Result := FPedidos; end; procedure TfEditorPedidosProveedor.ModificarInterno; begin inherited; FController.Ver(Pedidos); end; procedure TfEditorPedidosProveedor.NuevoInterno; begin inherited; FController.Anadir(Pedidos); FController.Ver(Pedidos); end; procedure TfEditorPedidosProveedor.PonerTitulos(const ATitulo: string); var FTitulo : String; begin FTitulo := 'Lista de pedidos a proveedor - ' + dmUsuarios.EmpresaActual.NOMBRE; inherited PonerTitulos(FTitulo); end; procedure TfEditorPedidosProveedor.SetController(const Value: IPedidosProveedorController); begin FController := Value; end; procedure TfEditorPedidosProveedor.SetPedidos(const Value: IBizPedidoProveedor); begin FPedidos := Value; dsDataTable.DataTable := FPedidos.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewPedidosProveedor).Pedidos := Pedidos; end; end.