![]() |
Grilla mejor que dbGrid
Hola Foro:
Estoy haciendo una interface para asientos contabes y estoy utilizando un rxMemoryTable y un dbgrid para cargar las cuentas y los importes en Debe y Haber. La consulta es si existe un DbGrid más lindo y que permita cambiar las posiciones de las filas, o sea que el usuario pueda subir y bajar las cuentas? Estoy usando Delphi 7 y Firebird. Desde ya muchas gracias por su atención. |
Las posiciones de las filas dependen de la consulta sql del dataset que hayas enlazado al dbgrid, mediante su datasource.
Lo que sí puedes hacer es agrupar, mover las columnas, etc. con algunos otros dbgrid. |
Gracias Casimiro, ¿Sabés que otro DbGrid puedo usar que permita subir y bajar filas?
|
Cita:
|
No sé. No entiendo. :(
|
Las posiciones de las filas dependen de la consulta sql del dataset que hayas enlazado al dbgrid, mediante su datasource.
Si quieres cambiar las posiciones, debes cambiar el orden en el sql. O no usar un dbgrid, sino un stringgrid, o algo similar. |
Ok. Gracias.
|
Por favor, si no lo has entendido, no dudes en preguntar de nuevo, te lo aclaro con un ejemplo si es necesario.
|
Hola Carmelo..
No tengo presente ahora un compornnte Free que pueda hacer lo que dices en Delphi 7. Pero concuerdo con Casimiro en su aprecisión en la que dice que la posición d elas Filas depende mas de la Consulta (Query) que de la Grilla. Nunca he manejado el RxMemoryTable, pero si funciona como creo, podrías intentar un "truco" para ordenar la grilla. Esto sería agregando a tu consulta un campo "Orden" que se numerara secuencialmente de manera que tu consulta se ordene por este campo (el componente MemoryTable debería tener una opcion para ordenar por este campo) Cuando intentes hacer el cambio de orden en la grilla, podrias intercacambiar el valor de este campo con sus vecnos (arriba, abajo) y nuevamente generar el re-ordenamiento... (hay que hacer ucho trabajo manual, pero podria funcionarte mientras lo resuelves mejor) Saludo, |
EDITO:
Bueno, entendi cualquier cosa :D mejor borro lo que puse que nada que ver En fin, creo que lo mejor es usar un TClientDataSet. En tu ClientDataSet deberias tener un campo numerico de orden como menciona gatosoft, y luego lo que haces es permitirle aumentar o decrementar ese numero. Luego reordenas el dataset. Es decir, te tendria que quedar algo como esto
Otra forma de verlo es utilizar cursores. Hay un pdf excelente de Cary Jensen (si mal no recuerdo, y espero haber escrito bien su nombre) en el FTP del club que no tiene desperdicio |
Desde luego que hay formas de hacer lo que quiere, pero no creo que encuentro un componente dbgrid que lo haga. Tendrá que ser manualmente.
|
Hola a todos, yo creo que de lo que se trata es que sea el usuario final al interactuar con el dbgrid el que pueda cambiar las columnas, agruparlas, etc.... para ello uno de los que lo hacen muy bien (entre otro montón) son los componentes de http://www.devexpress.com.
|
Cita:
|
| La franja horaria es GMT +2. Ahora son las 00:02:58. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi