unit uViewFiltroClientes; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, StdCtrls, Buttons, TBXDkPanels, uViewParametrosInforme, uBizContactos, uClientesController, uIViewFiltroClientes; type TfrViewFiltroClientes = class(TfrViewParametrosInforme, IViewFiltroClientes) TBXLabel2: TTBXLabel; rbTodosClientes: TRadioButton; rbUnCliente: TRadioButton; cbxDesglosado: TCheckBox; bElegirCliente: TBitBtn; edtCliente: TcxTextEdit; procedure rbTodosClientesClick(Sender: TObject); procedure rbUnClienteClick(Sender: TObject); procedure CustomViewCreate(Sender: TObject); procedure bElegirClienteClick(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); private FCliente : IBizCliente; FClientesController : IClientesController; function getIdCliente: Integer; procedure setIdCliente(const IdCliente:Integer); public property IdCliente : Integer read getIdCliente write setIdCliente; property Cliente : IBizCliente read FCliente; end; implementation {$R *.dfm} procedure TfrViewFiltroClientes.bElegirClienteClick(Sender: TObject); var AClientes : IBizCliente; begin inherited; AClientes := IBizCliente(FClientesController.BuscarTodos); try FCliente := IBizCliente(FClientesController.ElegirContacto(AClientes, '', False)); if Assigned(FCliente) then begin FCliente.Open; edtCliente.Text := FCliente.NOMBRE; end; finally AClientes := NIL; end; end; procedure TfrViewFiltroClientes.CustomViewCreate(Sender: TObject); begin inherited; FCliente := NIL; FClientesController := NIL; end; procedure TfrViewFiltroClientes.CustomViewDestroy(Sender: TObject); begin inherited; FCliente := NIL; FClientesController := NIL; end; function TfrViewFiltroClientes.getIdCliente: Integer; begin Result := FCliente.ID; end; procedure TfrViewFiltroClientes.rbTodosClientesClick(Sender: TObject); begin if rbTodosClientes.Checked then begin cbxDesglosado.Enabled := True; FCliente := NIL; bElegirCliente.Enabled := False; edtCliente.Clear; edtCliente.Enabled := False; end; end; procedure TfrViewFiltroClientes.rbUnClienteClick(Sender: TObject); begin if rbUnCliente.Checked then begin cbxDesglosado.Enabled := False; bElegirCliente.Enabled := True; edtCliente.Enabled := True; if not Assigned(FClientesController) then FClientesController := TClientesController.Create; end; end; procedure TfrViewFiltroClientes.setIdCliente(const IdCliente: Integer); begin if not Assigned(FClientesController) then FClientesController := TClientesController.Create; FCliente := IBizCliente(FClientesController.Buscar(IdCliente)); if Assigned(FCliente) then begin FCliente.Open; edtCliente.Text := FCliente.NOMBRE; end; end; end.