Ver Mensaje Individual
  #49  
Antiguo 19-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Reputación: 20
Delphitest Va por buen camino
Perdona Caral, no había visto tu último mensaje. Está claro que se puede hacer de todo y de diferentes maneras. Todo me sirve, intento filtrar toda esa información aunque es mucha y a veces ya se me va un poco la cabeza


Los últimos progresos son estos:

http://rapidshare.de/files/37325009/Gesatrans.zip.html


Ya trabajo con la base de datos de access y he conseguido filtrar los datos de búsqueda por difentes campos a la vez. Le he dado muchas vueltas y estoy seguro que tiene que haber una forma mas sencilla de hacerlo, pero finalmente he aplicado la lógica y con varias lineas de comandos me ha salido. De por medio me he perdido varias veces con los if .. else ... los ';' y los diferentes tipos de campos, númericos y de tipo carácter pero lo tengo ya a mi manera. Este es el código que me ha resuelto la papeleta:

Código:
procedure TFBCliente.Edit1Change(Sender: TObject);
begin
    DTMClientes.TClientes.Filtered := False;
    If (Edit1.text <> '') then
    DTMClientes.TClientes.Filter := 'Cod_Cliente Like '+ Edit1.Text;
    If (Edit2.text <> '') then
    DTMClientes.TClientes.Filter := 'Nombre_Cial Like '''+ Edit2.Text + '*''';
    If (Edit3.text <> '') then
    DTMClientes.TClientes.Filter := 'Razon_Social Like '''+ Edit3.Text + '*''';
    DTMClientes.TClientes.Filtered := True;
    If (Edit5.text <> '') then
    DTMClientes.TClientes.Filter := 'DNI Like '''+ Edit5.Text + '*''';
    DTMClientes.TClientes.Filtered := True;
    If (Edit6.text <> '') then
    DTMClientes.TClientes.Filter := 'Localidad Like '''+ Edit6.Text + '*''';
    DTMClientes.TClientes.Filtered := True;
    If (Edit7.text <> '') then
    DTMClientes.TClientes.Filter := 'Provincia Like '''+ Edit7.Text + '*''';
    DTMClientes.TClientes.Filtered := True;
    IF (Edit1.Text = '') and (Edit2.Text = '') and (Edit3.Text = '') and (Edit5.Text = '') and (Edit6.Text = '') and (Edit7.Text = '') then
    DTMClientes.TClientes.Filtered := False;
end;
un poco lío verdad ??

Pero funciona que es lo importante. Solo me he quedado con mal sabor de boca porque he tenido que asignar esto a cada uno de los eventos Onchange de los 6 Edit que hay, seguro que hay forma de ponerlo una vez en algun sitio y llamarlo después, pero no he dado con ello. Otra opción era poner un boton para filtrar, asi solo sería suficiente con uno, pero me gusta mas de esta manera, probarlo si teneis oportunidad, ha quedado curioso.

De paso he visto sin querer un erro que daba la ficha de cliente al dar de alta uno nuevo, el campo DNI era un indice y campo requerido y si no ponía nada en el pues saltaba un error que no conseguía quitar; solución = ni indice ni requerido, jejejej, lo he puesto normal y fuera

Tras el madrugón que me he pegado para hacer la busqueda ahora empiezo con el tema de la impresión de fichas individuales y listados de clientes. He instalado el QuickReport ya que es lo se dice por ahí, asi que vamos a por ello.

Un saludo y gracias a todos por el empujoncito
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita