FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#21
|
||||
|
||||
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 |
#22
|
||||
|
||||
Gracias Roman por responder.
Pues, visto lo visto, mejor dejarlo, que si dices que es dificil o incluso imposible pues será porque es así, que creo que tu eres de los que mas sabe de por aquí. Y tampoco pasa nada por no hacerlo, solo era por cuestión de estética, no pasa nada si no lo hago, pero ya me daba coraje no poder hacerlo porque pensaba que no era dificil y decia "joder lo tengo que poder hacer!". Ya solo agradecer a todos los que habeis intantado ayudarme, Muchas Gracias, de verdad! Saludos |
#23
|
||||
|
||||
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, |
#24
|
|||
|
|||
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. |
#25
|
||||
|
||||
ya falta poco (espero)
Para waltergomez: ya se porque a tí te a funcionado, y es porque solo funciona bien la primera vez que se hace, la primera vez que se filtra funciona, lo calcula bien, pero si desfiltro o hago otro filtro diferente, ya los calcula mal otra vez. Aunque si lo hace bien la primera vez , se tiene que poder hacer para que siempre funcione, tiene que ser haciendo un pequeño cambio pero he estao probando muchas combinaciones y no hayo como hacerlo, como no entiendo bien el codigo... A ver si me puedes ayudar (otra vez) a resolver cual es el cambio que hay que hacer para que funcione correctamente. Muchas gracias de nuevo, yo seguire probando a ver si hayo con la solucion, que creo que ya esta cerca jeje. Thanks. Un saludo
Para mariofur: Ojala fuera tan facil, no has entendido bien lo que quiero hacer, pero gracias de todas formas. |
#26
|
||||
|
||||
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. |
#27
|
||||
|
||||
Gracias Jose Luis pero ya habia pensado algo parecido y no me sirve al igual que tampoco me sirve hacer consultas sql ya que utilizo el grid para modificar, eliminar y añadir, pero gracias.
Saludos desde Malaga, aunque pronto te saludaré tambien de Canarias (en concreto de Lanzarote) |
#28
|
||||
|
||||
Te puede servir, con un poco mas de trabajo, una vez tienes el registro selecionado, supongo que tendra un código especifico, buscas en la tabla original y modificas, eliminas,editas, etc, lo único que no recuerdo bien pero creo que en las paradox podias coocar un nuevo registro en una posicion intermedia de la base de datos, pudiendo agregar antes o despues del registro.
Me alegro que vengas a Canarias, Lanzarote es una Isla Preciosa, misteriosa, desertica, pero Maravillosa, yo te escribo desde Gran Canaria, Un saludo y que lo pases bien. |
#29
|
|||
|
|||
Posible solución
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. |
|
|
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 |
|