Tabla de Contenidos



Control Calendario

Calendario


Introducción


El calendario se puede poner como llamada directa, por lo que sale el diseño por defecto interno del frame, que no se puede cambiar nada y ninguno de los atributos indicados hace algo.
O se pone como content, utilizando el viewmode, entonces sí aplica todos los atributos que vamos a explicar.
A continuación se describen los controles y atributos necesarios para crear la función de calendario.

Atributos Descripción
viewmode=“calendarview”Esto es para el mes
viewmode=”week”Esto es para cambiar al modo calendario semanal
forecolor:#FFFFFFColor de fuente
bgcolor:#DFDFDFColor de fondo por defecto
cell-forecolor:#ffffffColor de fuente de la celda
cell-border-width:2Tamaño del borde de cada línea
cell-align:center Alineación de la celda
align:center Alineación general del control
fontsize:12 Tamaño de la fuente
cell-selected-bgcolor:#00000000 Color del fondo de la celda seleccionada
cell-selected-border-color:#00CC00 Color del borde de la celda seleccionada
weekdays-bgcolor:#00000000Color de los días
weekdays-forecolor:#333333,#999999,#999999,#999999,#999999,#999999,#999999Color de la fuente de cada uno de los días: DOMINGO, LUNES, MARTES, MIÉRCOLES, JUEVES, VIERNES, SÁBADO
weekdays-fontsize:5Tamaño de los días de la semana
weekdays-longname:false Qué tipo de nombre sale, si el tipo largo o el tipo corto
weekdays-align:topleft Alineación de esos nombres
border-width:2Tamaño de los bordes
textfont-bold:truePara hacerlo negrita bold
cell-border-color:#00000000Color borde de la celda
page-swipe:falseSi permite que se desplace los meses o las semanas con el dedo. Por defecto true
border:falseSi tiene borde o no
week-start-hour:0Inicio de la hora que se indica en el día, ya que los días se dividen entre 0 a 23:59
week-end-hour:1
cell-bgcolor=“##FLD_MAP_COLOREMPRESA##“ Color de la celda
cell-other-month-bgcolor=”##FLD_MAP_COLORCALENDARIO_NOMESACTUAL##“Color de la celda de los días del otro mes que no es el mes seleccionado
cell-selected-forecolor=”##FLD_MAP_COLOREMPRESA##“ Color de la fuente del día seleccionado. Permite width y height para poner el tamaño, lo ideal sería poner todos los atributos en una clase y asociársela


Ejemplo de cómo se llama:

<prop name="Calend" type="Z" cell-bgcolor="##FLD_MAP_COLOREMPRESA##" onchange="refresh" cell-other-month-bgcolor="##FLD_MAP_COLORCALENDARIO_NOMESACTUAL##" cell-selected-forecolor="##FLD_MAP_COLOREMPRESA##" contents="calendario" width="495px" height="240px" class="z_calendario" viewmode="calendarview" />


Control del calendario por script


this.Contents("DatosCalendario”).variables(“moveto”)=“prev” Para ir al mes o semana anterior
this.Contents(”DatosCalendario“).variables(“moveto”)=“next” Para ir al mes o semana posterior


Este nodo se ejecuta cuando se selecciona un día del mes



  <ondateselected refresh="true" show-wait-dialog="false" refresh-owner="MAP_FASE,DatosPoblaciones,MAP_FECHA,MAP_TITLE_NAMES_MES,MAP_TITLE_ANO,MAP_RUTA">
        <action name="runscript">
          <param name="DATEVALUE" />
          <param name="TIMEVALUE" />
          <param name="EVENTVALUE" />
          <script language="vbscript">   
 


Esto es para coger el valor de la fecha del día seleccionado


  thisDataColl.OwnerObject("MAP_FECHA")=DATEVALUE
              thisDataColl.OwnerObject("MAP_TITLE_NAMES_MES")=ucase(cstr(monthname(DATEVALUE)))
              thisDataColl.OwnerObject("MAP_TITLE_ANO")= cstr(year(DATEVALUE))
          </script>
        </action>
      </ondateselected>


Este nodo se ejecuta cuando se cambia el mes


      <onpageselected refresh="true" show-wait-dialog="false" refresh-owner="MAP_FASE,DatosPoblaciones,MAP_FECHA,MAP_TITLE_NAMES_MES,MAP_TITLE_ANO,MAP_RUTA">
        <action name="runscript">
          <param name="DATEVALUE" />
          <param name="TIMEVALUE" />
          <param name="EVENTVALUE" />
          <script language="vbscript">          
              thisDataColl.OwnerObject("MAP_FECHA")= DATEVALUE
              thisDataColl.OwnerObject("MAP_TITLE_NAMES_MES")=ucase(cstr(monthname(DATEVALUE)))
              thisDataColl.OwnerObject("MAP_TITLE_ANO")= cstr(year(DATEVALUE))
          </script>
        </action>
      </onpageselected>


Esto se ejecuta cuando se va a pintar el calendario, por cada celda del mismo. Si es script es pesado, puede tardar mucho.
Este nodo es anterior a los atributos que posteriormente se hicieron. Se recomienda no utilizar si se requiere velocidad.



        <oncelldraw>
        <action name="runscript">
          <param name="CELLDATE" />
          <script language="VBScript">
                               Poner el script que sea.                              
                                 </script>
        </action>
      </oncelldraw>