FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TXBrowse: Asociar Indices a los headers de las columnas
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
TXBrowse: Asociar Indices a los headers de las columnas
Posted: Fri Sep 07, 2007 09:50 AM
Hola compa帽eros,

estoy cambiando un TSBrowse por un TXBrowse. En la configuraci贸n anterior ten铆a el TSBrowse definido de forma tal que al hacer dobleclick en una columna se cambiaba a un 铆ndice asociado, como en
         ADD COLUMN TO OBROWSE HEADER  "CONCEPTO" ;
            ORDER "CONCEPTO"

Como se hace lo mismo en TXBrowse? He estado buscando pero no encuentro nada relacionado en el c贸digo, aunque me parece haberlo visto en algun lado.

Saludos,

Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 581
Joined: Tue Oct 11, 2005 11:28 AM
TXBrowse: Asociar Indices a los headers de las columnas
Posted: Fri Sep 07, 2007 12:58 PM
Hola Carlos,

Usas asi:

   oBrw                  := TXBrowse():New( oDlg1 )
   oBrw:nMarqueeStyle    := MARQSTYLE_HIGHLROW
   oBrw:nColDividerStyle := LINESTYLE_LIGHTGRAY
   oBrw:nRowDividerStyle := LINESTYLE_LIGHTGRAY
   oBrw:bSeek            := {|c| DbSeek( Upper( c ) ) }


Y en las columnas, yo defino asi:

   oCol := oBrw:AddCol()
   oCol:cHeader       := "C贸digo"
   oCol:bStrData      := { || IF( SELECT(oBrw:cAlias) > 0,PRO->codi,"")  }
   oCol:nDataStrAlign := AL_LEFT
   oCol:nHeadStrAlign := AL_LEFT
   oCol:nWidth        := 82
   oCol:bLClickHeader := {|| Checa_Indices(1,1,oBrw,"PRO") }
   oCol:AddBmpFile( "BLANK.BMP", .T. )
   oCol:AddBmpFile( "CLIP.BMP", .T. )
   oCol:nHeadBmpNo := 2

   oCol := oBrw:AddCol()
   oCol:cHeader       := "Descri莽茫o"
   oCol:bStrData      := { || IF( SELECT(oBrw:cAlias) > 0,PRO->nome,"")  }
   oCol:nDataStrAlign := AL_LEFT
   oCol:nHeadStrAlign := AL_LEFT
   oCol:nWidth        := 302
   oCol:bLClickHeader := {|| Checa_Indices(2,2,oBrw,"PRO") }
   oCol:AddBmpFile( "BLANK.BMP", .T. )
   oCol:AddBmpFile( "CLIP.BMP", .T. )
   oCol:nHeadBmpNo := 1


Donde la funci贸n Checa_Indices() es solo para cambiar el bitmap que aparece en el header, asi:

//----------------------------------------------------------------------------//
Function Checa_Indices( nX, nZ, oBrwX, xAlias )
// Verifica莽茫o do set order e dos headers
// nX - 脥ndice
// nZ - Posi莽茫o da coluna no browse
// oBrwX - Browse
// xAlias - Tabela a ser atualizada
//----------------------------------------------------------------------------//

for nA := 1 to len( oBrwX:aCols )
    oCol := oBrwX:aCols[ nA ]
    if oCol:nHeadBmpNo > 0
       if nA = nZ
          oCol:nHeadBmpNo := 2
       else
          oCol:nHeadBmpNo := 1
       endif
    endif
next
sele (xAlias)
DbSetOrder(nX)
oBrwX:Refresh()
return nil


Espero que te ayude.

Saludos,
Kleyber Derick



FWH / xHb / xDevStudio / SQLLIB
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
TXBrowse: Asociar Indices a los headers de las columnas
Posted: Fri Sep 07, 2007 01:09 PM

Hola Kleyber

muchas gracias por el c贸digo. El unico inconveniente es que TXBrowse no se refesca bien si por ejemplo est谩 en el renglon 4 y con el nuevo indice estamos en la clave 2. Y hacer un Refresh(.T.) hace un gotop que no es lo que quiero.
Hay que tocar el refresh antes para que pivotee de manera correcta sobre el registro actual.

Un saludo,

Carlos.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"

Continue the discussion