FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
mover filas dbgrid
Buenas chic@s.
tengo un problema y es que no se como poder mover las filas de un dbgrid he pensado que la mejor opcion seria poner un boton arriba y abajo en el formulario y segun la fila seleccionada la mueva arriba y abajo, tambien podria hacerse con el raton y moverla a la posicion que queramos.... pero claro esto son ideas lo que no se es como hacerlo podeis ayudarme? trabajo con delphi 5 ya se que debo cambiar pero ya sabeis.... los jefessssss..... |
#2
|
||||
|
||||
Si es un dbgrid entonces está enlazado a un dataset mediante un datasource, por lo tanto, no puedes mover las filas, tienes que cambiar el orden en el dataset (sql o tabla).
|
#3
|
||||
|
||||
Siguiendo con lo que comenta Casimiro....
¿Ese DBGrid está conectado a una tabla? ¿Los registros de esa tabla tienen un orden? ¿Tienes sentido cambiar ese orden? ¿Tienes algún campo para cambiar ese orden?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
ordenar dbgrid
bueno os lo explico un poco mejor todo...
Esa tabla que tiene el dbgrid asociado mediante el datasource es una tabla en la que se introducen estados de producción hasta aquí todo bien si este proceso no fuera dinámico y según resultados de producción las piezas siguen un proceso u otro entonces lo que necesito es tener el grid con un estado inicial por ejemplo operaciones 1,2,3,4,5 que tienen que cambiar a 1,4,3,2,5 y necesito un metodo que me permita bajar o subir la tupla seleccionada del grid a ver si se os ocurre algo y gracias por vuestra pronta salida al rescate |
#5
|
||||
|
||||
En ese caso debes modificar los registros en la tabla.
Es decir, si los registros se muestran ordenados por un NUM_OPERACION, para cambiar el orden en el DBGrid, realmente debes cambiar el orden en la tabla, por lo tanto deberás hacer un Update en los registros para modificar el NUM_OPERACION y que en el DBGrid se muestren como quieres. El problema a esto es que si tienes muchos registros, cambiar el orden significa hacer muchos Updates. Esta técnica se suele hacer cuando hay pocos regitros (10 como máximo, te diría yo). Si los registros son muchos, deberías "volcarlos a memoria" (utilizar ClientDataset o similar), realizar las operaciones en memoria y al final pasarlas todas a la Base de Datos.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#6
|
||||
|
||||
Hola, yo hice algo parecido hace un tiempo, lo primero que te diría es que te instalaras el SMDBGrid que es gratuito, ¿porqué?, porque si no recuerdo mal el DBGrid normal que lleva delphi no disparaba el código en el MouseDown y había que programar un parche para conseguirlo, además el SMDBGrid tiene más opciones que el DBGrid que pueden resultarte útiles.
Que hacía yo, en el MouseDown, capturaba el orden que tenía el registro seleccionado en una variable, permitía en el DBGrid el Drag&Drop para que aceptara el arrastre de registros dentro del mismo DbGrid. Cuando hacía el Drop capturaba en otra variable el registro en el que me había posicionado, había que saber si el registro lo había movido hacia una posición superior o inferior, a partir de ahi, si lo había movido a una posición superior, tenía que hacer un update de +1 en el orden, a todos los registros que fueran mayor o igual que el registro donde quería colocar el nuevo registro hasta los que fueran menor que el registro original que había movido, algo así. Te darás cuenta de que tienes que controlar más cosas, tabla vacía, un solo registro, orden de los nuevos registros, etc. Espero haberte ayudado en algo. Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#7
|
|||
|
|||
ordenar dbgrid
Muchas gracias intentare lo que me dices a ver si puedo conseguir algo
aunque lo veo un poco complicado de hacer pero se intentará Gracias si hay mas ideas estoy abierto a cualquiera |
#8
|
||||
|
||||
Bueno, si lo haces con botones sería más fácil,
controlando la primera y última posición solo tendrías que cambiar el orden del registro que quieres subir o bajar por el siguiente. Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#9
|
|||
|
|||
Cita:
|
#10
|
||||
|
||||
Cita:
Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#11
|
|||
|
|||
ordenar dbgrid
Cita:
Gracias tio |
#12
|
||||
|
||||
Cita:
si te fijas en lo que te escribí no me refería al mouseup sino al mousedown, que es donde te dije que hicieras la prueba para ver si se disparaba el código. Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#13
|
|||
|
|||
llevas razon tio.. yo lo tengo en el up jejej
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mover filas en StringGrid | altp | OOP | 3 | 13-06-2007 17:19:57 |
Mover el cursor de DBGrid.... | armadillo | OOP | 1 | 05-04-2006 13:42:48 |
Mover las filas de un TDrawGrid | jrgarlok | C++ Builder | 0 | 17-02-2005 21:04:52 |
Mover Filas en un TDrawGrid | jrgarlok | Gráficos | 0 | 24-01-2005 10:37:57 |
Mover filas en un Grid?? | superfer17 | OOP | 2 | 18-08-2004 09:09:16 |
|