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