Tengo un Problema, necesito mostrar un boton, dependiendo del Valor que toma una variable, segun se cumple cierta condición.
La variable " cAgendar ", toma valor "N" o "S", en una función al seleccionar un dia de atención, debe mostrar un Boton al tomar valor "S", pero en el dialogo, nunca actualiza o cambia su valor, por lo que jamas muestra el boton.
Muchos Saludos
Antonio
Dejo el codigo:
- Code: Select all Expand view RUN
@ 30, 10 XBROWSE oBrw3 SIZE 110,86 PIXEL OF oDlg3;
DATASOURCE aAgenda ;
COLUMNS 1,2,3,4,5,6,7;
HEADERS "LU","MA","MI","JU","VI","SA","DO";
CELL LINES BORDER;
ColSizes 29,29,29,29,29,29,29
oBrw3:lRecordSelector := .f.
oBrw3:nColDividerStyle := LINESTYLE_INSET
oBrw3:nRowDividerStyle := LINESTYLE_INSET
oBrw3:nOpacity := 230
oBrw3:SetStyle( 2018)
oBrw3:nColorPen := CLR_RED
oBrw3:lHScroll := .F. // Barra Horizontal
oBrw3:lVScroll := .F. // Barra Ventical
oBrw3:nFreeze := 7
For i=1 to 7
oBrw3:aCols[ i ]:oDataFont := oFont2
oBrw3:aCols[ i]:nDataStrAlign := AL_CENTER
oBrw3:aCols[ i ]:cEditPicture := "DD"
Next i
WITH OBJECT oBrw3
:bLDblClick:={||(Sele_Dia(oBrw3: SelectedCol (): Value,cPro1,cEsp1,otitu1,@cAgendar)),oDlg3:Refresh()} // Aqui mando a la Funcion
END
oBrw3:CreateFromCode()
@ 18,10 BTNBMP oBoto1 SIZE 10,10 OF oDlg3 PIXEL 2007 Resource "PREV" ;
ACTION (Cambia_Mes(Mes1,Ano1,-1,@oBrw3,@otitu3),oBrw3:Refresh(),otitu3:Refresh(),oBoto1:Refresh(),oBoto2:Refresh(),oGroup1:Refresh(),otitu2:Refresh())
@ 18,109 BTNBMP oBoto2 SIZE 10,10 OF oDlg3 PIXEL 2007 Resource "NEXT";
ACTION (Cambia_Mes(Mes1,Ano1,1,@oBrw3,@otitu3),oBrw3:Refresh(),otitu3:Refresh(),oBoto1:Refresh(),oBoto2:Refresh(),oGroup1:Refresh(),otitu2:Refresh())
** Segundo Xbrowse Agenda
@ 30,135 XBROWSE oBrw4 SIZE -10,-25 PIXEL OF oDlg3 DATASOURCE "Agen" FONT oFont3 ;
HEADERS 'Nro','Hora Ate','Nombre del Paciente','R.u.t.','Celular';
COLUMNS 'Nro_Hor', 'Hor_Ate','Nom_Pac','Rut_Pac','Cel_Pac';
COLSIZES 40, 70, 250, 90, 90;
PICTURES '999','##:##','@!','@!','@!';
CELL LINES AUTOSORT NOBORDER;
oBrw4:nMarqueeStyle := MARQSTYLE_HIGHLWIN7
oBrw4:nColDividerStyle := LINESTYLE_INSET
oBrw4:nRowDividerStyle := LINESTYLE_INSET
oBrw4:bClrHeader := {|| { nRGB(000,000,000), nRGB(128,255,128) } }
oBrw4:aCols[2]:bClrHeader := { || { CLR_HRED,CLR_WHITE } }
oBrw4:aCols[ 2 ]:oDataFont := oFont2
oBrw4:aCols[2]:nHeadStrAlign := AL_CENTER
oBrw4:aCols[2]:nDataStrAlign := AL_CENTER
//oBrw2:nHeadStrAligns := { AL_LEFT, AL_RIGHT, AL_CENTER, ...... }
oBrw4:nOpacity := 230
oBrw4:nHeaderHeight := 35
oBrw4:nFreeze := 5
oBrw4:CreateFromCode()
If cAgendar=="S"
@ 200,120 BTNBMP SIZE 55,50 PROMPT "CREA" OF oDlg2 PIXEL 2007 Resource "#8021" FONT oFont1 ; // Aqui debo Mostra Boton
ToolTip "GENERA AGENDA"
Endif
ACTIVATE DIALOG oDlg3 CENTERED
Return
Function Sele_Dia(FechaHoy,cPro1,cEsp1,otitu1,cAgemdar)
If Dtoc(FechaHoy)==" / / "
MsgStop( "Error DIa sin Valor ")
return
Endif
If (Dtos(FechaHoy) < Dtos(Date()))
MsgStop( "Error, No puede Seleccionar Fecha Menor a Hoy")
return .f.
Endif
cVar=cPro1 + cEsp1 + Dtos(FechaHoy)
Sele Agen
Agen->(OrdScope(TOPSCOPE, cVar))
Agen->(OrdScope(BOTTOMSCOPE, cVar))
Agen->(DbGotop())
If Eof()
cAgendar:="S"
Else
cAgendar:="N"
Endif
otitu1:SetText("AGENDAR HORAS FECHA "+dtoc(FechaHoy))
otitu1:UpDate()
Return