Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
Presentación y primera consulta (DBNavigator)

Gente, este es mi primer post en este foro. Soy Martín Lillo, de Río Cuarto, Córdoba. Después de agradecerles a todos de ante mano por las ayudas que seguramente recibiré (y espero poder brindar), les hago una primera consulta:
Resulta que cada vez que pongo un DBNavigator, y me pongo a navegar los registros, al llegar al último el botón de "siguiente" sigue habilitado. Clickeo una vez más allí, y se deshabilita, dejándo en el formulario los mismos datos del último registro.
En un sistema que hice, esto realmente molesta, porque hay un botón que opera sobre los datos actuales, y parece ser que los datos del último registro luego de volver a hacer click en "siguiente", no están bien. Por ejemplo, para que se entienda:
1- Estoy en el penúltimo registro. Hago click en "Reporte", y me muestra el reporte.
2- Paso al último registro. Hago click en reporte y me lo muestra. El botón "siguiente" aún está habilitado, pese a estar en el último.
3- Hago click en siguiente. El botón "siguiente" se deshabilita y los datos del formulario son iguales a los del paso 2.
4- Hago click en reporte, y me muestra un reporte vacio.

Apelo a vuestra sabiduría para resolver este dilema.

Saludos!!!!
Responder Con Cita
  #2  
Antiguo 12-09-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola martinlillo y bienvenido a los foros de Club Delphi

Si no te entiendo mál, lo que buscas es que el botón siguiente quede deshabilitado al estar situado en el último registro.

Si es así, quizá te pueda servir hacer:
Código Delphi [-]
procedure TForm1.DBNavigator1BeforeAction(Sender: TObject;Button: TNavigateBtn);
begin
  with TDBNavigator(Sender).DataSource.DataSet do
    if RecNo > RecordCount-2 then
      Next;
end;


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 12-09-2011 a las 15:44:54.
Responder Con Cita
  #3  
Antiguo 12-09-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hasta donde sé y recuerdo, tal es el comportamiento normal del DBNavigator. La razón exacta no la sé, pero de alguna manera, cuanda te desplazas por los registros de un dataset, no hay manera directa de ver que hay "más allá", sólo el registro actual, así que, cuando te paras en el último registro, el dataset no sabe que es el último y tienes que avanzar uno más para llegar a la marca de final de archivo.

Cuando dices "Reporte", ¿a qué te refieres? ¿Qué proceso hace ese botón?

// Saludos
Responder Con Cita
  #4  
Antiguo 12-09-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Perdón , no había visto la respuesta de ecfisa al contestar. Sólo comentar que la solución que propone no siempre funcionará porque no con todos los dataset funciona el RecNo y el RecordCount.

// Saludos
Responder Con Cita
  #5  
Antiguo 12-09-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola román.

Si y no sólo eso, también pensé, al momento de sugerirlo, en que podría estar provocando un posible efecto secundario en algún evento del DataSet.

Pero bueno, la intención era ofrecerle alguna alternativa para que pruebe.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 12-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
Gracias por la data. Voy a probar ese código a ver qué onda.
Respecto al botón "Reporte", es sólo un botón que puse, que te muestra un reporte hecho con Fortes Report. Nada más.
Cuando pruebe les digo si anduvo o no.


Saludos y gracias!
Responder Con Cita
  #7  
Antiguo 12-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
No me anduvo. Lo que hace ese código es avanzar registros, y termina dejándome más allá del último, y me hace el mismo chiste. Como estoy en la marca de fin, el reporte no me muestra nada.

Saludos y gracias igual!
Responder Con Cita
  #8  
Antiguo 12-09-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Respecto al botón "Reporte", es sólo un botón que puse, que te muestra un reporte hecho con Fortes Report
Y como supongo, adonde apuntaba roman, ¿ No podés deshabilitar el boton del reporte cuando llegues al final del DataSet ?

De ese modo aunque el boton del DBNavigator esté enabled no se podrá mostrar el reporte.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 12-09-2011 a las 16:11:33.
Responder Con Cita
  #9  
Antiguo 12-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, bienvenida a clubdelphi, por favor, lee nuestra guía de estilo, necesitas explicarte mejor para que podamos ayudar. Gracias.
Responder Con Cita
  #10  
Antiguo 12-09-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por martinlillo Ver Mensaje
Respecto al botón "Reporte", es sólo un botón que puse, que te muestra un reporte hecho con Fortes Report. Nada más.
Pero es que, a mi juicio, ahí es donde está tu problema y es lo que habría que revisar. Aunque llegues al final del dataset, como ya has visto, los controles asociados y el mismo dataset, siguen mostrando los datos de ese último registro, así que no debería tener poblemas para tomar los datos y volver a presentar el reporte.

De todas formas, algo que podrías hacer para evitar que se muestre el reporte en blanco es inhabilitar dicho botón. En el evento AfterScroll del dataset pones:

Código Delphi [-]
BotonReporte.Enabled := not DataSet.Eof;

// Saludos
Responder Con Cita
  #11  
Antiguo 12-09-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Hola, bienvenida a clubdelphi,
Quiero suponer que es bienvenido.

// Saludos
Responder Con Cita
  #12  
Antiguo 12-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
Je! Sabía que no iba a ser fácil...
El tema de deshabilitar el botón reporte al llegar a EOF, está bueno, pero tiene un problema estético. En el formulario van a seguir apareciendo los datos del último registro, y el usuario se preguntará: "por qué no puedo ver el reporte?".
En fin, es todo un tema... Seguiré investigando...

Saludos!

PD: Soy bienvenidO, y no bienvenidA.
Responder Con Cita
  #13  
Antiguo 12-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
Quiero suponer que es bienvenido.
// Saludos
Cita:
Empezado por martinlillo Ver Mensaje
PD: Soy bienvenidO, y no bienvenidA.
Yo pienso que eres una persona bienvenida a estos foros


Bienvenido a los foros

.
Responder Con Cita
  #14  
Antiguo 14-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
Ah bueno! Así pos sí....

Abrazo!
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
Consulta sql lenta la primera vez lledesma Conexión con bases de datos 2 07-07-2008 11:58:36
Error en Consulta - solo salen datos la primera vez javicho_villa Varios 5 24-01-2006 02:09:21
Primera consulta, mas lenta que el caballo del malo papulo Conexión con bases de datos 20 23-09-2005 13:46:24
Primera llamada, primera roman Noticias 12 06-07-2005 21:22:49
Presentación Powerpoint JamesBond_Mx Servers 0 02-07-2003 15:59:37


La franja horaria es GMT +2. Ahora son las 07:44:55.


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