Ver Mensaje Individual
  #9  
Antiguo 01-12-2014
Jose Carlos Rey Jose Carlos Rey is offline
Miembro
NULL
 
Registrado: may 2014
Posts: 26
Reputación: 0
Jose Carlos Rey Va por buen camino
Caminante, que tal haciendo lo que comentabas de sacar la sentencia next fuera de los condicionales If termina en la primer lectura del lector de codigo.
Código Delphi [-]
  if (key = #13) then
    begin
      Nprod:=Edit1.Text;
      DataModule1.ADOQuery8.Close;
      DataModule1.ADOQuery8.Open;
      DataModule1.ADOQuery8.SQL.Clear;
      DataModule1.ADOQuery8.Close;
      DataModule1.ADOQuery8.SQL.Add('SELECT CVE_DOC,NUM_PAR,CVE_ART,CANT,CVE_ALTER,USUARIO,AREA,NIVEL');
      DataModule1.ADOQuery8.SQL.Add('FROM PAR_FACTF_CLASS');
      DataModule1.ADOQuery8.SQL.Add('WHERE CVE_DOC=:Fact');
      DataModule1.ADOQuery8.Parameters.ParamByName('Fact').Value:=Nfact;
      DataModule1.ADOQuery8.ExecSQL;
      DataModule1.ADOQuery8.Open;
      DataModule1.ADOQuery8.First;
      DBGrid1.Columns[0].Visible:= True;
      DBGrid1.Columns[1].Visible:= True;
      DBGrid1.Columns[2].Visible:= True;
      DBGrid1.Columns[3].Visible:= False;
      DBGrid1.Columns[4].Visible:= False;
      DBGrid1.Columns[5].Visible:= False;
      DBGrid1.Columns[6].Visible:= False;
      DBGrid1.Columns[7].Visible:= False;
      Cuser:='NOMBRE USUARIO';
      Carea:='SISTEMAS';
      Nnivel:=0;
      Ncuenta:=0;
      While Not DataModule1.ADOQuery8.Eof Do
        Begin
            If Not (DataModule1.ADOQuery8.Fields[0].Value<>Nfact) Then
              Begin
                Nprod:=DataModule1.ADOQuery8.Fields[4].Value;
                  If (DataModule1.ADOQuery8.Fields[4].Value=Nprod) Then
                    Begin
                      Ncant:=DataModule1.ADOQuery8.Fields[3].Asinteger;
                      If (DataModule1.ADOQuery8.Fields[3].Value<>Ncuenta) Then
                        Begin
                          Ncuenta:=Ncuenta+1;
                        End
                    End;
              End; // Fin de While Nfact=Nfact
                DataModule1.ADOQuery8.Next;
                Ncuenta:=0;
                Nprod:=DataModule1.ADOQuery8.Fields[4].Value;
                Form5_suite_factura.Show;
                Form5_suite_factura.Edit1.Clear;
                Form5_suite_factura.Edit1.SetFocus;
        End; // Fin de While EOf
        Form5_suite_factura.Close;
        ShowMessage('Se termino la lectura de productos para su salida.');
    end;
end;

como podras observar ya esta fuera de los If solo dentro de While Eof pero se sale inmediatamente.
Gracias
Responder Con Cita