Hola a todos
Alguien me puede orientar con esto:
tengo un xbrowse de un ARRAY con una columna agregada para usar checkbox
WITH OBJECT oBrw:InsCol( 1 )
:bEditValue := { || AScan( oBrw:aSelected, oBrw:BookMark ) > 0 }
en determinadas circunstancias necesito hacer un aEval(oBrw:aArrayData) e identificar que registros son los que estan marcados
para poder sacar informacion de esas lineas
he probado de varias maneras usando oBrw:aSelected y oBrw:BookMark y no logro hacerlo funcionar.
Ademas hay alguna manera de poder hacer algo similar al Goto(nReg) para poder posicionar el cursor en una linea especifica del browse ?
muchas gracias a todos
COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE
Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE
Hola, para ir a un registro especifico en xBrowse prueba
Saludos
Code: Select all
oBrw : nArrayAt := nReg
oBrw : Refresh()
Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE
Hola,
probaste :
FOR EACH nRec IN oBrw:aSelected
? oBrw:aArrayData[ nRec,1 ], oBrw:aArrayData[ nRec,2 ], ....
NEXT
Saludos
probaste :
FOR EACH nRec IN oBrw:aSelected
? oBrw:aArrayData[ nRec,1 ], oBrw:aArrayData[ nRec,2 ], ....
NEXT
Saludos
Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE
Hola Ariel
Con el ejemplo que me das solo logro que se muestre el contenido de la columna 1,2,3 etc del oBrw:aArraydata
El problema es asi:
supongamos que el array a browsear es: aArticulos:= { {'papas',150},{'peras',2345},{''manzanas',345}}
y el browse:
REDEFINE XBROWSE oBrw ID 4001 OF oDlg ;
COLUMNS { 1,2 } ;
COLSIZES { 100,100 };
HEADERS {'Producto','Cantidad } ;
ARRAY aArticulos
agrego una columna inicial para el checkbox
WITH OBJECT oBrw:InsCol( 1 )
:bEditValue := { || AScan( oBrwPed:aSelected, oBrwPed:Bookmark() ) > 0 }
:SetCheck( ,.F.,{'','',''})
:cHeader := 'Sel'
END
genero el browse y hago un xbrowse(oBrw:aArraydata)
aparecen los 3 registros con los valores de las 2 columnas
La columna generada con oBrw:insCol(1) esta en el browse pero no forma parte del oBrw:aArraydata
si hago
aEval( oBrw:aArrayData,{|x,y| alert(x[1]) })
me muestra: 'papas','peras','manzanas' y no el valor .T. o .F. de la columna 1 del browse
y lo que yo necesito es que a medida que recorre el oBrw:aArraydata me vaya diciendo si el registro esta marcado o no !!!!
Me explico
Como accedo al valor del checkbox de cada registro ?
abrazo
Con el ejemplo que me das solo logro que se muestre el contenido de la columna 1,2,3 etc del oBrw:aArraydata
El problema es asi:
supongamos que el array a browsear es: aArticulos:= { {'papas',150},{'peras',2345},{''manzanas',345}}
y el browse:
REDEFINE XBROWSE oBrw ID 4001 OF oDlg ;
COLUMNS { 1,2 } ;
COLSIZES { 100,100 };
HEADERS {'Producto','Cantidad } ;
ARRAY aArticulos
agrego una columna inicial para el checkbox
WITH OBJECT oBrw:InsCol( 1 )
:bEditValue := { || AScan( oBrwPed:aSelected, oBrwPed:Bookmark() ) > 0 }
:SetCheck( ,.F.,{'','',''})
:cHeader := 'Sel'
END
genero el browse y hago un xbrowse(oBrw:aArraydata)
aparecen los 3 registros con los valores de las 2 columnas
La columna generada con oBrw:insCol(1) esta en el browse pero no forma parte del oBrw:aArraydata
si hago
aEval( oBrw:aArrayData,{|x,y| alert(x[1]) })
me muestra: 'papas','peras','manzanas' y no el valor .T. o .F. de la columna 1 del browse
y lo que yo necesito es que a medida que recorre el oBrw:aArraydata me vaya diciendo si el registro esta marcado o no !!!!
Me explico
Como accedo al valor del checkbox de cada registro ?
abrazo
Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE RESUELTO
Hola Amigos, la solucion al problema es esta:
Hay que usar SetPos() para ubicar el cursor del browse de acuerdo al resultado del aEval
aEval(oBrw:aArrayData,{|x,y| oBrw:SetPos(y), alert( oBrwPed:aCols[1]:Value)} )
me devuelve .T. o .F. de acuerdo al estado del Checkbox de la primera columna
Espero que le sirva a alguien!
Muchas gracias
Hay que usar SetPos() para ubicar el cursor del browse de acuerdo al resultado del aEval
aEval(oBrw:aArrayData,{|x,y| oBrw:SetPos(y), alert( oBrwPed:aCols[1]:Value)} )
me devuelve .T. o .F. de acuerdo al estado del Checkbox de la primera columna
Espero que le sirva a alguien!
Muchas gracias
Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE
Hola,
no te funciono xq accedes a arraydata y tenes q acceder a oBrw:aSelected ej:
if LEN(oBrw:aSelected) > 0
FOR EACH nPos IN oBrw:aSelected
? oBrw:aArrayData[ nPos, 01 ], oBrw:aArrayData[ nPos, 02 ]
NEXT
endif
Saludos.
no te funciono xq accedes a arraydata y tenes q acceder a oBrw:aSelected ej:
if LEN(oBrw:aSelected) > 0
FOR EACH nPos IN oBrw:aSelected
? oBrw:aArrayData[ nPos, 01 ], oBrw:aArrayData[ nPos, 02 ]
NEXT
endif
Saludos.