FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE
Posts: 182
Joined: Wed Nov 08, 2006 11:44 PM
COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE
Posted: Fri Jan 31, 2020 04: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

Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE
Posted: Sat Feb 01, 2020 12:46 AM
Hola, para ir a un registro especifico en xBrowse prueba

Code (fw): Select all Collapse
oBrw : nArrayAt := nReg
oBrw : Refresh()


Saludos
Posts: 389
Joined: Wed Nov 29, 2006 01:51 PM
Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE
Posted: 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

Posts: 182
Joined: Wed Nov 08, 2006 11:44 PM
Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE
Posted: Sun Feb 02, 2020 03: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
Posts: 182
Joined: Wed Nov 08, 2006 11:44 PM
Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE RESUELTO
Posted: Tue Feb 04, 2020 02: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
Posts: 389
Joined: Wed Nov 29, 2006 01:51 PM
Re: COMO IDENTIFICAR REGISTROS MARCADOS EN XBROWSE
Posted: 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.

Continue the discussion