COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE

Post Reply
User avatar
rterraz
Posts: 141
Joined: Wed Nov 08, 2006 11:44 pm
Location: Argentina

COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE

Post by rterraz »

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
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE

Post by horacio »

Hola, para ir a un registro especifico en xBrowse prueba

Code: Select all

oBrw : nArrayAt := nReg
oBrw : Refresh()
 
Saludos
Ariel
Posts: 309
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE

Post by Ariel »

Hola,

probaste :

FOR EACH nRec IN oBrw:aSelected

? oBrw:aArrayData[ nRec,1 ], oBrw:aArrayData[ nRec,2 ], ....

NEXT

Saludos
User avatar
rterraz
Posts: 141
Joined: Wed Nov 08, 2006 11:44 pm
Location: Argentina

Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE

Post by rterraz »

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
User avatar
rterraz
Posts: 141
Joined: Wed Nov 08, 2006 11:44 pm
Location: Argentina

Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE RESUELTO

Post by rterraz »

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
Ariel
Posts: 309
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE

Post by Ariel »

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.
Post Reply