Ver Mensaje Individual
  #1  
Antiguo 13-09-2006
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Reputación: 23
AGAG4 Va por buen camino
Sólo un Paso para Dejar Registros Estáticos en el uso del IBDataset.

Uso Firebird 1.53, IBX 6.08, D6

Buen día, hace algunos meses agregue un hilo sobre como dejar estático 1 Registro al insertarlo entre otros registros, Sobre una Captura Maestro Detalle, la Llave Primaria(PK) de la tabla son 3 campos, señalo la estructura de la Tabla DETALLE:
TIPOMOV VarChar(2)
FOLIO Integer
Indice Float

Hasta aqui vamos bien, pongo un ejemplo de los Primeros Registros que se Insertan:
Código:
TIPOMOV    FOLIO     INDICE
 XX               1           1.0
 XX               1           2.0
 XX               1           3.0 
 XX               1           4.0
Ahora, en el BeforePost del Dataset, Determino el Indice que le corresponda al Registro, en este caso si quiero insertar entre el Registro 2 y 3, el indice que tomaría el Nuevo Registro sería 2.5 y quedaría asi:
Código:
TIPOMOV    FOLIO     INDICE
 XX               1           1.0
 XX               1           2.0
 XX               1           2.5 
 XX               1           3.0 
 XX               1           4.0
Hasta aqui vamos bien, el único problema es que al Cambiarme de Registro, el Registro NUEVO se va al FINAL :
Código:
TIPOMOV    FOLIO     INDICE
  XX               1           1.0
  XX               1           2.0
  XX               1           3.0 
  XX               1           4.0 
  XX               1           2.5 
Ya le agregue el ORDER BY en el SELECTSQL Y EN EL REFRESHSQL, inclusive en el evento AfterPost le agregue Dataset.Refresh, pero no funciona, el Registro se va al final, si guardo los cambios y al abrir el Maestro-Detalle, reviso el detalle, Aparece con el Orden Correcto:
Código:
TIPOMOV    FOLIO     INDICE
  XX               1           1.0
  XX               1           2.0
  XX               1           2.5 
  XX               1           3.0 
  XX               1           4.0
Pero si empiezo a insertar el dbGrid Muestra los Registros Nuevos al Final, es decir, el Propio dataset los manda al final porque el dbGrid solo es Intermediario para mostrar datos.
Porque que Rayos esta pasando esto, si uso el INSERT para no Insertar al FINAL y le AGREGO un valor CORRECTO al campo INDICE de la llave primaria ????
Que me faltará hacer????

Espero haberme explicado.

PD. Los Ejemplos que pongo al Editar el Hilo los VEO ACOMODADOS CORRECTAMENTE pero al Guardar el Hilo se desacomodan, espero entiendan a como sale el HILO

Agradezco cualquier sugerencia al respecto.

Última edición por vtdeleon fecha: 13-09-2006 a las 03:57:10.
Responder Con Cita