Incremental Search y cSortOrder

Incremental Search y cSortOrder

Postby alvaro533 » Thu Apr 15, 2010 1:53 pm

Hola a todos,

Estoy usando un "incremental search" con Xbrowse. Funciona muy bien. En una línea por encima del xbrowse voy escribiendo la cadena de búsqueda "cSeek" con:

@ 44 , 70 SAY ::oBrw:oSeek PROMPT ::oBrw:cSeek of ::oWnd2 pixel size 150,15 color CLR_BLUE,CLR_WHITE

La base de datos está indexada por varias columnas con:

Tf:oBrw:aCols[1]:cSortOrder := "EASY"
Tf:oBrw:aCols[2]:cSortOrder := "CATEG"
Tf:oBrw:aCols[3]:cSortOrder := "PAYTO"

Me gustaría que cuando el usuario cambie el índice pulsado en la cabecera de la columna, la cadena de búsqueda aparezca encima de esa columna.

El say se puede mover con:

::obrw:oseek:nleft:=

Pero me falta saber las coordenadas en pixeles de la columna del browse cuyo indice está activado. ¿Alguien me lo puede indicar?

Muchas gracias y un saludo,

Alvaro
alvaro533
 
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Re: Incremental Search y cSortOrder

Postby acuellar » Thu Apr 15, 2010 3:09 pm

Alvaro

Tus indices debes crearlo con TAG
Use PERSONAL
INDEX ON NOMBRE TAG PERSONAL1
INDEX ON CARGO TAG PERSONAL2
Creará un solo indice

Asi lo hago
Code: Select all  Expand view

USE PERSONAL INDEX PERSONAL ALIAS DATOS  NEW SHARE

El browse
   oCol:= oBrw:AddCol()
   oCol:bStrData := { || DATOS->NOMBRE }
   oCol:cHeader  := "NOMBRE Y APELLIDOS"
   oCol:nHeadStrAlign := AL_CENTER
   oCol:nWidth:=210
   oCol:cSortOrder:="PERSONAL1"
   oCol:bLClickHeader:= {|| oBrw:Gotop() }  //por si queres enviar el puntero al inicio

    oCol:= oBrw:AddCol()
   oCol:bStrData := { || DATOS->CARGO }
   oCol:cHeader  := "CARGO"
   oCol:nHeadStrAlign := AL_CENTER
   oCol:nWidth:=150
   oCol:cSortOrder:="PERSONAL2"
   oCol:bLClickHeader:= {|| oBrw:Gotop() }  

PARA QUE MUESTRE LO QUE VAS ESCRIBIENDO

  @.2,33 SAY oSay VAR Cadena size 30,8 of oDlg  UPDATE PICTURE "@!"
  oBrw:bSeek := {|c| (DbSeek(UPPER(c)) ) }; oBrw:oSeek:=oSay

 

Espero te sirva

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1593
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Incremental Search y cSortOrder

Postby alvaro533 » Thu Apr 15, 2010 3:35 pm

Gracias, Adhemar,

La parte que tu explicas funciona. Lo que quiero es que el "osay" vaya cambiando de sitio, es decir:

@.2,33 SAY oSay VAR Cadena size 30,8 of oDlg UPDATE PICTURE "@!"

vaya cambiando de sitio, y se ponga encima de la columna cuyo indice está activado.

Para ello hay que modificar la clase Xbrowse para que cada vez que se cambie de índice o que se redimensionen las columnas se ejecute

::oseek:nleft:= n

Siendo "n" la posición de la columna activa, que es lo que no sé como hallar.

Muchas gracias,
Alvaro
alvaro533
 
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Re: Incremental Search y cSortOrder

Postby nageswaragunupudi » Thu Apr 15, 2010 5:38 pm

oSeek:nLeft := oBrw:nLeft + oBrw:aCols[ <n> ]:nDisplayCol, where <n> is the sorted column number.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Incremental Search y cSortOrder

Postby alvaro533 » Fri Apr 16, 2010 9:32 am

Thank you

Alvaro
alvaro533
 
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 88 guests