COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE

COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE

Postby rterraz » Fri Jan 31, 2020 4:10 pm

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

Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE

Postby horacio » Sat Feb 01, 2020 12:46 am

Hola, para ir a un registro especifico en xBrowse prueba

Code: Select all  Expand view  RUN

oBrw : nArrayAt := nReg
oBrw : Refresh()
 


Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE

Postby Ariel » Sat Feb 01, 2020 10:45 am

Hola,

probaste :

FOR EACH nRec IN oBrw:aSelected

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

NEXT

Saludos
Ariel
 
Posts: 376
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE

Postby rterraz » Sun Feb 02, 2020 3:51 pm

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: 182
Joined: Wed Nov 08, 2006 11:44 pm
Location: Argentina

Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE RESUELTO

Postby rterraz » Tue Feb 04, 2020 2:51 pm

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

Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE

Postby Ariel » Tue Feb 04, 2020 10:56 pm

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: EASYSOFT, Google [Bot], JoseAlvarez and 40 guests