Tengo un problema al refrescar un SAY con una variable que cambia valores del un contador y que debo refrescar despues de algunos eventos de actualizacion de registros en un Xbrowse.
El Problema que se produce es que al realizar el refresco, borra el formato de que se encuentra a la derecha del contenido del SAY, este Say se encuentra dentro de un Cuadro realizado con GROUP, cuando realizado el refresco, borra parte del cuadro y parte del cuadro del XBROWSE, esto me obliga a realizar un Refresco del Dialog, para que se repinte todo el Dialog, solo quiero refrescar esta variable con su nuevo valor.
La Variable que necesito que se actualice " oAge2 ".
Sera un problema en mi codigo, o es algo de FWH, a alguien le ha sucedido?
Muchos Saludos
Antonio
Codigo:
- Code: Select all Expand view RUN
@ 30,135 XBROWSE oBrw4 SIZE -10,-35 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, 260, 90, 90;
PICTURES '999','##:##','@!','@!','@!';
CELL LINES AUTOSORT BORDER
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[ 1 ]:oDataFont := oFont4
oBrw4:lHScroll := .f.
oBrw4:aCols[2]:nHeadStrAlign := AL_CENTER // Centra Titulo de Columna
oBrw4:aCols[2]:nDataStrAlign := AL_CENTER
//oBrw2:nHeadStrAligns := { AL_LEFT, AL_RIGHT, AL_CENTER, ...... } // Para Central Cabecera
oBrw4:nOpacity := 230
oBrw4:nHeaderHeight := 35
oBrw4:nFreeze := 5
oBrw4:aCols[2]:bClrStd := {|| IIF( Agen->Nom_Pac # Spac(30),{ CLR_WHITE, RGB(255,55,55) },{ CLR_BLACK, RGB(55,255,55) } )}
WITH OBJECT oBrw4
:bLDblClick:={||(Agenda_Hr(Agen->Hor_Ate,Agen->Nom_Pac,Agen->Rut_Pac,Agen->Cel_Pac),oBrw4:Refresh())}
// :bLDblClick:={||(Agenda_Hr(oBrw3: SelectedCol (): Value,cPro1,cEsp1,otitu1,@cAgendar),oDlg3,oBrw4),iif(cAgendar=="S",oBtnxx:Show(),oBtnxx:Hide()),oDlg3:Refresh(),oBrw4:Refresh()}
END
oBrw4:CreateFromCode()
@ 150,10 GROUP oGroup2 TO 225,125 PROMPT "Información de Agenda" PIXEL COLOR RGB(128, 0, 0), (128, 0, 0) OF oDlg3 TRANSPARENT
@ 170,15 SAY oAge1 PROMPT "1° Hora Disponible: "+Pri_hr1 PIXEL OF oDlg3 COLOR RGB(14, 9, 50 ) FONT oFont2
@ 190,15 SAY oAge2 PROMPT "Total Horas Dispo.: "+Str(Can_hor1,3) PIXEL OF oDlg3 COLOR RGB(14, 9, 50 ) FONT oFont2
@ 270,200 BTNBMP oBtnxx SIZE 28,28 PROMPT "CREA" OF oDlg3 PIXEL 2007 Resource "#8024" FONT oFont4 ;
ToolTip "GENERA AGENDA";
ACTION (Crea_Agenda(oBrw3: SelectedCol (): Value,cPro1,cEsp1,oBrw4,oAge2),iif(cAgendar=="S",oBtnxx:Show(),oBtnxx:Hide()),oDlg3:Refresh(),oBrw4:Refresh(),oAge2:Refresh())
@ 270,250 BTNBMP SIZE 28,28 PROMPT "ANULA" OF oDlg3 PIXEL 2007 Resource "#8030" FONT oFont4 ;
ToolTip "ANULA HORA";
ACTION (Anula_Hora(Agen->Nom_Pac,Agen->Rut_Pac,Agen->Cel_Pac,@Can_Hor1,@oAge2,oBrw4),oBrw4:Refresh(),oDlg3:Refresh()) // <-- Aqui mando a anular hora de atencion, por lo que cuando vuelva debe actualiza oAge2.
ACTIVATE DIALOG oDlg3 CENTERED
DbClosearea()
Return
Function Anula_Hora(Nom_P,Rut_P,Cel_P,C_Hor1,oAge2,oBrw4)
....
....
....
....
Sele Agen
Do while .t.
if RLock()
Repl Nom_Pac with Spac(30),Rut_Pac with Spac(12),Cel_Pac With Spac(12),Cod_Dig with Cod_Usu1
C_Hor1:= C_Hor1 + 1
Dbunlock()
DbCommit()
Exit
Endif
Enddo
Can_Hor1:=C_Hor1
oAge2:SetText(C_Hor1) <-- Variable que se mostrara
oAge2:UpDate()
oAge2:Refresh()
Return .t.