Ver Mensaje Individual
  #132  
Antiguo 20-07-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Reputación: 22
José Luis Garcí Va camino a la fama
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);
// ------------------------------------------------------------------------------
// **************************************************[ Change Cod Comercial ]****
// ------------------------------------------------------------------------------
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);
// ------------------------------------------------------------------------------
// *************************************************[ entrar en comerciales ]****
// ------------------------------------------------------------------------------
begin
   SBComercialesClick(Sender);
end;

procedure TFXPAF.DBNCodigoComercialExit(Sender: TObject);
// ------------------------------------------------------------------------------
// ***********************************************[ Salir de cód. Comercial ]****
// ------------------------------------------------------------------------------
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);       //Si
           7BNCodigoComercial.SetFocus;       //No
          end;
       end else
       begin  //Descripción del c
          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.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita