Tengo un Xbrowse con los datos de una Dbf, los cuales se muestran con un filtro, tengo una opcion para activar o desactivar cada profesional, para lo cual debe dar doble click.
El problema que el Xbrowse se actuliza solo si muevo el mouse sobre la lista.
Muchos Saludos
Antonio
Codigo:
- Code: Select all Expand view RUN
@ 00,90 SAY otitu1 PROMPT " MAESTRO PROFESIONALES MEDICOS " PIXEL OF oDlg4 COLORS RGB(12, 135, 27) FONT oFont1
@ 018,103 SAY "Seleccione" SIZE 80,10 PIXEL OF oDlg4 RIGHT FONT oFont2
@ 018,190 ComboBox oPro Var nPro Items ArrTranspose(aProfe)[2] SIZE 70,200 PIXEL OF oDlg4 COLORS RGB(55, 255, 153) FONT oFont5;
ON CHANGE ((cPro:=ArrTranspose(aProfe)[1][oPro:nAt]),IF(!Filtra_Conve(cPro),(MsgStop("TODO BIEN"),oBrw2:Setfocus(),.F.), (oBrw2:Refresh(),oBrw2:Setfocus(), .T.) ))
@ 45,60 XBROWSE oBrw2 SIZE -10,-35 PIXEL OF oDlg4 DATASOURCE "Profe" FONT oFont6;
HEADERS 'Código','Nombre Profesional','Espe.','R.u.t.','Estado';
COLUMNS 'Cod_Pro','Nom_Pro','Tip_Esp','Rut_Pro','Est_Pro';
PICTURES "@!","@!","@!","@!","@!";
ColSizes 60,180,60,100,50;
AUTOSORT NOBORDER FOOTERS LINES CELL
oBrw2:nMarqueeStyle :=MARQSTYLE_HIGHLROW
oBrw2:nColDividerStyle := LINESTYLE_INSET
oBrw2:nRowDividerStyle := LINESTYLE_INSET
oBrw2:bClrHeader := {|| { nRGB(140, 0, 0), nRGB( 231, 242, 255 ), } }
oBrw2:nOpacity := 230
oBrw2:nHeaderHeight := 35
oBrw2:nFreeze := 2
oBrw2:nStretchCol := STRETCHCOL_LAST
oBrw2:nStretchCol := STRETCHCOL_WIDEST
// oBrw2:lSeekBar:= .t.
oCol := oBrw2:AddCol()
oCol:AddResource("#10")
oCol:AddResource("#14")
oCol:cHeader = "Agenda"
oCol:bBmpData := { || IIF(Profe->Ate_Hor = "S",1,2 )}
oBrw2:bClrStd := { || If( Eval( oBrw2:bKeyNo,,oBrw2) % 2 == 0, { CLR_BLACK, RGB( 198, 255, 198 ) },;
{ CLR_BLACK, RGB( 232, 255, 232 ) } ) } // Efecto Cebra
oBrw2:aCols[ 1 ]:oDataFont := oFont6
oBrw2:bClrStd := {|| { nRGB( 0, 0, 0), nRGB(255,248,220) } }
oBrw2:bClrSelFocus := {|| { nRGB( 255, 255, 255), nRGB(102, 178, 255) } }
oBrw2:bClrSel := {|| { nRGB( 0, 0,255), nRGB(241,222,088) } } // para barra de linea selecc cuando el control no tiene el foco
oBrw2:lAutoSort := .t.
oBrw2:nFooterLines:=1
oBrw2:lFooter := .t.
oBrw2:lHScroll := .f.
oBrw2:lIncrFilter := .T.
oBrw2:lSeekWild := .T. && .T. Busca Contenido, .F. Que comience con lo que digita
oBrw2:SetStyle( 2018)
oBrw2:nColorPen := CLR_RED
oBrw2:nRowHeight := 18
oBrw2:bChange := {|| oBrw2:Refresh() }
oBrw2:aCols[1]:bClrHeader := { || { CLR_HRED,CLR_WHITE } } // Aplico Color a Una Columna
oBrw2:aCols[2]:bClrHeader := { || { CLR_HRED,CLR_WHITE } } // Aplico Color a Una Columna
oBrw2:aCols[ 1 ]:oHeaderFont := oFont7 // Aplico Font a una Columna
oBrw2:aCols[ 2 ]:oHeaderFont := oFont7 // Aplico Font a una Columna
oBrw2:aCols[ 3 ]:oHeaderFont := oFont7 // Aplico Font a una Columna
oBrw2:aCols[ 4 ]:oHeaderFont := oFont7 // Aplico Font a una Columna
oBrw2:aCols[ 5 ]:oHeaderFont := oFont7 // Aplico Font a una Columna
oBrw2:Seek("")
oBrw2:aCols[01]:bFooter := { || Ltrim( Str( oBrw2:KeyNo() ) ) + " / " + LTrim( Str( oBrw2:KeyCount() ) ) }
oBrw2:aCols[05]:nDataStrAlign := AL_CENTER
oBrw2:aCols[06]:nDataStrAlign := AL_CENTER
WITH OBJECT oBrw2
oBrw2:bLDblClick:={||Cambia(),oBrw2:Update(),oBrw2:Refresh()}
:CreateFromCode()
END
......
Static Function Cambia()
Sele Profe
Est:=""
Estado:=""
Do Case
Case Profe->Est_Pro="S"
Est:="N"
Estado:="DESHABILITAR"
Case Profe->Est_Pro#"S"
Est:="S"
Estado:="HABILITAR"
EndCase
IF MsgYesNo( " ¿ Desea "+Estado+"?","ATENCION")
Do While .t.
If Rlock()
Repl Est_Pro with Est
DbCommit()
DbUnlock()
Exit
EndIf
EndDo
Endif
Return .T.