Il componente calendario permette di rappresentare un insieme di entità, aventi tra le loro proprietà una data, sotto forma di calendario. Il tutto parte da una semplice struttura dati, quella della matrice di SmeUP.

Consideriamo un estratto di matrice in formato xml così come arriva a WebUP dai servizi di SmeUP
<Griglia>
<Colonna Cod="AGEICO" Txt="Icona" Tip="" Lun="15" IO="G" Ogg="CNCLI" Dpy="" Fill="" Aut="" ETxt=""/>
<Colonna Cod="AGEDES" Txt="Descrizione" Tip="" Lun="50" IO="O" Ogg="" Dpy="" Fill="" Aut="" ETxt=""/>
<Colonna Cod="AGEDAT" Txt="Dati" Tip="" Lun="50" IO="O" Ogg="" Dpy="" Fill="" Aut="" ETxt=""/>
<Colonna Cod="V£IDOJ" Txt="ID" Tip="" Lun="10" IO="H" Ogg="XA" Dpy="" Fill="" Aut="" ETxt=""/>
<Colonna Cod="V£DATA" Txt="Data" Tip="" Lun="08" IO="H" Ogg="D8*YYMD" Dpy="" Fill="" Aut="" ETxt=""/>
<Colonna Cod="V£ATV0" Txt="St." Tip="" Lun="01" IO="H" Ogg="V4X1AGEN.ST" Dpy="" Fill="" Aut="" ETxt=""/>
</Griglia>
<Righe>
<Riga Fld="100001|SMELO - SVILUPPO LOOC.UP|(6,00;v9,0) RILASCIO E TEST - |0000776159|20140722|"/>
<Riga Fld="100011|SMEWW.011 - WEB.UP 3 COMPONENTI|(2,00;v9,0) AUTOCOMPLETE - |0000776262|20140723|"/>
<Riga Fld="100001|SMELO - SVILUPPO LOOC.UP|(6,00;v9,0) |0000776160|20140724|"/>
</Righe>
Per comodità ne riporto la versione matriciale
La colonna con codice V£DATA e descrizione “Data” contiene delle date.
È facile immaginare come possa essere sfruttata per inserire delle voci nel calendario.
Basta infatti impostare l’attributo DatCol di setup del componente CAL.
<Setup DatCol="V£DATA"/>
Questo componente si utilzza proprio come il componente matrice solo che in questo caso bisogna specificare quale colonna (di tipo data) rappresenta la voce del calendario.
Ecco un estratto dello script di scheda
::G.SEZ Pos(1A)
::G.SUB.CAL
::G.SET.CAL DatCol="V£DATA"
e naturalmente i dati
::D.FUN.STD F(EXB;B£SER_46;WRK.SCP) 1(MB;SCP_SET;WETEST_CAL) 2(;;CAL_001)
Lasciandoci guidare dall’intuizione penseremo che ci sarà un attributo per specificare il titolo delle nostre voci.
Ecco il ruolo dell’attributo TitCol
<Setup DatCol="V£DATA" TitCol="AGEDES"/>
AGEDES è la colonna con titolo “Descrizione” nella rappresentazione matriciale di questi dati.
A questo punto il lettori scaltro avrà intuito che è anche possibile impostare dei dinamismi come
::G.DIN When="Click" Where="ID_ALTRO_COMPONENTE"
Oppure dinamismi specifici del calendario
::G.DIN When="Dateselect" Where="ID_ALTRO_COMPONENTE"
::G.DIN When="Drop" Where="SCH2"
Il primo viene scatenato dal click su uno spazio vuoto all’interno di una casella data.
Il secondo si usa per lanciare un evento quando una voce viene trascinata da una data a un’altra.
Ci sono molti altri attributi di setup e tipi di dinamismi per cui consiglio di visitare la pagina corrispondente nello showcase di webup.
Là trovate diversi esempi di utilizzo del calendario e potete visionare i corrispondenti script di scheda.
Consiglio anche di abilitare la modalità di debug, utilissima per tutti i componenti.
Per esempio potreste chiedervi come arriva al componenete target l’informazione che una certa voce è stata spostata da una data a un’altra.
Ecco che vi viene in aiuto il pannello di debug:
Notate la presenza di speciali variabili
*cal.ini
*cal.fin
Per finire, se avete l’esigenza di registrare sul gestionale lo spostamneto di una data dovete operare come sempre attraverso l’uso dei dinamismi e predisporre degli opportuni servizi RPG.