Page 1 of 1

Ayuda, Problema al realizar Refresh() "SOLUCIONADO"

Posted: Tue Dec 10, 2019 12:39 pm
by remtec
Muy buen dia Amigos.

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


                 @ 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.



 

Re: Ayuda, Problema al realizar Refresh()

Posted: Tue Dec 10, 2019 1:05 pm
by JESUS MARIN
Ponle un size al objeto


@ 190,15 SAY oAge2 PROMPT "Total Horas Dispo.: "+Str(Can_hor1,3) PIXEL OF oDlg3 COLOR RGB(14, 9, 50 ) FONT oFont2 SIZE 50,22

Y vas controlando donde te queda.

si no puedes ver el tamaño real que tiene Can_hor1, puedes cambiar el color del fondo para visualizarlo. COLOR RGB(14, 9, 50 ), CLR_RED

También puedes poner en ALLTRIM() a esa variable para que no contenga espacios en blanco

Re: Ayuda, Problema al realizar Refresh()

Posted: Tue Dec 10, 2019 1:40 pm
by remtec
Hola Jesus.

Muchas gracias por responder y por tu ayuda.

Funciono PERFECTO, tenia varias horas dandome vueltas, sin encontrar la solucion, ahora si.

Muy agradecido y que tengas un buen dia.

Muchos Saludos
Antonio