Existe un bug a la hora de guardar/restaurar el estado de un xbrowse.
La cuestión es que no deja correctamente el orden de las columnas, y las va desplazando.
Ejemplo sobre testxbr3.prg modificado.
1.- Selecciona, windows, RDD,Selected Cols.
2.-Una vez que se abre la MDI, mueve la columna Last, y colocala delante de Married.
3.-Ahora presiona el boton que he añadido, GUARDAR segundo estado. ( De esta manera tenemos el estado anterior y el actual )
4.-Ahora ves presionando el boton de al lado, restaura estados, una y otra vez, y verás el efecto que te digo.
Modificaciones a testxbr3.prg, no se como subir un fichero al foro ;
En la función static function RddBrwSelColsWin
Ahora, en la funcion BtnBar() add estos 2 botones al final
Creamos la funcion rueda()
La cuestión es que no deja correctamente el orden de las columnas, y las va desplazando.
Ejemplo sobre testxbr3.prg modificado.
1.- Selecciona, windows, RDD,Selected Cols.
2.-Una vez que se abre la MDI, mueve la columna Last, y colocala delante de Married.
3.-Ahora presiona el boton que he añadido, GUARDAR segundo estado. ( De esta manera tenemos el estado anterior y el actual )
4.-Ahora ves presionando el boton de al lado, restaura estados, una y otra vez, y verás el efecto que te digo.
Modificaciones a testxbr3.prg, no se como subir un fichero al foro ;
... al inicio, antes del Main()
// Dos staticas, que guardan el estado inicial y el nuevo
static cPrg, cFunc
static s_RestoreBrowse, s_RestoreBrowse2 // codigo addEn la función static function RddBrwSelColsWin
... codigo de fw....
oWnd:oClient := oBrw
if empty( s_RestoreBrowse ) // Codigo addd
s_RestoreBrowse := oBrw:SaveState() // Guardo estado
endifAhora, en la funcion BtnBar() add estos 2 botones al final
DEFINE BUTTON OF oBar ;
RESOURCE "SAVE" TOP ;
PROMPT "Guardar SEGUNDO Estado" ;
ACTION s_RestoreBrowse2 := oBrw:SaveState() ;
MESSAGE "Guarda el estado del browse"
DEFINE BUTTON OF oBar ;
RESOURCE "RESTAURA" TOP ;
PROMPT "Restaura Estados" ;
ACTION rueda( oBrw ) ;
MESSAGE "Restaura el estado del browse"Creamos la funcion rueda()
static function rueda( oBrw )
static luno := .T.
if lUno
oBrw:RestoreState( s_RestoreBrowse )
lUno := .F.
else
oBrw:RestoreState( s_RestoreBrowse2 )
lUno := .T.
endif
oBrw:refresh()
return nilSaludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)