Page 2 of 2

Re: Ayuda Busqueda Incremental Xbrowse ???

PostPosted: Thu Jan 30, 2020 8:27 pm
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.

Re: Ayuda Busqueda Incremental Xbrowse ???

PostPosted: Thu Jan 30, 2020 9:57 pm
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

Re: Ayuda Busqueda Incremental Xbrowse ???

PostPosted: Fri Jan 31, 2020 11:23 am
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.

Re: Ayuda Busqueda Incremental Xbrowse ???

PostPosted: Fri Jan 31, 2020 5:26 pm
by FranciscoA
Antonio.
Dale un vistazo a este post:
viewtopic.php?f=3&t=35785&hilit=lSeekBar&sid=eb6f8e8061e0e9e45328d4c493f5a0ef#p213373

Por favor intenta de esta manera: (se cambiaron los indices y la function Filtra_Pro(xxx)
Code: Select all  Expand view
//--------------------------------------------------------//
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.

Re: Ayuda Busqueda Incremental Xbrowse ???

PostPosted: Fri Jan 31, 2020 9:46 pm
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.