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.