unit uViewRecibosRemesaProveedor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, PngImageList, uDADataTable, ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxImageComboBox, cxCurrencyEdit, uBizRemesasProveedor, uRemesasProveedorController, uDAInterfaces; type IViewRecibosRemesaProveedor = interface ['{033DF6AF-C694-4C15-A48E-C7BA42DFF9FE}'] function GetRemesaProveedor: IBizRemesaProveedor; procedure SetRemesaProveedor(const Value: IBizRemesaProveedor); property RemesaProveedor: IBizRemesaProveedor read GetRemesaProveedor write SetRemesaProveedor; function GetController : IRemesasProveedorController; procedure SetController (const Value : IRemesasProveedorController); property Controller : IRemesasProveedorController read GetController write SetController; end; TfrViewRecibosRemesaProveedor = class(TfrViewDetallesGenerico, IViewRecibosRemesaProveedor) cxGridViewIMPORTE: TcxGridDBColumn; cxGridViewOTROS_GASTOS: TcxGridDBColumn; cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; procedure CustomViewShow(Sender: TObject); protected FHayCambios : Boolean; FRemesa : IBizRemesaProveedor; FController : IRemesasProveedorController; FListaRecibosIniciales: TStringList; procedure AnadirInterno; override; procedure EliminarInterno; override; function GetRemesaProveedor: IBizRemesaProveedor; procedure SetRemesaProveedor(const Value: IBizRemesaProveedor); function GetModified: Boolean; override; procedure SetModified(const Value: Boolean); override; function GetController : IRemesasProveedorController; procedure SetController (const Value : IRemesasProveedorController); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property RemesaProveedor: IBizRemesaProveedor read GetRemesaProveedor write SetRemesaProveedor; property Controller : IRemesasProveedorController read GetController write SetController; end; implementation {$R *.dfm} uses uBizRecibosProveedor, uCustomView; { TfrViewRecibosRemesaProveedor } procedure TfrViewRecibosRemesaProveedor.AnadirInterno; begin //inherited; // No hacer el comportamiento normal if FController.ElegirRecibosProveedor(RemesaProveedor, FListaRecibosIniciales) then begin Modified := True; end; end; constructor TfrViewRecibosRemesaProveedor.Create(AOwner: TComponent); begin inherited; FHayCambios := False; FListaRecibosIniciales := TStringList.Create; end; procedure TfrViewRecibosRemesaProveedor.CustomViewShow(Sender: TObject); begin inherited; FRemesa.Recibos.DataTable.First; while not FRemesa.Recibos.DataTable.eof do begin FListaRecibosIniciales.Add(IntToStr(FRemesa.Recibos.ID)); FRemesa.Recibos.DataTable.next; end; FRemesa.Recibos.DataTable.First; end; destructor TfrViewRecibosRemesaProveedor.Destroy; begin FListaRecibosIniciales.Free; inherited; end; procedure TfrViewRecibosRemesaProveedor.EliminarInterno; begin //inherited; // No hacer el comportamiento normal FController.EliminarReciboProveedor(RemesaProveedor); Modified := True; end; function TfrViewRecibosRemesaProveedor.GetController: IRemesasProveedorController; begin Result := FController; end; function TfrViewRecibosRemesaProveedor.GetModified: Boolean; begin Result := FHayCambios or inherited GetModified; end; function TfrViewRecibosRemesaProveedor.GetRemesaProveedor: IBizRemesaProveedor; begin Result := FRemesa; end; procedure TfrViewRecibosRemesaProveedor.SetController( const Value: IRemesasProveedorController); begin FController := Value; end; procedure TfrViewRecibosRemesaProveedor.SetModified(const Value: Boolean); begin FHayCambios := Value; inherited; end; procedure TfrViewRecibosRemesaProveedor.SetRemesaProveedor( const Value: IBizRemesaProveedor); begin FRemesa := Value; FHayCambios := False; if Assigned(FRemesa) then dsDetalles.DataTable := FRemesa.Recibos.DataTable else dsDetalles.DataTable := NIL; end; end.