unit uViewRecibosCompensados; 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, uDataModuleRecibosCliente, uBizRecibosCliente, uRecibosClienteController, Grids, DBGrids, cxSpinEdit, dxLayoutControl; type IViewRecibosCompensados = interface ['{C683669A-002A-432D-BC20-3FA50BEA8721}'] function GetReciboCliente: IBizRecibosCliente; procedure SetReciboCliente(const Value: IBizRecibosCliente); property ReciboCliente: IBizRecibosCliente read GetReciboCliente write SetReciboCliente; function GetController : IRecibosClienteController; procedure SetController (const Value : IRecibosClienteController); property Controller : IRecibosClienteController read GetController write SetController; end; TfrViewRecibosCompensados = class(TfrViewDetallesGenerico, IViewRecibosCompensados) actExpandir: TAction; actContraer: TAction; ToolButton3: TToolButton; ToolButton8: TToolButton; cxGridViewREFERENCIA: TcxGridDBColumn; cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; cxGridViewID_RECIBO_COMPENSADO: TcxGridDBColumn; cxGridViewSITUACION: TcxGridDBColumn; cxGridViewFECHA_EMISION: TcxGridDBColumn; cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn; cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn; cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn; cxGridViewIMPORTE: TcxGridDBColumn; cxGridViewOTROS_GASTOS: TcxGridDBColumn; cxGridViewRecId: TcxGridDBColumn; procedure actExpandirExecute(Sender: TObject); procedure actContraerExecute(Sender: TObject); procedure CustomViewShow(Sender: TObject); procedure actEliminarUpdate(Sender: TObject); procedure actExpandirUpdate(Sender: TObject); procedure actContraerUpdate(Sender: TObject); procedure actAnadirUpdate(Sender: TObject); protected FHayCambios : Boolean; FReciboCliente : IBizRecibosCliente; FController : IRecibosClienteController; procedure AnadirInterno; override; procedure EliminarInterno; override; function GetReciboCliente: IBizRecibosCliente; procedure SetReciboCliente(const Value: IBizRecibosCliente); function GetModified: Boolean; override; procedure SetModified(const Value: Boolean); override; function GetController : IRecibosClienteController; procedure SetController (const Value : IRecibosClienteController); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property ReciboCliente: IBizRecibosCliente read GetReciboCliente write SetReciboCliente; property Controller : IRecibosClienteController read GetController write SetController; end; implementation {$R *.dfm} uses uCustomView; { TfrViewFacturasReciboCliente } procedure TfrViewRecibosCompensados.actAnadirUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := (ReciboCliente.SITUACION <> CTE_COBRADO); end; procedure TfrViewRecibosCompensados.actContraerExecute(Sender: TObject); begin inherited; cxGridView.ViewData.Collapse(True); end; procedure TfrViewRecibosCompensados.actContraerUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := HayDatos; end; procedure TfrViewRecibosCompensados.actEliminarUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := ((cxGridView.Controller.SelectedRowCount > 0) and (cxGridView.Controller.SelectedRows[0].HasCells) and (ReciboCliente.SITUACION <> CTE_COBRADO)); end; procedure TfrViewRecibosCompensados.actExpandirExecute(Sender: TObject); begin inherited; cxGridView.ViewData.Expand(True); end; procedure TfrViewRecibosCompensados.actExpandirUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := HayDatos; end; procedure TfrViewRecibosCompensados.AnadirInterno; begin //inherited; // No hacer el comportamiento normal if FController.ElegirRecibosCompensados(ReciboCliente) then Modified := True; end; constructor TfrViewRecibosCompensados.Create(AOwner: TComponent); begin inherited; FHayCambios := False; end; procedure TfrViewRecibosCompensados.CustomViewShow(Sender: TObject); begin inherited; cxGridView.OptionsSelection.MultiSelect := False; end; destructor TfrViewRecibosCompensados.Destroy; begin inherited; end; procedure TfrViewRecibosCompensados.EliminarInterno; begin if cxGridView.Controller.SelectedRowCount > 0 then if cxGridView.Controller.SelectedRows[0].HasCells then // ViewGrid._FocusedView.Controller.SelectedRecordCount FController.QuitarReciboCompensado(ReciboCliente); Modified := True; end; function TfrViewRecibosCompensados.GetController: IRecibosClienteController; begin Result := FController; end; function TfrViewRecibosCompensados.GetModified: Boolean; begin Result := FHayCambios or inherited GetModified; end; function TfrViewRecibosCompensados.GetReciboCliente: IBizRecibosCliente; begin Result := FReciboCliente; end; procedure TfrViewRecibosCompensados.SetController( const Value: IRecibosClienteController); begin FController := Value; end; procedure TfrViewRecibosCompensados.SetModified(const Value: Boolean); begin FHayCambios := Value; inherited; end; procedure TfrViewRecibosCompensados.SetReciboCliente(const Value: IBizRecibosCliente); begin FReciboCliente := Value; FHayCambios := False; if Assigned(FReciboCliente) then dsDetalles.DataTable := FReciboCliente.RecibosCompensados.DataTable else dsDetalles.DataTable := NIL; actAnchoAutomatico.Execute; end; end.