TCalex error (Solucionado)

TCalex error (Solucionado)

Postby Sebastián Almirón » 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
Last edited by Sebastián Almirón on Tue Aug 03, 2021 3:22 pm, edited 1 time in total.
User avatar
Sebastián Almirón
 
Posts: 155
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: TCalex error

Postby cnavarro » 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: Select all  Expand view

   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
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: TCalex error

Postby Sebastián Almirón » Fri Jul 30, 2021 3: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
User avatar
Sebastián Almirón
 
Posts: 155
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: TCalex error

Postby cnavarro » Sat Jul 31, 2021 7: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: Select all  Expand view

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
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: TCalex error

Postby Sebastián Almirón » Tue Aug 03, 2021 3: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: Select all  Expand view
  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.
User avatar
Sebastián Almirón
 
Posts: 155
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: TCalex error (Solucionado)

Postby cnavarro » Tue Aug 03, 2021 4: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
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 12 guests