Hola
estoy intentando hacerme una busqueda incremental con TMySql y xBrowse, capturo la tecla con bKeydown, pero no encuentro como refrescar el browse que origino la busqueda, despues de hacerle un filtro a la tabla con los datos que estaba buscando.
#include "fiveWin.ch"
#include "xbrowse.ch"
static oBrw, cBuscador
/*******************************************************************/
function Departamentos()
聽 聽local oCol, cQuery, oDatos, oDlg
聽 聽LOCAL aBtn := array( 8 )
聽 聽local oBoton1, oBoton2
聽 聽 local oDeptos, oFont1
聽 聽 local oEsperar := Esperar("Cargando departamentos ..... espere por favor ...")
聽 聽cBuscador := ''
聽 聽IF oMysql:netErr()
聽 聽 聽 MSGINFO( cMensajeSql, cProgram )
聽 聽 聽 RETURN NIL
聽 聽ENDIF
聽 聽DEFINE FONT oFont1 NAME 'MS Sans Serif' 聽 SIZE 0,-10 BOLD
聽 聽oDeptos := oMysql:Query( "SELECT * FROM departamentos ORDER BY nombre ")
聽 聽IF oDeptos:netErr()
聽 聽 聽 MSGINFO( cMensajeSql + ' [departamentos]', cProgram )
聽 聽 聽 RETURN NIL
聽 聽ENDIF
聽 聽 oEsperar:end()
聽 聽DEFINE DIALOG oDlg RESOURCE "DEPTO0" TITLE "Catalogo de Departamentos"
聽 聽oDlg:lHelpIcon := (.f.)
聽 聽oBrw := TxBrowse():New(oDlg)
聽 聽SetMyBrwSql( oBrw, oDeptos )
聽 聽oCol := oBrw:AddCol()
聽 聽oCol:bStrData 聽 聽 聽:= { || strzero(MyCampo(oDeptos,"codigo"),3) }
聽 聽oCol:cHeader 聽 聽 聽 := "C贸digo"
聽 聽oCol := oBrw:AddCol()
聽 聽oCol:bStrData 聽 聽 聽:= { || MyCampo(oDeptos,"nombre") }
聽 聽oCol:cHeader 聽 聽 聽 := "Descripci贸n"
聽 聽oCol := oBrw:AddCol()
聽 聽oCol:bStrData 聽 聽 聽:= { || transform(MyCampo(oDeptos,"descuento"),'999%') }
聽 聽oCol:cHeader 聽 聽 聽 := "% descuento"
聽 聽 oCol:nDataStrAlign := AL_RIGHT
聽 聽oCol:oDataFont 聽 聽 := oFont1
聽 聽oBrw:CreateFromResource(101)
聽 聽oBrw:bKeyDown 聽 聽 := { | nKey | MisTeclas( nKey, oBrw, oDeptos ) }
聽 聽oBrw:aCols[ 03 ]:bClrStd := {|| { iif( oDeptos:fieldGet('descuento') > 0, CLR_RED, 聽CLR_WHITE), CLR_WHITE } } 聽// nombre
聽 聽oBrw:bClrHeader := { || {CLR_MAGENTA,CLR_WHITE }}
聽 聽oBrw:bClrFooter := { || {CLR_GREEN,CLR_WHITE } }
聽 聽oBrw:bClrSel 聽 聽:= { || {CLR_CYAN,CLR_WHITE } }
聽 聽 ACTIVATE DIALOG oDlg CENTER ON INIT CreaBarra(oDlg, oDeptos)
聽 聽 oDeptos:end()
聽 聽 oDeptos := NIL
聽 聽oFont1:end()
聽 RETURN NIL
static function CreaBarra(oDlg, oDeptos)
聽return nil
/*******************************************************************/
static function MisTeclas( cSeek, oBrw, oDeptos )
聽 聽 local cTecla := chr(cSeek)
聽 聽 local cChar := upper(cTecla)
聽 聽 local oDlg, oFont, oGet1
聽 聽 cBuscador := cBuscador + cChar
聽 聽 local oBuscar := 聽 oMysql:Query( "SELECT * FROM departamentos ORDER BY nombre WHERE nombre LIKE '" + cBuscador + "'%'")
聽 聽 oBrw:Refresh()
聽 聽 oDeptos:refresh()
聽 聽 聽 聽 // en esta parte de aqui, es donde deberia asignarle la nueva data al browse, pero no doy con bola
return nilSaludos,
Mauricio