Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-04-2023
Avatar de pgranados
pgranados pgranados is offline
Miembro
 
Registrado: sep 2022
Ubicación: México
Posts: 264
Poder: 2
pgranados Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Yo creo que es esto.
En tu código sólo estás realizando los cambios sobre el registro actual (que debería ser el primero), pero en ningún momento estás haciendo un recorrido por todos los registros de un cliente.

Una vez hecho el Active, que ejecuta la consulta o abre la tabla, debería haber algo así:

Código Delphi [-]
// Activar el dataset (se posiciona en el primero)
DataModule1.UniQueryFichaDoc.Active := true; 
// mientras haya registros en el dataset...
while not DataModule1.UniQueryFichaDoc.eof do begin

  // hacer lo que sea con el regiustro activo...
  ... 
  // siguiente registro
  DataModule1.UniQueryFichaDoc.Next;
end;
OFFTopic:

Maestro, usted que todo lo sabe.

¿Por qué mucha gente prefiere utilizar un while en lugar de un For?

Saludos.

Última edición por pgranados fecha: 05-04-2023 a las 16:59:10.
Responder Con Cita
  #2  
Antiguo 05-04-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por pgranados Ver Mensaje
Maestro, usted que todo lo sabe.
Ni mucho menos, me queda muuuuucho por aprender...

Cita:
Empezado por pgranados Ver Mensaje
¿Por qué mucha gente prefiere utilizar un while en lugar de un For?
WHILE cuando no sabes el número de elementos a procesar, pero puedes evaluar una condición.
FOR cuando sabes de antemano el número de elementos a procesar.

Es cierto que donde puedes usar un FOR, también puedes usar un WHILE (llevando tú el contador), pero no al contrario.

Y luego supongo que están las preferencias, manías, costumbres de cada uno...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 05-04-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por pgranados Ver Mensaje
Maestro, usted que todo lo sabe.
Realmente, [Neftali] es el nombre del bot de la I.A. de clubdelphi, puedes preguntarle lo que quieras porque siempre te dará una respuesta automática y funcional
Responder Con Cita
  #4  
Antiguo 11-04-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Realmente, [Neftali] es el nombre del bot de la I.A. de clubdelphi, puedes preguntarle lo que quieras porque siempre te dará una respuesta automática y funcional

Me he reído mucho...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 11-04-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
En estos casos el error o la solución suele ser un detalle muy tonto sobre el que no hemos caído.

Te recomiendo que crees un pequeño proyecto con esa porción de código donde se reproduce el problema y para los datos uses un TClientDataset y grabes los datos en un fichero. De esa forma cualquiera puede probarlo y reproducir el error y el comportamiento que tienes.

Lo subes y lo revisamos. Seguro que encontramos la lógica e incluso te podemos dar algún consejo de mejora.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 21-04-2023
aposi aposi is offline
Miembro
 
Registrado: dic 2006
Posts: 146
Poder: 18
aposi Va por buen camino
El problema en el for lo tienes en que desactivas los botones en cada paso del for




Por ejemplo e un registro que no es TRATAMIENTO desactivas el boton5, aunque en el registro anterior lo actives.
Lo que puedes hacer es desactivar todos los botones fuera del for y una vez dentro activar los botones




Código Delphi [-]
TMSFMXToolBarButton5.Enabled := False;
 TMSFMXToolBarButton5.Opacity := 0.3;
TMSFMXToolBarButton6.Enabled := False;
 TMSFMXToolBarButton6.Opacity := 0.3;

TMSFMXToolBarButton13.Enabled := False;
 TMSFMXToolBarButton13.Opacity := 0.3;

TMSFMXToolBarButton17.Enabled := False;
TMSFMXToolBarButton17.Opacity := 0.3;
for i:= 0 to DataModule1.UniQueryConsultaDOC.RecordCount-1 do   begin
     if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'TRATAMIENTO' then
     begin
       TMSFMXToolBarButton5.Enabled := true;
       TMSFMXToolBarButton5.Opacity := 1;
     end;
     if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'EXAMEN' then
     begin
       TMSFMXToolBarButton6.Enabled := true;
       TMSFMXToolBarButton6.Opacity := 1;
     end;
     if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'LABORATORIO' then
     begin
       TMSFMXToolBarButton13.Enabled := true;
       TMSFMXToolBarButton13.Opacity := 1;
     end;
           if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'FICHA MEDICA' then
     begin
       TMSFMXToolBarButton17.Enabled := true;
       TMSFMXToolBarButton17.Opacity := 1;
     end;
    DataModule1.UniQueryConsultaDOC.Next;
   end;
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
Mostrar en un DBGRID Relacion Muchos Muchos dmassive SQL 6 12-02-2009 18:55:19
Guardar muchos muchos Tedit el-mono OOP 4 30-09-2008 06:40:33
Problemas con generadores en relacion Muchos-a-Muchos Hagen Firebird e Interbase 3 30-10-2006 16:47:51
Consulta en SQL con muchos parámetros Aprendiendo SQL 5 05-04-2005 22:30:13
Consulta SQl, relacion 1 a muchos Walter SQL 3 15-07-2003 03:13:28


La franja horaria es GMT +2. Ahora son las 09:13:42.


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