Ahora seguimos con el comercial o agente, comenzamos con el código del comercial con los siguientes tres eventos
Código Delphi
[-]
procedure TFXPAF.DBNCodigoComercialChange(Sender: TObject);
begin
if FXPAF.Active then
begin
if DBNCodigoComercial.Text <> '' then
begin
ActQuery(IBQAgentes, 'Select * from EMPLEADOS where (EMPLEADOS.AGENTE = '+QuotedStr('S')+') AND (Upper(EMPLEADOS.CODIGO)=Upper('+
QuotedStr(DBNCodigoComercial.Text) + '))');
end;
end;
end;
procedure TFXPAF.DBNCodigoComercialEnter(Sender: TObject);
begin
SBComercialesClick(Sender);
end;
procedure TFXPAF.DBNCodigoComercialExit(Sender: TObject);
begin
if DBNCodigoComercial.Text = '' then
begin
ShowMessage('Este campo no puede quedar vacio, por favor rellene el campo [Código de ccomercial]');
DBNCodigoComercial.SetFocus;
end else
begin
if UpperCase(DBNCodigoComercial.Text)='B' then SBBuscarAgenteClick(Sender) else
begin
if IBQAgentes.IsEmpty then
begin
Case Application.MessageBox(pchar( 'El comercial buscado no se encuentra, ¿desea crearlo?'),
pchar('No se encuentra el comercial'),4+32+0) of
6:SBNuevoAgenteClick(Sender); 7BNCodigoComercial.SetFocus; //No
end;
end else
begin if DBNNombreComercial.Text='' then DBNNombreComercial.Field.Value:=IBQAgentes.FieldByName('NOMBRE').Value else
begin
if DBNNombreComercial.Text<>IBQAgentes.FieldByName('NOMBRE').AsString then
begin
Case Application.MessageBox( pchar( 'El nombre de este comercial y el que tiene puesto no coinciden, ¿desea cambiarlo por el nombre que tiene asignado este código?'),
pchar('Datos diferentes'),4+64+0) of
6BNNombreComercial.Field.Value:=IBQagentes.FieldByName('NOMBRE').Value; //Si
end;
end;
end;
end;
end;
end;
end;
El 1º evento, como podemos ver el primero según escribimos, nos va buscando el agente, pero sólo si es un agente ya que esta en la misma tabla que el resto de empleados
El 2º evento, posiciona la pestaña de datos auxiliares en los datos del comercial
Y el 3º evento, comprueba a la salida , si no esta vacio, si debemos buscarlo y si no tiene datos el campo nombre lo rellena y si lo tiene pero es diferente, nos pregunta si deseamos cambiarlo.