![]() |
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!!!! |
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:
Saludos. |
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 |
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 |
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. |
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! |
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! |
Hola.
Cita:
De ese modo aunque el boton del DBNavigator esté enabled no se podrá mostrar el reporte. Saludos. |
Hola, bienvenida a clubdelphi, por favor, lee nuestra guía de estilo, necesitas explicarte mejor para que podamos ayudar. Gracias.
|
Cita:
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:
// Saludos |
Cita:
// Saludos |
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. |
Cita:
Cita:
Bienvenido a los foros :) :) :) . |
Ah bueno! Así pos sí....
Abrazo! |
La franja horaria es GMT +2. Ahora son las 04:55:53. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi