unit uViewRecibosProvCompensados; 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, uDataModuleRecibosProveedor, uBizRecibosProveedor, uRecibosProveedorController, Grids, DBGrids, cxSpinEdit, dxLayoutControl, uDAInterfaces; type IViewRecibosCompensados = interface ['{C683669A-002A-432D-BC20-3FA50BEA8721}'] function GetReciboProveedor: IBizRecibosProveedor; procedure SetReciboProveedor(const Value: IBizRecibosProveedor); property ReciboProveedor: IBizRecibosProveedor read GetReciboProveedor write SetReciboProveedor; function GetController : IRecibosProveedorController; procedure SetController (const Value : IRecibosProveedorController); property Controller : IRecibosProveedorController read GetController write SetController; end; TfrViewRecibosProvCompensados = 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_PROVEEDOR: TcxGridDBColumn; cxGridViewNOMBRE_PROVEEDOR: 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; FReciboProveedor : IBizRecibosProveedor; FController : IRecibosProveedorController; procedure AnadirInterno; override; procedure EliminarInterno; override; function GetReciboProveedor: IBizRecibosProveedor; procedure SetReciboProveedor(const Value: IBizRecibosProveedor); function GetModified: Boolean; override; procedure SetModified(const Value: Boolean); override; function GetController : IRecibosProveedorController; procedure SetController (const Value : IRecibosProveedorController); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property ReciboProveedor: IBizRecibosProveedor read GetReciboProveedor write SetReciboProveedor; property Controller : IRecibosProveedorController read GetController write SetController; end; implementation {$R *.dfm} uses uCustomView; { TfrViewFacturasReciboProveedor } procedure TfrViewRecibosProvCompensados.actAnadirUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := (ReciboProveedor.SITUACION <> CTE_PAGADO); end; procedure TfrViewRecibosProvCompensados.actContraerExecute(Sender: TObject); begin inherited; cxGridView.ViewData.Collapse(True); end; procedure TfrViewRecibosProvCompensados.actContraerUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := HayDatos; end; procedure TfrViewRecibosProvCompensados.actEliminarUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := ((cxGridView.Controller.SelectedRowCount > 0) and (cxGridView.Controller.SelectedRows[0].HasCells) and (ReciboProveedor.SITUACION <> CTE_PAGADO)); end; procedure TfrViewRecibosProvCompensados.actExpandirExecute(Sender: TObject); begin inherited; cxGridView.ViewData.Expand(True); end; procedure TfrViewRecibosProvCompensados.actExpandirUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := HayDatos; end; procedure TfrViewRecibosProvCompensados.AnadirInterno; begin //inherited; // No hacer el comportamiento normal if FController.ElegirRecibosCompensados(ReciboProveedor) then Modified := True; end; constructor TfrViewRecibosProvCompensados.Create(AOwner: TComponent); begin inherited; FHayCambios := False; end; procedure TfrViewRecibosProvCompensados.CustomViewShow(Sender: TObject); begin inherited; cxGridView.OptionsSelection.MultiSelect := False; end; destructor TfrViewRecibosProvCompensados.Destroy; begin inherited; end; procedure TfrViewRecibosProvCompensados.EliminarInterno; begin if cxGridView.Controller.SelectedRowCount > 0 then if cxGridView.Controller.SelectedRows[0].HasCells then // ViewGrid._FocusedView.Controller.SelectedRecordCount FController.QuitarReciboCompensado(ReciboProveedor); Modified := True; end; function TfrViewRecibosProvCompensados.GetController: IRecibosProveedorController; begin Result := FController; end; function TfrViewRecibosProvCompensados.GetModified: Boolean; begin Result := FHayCambios or inherited GetModified; end; function TfrViewRecibosProvCompensados.GetReciboProveedor: IBizRecibosProveedor; begin Result := FReciboProveedor; end; procedure TfrViewRecibosProvCompensados.SetController( const Value: IRecibosProveedorController); begin FController := Value; end; procedure TfrViewRecibosProvCompensados.SetModified(const Value: Boolean); begin FHayCambios := Value; inherited; end; procedure TfrViewRecibosProvCompensados.SetReciboProveedor(const Value: IBizRecibosProveedor); begin FReciboProveedor := Value; FHayCambios := False; if Assigned(FReciboProveedor) then dsDetalles.DataTable := FReciboProveedor.RecibosCompensados.DataTable else dsDetalles.DataTable := NIL; actAnchoAutomatico.Execute; end; end.