Ayuda Busqueda Incremental Xbrowse ???

User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Ayuda Busqueda Incremental Xbrowse ???

Post by FranciscoA »

Hola Antonio.

Acabo de ver que si escribes la búsqueda en solo mayúsculas, el ejemplo te funciona.

Por otro lado, la sugerencia de Joao de utilizar indices temporales es válida, ya que segun se ve, la DBF es pequeña.

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda Busqueda Incremental Xbrowse ???

Post by remtec »

Hola Francisco y Joao,

Muchas gracias por su atención.

Agradezco a ambos por su tiempo, la observación que haces que la Dbf es pequeña, lamentablemente no es así, subi solo una muestra, la cantidad es bastante considerable, por lo que el tiempo que tomaría en cada opción del Combobox, para indexar, sería bastante.

El problema que con tu codígo no logro que pueda realizar correctamente la busqueda incremental, ya a estas altura estoy pensado en buscar otra forma solucionar la busqueda.

Quedo atento a sus comentarios.

Muchos Saludos

Antonio
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Ayuda Busqueda Incremental Xbrowse ???

Post by karinha »

Remtec, índice en memória(MEMORY) és tan rápido cuanto el ORDSCOPE(), haga el teste para comprabar.

Con la ventaja, eres ilimitado. No se puede decir lo mismo de ORDSCOPE (), que lo deja muy limitado.

Saludos.
João Santos - São Paulo - Brasil
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Ayuda Busqueda Incremental Xbrowse ???

Post by FranciscoA »

Antonio.
Dale un vistazo a este post:
http://fivetechsupport.com/forums/viewt ... ef#p213373

