Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-11-2014
Jose Carlos Rey Jose Carlos Rey is offline
Miembro
NULL
 
Registrado: may 2014
Posts: 26
Poder: 0
Jose Carlos Rey Va por buen camino
Retomar control en Edit

Que tal, buen día a todos. Saludándoles y aprovechando de su conocimiento les pido ayuda para un detalle que tengo con un ciclo While que debería de recorrer una consulta SQL, hace el recorrido a medias y se queda ciclado.
Lo que pretendo hacer es posterior a una consulta SQL. En un Edit de un Form se captura con lector de código EAN13 y al termino se ingresa un ENTER en el evento Edit1KeyPress en esta consulta SQL selecciono Factura,articulo,cantidad,código EAN13,usuario,área y nivel. Los datos principales son los 3 primeros. Se ingresa un numero de factura y esto por consecuencia tiene "X" cantidad de productos que a su vez tienen "Y" cantidad de piezas o unidades. Pretendo que se posicione en numero "Factura" luego haga la búsqueda del código EAN13 y tome como variable la cantidad de piezas para que valide atraves del EDIT y el lector de codigo con el mismo producto y la misma factura. Con la programacion que tengo hace solo una parte, encuentra la factura, el código y piezas y hace el loop según la cantidad. pero después ya no retoma el control en el Edit de la Form. para nuevamente hacer el ciclo y así sucesivamente.
Código Delphi [-]
procedure TForm5_suite_factura.Edit1KeyPress(Sender: TObject;
  var Key: Char);
begin
  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
          DataModule1.ADOQuery8.DisableControls;
            If Not (DataModule1.ADOQuery8.Fields[0].Value<>Nfact) Then
              Begin
                Nprod:=DataModule1.ADOQuery8.Fields[4].AsString;
                  If Not (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
                      Else
                        Begin
                          DataModule1.ADOQuery8.Next;
                          Edit1.Clear;
                          ShowMessage('Siguiente');
                          Edit1.SetFocus;
                        End
                    End;
              End // Fin de While Nfact=Nfact
        End // Fin de While EOf
    end;
end;

Espero haya sido clara la explicacion.
De antemano Gracias
Responder Con Cita
  #2  
Antiguo 28-11-2014
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Hola

Veo que pones disablecontrols pero no enablecontrols no se si tenga que ver pero solo queria hacerlo notar.

Saludos

Última edición por Caminante fecha: 28-11-2014 a las 15:56:51.
Responder Con Cita
  #3  
Antiguo 28-11-2014
Jose Carlos Rey Jose Carlos Rey is offline
Miembro
NULL
 
Registrado: may 2014
Posts: 26
Poder: 0
Jose Carlos Rey Va por buen camino
Hola Caminante, tienes razón en que tengo DisableControls, lo probé activo e inactivo. Pero sigue en lo mismo. Inclusive en el código actual ya lo elimine por si fuese algo que estuviera provocando falla; pero no, no retoma el control al edit de la form para continuar escaneando el siguiente articulo.

Gracias
Responder Con Cita
  #4  
Antiguo 28-11-2014
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Hola de nuevo

¿Y has probado sacando el ADOQuery8.Next fuera de las condicionales, es decir al final del while??


Saludos
Responder Con Cita
  #5  
Antiguo 29-11-2014
Jose Carlos Rey Jose Carlos Rey is offline
Miembro
NULL
 
Registrado: may 2014
Posts: 26
Poder: 0
Jose Carlos Rey Va por buen camino
No, no lo he sacado. Aunque no se exactamente a que refieres con sacarlo! puedo parecer neófito (realmente lo soy) en ese tema. Podrias si no es molestia con el código que deje dar un ejemplo de lo que refieres?

Gracias y saludos
Responder Con Cita
  #6  
Antiguo 29-11-2014
Jose Carlos Rey Jose Carlos Rey is offline
Miembro
NULL
 
Registrado: may 2014
Posts: 26
Poder: 0
Jose Carlos Rey Va por buen camino
Caminante, disculpa no lei correctamente lo del ADOQuery8.next de sacarlo del while. mm deja lo intento y comento.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
retomar ventana de mensajes en windows 7 - lazarus anubis Lazarus, FreePascal, Kylix, etc. 0 27-10-2014 16:14:54
Armar Edit a partir de otros Edit giulichajari Varios 5 13-03-2014 21:15:11
Problemas al retomar proyecto en delphi5.0 desalonso Varios 9 18-01-2011 17:20:27
Control de Edit Abuelo7 Conexión con bases de datos 3 05-10-2008 13:52:55
Control de Cursor en Edit soloriv Varios 2 02-06-2006 20:46:52


La franja horaria es GMT +2. Ahora son las 09:25:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi