Indices !Deleted()
Publicado: Mié Oct 05, 2005 8:02 pm
Desde que utilizo los índices con la cláusula !Deleted() para un buen comportamiento de los Browses, cuando elimino un registro se va al final del fichero, y claro no se me posiciona bien la parrilla del Browse, sinó que se va al final del fichero.
¿Hay alguna función/método en el DataSet/Browse que evite este comportamiento???
Yo de momento lo hago de la siguiente manera, pero por preguntar no me voy a quedar...
If !(::cAlias2)->( DbSeek( "A" + ::oDbfDataSet1:NUMERO ) )
nLloc := (::oDbfDataSet1:Alias)->( Recno() )
(::oDbfDataSet1:Alias)->( DbSkip() )
If (::oDbfDataSet1:Alias)->( !Eof() )
nLloc := (::oDbfDataSet1:Alias)->( Recno() )
(::oDbfDataSet1:Alias)->( DbSkip(-1) )
Else
(::oDbfDataSet1:Alias)->( DbGoBottom() )
(::oDbfDataSet1:Alias)->( DbSkip(-1) )
nLloc := (::oDbfDataSet1:Alias)->( Recno() )
(::oDbfDataSet1:Alias)->( DbGoBottom() )
EndIf
(::oDbfDataSet1:Alias)->( DbDelete() )
(::oDbfDataSet1:Alias)->( If( nLloc<=0, DbGoTop(), DbGoto(nLloc) ) )
::oBrowse1:Refresh()
::Browse1Change()
EndIf
O sea, primero me guardo el Recno, salto al siguiente, elimino y vuelvo al registro guardado...
Gracias por las sugerencias que me podais reportar...
Un Saludo,
Xevi.
--
¿Hay alguna función/método en el DataSet/Browse que evite este comportamiento???
Yo de momento lo hago de la siguiente manera, pero por preguntar no me voy a quedar...
If !(::cAlias2)->( DbSeek( "A" + ::oDbfDataSet1:NUMERO ) )
nLloc := (::oDbfDataSet1:Alias)->( Recno() )
(::oDbfDataSet1:Alias)->( DbSkip() )
If (::oDbfDataSet1:Alias)->( !Eof() )
nLloc := (::oDbfDataSet1:Alias)->( Recno() )
(::oDbfDataSet1:Alias)->( DbSkip(-1) )
Else
(::oDbfDataSet1:Alias)->( DbGoBottom() )
(::oDbfDataSet1:Alias)->( DbSkip(-1) )
nLloc := (::oDbfDataSet1:Alias)->( Recno() )
(::oDbfDataSet1:Alias)->( DbGoBottom() )
EndIf
(::oDbfDataSet1:Alias)->( DbDelete() )
(::oDbfDataSet1:Alias)->( If( nLloc<=0, DbGoTop(), DbGoto(nLloc) ) )
::oBrowse1:Refresh()
::Browse1Change()
EndIf
O sea, primero me guardo el Recno, salto al siguiente, elimino y vuelvo al registro guardado...
Gracias por las sugerencias que me podais reportar...
Un Saludo,
Xevi.
--