Por favor intenta de esta manera: (se cambiaron los indices y la function Filtra_Pro(xxx)

Code: Select all

//--------------------------------------------------------//
Function Medicos()

REQUEST DBFCDX

   DbUseArea(.T.,"DBFCDX","PROFESIO","PROFE",.F.)
   index on FIELD->Nom_Pro tag Med2 to Profesio                    
   index on FIELD->Nom_Pro tag Med3 TO Profesio FOR FIELD->Est_pro == "S"
   index on FIELD->Nom_Pro tag Med4 TO Profesio FOR FIELD->Est_pro == "N"
   index on FIELD->Nom_Pro tag Med5 TO Profesio FOR FIELD->Ate_Hor == "S"
   PROFE->(dbcloseArea())

   Activa_Profe()
RETURN NIL

//Para Cambiar Filtro del Combobox.
//-----------------------------------------//
Function Filtra_Pro(nP,oBrw)
LOCAL cVar, cVar1

   Sele Profe
   Set Order to

       Do Case
       Case nP == 1     //TODOS
           ORDSETFOCUS("MED2")
       Case nP == 2     //SOLO VIGENTES
           ORDSETFOCUS("MED3")
       Case nP == 3     //DESACTIVADOS
           ORDSETFOCUS("MED4")
       Case nP == 4     //SOLO AGENDA
           ORDSETFOCUS("MED5")
       EndCase

   Profe->(DbGotop())
   oBrw:Refresh()

Return  .T.

//-----------------------------------------//
Function Activa_Profe()
    Local oDlg1, oBrw, oFont, oFont1,oFont2,oFont3,oFont7, oTitu1,oTitu2,aStruc,oSay1,oSay2,oGet1,oTitu3
    Local nPro:=1,  aEstado := {},Estado1:=""

    AADD( aEstado,{"TODOS        "})
    AADD( aEstado,{"SOLO VIGENTES"})
    AADD( aEstado,{"DESACTIVADOS "})
    AADD( aEstado,{"SOLO AGENDA  "})

    USE PROFESIO ALIAS "PROFE" SHARED VIA "DBFCDX"
    Set index to Profesio
    ORDSETFOCUS("MED2")  //TODOS

    Profe->(DbGotop())

    DEFINE FONT oFont  NAME "TAHOMA" SIZE 0,-14
    DEFINE FONT oFont1 NAME 'TAHOMA' SIZE 0,24   BOLD
    DEFINE FONT oFont2 NAME "TAHOMA" SIZE 0,-12  BOLD
    DEFINE FONT oFont3 NAME 'TAHOMA' SIZE 0,18   BOLD
    DEFINE FONT oFont7 NAME "TAHOMA" SIZE 0,-14  BOLD

    DEFINE DIALOG oDlg1 SIZE 570,570 PIXEL FONT oFont3   STYLE nOr( WS_POPUP, WS_VISIBLE, WS_DLGFRAME )
    @ 00,35  SAY otitu1 PROMPT " MAESTRO DE PROFESIONALES " PIXEL OF oDlg1 COLORS RGB(12, 135, 27)   FONT oFont1

    @ 016,103 SAY "Seleccione"   SIZE 80,10 PIXEL OF oDlg1  RIGHT  FONT oFont1
    @ 016,190 ComboBox oGet1 Var nPro Items ArrTranspose(aEstado)[1] SIZE 70,200 PIXEL OF oDlg1  FONT oFont2;  // COLORS RGB(55, 255, 153)
              ON CHANGE ((Estado1:=ArrTranspose(aEstado)[1][oGet1:nAt]),IF(!Filtra_Pro(@nPro,oBrw),(MsgStop("TODO BIEN"),oBrw:Setfocus(),.F.), (oBrw:Refresh(),oBrw:Setfocus(), .T.) ))

    @ 30,10 XBROWSE oBrw SIZE 300,-35 PIXEL OF oDlg1 DATASOURCE "Profe" ;
            HEADERS 'Nombre del Profesional','Especialidad','Vigencia','Agenda';
            COLUMNS 'Nom_Pro','Tip_Esp','Est_Pro','Ate_Hor';
            PICTURES "@!","@!" ,"!","!";
            COLSIZES 180, 150, 120, 70;
            CELL LINES AUTOSORT NOBORDER

    WITH OBJECT oBrw
       :nMarqueeStyle  := MARQSTYLE_HIGHLROW
       :bClrHeader     := {|| { nRGB(140, 0, 0), nRGB( 231, 242, 255 ), } }
       :nHeaderHeight  := 35
       :nFreeze        := 2
       :lSeekBar       := .T.
       :lIncrFilter    := .F.
       :lSeekWild      := .F. 
       :lFooter  := .f.
       :lHScroll := .f.

       :nOpacity       := 230
       :SetStyle( 2018)
       :nColorPen      := CLR_RED

       :aCols[1]:oDataFont     := oFont7
       :aCols[1]:bClrHeader    := { || { CLR_HRED,CLR_WHITE } }       // Aplico Color a Una Columna
       :aCols[1]:oHeaderFont   :=  oFont7                  // Aplico Font a una Columna
       :aCols[3]:nDataStrAlign := AL_CENTER
       :aCols[4]:nDataStrAlign := AL_CENTER

       :CreateFromCode()
    END

    @ 253,90 BTNBMP SIZE 30, 30 PROMPT "SALIR"  OF oDlg1 PIXEL 2007  FONT oFont7 ;
            ToolTip  "SALIR DEL SISTEMA";
            ACTION oDlg1:End()

   ACTIVATE DIALOG oDlg1 CENTERED  ON INIT (oBrw:SetFocus())

   RELEASE FONT oFont,oFont1,oFont2,oFont3,oFont7
   Close all
   Ferase(".\profesio.cdx")

Return nil
 
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda Busqueda Incremental Xbrowse ???

Post by remtec »

Hola Francisco,

Muchas gracias por tu ayuda y paciencia.

Reemplace todo el código y ahora funciona bien. No le dare mas vueltas a esto, lo dejare como esta funcionando.

Muchas gracias,

Saludos
Antonio.
Post Reply