unit uViewDatosYSeleccionComercial; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, StdCtrls, cxControls, cxContainer, cxEdit, cxLabel, cxDBLabel, ExtCtrls, DB, uDADataTable, uBizContactos, ComCtrls, ToolWin, ActnList, ImgList, PngImageList, cxTextEdit, cxDBEdit, pngimage, JvExControls, JvComponent, JvButton, JvTransparentButton, Mask, DBCtrls, uComercialesController, dxLayoutControl, Buttons, uDAInterfaces; type IViewDatosYSeleccionComercial = interface(IViewBase) ['{CA00C39C-6204-4D8A-B550-8686FD810F6F}'] function GetController: IComercialesController; procedure SetController(Value: IComercialesController); property Controller: IComercialesController read GetController write SetController; function GetComercial: IBizComercial; procedure SetComercial(Value: IBizComercial); property Comercial: IBizComercial read GetComercial write SetComercial; function GetID_Comercial: integer; procedure SetID_Comercial(const Value: integer); property ID_Comercial: integer read GetID_Comercial write SetID_Comercial; function GetOnComercialChanged : TNotifyEvent; procedure SetOnComercialChanged (const Value : TNotifyEvent); property OnComercialChanged : TNotifyEvent read GetOnComercialChanged write SetOnComercialChanged; function GetMsgElegirComercial: String; procedure SetMsgElegirComercial(const Value: String); property MsgElegirComercial : String read GetMsgElegirComercial write SetMsgElegirComercial; end; TfrViewDatosYSeleccionComercial = class(TfrViewBase, IViewDatosYSeleccionComercial) DADataSource: TDADataSource; ActionList1: TActionList; actElegirContacto: TAction; actAnadirContacto: TAction; actVerContacto: TAction; PngImageList: TPngImageList; dxLayoutControl1Group_Root: TdxLayoutGroup; dxLayoutControl1: TdxLayoutControl; dxLayoutControl1Item1: TdxLayoutItem; edtlNombreAgente: TcxDBTextEdit; dxLayoutControl1Item2: TdxLayoutItem; edtDelegacion: TcxDBTextEdit; Button1: TBitBtn; dxLayoutControl1Item7: TdxLayoutItem; Button2: TBitBtn; dxLayoutControl1Item8: TdxLayoutItem; Button3: TBitBtn; dxLayoutControl1Item9: TdxLayoutItem; dxLayoutControl1Group1: TdxLayoutGroup; procedure actElegirContactoExecute(Sender: TObject); procedure actAnadirContactoExecute(Sender: TObject); procedure actVerContactoExecute(Sender: TObject); procedure actVerContactoUpdate(Sender: TObject); private FController : IComercialesController; FComercial : IBizComercial; FOnComercialChanged : TNotifyEvent; FMsgElegirComercial: String; function GetMsgElegirComercial: String; procedure SetMsgElegirComercial(const Value: String); protected function GetController: IComercialesController; procedure SetController(Value: IComercialesController); function GetComercial: IBizComercial; procedure SetComercial(Value: IBizComercial); function GetOnComercialChanged : TNotifyEvent; procedure SetOnComercialChanged (const Value : TNotifyEvent); procedure SetReadOnly(Value: Boolean); override; function GetID_Comercial: integer; procedure SetID_Comercial(const Value: integer); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property Controller: IComercialesController read GetController write SetController; property Comercial: IBizComercial read GetComercial write SetComercial; property OnComercialChanged : TNotifyEvent read GetOnComercialChanged write SetOnComercialChanged; property MsgElegirComercial : String read GetMsgElegirComercial write SetMsgElegirComercial; property ID_Comercial: integer read GetID_Comercial write SetID_Comercial; end; implementation {$R *.dfm} uses uDataModuleComerciales, Math, uCustomView; procedure TfrViewDatosYSeleccionComercial.actElegirContactoExecute(Sender: TObject); var AComercial : IBizComercial; begin inherited; AComercial := (Controller.ElegirContacto(Controller.BuscarTodos, FMsgElegirComercial, False) as IBizComercial); if Assigned(AComercial) then begin Self.Update; ShowHourglassCursor; try Comercial := AComercial; finally HideHourglassCursor; end; end; AComercial := Nil; end; procedure TfrViewDatosYSeleccionComercial.actAnadirContactoExecute( Sender: TObject); var AComercial : IBizComercial; begin inherited; AComercial := (Controller.Nuevo as IBizComercial); Controller.Ver(AComercial); Comercial := AComercial; end; procedure TfrViewDatosYSeleccionComercial.actVerContactoExecute(Sender: TObject); begin inherited; Controller.Ver(Comercial); if (Application.MessageBox('¿Desea refrescar los datos del comercial en el documento?', 'Atención', MB_YESNO) = IDYES) then Comercial := Comercial; end; procedure TfrViewDatosYSeleccionComercial.actVerContactoUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := (Length(edtlNombreAgente.Text) > 0); end; constructor TfrViewDatosYSeleccionComercial.Create(AOwner: TComponent); begin inherited; FMsgElegirComercial := ''; FController := NIL; end; destructor TfrViewDatosYSeleccionComercial.Destroy; begin FController := NIL; inherited; end; function TfrViewDatosYSeleccionComercial.GetComercial: IBizComercial; begin Result := FComercial; end; function TfrViewDatosYSeleccionComercial.GetController: IComercialesController; begin if not Assigned(FController) then FController := TComercialesController.Create; Result := FController; end; function TfrViewDatosYSeleccionComercial.GetID_Comercial: integer; begin Result := -1; if Assigned(FComercial) then Result := FComercial.ID; end; function TfrViewDatosYSeleccionComercial.GetMsgElegirComercial: String; begin Result := FMsgElegirComercial; end; procedure TfrViewDatosYSeleccionComercial.SetComercial(Value: IBizComercial); begin FComercial := Value; if Assigned(FComercial) then begin DADataSource.DataTable := FComercial.DataTable; if not FComercial.DataTable.Active then FComercial.DataTable.Active := True; end else DADataSource.DataTable := NIL; if Assigned(FOnComercialChanged) then FOnComercialChanged(Self); end; procedure TfrViewDatosYSeleccionComercial.SetController(Value: IComercialesController); begin if Assigned(FController) then FController := NIL; FController := Value; end; procedure TfrViewDatosYSeleccionComercial.SetID_Comercial(const Value: integer); begin Self.Comercial := IBizComercial(Controller.Buscar(Value)); end; procedure TfrViewDatosYSeleccionComercial.SetMsgElegirComercial( const Value: String); begin FMsgElegirComercial := Value; end; function TfrViewDatosYSeleccionComercial.GetOnComercialChanged: TNotifyEvent; begin Result := FOnComercialChanged; end; procedure TfrViewDatosYSeleccionComercial.SetOnComercialChanged( const Value: TNotifyEvent); begin FOnComercialChanged := Value; end; procedure TfrViewDatosYSeleccionComercial.SetReadOnly(Value: Boolean); begin inherited; if ReadOnly then begin actAnadirContacto.Enabled := False; actElegirContacto.Enabled := False; end; end; end.