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:#FFFFFF | Color de fuente |
bgcolor:#DFDFDF | Color de fondo por defecto |
cell-forecolor:#ffffff | Color de fuente de la celda |
cell-border-width:2 | Tamañ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:#00000000 | Color de los días |
weekdays-forecolor:#333333,#999999,#999999,#999999,#999999,#999999,#999999 | Color de la fuente de cada uno de los días: DOMINGO, LUNES, MARTES, MIÉRCOLES, JUEVES, VIERNES, SÁBADO |
weekdays-fontsize:5 | Tamañ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:2 | Tamaño de los bordes |
textfont-bold:true | Para hacerlo negrita bold |
cell-border-color:#00000000 | Color borde de la celda |
page-swipe:false | Si permite que se desplace los meses o las semanas con el dedo. Por defecto true |
border:false | Si tiene borde o no |
week-start-hour:0 | Inicio 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>