unit uViewDatosClientePresupuesto; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewDatosYSeleccionCliente, ImgList, PngImageList, ActnList, DB, uDAInterfaces, uDADataTable, dxLayoutControl, StdCtrls, Buttons, cxContainer, cxEdit, cxTextEdit, cxDBEdit, cxControls, cxMaskEdit, cxButtonEdit, uBizContactos; type TfrViewDatosClientePresupuesto = class(TfrViewDatosYSeleccionCliente) dxLayoutControl1Item10: TdxLayoutItem; edtPersonaContacto: TcxDBButtonEdit; dsPresupuesto: TDADataSource; actElegirPersonaContacto: TAction; procedure edtPersonaContactoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure actElegirPersonaContactoExecute(Sender: TObject); protected procedure SetCliente(Value: IBizCliente); override; public { Public declarations } end; implementation {$R *.dfm} uses uBizContactosPersonal; procedure TfrViewDatosClientePresupuesto.actElegirPersonaContactoExecute( Sender: TObject); var APersona : IBizContactoPersonal; begin inherited; APersona := FController.ElegirPersonaContacto(FCliente.Personal, 'El cliente dispone de personas de contacto dadas de alta en su ficha. Seleccione la que quiere utilizar.'); if Assigned(APersona) then begin dsPresupuesto.DataTable.Edit; edtPersonaContacto.DataBinding.Field.AsString := APersona.NOMBRE; end; end; procedure TfrViewDatosClientePresupuesto.edtPersonaContactoPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin inherited; actElegirPersonaContacto.Execute; end; procedure TfrViewDatosClientePresupuesto.SetCliente(Value: IBizCliente); begin inherited; if Assigned(FCliente) and Assigned(FCliente.Personal) then begin FCliente.Personal.Open; edtPersonaContacto.Properties.Buttons[0].Visible := (FCliente.Personal.RecordCount > 0); end; end; end.