unit uViewRecibosCliCompensados; 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, uDAInterfaces; 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; TfrViewRecibosCliCompensados = 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 TfrViewRecibosCliCompensados.actAnadirUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := (ReciboCliente.SITUACION <> CTE_COBRADO); end; procedure TfrViewRecibosCliCompensados.actContraerExecute(Sender: TObject); begin inherited; cxGridView.ViewData.Collapse(True); end; procedure TfrViewRecibosCliCompensados.actContraerUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := HayDatos; end; procedure TfrViewRecibosCliCompensados.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 TfrViewRecibosCliCompensados.actExpandirExecute(Sender: TObject); begin inherited; cxGridView.ViewData.Expand(True); end; procedure TfrViewRecibosCliCompensados.actExpandirUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := HayDatos; end; procedure TfrViewRecibosCliCompensados.AnadirInterno; begin //inherited; // No hacer el comportamiento normal if FController.ElegirRecibosCompensados(ReciboCliente) then Modified := True; end; constructor TfrViewRecibosCliCompensados.Create(AOwner: TComponent); begin inherited; FHayCambios := False; end; procedure TfrViewRecibosCliCompensados.CustomViewShow(Sender: TObject); begin inherited; cxGridView.OptionsSelection.MultiSelect := False; end; destructor TfrViewRecibosCliCompensados.Destroy; begin inherited; end; procedure TfrViewRecibosCliCompensados.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 TfrViewRecibosCliCompensados.GetController: IRecibosClienteController; begin Result := FController; end; function TfrViewRecibosCliCompensados.GetModified: Boolean; begin Result := FHayCambios or inherited GetModified; end; function TfrViewRecibosCliCompensados.GetReciboCliente: IBizRecibosCliente; begin Result := FReciboCliente; end; procedure TfrViewRecibosCliCompensados.SetController( const Value: IRecibosClienteController); begin FController := Value; end; procedure TfrViewRecibosCliCompensados.SetModified(const Value: Boolean); begin FHayCambios := Value; inherited; end; procedure TfrViewRecibosCliCompensados.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.