Busqueda incremental en Dialogo

Post Reply
User avatar
jvtecheto
Posts: 357
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Busqueda incremental en Dialogo

Post by jvtecheto »

Hola amigos:

Me interesa implementar la busqaueda incremental en un XBROWSE pero en un dialogo, el codigo que adjunto es autoexplicativo
si quereis probarlo sustituir el DATASOURCE por uno propio , se adapta el XBROWSE a _ y listo.
Yo todo este codigo lo tengo utilizando recursos , pero para no añadir el .rc lo he traspasado a comandos.
vereis que me funciona bien desde el dialogo principal tecleo en el GET y el cursor buscar el registro.
Pero en cuanto abro el dialogo con el boton "Busqueda" por mucho que teclee no aparece nada en el GET y no se mueve el XBROWSE y el
codigo es el mismo. ¿Por que ?, ¿Que hago mal?.

Code: Select all

// Prueba de busqueda incremental
#include "fivewin.ch"

Static oBrw

function Main()

   REQUEST DBFCDX
   local oDlgBrw, oFont, oBtn

   USE OBRAS NEW VIA "DBFCDX"
   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
   
   DEFINE DIALOG oDlgBrw SIZE 1000, 700 PIXEL FONT oFont
   
     @ 20, 0 XBROWSE oBrw DATASOURCE "OBRAS" SIZE 800, 500 PIXEL ;
         COLUMNS "Codigo","Cif","Nombre","Poblacion" ;
         HEADERS "CODIGO", "CIF", "NOMBRE", "POBLACION" CELL LINES AUTOSORT ;      
         OF oDlgBrw UPDATE STYLE 2007       

      WITH OBJECT oBrw
         :nColDividerStyle := LINESTYLE_LIGHTGRAY
         :nRowDividerStyle := LINESTYLE_LIGHTGRAY
         :nMarqueeStyle    := MARQSTYLE_HIGHLROW
         :lIncrFilter      := .T.
         :lSeekWild        := .T.
         :cFilterFld       := "Nombre"
         
         :Createfromcode()
      END 
      
      @ 0,120 BUTTON oBtn PROMPT "Busqueda" SIZE 35, 18 PIXEL OF oDlgBrw ACTION Busqueda()
      @ 0,10 GET oBrw:oSeek VAR oBrw:cSeek SIZE 90,14 PIXEL OF oDlgBrw COLOR CLR_HRED,CLR_YELLOW


   ACTIVATE DIALOG oDlgBrw CENTERED
   
   RELEASE FONT oFont

return nil
 

 FUNCTION Busqueda()

   LOCAL oDlgSearch
   
   DEFINE DIALOG oDlgSearch SIZE 400,200 PIXEL TITLE "Busqueda de registro"

      @ 4,6 BITMAP SIZE 43,28 PIXEL OF oDlgSearch FILENAME  "./Resource/res62.bmp" ADJUST   
      @ 54,53  GET oBrw:oSeek VAR oBrw:cSeek SIZE 90,14 PIXEL OF oDlgSearch 
      
   ACTIVATE DIALOG oDlgSearch CENTERED 


RETURN NIL  

//-------------------------------------------------------------------------- //
 
Muchas gracias por vuestra ayuda.

Saludos.

Jose.
Fwh 19.06 32 bits + Harbour 3.2dev(r2011030937)+ Borland 7.4 + FivEdit
User avatar
armando.lagunas
Posts: 340
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile
Contact:

Re: Busqueda incremental en Dialogo

Post by armando.lagunas »

Hola, en ves de llamar otro Dialog, coloca un Say en el Dialog Principal, a mi me funciona muy bien

Code: Select all

  REDEFINE  SAY oBrw:oSeek ID -11 PROMPT oBrw:cSeek  PICTURE "@!" OF oDlg FONT xFont COLOR CLR_HRED

                                   oBrw:bChange   := {|| oBrw:oSeek:Refresh() }
 
 
solo un tip

saludos
User avatar
jvtecheto
Posts: 357
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Busqueda incremental en Dialogo

Post by jvtecheto »

Hola Armando.

Gracias por tu interes, si miras el codigo lo tengo en un GET en el mismo dialogo y me funciona bien, pero en cuanto lo
quiero pasar a que se habra un dialogo se teclee alli y se actualice el XBROWSE, nada de nada, incluso teniendo la variable del
XBROWSE como static externa. No comprendo como no funciona la verdad, es el mismo codigo.

Bueno espero solucionarlo algun dia.

Saludos

Jose.
Fwh 19.06 32 bits + Harbour 3.2dev(r2011030937)+ Borland 7.4 + FivEdit
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Busqueda incremental en Dialogo

Post by cnavarro »

Jose, no crees que si haces dos GETs con el mismo objeto, puede desactivarte el primero?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
armando.lagunas
Posts: 340
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile
Contact:

Re: Busqueda incremental en Dialogo

Post by armando.lagunas »

lo que pasa es que al ingresar en el get en forma directa (sin pasar por el browse), lo que escribes debes "Validarlo" con ::bChange y hacer la búsqueda en el xbrowse, me paso lo mismo hace mucho tiempo, lo cual lo sustituí con un "say" y solucione mi problema de la forma mas sencilla posible.

algo así se me ocurre,

Code: Select all


           REDEFINE GET oBrw:oSeek VAR oBrw:cSeek ... 

                        oBrw:oSeek:bChange := {||  oBrw:oSeek:Refresh(), .T. }

 
mi humilde sugerencia

saludos
User avatar
jvtecheto
Posts: 357
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Busqueda incremental en Dialogo

Post by jvtecheto »

Hola:

Gracias a ambos Cristobal y Armando.

El caso es que en buena logica Cristobal argumentas lo de los dos gets, pero si desabilito el del dialogo principal solo dejo el boton
que llama al segundo dialogo tampoco funciona.

Armando la unica forma que funciona es la que tu dices desde el mismo dialogo con un SAY pero tambien funciona con un GET comprobado.

Si llamas a otro dialogo definitivamente no funciona, el caso que no se porque. No os preocupeis ya que no es nada insalvable.

Muchas gracias por la ayuda prestada.

Saludos

Jose
Fwh 19.06 32 bits + Harbour 3.2dev(r2011030937)+ Borland 7.4 + FivEdit
Post Reply