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.
//--------------------------------------------------------//
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
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: EASYSOFT and 42 guests