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 31-10-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Bucle for

Buenas de nuevo a todos.

Tengo un pequeño problema de interpretacion del bucle for, el cual no acaba de funcionar como yo quiero.
Este es el bucle:

Código Delphi [-]
v1:=2;
z1:=2;
while not Inscripcio.Eof do
begin
  for v := 1 to v1 do
  begin
    F_ModulDades.Punts_Zona.Open;
    F_ModulDades.Punts_Zona.Append;
    F_ModulDades.Punts_ZonaID_CURSA.Value:=InscripcioCURSA.Value;
    F_ModulDades.Punts_ZonaDATA.Value:=F_ModulDades.CursaDATA_CURSA.Value;
    F_ModulDades.Punts_ZonaDORSAL.Value:=InscripcioDORSAL.Value;
    F_ModulDades.Punts_ZonaVOLTA.Value:=v;
    for z := 1 to z1 do
    begin
      F_ModulDades.Punts_ZonaZONA.Value:=z;
      F_ModulDades.Punts_ZonaPUNTS.Value:=0;
    end;
    F_ModulDades.Punts_Zona.Post;
  end;
  Inscripcio.Next;
end;

Lo que necesito es poder recorrer el bucle para que me arroje un resultado así:

1,1, 1/1/13, 1,1,1,0;
2,1, 1/1/13, 1,1,2,0;
3,1, 1/1/13, 1,2,1,0;
4,1, 1/1/13, 1,2,2,0;

y asi hasta recorrer toda la consulta Inscripcio, pero lo único que consigo es que me guarde solamente la ultima pasada por la variable z, es decir que obtengo lo siguiente:

1,1, 1/1/13, 1,1,2,0;
2,1, 1/1/13, 1,2,2,0;

El primer numero es un AUTOI.
El cambio devuelta lo realiza bien pero el de zona no, no se si me falta poner un next o hacer el proceso de otra forma.

Gracias por adelantado.

Uf creo que ya he superado el 400 (mensaje) crei que no llegaria a ello, jejeje
Hay premio?.
Bueno os invito yo, vale.....

Última edición por Casimiro Notevi fecha: 31-10-2013 a las 15:40:04.
Responder Con Cita
  #2  
Antiguo 31-10-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
a simple viste el append lo estas haciendo fuera del segundo bucle, es por eso que solo te guarda 2 registros
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 31-10-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Gracias Oscarac.

Lo he solucionado asi:
Código Delphi [-]
while not Inscripcio.Eof do
        begin
                for v := 1 to v1 do
                begin
                        for z := 1 to z1 do
                        begin
                                F_ModulDades.Punts_Zona.Open;
                                F_ModulDades.Punts_Zona.Append;
                                F_ModulDades.Punts_ZonaID_CURSA.Value:=InscripcioCURSA.Value;
                                F_ModulDades.Punts_ZonaDATA.Value:=F_ModulDades.CursaDATA_CURSA.Value;
                                F_ModulDades.Punts_ZonaDORSAL.Value:=InscripcioDORSAL.Value;
                                F_ModulDades.Punts_ZonaVOLTA.Value:=v;
                                F_ModulDades.Punts_ZonaZONA.Value:=z;
                                F_ModulDades.Punts_ZonaPUNTS.Value:=0;
                        end;
                        F_ModulDades.Punts_Zona.Post;
                end;
                Inscripcio.Next;
        end;
Ahora si que el resultado es correcto

Saludos

Josep

Última edición por Casimiro Notevi fecha: 31-10-2013 a las 19:46:56.
Responder Con Cita
  #4  
Antiguo 07-11-2013
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
Hola, ten cuidado con el "post" fuera del bucle. Si no se entra en el mismo te dará un error de que el Dataset no esta en modo de edicion o insercion.
Responder Con Cita
  #5  
Antiguo 18-11-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Gracias Juan.

Ya lo solucioné siguiendo tus instruciones, este es el problema de reutilizar código, luego borras un begin...end y ya está liada.
Funciona de mil maravillas.

No respondí antes ya que estuve liado como la pata de un romano.

Saludos
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
Bucle for de 2 en 2 douglas OOP 9 17-10-2007 15:55:53
Salir de un bucle do while RoyTan Varios 2 28-08-2006 14:25:36
Error En Bucle.. ElCherchu PHP 15 06-05-2006 10:17:13
Problema en bucle CarmaZone Tablas planas 6 20-01-2006 09:51:20
bucle dentro de un bucle Cosgaya Varios 2 06-06-2005 07:05:16


La franja horaria es GMT +2. Ahora son las 09:07:51.


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