FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Ordenar Lista de Registros
Hola Foro:
Necesito hacer una aplicación que permita modificar el orden de los registros desde una pantalla sin usar un número de orden. Actualmente tengo para cada registro un campo "Orden" , entonces ahí van poniendo un número y la planilla sale ordenada por ese campo. El sistema funciona pero es muy engorroso, lo que quiero hacer es poder ver la planila en una grilla, y seleccionar uno o varios registros y moverlos para arriba o para abajo, y luego grabar todo el archivo renumerando el campo ”Orden”. No sé que componentes usar, había pensado cargarlos en un ListBox, que tiene la opción Multiselect para habilitar, pero no me doy cuenta como mover los registros. También pensé en utilizar una rxMemoryTable, pero .. IDEM. Estoy utilizando Delphi 7 e Internase. Bueno desde ya gracias por su atención. |
#2
|
||||
|
||||
¿Mover los registros de orden?, exactamente ¿qué necesitas?
|
#3
|
||||
|
||||
eJemplo:
----CLIENTES---- Pepe Tito Pipo Koko <--- Selecciono Koko y lo llevo para arriba Cacho ---------------- ----CLIENTES---- Pepe Koko <--- Koko quedó acá Tito Pipo Cacho ---------------- El órden no es Alfabético, es el que el operador decida. |
#4
|
||||
|
||||
Hola.
Yo usaría un StringGrid para presentar los registros programando lo necesario para mover arriba o abajo las filas y que al grabar renumerara según el orden en el que se quede todo. Saludos
__________________
Be water my friend. |
#5
|
||||
|
||||
Hola Carmelo Cash.
Usando un TListBox se me ocurre un modo de hacer lo que mencionas en el primer mensaje. Te permitirá insertar uno o mas items dentro del mismo ListBox mediante Drag&Drop. Tene en cuenta que: No hace ninguna organización sobre la selección múltiple (si los items fueran mas de uno). Y, si los ítems del ListBox fueran muchos, no será muy eficiente. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 27-03-2013 a las 20:56:25. Razón: agregar comentario |
#6
|
||||
|
||||
Gracias Newtron y Ecfisa.
Efectivamente ambos entendieron lo que necesito. El código que puso Ecfisa funciona bien , pero si los Items superan la pantalla no se pueden subir, sino que hay que soltarlo, correr los items y volverlo a agarrar y seguir. Ya tengo esta idea así que voy a seguir intentando con esto. Gracias. |
#7
|
||||
|
||||
Hola Carmelo Cash.
Otra opción diferente, es usar un TPopupMenu con las opciones 'Cortar', 'Pegar' y 'Deshacer'. Y si lo deseas, con sus respectivos ShortCut como por ejemplo: Ctrl+C, Ctrl+V, Ctrl+Z.
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
||||
|
||||
No encuentro solución.
No puedo resolver este tema.
Probé con el código de ecfisa pero la propiedad "ListBox1.DragMode := dmAutomatic;" hace que no pueda desplazarme dentro de la lista cuando esta es más larga que lo que entra en la pantalla. Estube probando con algún método que explicó el Señor Contraveneno para modificar grillas. Dataset -> DatasetProvider -> ClientDataset -> DataSource -> Grid localizado en http://www.clubdelphi.com/foros/showthread.php?t=69791 pero te permite modificar el contenido de la grilla y no la posición de las filas. Bueno.. quedo a la espera de alguna otra idea. Gracias. |
#9
|
||||
|
||||
Cita:
Acabo de probar nuevamente y dmAutomatic no afecta el desplazarme en absoluto. Un ejemplo: Si seleccionas los 'n' primeros ítems luego botón derecho del mouse y Copiar, te desplazas hasta el ítem 1000 (obviamente fuera de pantalla) y nuevamente botón derecho y Pegar, obtendrás los 'n' ítems seleccionados al final de la lista. Y este comportamiento es el mismo para cualquier posición a que te desplaces dentro del ListBox. Te adjunto la prueba debajo. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#10
|
||||
|
||||
Gracias Ecfisa por tu ayuda. Sin embargo he decidido no implementar este método, ya que si el operador se olvida de "pegar" un registro estaríamos en problemas.
He decidido seguir la sugerencia de Newton usando un StringGrid. No tiene la opción "Multiselect" lo cual es un problema pero se acerca bastante a lo que necesito. Otra contra es que no puedo colocar un color distinto al título de las columnas que a las columnas, pero eso es lo de menos. Otra cosa es que no puedo colocar multilíneas en cada celda, pero lo resolveré agregando otras columnas y listo. En este ejemplo les muestro como quedó. Gracias por su colaboración |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ordenar registros con ClientDataSet | Jose Roman | Conexión con bases de datos | 2 | 15-01-2010 22:11:27 |
Ordenar registros (Access/Delphi 2005) | Drahcir | Conexión con bases de datos | 1 | 03-06-2008 13:50:12 |
Ordenar registros de manera descendente con ClientDataSet | alucardo | Conexión con bases de datos | 2 | 31-05-2006 18:27:34 |
FIBPlus - Ordenar Registros y Control Concurrencia | Gabriel | Conexión con bases de datos | 0 | 25-08-2005 11:45:55 |
ordenar registros | davidgaldo | SQL | 2 | 20-04-2005 15:47:23 |
|