FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TCalex error (Solucionado)
Posts: 166
Joined: Mon Dec 12, 2005 09:56 AM
TCalex error (Solucionado)
Posted: Fri Jul 30, 2021 11:40 AM

Estoy tratando de añadir un calendario, basándome en SampleCalex de Cristobal.
El caso es que me funciona bien, salvo porque en la vista de Mes, cuando el día 1 del mes cae en domingo, el día 1 se posiciona en Lunes ( por ejemplo en agosto del 21 o Mayo del 22). En la vista Semana no pasa.
Creo que el problema debe estar en el fichero TMonthv.prg, pero no logro dar con el problema, he visto en el foro algún problema similar pero no veo si se ha solucionado.
¿A alguien le pasa lo mismo?

Saludos

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: TCalex error
Posted: Fri Jul 30, 2021 12:38 PM
Sebastian, la clase no es mía, es de Daniel García-Gil ( al César lo que es del César ), lo único que hice es hacer algunas mejoras y ajustes
En cuanto a lo que comentas, creo recordar ( hace tiempo que no lo toco el tema ) que eso se implementó en el comando a través de la claúsula FIRST_DATE.
Prueba y me comentas
Code (fw): Select all Collapse
   DEFINE CALEX ::oCalex OF ::oFld:aDialogs[ 1 ] ; 
          FROM 1, 10 TO 600*1.15, 600*1.78 ;
          FIRST_DATE 0
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 166
Joined: Mon Dec 12, 2005 09:56 AM
Re: TCalex error
Posted: Fri Jul 30, 2021 03:11 PM

Hola Cristobal, la clausula FIRST_DATE 0 la tengo puesta.
Como te he comentado, solo he visto que pase cuando el primer día del mes cae en domingo y en la vista por mes, en otros casos funciiona bien.
Me sigo peleando con ello, ya que tenia la aplicación para entregarla pero con este error no puedo hacerlo.
Saludos y gracias

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: TCalex error
Posted: Sat Jul 31, 2021 07:22 AM
Sebastian, en la clase TCalex, existe una function que te permite setear ( sirve a modo de SETGET ) la variable estática que se encarga de esa configuración y que puedes llamar en cualquier momento. Quizás con esto puedas solucionar el problema
Code (fw): Select all Collapse
FUNCTION Calex_SetFirstDate( nFirst )
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 166
Joined: Mon Dec 12, 2005 09:56 AM
Re: TCalex error
Posted: Tue Aug 03, 2021 03:19 PM
Bueno, solucionado.
Por si le sirve a alguien, lo que he hecho ha sido una modificación en el método SetDate de la clase TMonthView, en el fichero tMonthv.prg a partir de la línea 695, la he modificado así:

Code (fw): Select all Collapse
   if nDayWeek  == 7
      if Month( dDay_1 ) == Month( dDate )
         ::dStart = ::dDate
      else
         if dow(dDay_1 + 1) == 1  //Si el primer día del mes es domingo, la semana debe
                                  // comenzar 5 dias antes
            ::dStart := dDay_1 - 5
         else
            ::dStart = dDay_1 + 1
         endif
      endif
   else
      ::dStart = ::GetFirstDateWeek( dDay_1 )

   endif


Básicamente es decirle que si el primer día del mes es domingo se deben mostrar los seis días anteriores del mes anterior en la primera línea, si dDay_1 tiene el último días del mes anterior, entonces ::dStart := dDay_1 - 5. Con ello, en el caso del mes de Agosto de 2021 y Mayo del 2022 que coincidía el día 1 en Domingo, ya lo muestra bien, además la vista pasa a tener 6 líneas de días, el resto no se ve afectad, como debe ser.
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: TCalex error (Solucionado)
Posted: Tue Aug 03, 2021 04:23 PM

Sebastian, gracias por mostrar esta mejora
Voy a ver cómo está en la clase

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces

Continue the discussion