![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Paradox.
A ver si al final se consigue resolver... ![]() |
|
#2
|
||||
|
||||
|
Tengo una solucion pero no funciona si usas la barra de scroll. Tampoco me puse a ver muy profundo. Peor es nada
Lo que hace uno por un brindis. jajajaj ![]() |
|
#3
|
||||
|
||||
|
Lo he probado minuciosamente, y pasa igual que con todos, en el caso de estar la tabla filtrada no funciona, me da el numero de la fila en la tabla no filtrada. Ya me estoy desesperando bastante jeje.
De todas formas, waltergomez, muchisimas gracias por tu interes y tu ayuda!!!!!!!!!!!!!!!! no se como agredacertelo que creo q con solo darte las gracias me quedo muy corto .Bueno pues seguire intentandolo, el que la sigue la consigue Un Saludo!! |
|
#4
|
||||
|
||||
|
Una pregunta: ¿para qué quieres este número de registro? Como ya habrás notado, aun con un mismo filtrado, tal número cambiará conforme se agreguen, modifiquen o eliminen registros.
// Saludos |
|
#5
|
||||
|
||||
|
Lo conseguire?
Pues simplemente lo quiero porque quiero mostrar debajo de los DBgrids un campo de texto que ponga "Registro 20 de 100" y cada vez que mueva (calculandolo de nuevo en la propiedad OnDrawColumnCell del grid) que calcule de nuevo el valor, es decir si muevo a la siguiente fila que aparezca "Registro 21 de 100", solo es cuestión de estética, pero me gustaria hacerlo.
En el ejemplo que he puesto el 20 será el registro numero 20 dentro del Grid (pero no solo de los visibles, por eso "TStringGrid(DBGridPedidos).Row no me sirve") El Numero maximo lo hayo bien, y el numero de registro funciona bien aunque borre, modifique o agregue registros, solo falla en el caso de filtrar la tabla. Ya que lo que quiero en realidad es la posicion del registro en el grid entero (incluidas las filas no visibles). Pero bueno, ya para dejarlo mas claro, adjunto imagen de lo que estoy haciendo. En la imagen debajo del grid entre las flechas del navegador aparece el contador del que hablo. Gracias otra vez por vuestro interes. Última edición por Colgueit fecha: 16-05-2006 a las 03:14:18. |
|
#6
|
||||
|
||||
|
¿Nadie sabe hacerlo?
Un saludo! |
|
#7
|
||||
|
||||
|
Es que no creo que sea algo fácil. No me atrevo a decir que sea imposible pero velo desde esta perspectiva:
Hacer algo como lo que quieres requiere conocer de una u otra forma la posición exacta de un registro dentro del conjunto de resultados. Cuando conectas el dbgrid a una tabla paradox, la barra de desplazamiento refleja esta posición actual en la tabla. Sin embargo, apenas pones un filtro en la tabla, la barra sólo toma tres posibles posiciones: al principio, en medio y al final. Esto es, los mismos diseñadores de la vcl no encontraron una manera precisa de reflejar la posición dentro de una tabla filtrada. Así pues, lo único que a mi se me ocurre es insertar un ClientDataSet entre el dbgrid y el table que uses: Table->DataSetProvider->ClientDataSet->DataSource->DbGrid aunque esto puede implicar uno que otro cambio en la forma en que actualizas la información en la base pues requieres hacer uso de ClientDataSet.ApplyUpdates además del Post usual. // Saludos |
|
#8
|
||||
|
||||
|
Hola Colgueit,
Me sorprende que lo ultimo que te pase no funcione dado que a mi si me funciona perfectamente, y lo unico que no ofunciona es cuando en la grilla te moves con las barras de scroll. La funcion DbiGetExactRecordCount devuelve en forma exacta la cantidad de registros filtrados y al publicar el metodo protegido Scroll podes llevar la cuenta en el ejemplo al hacer doble click en la grilla me muestra de registro de la forma x/XXX. Y use paradox por las dudas. salu2, |
|
#9
|
|||
|
|||
|
Si trabajas con la tabla paradox, que tal si añades uun campo incremental a la tabla y luego utilizas el valor de dicho campo con FieldValues por ejemplo?
Yo lo hago habitualmente. Espero haberte ayudado. |
|
#10
|
||||
|
||||
|
Colgueit, una pregunta es solo para hacer consultas?
Si la respuesta es correcta y la memoria no me falla, podras crear una tabla temporal, copiada de la original, añadiendo un campo, supongamos que lo llamamos "posiscion", leemos registro por registro y en cada registro añadimos un numero que iremos cogiendo de un contador incremental. Si tabla esta filtrada hacemos lo mismo una vez la original este filtrada. ahora deberia funcionarte. EJjemplo teorico tabla original 100 registros/ tabla temporal 100 registros Resultado del filtro 10 de 100 registros / tabla temporal de los filtrados 10 de 10 registros (sólo) los filtrados Comentarte que recuerdo haber hecho algo parecido, pero hace tiempo que no trabajo programando y estoy volviendo a casí empezar. Ten encuenta que si la tabla es muy grande puede tardar un rato en mostrar el resultado. Espero te sirva y un saludo desde Canarias Última edición por José Luis Garcí fecha: 17-05-2006 a las 16:04:21. |
|
#11
|
|||
|
|||
|
Hola,
Después de lo que habeis dicho anteriormente, creo tener la solución... Tuve el mismo problema utilizando un DBGrid para controlar el detalle de las facturas en la aplicación que estoy desarrollando, aunque lo mio fué problema de controlar la actualización del nº de linea de cada una de las partidas en caso de que se suprimieran, añadieran o actualizaran. Terminé por utilizar un ClientDataSet y un DataSetProvider asociado a la tabla de lineas. Controlé la actualización de los números de linea mediante la indexación del clientdataset por este campo y todo empezó a ir bien. Todo este rollo es para comentaros que la actualización fué bien porque en todo momento el valor del campo Recno tomaba el de la linea real dentro del cuerpo de la factura, esto es, cuando se insertaba una linea en la fila dos del DBGrid(Asociado al DataSet del ClientDataSet) la fila actual pasaba a ser la tres y así sucesivamente. En cuando a la supresión, ocurría de manera correcta. Por tanto, en teoría deberías poder conseguir el nº de registros actual del DBGrid, consultando despues de un Last a la tabla ClientDataSet el valor Recno que te devuelva. No sé si me entiendes... ya que este valor se actualiza automáticamente cada vez que añades o suprimes registros en la tabla. Espero haber entendido tu problema ... Saludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Mostrar numero de fila DBGrid | danielcordovahe | Varios | 2 | 20-09-2005 01:00:21 |
| Fila del DbGrid | Rabata | Varios | 3 | 08-11-2004 22:18:13 |
| Número de Fila en Report Manager | KayserSoze | Impresión | 1 | 20-02-2004 20:57:11 |
| numero de fila en dbgrid | manu | Varios | 5 | 18-12-2003 21:06:14 |
| Numero de fila en TSQLDataSet | andre | Conexión con bases de datos | 2 | 26-06-2003 16:52:42 |
|