Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-09-2005
felixgo felixgo is offline
Miembro
 
Registrado: may 2003
Posts: 86
Poder: 21
felixgo Va por buen camino
Insertar en una posición

Hola ,
tengo un clientDataSet que toma los datos de una SQLquery mediante un datasetprovider. A su vez tengo enlazado un datagrid a este clientdataset.
NEcesito que el usuario pueda introducir lineas en el grid en la posición que quiera, y hasta que no aplique los cambios los registro no se muevan del lugar en que los inserto. Ahora cuando salgo del registro nuevo se me coloca en penúltimo lugar.

gracias
Responder Con Cita
  #2  
Antiguo 01-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Lo único que se me ocurre es añadir un campo entero (orden de inserción), al añadir registros, ordenarlos por ese número. Tienes más trabajo, ya que al añadir tienes que modificar ese número para todos los registros que vienen despues... No sé, espero que sea viable.

Un saludo
Responder Con Cita
  #3  
Antiguo 03-10-2005
felixgo felixgo is offline
Miembro
 
Registrado: may 2003
Posts: 86
Poder: 21
felixgo Va por buen camino
Así lo hago pero me los desordena
Responder Con Cita
  #4  
Antiguo 04-10-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 19
jmariano Va por buen camino
El problema es que al salir del registro nuevo antes de validarlo, el DBGrid valida los campos de forma automática (salvo que el foco lo posicionemos fuera del DBGrid). Una posible solución a esto sería crear una variable booleana que almacenara si el ClientDataSet está en edición o inserción (la pondríamos a True en los eventos AfterInsert y AfterEdit) y que sólo almacenara False cuando el usuario aplicó explícitamente los cambios (es decir, en el evento del botón u opción de menú que tengamos para ello) y, tambien, cuando se canceló o se eliminó el registro. (Otra solución sería crear nuestro propio DBGrid para controlar este caso)

Otra cosa, para que la solución de Lepe funcione, tendrías que crear un índice local (es decir, en el ClientDataSet) basado en el campo de ordenación.

Saludos!
Responder Con Cita
  #5  
Antiguo 04-10-2005
felixgo felixgo is offline
Miembro
 
Registrado: may 2003
Posts: 86
Poder: 21
felixgo Va por buen camino
No entiendo muy bien la solución, Qué hago con la variable booleana?, como hago que el datagrid no me recoloque los registros?

gracias
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 16:38:53.


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