Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-07-2013
DavidSG4 DavidSG4 is offline
Miembro
 
Registrado: oct 2007
Posts: 92
Poder: 17
DavidSG4 Va por buen camino
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.....
Responder Con Cita
  #2  
Antiguo 23-07-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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).
Responder Con Cita
  #3  
Antiguo 23-07-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
Responder Con Cita
  #4  
Antiguo 23-07-2013
DavidSG4 DavidSG4 is offline
Miembro
 
Registrado: oct 2007
Posts: 92
Poder: 17
DavidSG4 Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 23-07-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
Responder Con Cita
  #6  
Antiguo 23-07-2013
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 24-07-2013
DavidSG4 DavidSG4 is offline
Miembro
 
Registrado: oct 2007
Posts: 92
Poder: 17
DavidSG4 Va por buen camino
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
Responder Con Cita
  #8  
Antiguo 24-07-2013
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
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.
Responder Con Cita
  #9  
Antiguo 24-07-2013
DavidSG4 DavidSG4 is offline
Miembro
 
Registrado: oct 2007
Posts: 92
Poder: 17
DavidSG4 Va por buen camino
Cita:
Empezado por ElDioni Ver Mensaje
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.
para el dbgrid si que hay onmousedown y el onmouseup (a modo de aclaracion)
Responder Con Cita
  #10  
Antiguo 24-07-2013
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Cita:
Empezado por DavidSG4 Ver Mensaje
para el dbgrid si que hay onmousedown y el onmouseup (a modo de aclaracion)
Efectivamente el OnMouseDown y el OnMouseUp están pero, por hacer una prueba, pon un showmessage('Hola'); en el OnMouseDown de un DBGrid y dime que ocurre.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #11  
Antiguo 25-07-2013
DavidSG4 DavidSG4 is offline
Miembro
 
Registrado: oct 2007
Posts: 92
Poder: 17
DavidSG4 Va por buen camino
ordenar dbgrid

Cita:
Empezado por ElDioni Ver Mensaje
Efectivamente el OnMouseDown y el OnMouseUp están pero, por hacer una prueba, pon un showmessage('Hola'); en el OnMouseDown de un DBGrid y dime que ocurre.

Saludos.
yo tengo hecho operaciones con el mouseup y si que me funcionan...por ejemplo tengo un dbgrid y quiero quedarme con una parte tupla de ese grid y con el onmouseup meto esos registros en edit's

Gracias tio
Responder Con Cita
  #12  
Antiguo 25-07-2013
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Cita:
Empezado por DavidSG4 Ver Mensaje
yo tengo hecho operaciones con el mouseup y si que me funcionan...por ejemplo tengo un dbgrid y quiero quedarme con una parte tupla de ese grid y con el onmouseup meto esos registros en edit's

Gracias tio
Hola,

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.
Responder Con Cita
  #13  
Antiguo 26-07-2013
DavidSG4 DavidSG4 is offline
Miembro
 
Registrado: oct 2007
Posts: 92
Poder: 17
DavidSG4 Va por buen camino
Cita:
Empezado por ElDioni Ver Mensaje
Hola,

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.
llevas razon tio.. yo lo tengo en el up jejej
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mover filas en StringGrid altp OOP 3 13-06-2007 18:19:57
Mover el cursor de DBGrid.... armadillo OOP 1 05-04-2006 14:42:48
Mover las filas de un TDrawGrid jrgarlok C++ Builder 0 17-02-2005 22:04:52
Mover Filas en un TDrawGrid jrgarlok Gráficos 0 24-01-2005 11:37:57
Mover filas en un Grid?? superfer17 OOP 2 18-08-2004 10:09:16


La franja horaria es GMT +2. Ahora son las 11:11:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi