Busqueda incremental en Dialogo

Busqueda incremental en Dialogo

Postby jvtecheto » Tue May 05, 2020 4:42 pm

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 vuestros campos 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  Expand view  RUN

// 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 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
User avatar
jvtecheto
 
Posts: 600
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Busqueda incremental en Dialogo

Postby armando.lagunas » Wed May 06, 2020 4:41 pm

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

Code: Select all  Expand view  RUN
 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
SkyPe: armando.lagunas@hotmail.com
Mail: armando.lagunas@gmail.com
User avatar
armando.lagunas
 
Posts: 346
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile

Re: Busqueda incremental en Dialogo

Postby jvtecheto » Wed May 06, 2020 7:35 pm

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 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
User avatar
jvtecheto
 
Posts: 600
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Busqueda incremental en Dialogo

Postby cnavarro » Wed May 06, 2020 8:07 pm

Jose, no crees que si haces dos GETs con el mismo objeto, puede desactivarte el primero?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Busqueda incremental en Dialogo

Postby armando.lagunas » Wed May 06, 2020 8:12 pm

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  Expand view  RUN


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

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

 


mi humilde sugerencia

saludos
SkyPe: armando.lagunas@hotmail.com
Mail: armando.lagunas@gmail.com
User avatar
armando.lagunas
 
Posts: 346
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile

Re: Busqueda incremental en Dialogo

Postby jvtecheto » Thu May 07, 2020 3:20 pm

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 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
User avatar
jvtecheto
 
Posts: 600
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 69 guests