Ver Mensaje Individual
  #5  
Antiguo 18-03-2016
GUN10 GUN10 is offline
Miembro
 
Registrado: feb 2010
Posts: 37
Reputación: 0
GUN10 Va por buen camino
Perdon! Aqui esta el codigo !

El error me lo da cuando pongo un dni que no esta en la tabla. Si pongo uno que sea exactamente igual, me devuelve la consulta sin ningun problema.

El error que me da es ""List index out of bounds (1)"

Obviamente la consulta viene vacia cuando pongo un numero de dni que no existe en la tabla, pero no entiendo porque no pasa por la condicion "Datos.Qconsultas.RecordCount>0"

Código Delphi [-]
procedure TFEquiposporcliente.BfiltrarpordniClick(Sender: TObject);
begin
  if (Edni.Text='') then
    begin
      messagedlg('Debe ingresar un N° de DNI', mtinformation, [mbok], 0);
      Edni.SetFocus;
    end
  else
    begin
      Datos.Qconsultas.Close;
      Datos.Qconsultas.SQL.Clear;
      Datos.Qconsultas.SQL.Add('SELECT orden_reparacion.cod_ordenreparacion ,orden_reparacion.fecha_ingreso, clientes.dni_cliente, clientes.nombre as nombre_cliente, clientes.apellido as apellido_cliente,usuarios.nombre, categoria_equipo.nombre, '+
                               'orden_reparacion.marca, orden_reparacion.modelo, detalle_ordenreparacion.dni_usuario, detalle_ordenreparacion.estado, detalle_ordenreparacion.fecha_terminado, detalle_ordenreparacion.precio '+
                               'FROM orden_reparacion, categoria_equipo, clientes, usuarios, detalle_ordenreparacion '+
                               'WHERE orden_reparacion.dni_usuario=usuarios.dni_usuario AND categoria_equipo.cod_categoria=orden_reparacion.cod_categoria and orden_reparacion.cod_ordenreparacion=detalle_ordenreparacion.cod_ordenreparacion '+
                               'AND orden_reparacion.dni_cliente=clientes.dni_cliente AND clientes.dni_cliente='+Edni.Text);
      Datos.Qconsultas.Open;   

      if (Datos.Qconsultas.RecordCount>0) then
        begin
          DBGordenesporcliente.DataSource:= Datos.DSconsultas;

          DBGordenesporcliente.Columns[0].Title.Caption:= 'N° Orden';
          DBGordenesporcliente.Columns[0].Width:= 60;
          DBGordenesporcliente.Columns[1].Title.Caption:= 'Fecha Ingreso';
          DBGordenesporcliente.Columns[2].Title.Caption:= 'Dni Cliente';
          DBGordenesporcliente.Columns[3].Title.Caption:= 'Nombre Cliente';
          DBGordenesporcliente.Columns[3].Width:= 100;
          DBGordenesporcliente.Columns[4].Title.Caption:= 'Apellido Cliente';
          DBGordenesporcliente.Columns[4].Width:= 100;
          DBGordenesporcliente.Columns[5].Title.Caption:= 'Recepcionista';
          DBGordenesporcliente.Columns[5].Width:= 100;
          DBGordenesporcliente.Columns[6].Title.Caption:= 'Categoria';
          DBGordenesporcliente.Columns[6].Width:= 80;
          DBGordenesporcliente.Columns[7].Title.Caption:= 'Marca';
          DBGordenesporcliente.Columns[7].Width:= 80;
          DBGordenesporcliente.Columns[8].Title.Caption:= 'Modelo';
          DBGordenesporcliente.Columns[8].Width:= 120;
          DBGordenesporcliente.Columns[9].Title.Caption:= 'Técnico';
          DBGordenesporcliente.Columns[9].Width:= 100;
          DBGordenesporcliente.Columns[10].Title.Caption:= 'Estado';
          DBGordenesporcliente.Columns[10].Width:= 50;
          DBGordenesporcliente.Columns[11].Title.Caption:= 'Fecha Terminado';
          DBGordenesporcliente.Columns[12].Title.Caption:= 'Precio';
          DBGordenesporcliente.Columns[12].Width:= 80;

          CBclientes.KeyValue:= unassigned;
        end
      else
        begin
          DBGordenesporcliente.Columns[0].Title.Caption:= 'N° Orden';
          DBGordenesporcliente.Columns[0].Width:= 60;
          DBGordenesporcliente.Columns[1].Title.Caption:= 'Fecha Ingreso';
          DBGordenesporcliente.Columns[2].Title.Caption:= 'Dni Cliente';
          DBGordenesporcliente.Columns[3].Title.Caption:= 'Nombre Cliente';
          DBGordenesporcliente.Columns[3].Width:= 100;
          DBGordenesporcliente.Columns[4].Title.Caption:= 'Apellido Cliente';
          DBGordenesporcliente.Columns[4].Width:= 100;
          DBGordenesporcliente.Columns[5].Title.Caption:= 'Recepcionista';
          DBGordenesporcliente.Columns[5].Width:= 100;
          DBGordenesporcliente.Columns[6].Title.Caption:= 'Categoria';
          DBGordenesporcliente.Columns[6].Width:= 80;
          DBGordenesporcliente.Columns[7].Title.Caption:= 'Marca';
          DBGordenesporcliente.Columns[7].Width:= 80;
          DBGordenesporcliente.Columns[8].Title.Caption:= 'Modelo';
          DBGordenesporcliente.Columns[8].Width:= 120;
          DBGordenesporcliente.Columns[9].Title.Caption:= 'Técnico';
          DBGordenesporcliente.Columns[9].Width:= 100;
          DBGordenesporcliente.Columns[10].Title.Caption:= 'Estado';
          DBGordenesporcliente.Columns[10].Width:= 50;
          DBGordenesporcliente.Columns[11].Title.Caption:= 'Fecha Terminado';
          DBGordenesporcliente.Columns[12].Title.Caption:= 'Precio';
          DBGordenesporcliente.Columns[12].Width:= 80;

          messagedlg('El cliente seleccionado no tiene Equipos en el sistema', mtinformation, [mbok], 0);

          Edni.setfocus;
        end;
    end;


  Lcantidad.Caption:= inttostr(Datos.Qconsultas.recordcount);
end;


Saludos !!
Responder Con Cita