FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour XBrowse: Es posible indexar por el contenido de una columna?
Posts: 257
Joined: Tue May 16, 2006 04:46 PM
XBrowse: Es posible indexar por el contenido de una columna?
Posted: Wed Jan 26, 2011 10:15 PM

Hola foro,

Tengo definido el contenido de cada columna de un XBrowse de acuerdo a una funcion diferente para cada una de ellas. Esto es, lo que me muestra en el browse no es el contenido del campo del DBF sino el resultado de procesarlo y para cada columna es una funcion diferente.

Me gustaria indexar el browse de acuerdo al contenido de la columna, no del campo en el dbf. Eso eso posible?

Gracias

RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
Posts: 601
Joined: Wed Jul 04, 2007 03:51 PM
Re: XBrowse: Es posible indexar por el contenido de una columna?
Posted: Thu Jan 27, 2011 12:57 AM
Hola...
Prueba de la siguiente manera:

Code (fw): Select all Collapse
   oBrw:aCols[ 1]:cSortOrder   :="TAG001" // TAG Por el que deseas ordenar.


Espero te sirva.
Ojeda Esteban Eduardo.

Buenos Aires - Argentina.

FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport

Skype: jreduojeda
Posts: 257
Joined: Tue May 16, 2006 04:46 PM
Re: XBrowse: Es posible indexar por el contenido de una columna?
Posted: Thu Jan 27, 2011 01:23 AM
Gracias por tu sugerencia pero nop, no hace nada, no crea el indice ni nada. Lo coloque asi:

Code (fw): Select all Collapse
 REDEFINE BTNBMP FILE DirIconos+"BVerificar.BMP" ID 300 OF oDlg ;
action (oBrw:aCols[7]:cSortOrder:="Borrame",,oBrw:REFRESH(),oBrw:SETFOCUS(),oDlg:REFRESH(),SYSREFRESH())
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: XBrowse: Es posible indexar por el contenido de una columna?
Posted: Thu Jan 27, 2011 09:19 AM
Only way is to create an index on the expression and set that tag name to oCol:cSortOrder. I prefer creating a temporary index in memory.

Here is a sample:
Code (fw): Select all Collapse
#include "fivewin.ch"
#include "xbrowse.ch"

REQUEST DBFCDX

function Main()

   field AGE
   local oWnd, oBar, oBrw

   SET DELETED ON

   USE CUSTOMER NEW SHARED VIA 'DBFCDX'
   INDEX ON MyFunc( AGE ) TAG MYTAG TO TEMP MEMORY
   SET ORDER TO TAG FIRST
   GO TOP

   DEFINE WINDOW oWnd
   @ 0,0 XBROWSE oBrw OF oWnd ;
      COLUMNS 'FIRST', 'AGE', { || MyFunc(AGE) } ;
      HEADERS nil, nil, 'MYFUNC' ;
      SORT nil, nil, 'MYTAG' ;
      ALIAS 'CUSTOMER' AUTOSORT CELL LINES

   oBrw:CreateFromCode()
   oWnd:oClient      := oBrw
   ACTIVATE WINDOW oWnd ON INIT oBrw:SetFocus()

return nil

function MyFunc( nAge )

   local nRet  := 0

   // this logic has no meaning
   // purpose is only demonstration

   if nAge > 40
      nRet     := nAge
   elseif nAge > 30
      nRet     := nAge * 2
   else
      nRet     := nAge * 4
   endif

return nRet
Regards



G. N. Rao.

Hyderabad, India

Continue the discussion