DEFPLANNER
La funzione '@DEFPLANNER permette di definire un controllo di tipo Planner all'interno di una videata, ovvero tra le funzioni '@DEFVID e '@RUNVID
Parametri
| Parametro | Definizione | I/O | Versione traduttore | SMP | |
|---|---|---|---|---|---|
| NOME | Intero | ||||
| ID | Stringa | ||||
| POS | |||||
| DIM | |||||
| RET | |||||
| RIDIMENSIONABILE | |||||
| NASCOSTO | Condizione | ||||
| PROTETTO | Condizione | ||||
| NOTOOLBAR | Intero | ||||
| IDTOOLBAR | Stringa | ||||
| CALENDARIO | Intero | ||||
| IDMENU | Stringa | ||||
| VISUALIZZAZIONE | Intero | ||||
| SCALA | Intero | ||||
| IN | Azione | ||||
| MULTIRISORSA | Intero | ||||
| DATAINIZIO | Data | ||||
| DATAFINE | Data | ||||
| ORAINIZIO | Intero | ||||
| ORAFINE | Intero | ||||
| ORALAVOROINIZIO | Intero | 32.2 | |||
| ORALAVOROFINE | Intero | 32.2 | |||
| DROP | |||||
| APPUNTAMENTOSELEZIONATO | Variabile | ||||
| VALORISTILE | |||||
| APPUNTAMENTI | |||||
| RISORSE | |||||
| DISPONIBILITA | |||||
| GIORNI | 29.0 | ||||
| SCHEDULE | |||||
| GRID | |||||
| STACK | |||||
| EXPANDER | |||||
| DOCK | |||||
| PERSONALIZZABILE | Intero | ||||
| MODIFICABILE | Booleano | 29.0 | |||
| LINKTO | |||||
| STILE | Stringa | ||||
| DISABILITATO | Condizione | ||||
| CAMBIOVISTA | Azione | 29.0 | |||
| CAMBIODATE | Azione | 29.0 | |||
| PAGINAZIONE | Numerico | 29.0 | |||
| FINECARICAMENTO | Azione | 29.0 | |||
| DATACORRENTE | Data | 29.1 | |||
| ESPORTASUEXCEL | Intero | 30.3 |
NOME
Variabile che identifica l'oggetto Planner.
Non è necessario definirla perché sarà compito del traduttore tipizzarla secondo la tipologia dell'oggetto grafico.
ID
Definisce la variabile o la costante di programma che contiene l'identificatore univoco del controllo.
Viene utilizzato dall'ambiente per gestire le personalizzazioni effettuate durante l'esecuzione del programma.
POS
Posizionamento del controllo.
Consente di indicare la riga e la colonna. Per entrambi è possibile specificare l'unità di misura.
POS[RigaVid [UnitàMisura], ColonnaVid [UnitàMisura]]
L'unità di misura può essere: 'C' per il posizionamento a caratteri e 'P' per il posizionamento in pixel. L'indicazione è opzionale, se omesso si assume 'C' come default.
DIM
Dimensione del controllo.
Consente di indicare l'altezza e la larghezza. Per entrambi è possibile specificare l'unità di misura.
DIM[Altezza [UnitàMisura], Larghezza [UnitàMisura]]
L'unità di misura può essere: 'C' per il posizionamento a caratteri e 'P' per il posizionamento in pixel. L'indicazione è opzionale, se omesso si assume 'C' come default.
RET
Coordinate della cella del reticolo da associare al controllo.
Queste informazioni hanno lo scopo di inserire il controllo nella logica di gestione degli spostamenti sulla videata.
RIDIMENSIONABILE
Parametro che specifica in che modo si vuole ridimensionare il planner.
Parametro con valori ammessi, si possono utilizzare i seguenti valori:
| Valore | Descrizione |
|---|---|
TUTTO | L'oggetto si ridimensionerà sia verso destra che verso il basso |
DESTRA | L'oggetto si ridimensionerà solamente verso destra |
BASSO | L'oggetto si ridimensionerà solamente verso il basso |
NESSUNO | L'oggetto diventerà un oggetto NON ridimensionabile |
NASCOSTO
Parametro che consente di nascondere o visualizzare il controllo.
PROTETTO
Attributo che consente di proteggere il planner da modifiche.
L'utilizzo del parametro esclude l'utilizzo del parametro MODIFICABILE
NOTOOLBAR
Permette di nascondere la toolbar del planner, disabilitando i comandi di cambio vista.
Può essere una costante o una variabile di tipo intero.
Parametro con valori ammessi, si possono utilizzare i seguenti valori:
| Valore | Descrizione |
|---|---|
0 | No |
1 | Si |
IDTOOLBAR
Consente di collegare un bottone di RibbonBar già esistente all'azione.
L'uso di questo parametro esclude l'azione della callback e i parametri DISABILITATO e NASCOSTO.
IDMENU
Consente di specificare l'identificativo univoco del menù di contesto che verrà associato alle celle della riga.
Deve essere definito in precedenza mediante una specifica '@DEFCONTEXTDYN.
Questo menù verrà visualizzato solo se le celle della riga non dispongono di un proprio menù.
VISUALIZZAZIONE
Indica la tipologia di visualizzazione che il planner deve adottare all'avvio.
Dal tipo di visualizzazione dipende il numero degli appuntamenti da caricare.
Può essere una costante o una variabile di tipo intero.
SCALA
Permette di modificare la scala di visualizzazione del planner.
Può essere una costante o una variabile di tipo intero.
I valori ammessi sono:
| Valore | Descrizione |
|---|---|
| 60 | Scala di visualizzazione 1h |
| 30 | Scala di visualizzazione 30 minuti |
| 15 | Scala di visualizzazione 15 minuti |
| 10 | Scala di visualizzazione 10 minuti |
| 5 | Scala di visualizzazione 5 minuti |
| 1 | Scala di visualizzazione 1 giorno (solo per la vista di tipo multirisorsa) |
IN
Callback BC richiamata nel momento in cui viene cliccato sul piano di lavoro del planner.
La calback viene richiamata impostando l'identificativo dell'appuntamento selezionato.
Inoltre viene richiamata anche quando non viene selezionato nessun appuntamento (per permettere la disabilitazione dell'azioni ad esso collegate)
cbInAppuntamento: Richiamo di una '@SRP all'interno del programma e di eventuali istruzioni BC.
<tabella> Non è consentito inserire le istruzioni 'GOTO'. </tabella>
MULTIRISORSA
Indica se il planner gestisce la visualizzazione monorisorsa o multirisorsa.
Con la visualizzazione multirisorsa sarà possibile vedere in parallelo più calendari in contemporanea.
Può essere una costante o una variabile di tipo intero.
I valori ammessi sono
| Valore | Descrizione |
|---|---|
| 0 | Il Planner abilita la visualizzazione delle viste monorisorsa (giornaliera, settimana, settimana lavorativa e mensile) |
| 1 | Il Planner abilita sia la visualizzazione delle viste monorisorsa che quella delle viste multirisorsa |
| 2 | Il Planner può visualizzare esclusivamente le viste multirisorsa |
DATAINIZIO
Indica la prima data visualizzata dalla vista selezionata sul Planner.
Può essere una costante o una variabile di tipo DATE.
DATAFINE
Indica l'ultima data visualizzata dalla vista selezionata sul Planner.
Può essere una costante o una variabile di tipo DATE
ORAINIZIO
Indica la prima ora visualizzata all'interno del planner nelle viste giornaliera e settimanale (lavorativa e non).
Il formato da passare è hhmm
ORAFINE
Indica l'ultima ora visualizzata all'interno del planner nelle viste giornaliera e settimanale (lavorativa e non).
Il formato da passare è hhmm
ORALAVOROINIZIO
Indica la prima ora lavorativa visualizzata all'interno del planner nelle viste giornaliera e settimanale (lavorativa e non).
L'indicazione del parametro abilita la visualizzazione dell'orario lavorativo nel planner. Questo parametro non rende modificabili le celle al di fuori dell'orario lavorativo.
Il formato da passare è hhmm e dev'essere un'ora successiva rispetto a quella prevista dal parametro 'ORAINIZIO'.
ORALAVOROFINE
Indica l'ultima ora lavorativa visualizzata all'interno del planner nelle viste giornaliera e settimanale (lavorativa e non).
L'indicazione del parametro abilita la visualizzazione dell'orario lavorativo nel planner. Questo parametro non rende modificabili le celle al di fuori dell'orario lavorativo.
Il formato da passare è hhmm e dev'essere un'ora precedente rispetto a quella prevista dal parametro 'ORAFINE'.
DROP
Consente di definire l'azione da eseguire nel caso in cui venga rilasciato sul controllo un oggetto del tipo indicato. Il nome dell'oggetto ha una duplice funzione: consente di riconoscere l'oggetto trascinato sul controllo al fine di modificare il cursore del mouse, indicando che è possibile un'operazione di drop; consente di riconoscere l'oggetto rilasciato sul controllo al fine di eseguire la corrispondente azione.
NomeOggetto: identifica il nome dell'oggetto che deve essere riconosciuto dal controllo. È una stringa costante od una variabile alfanumerica. Al momento la specifica si aspetta come oggetto 'PLANNER'.
AzioneSuDrop: è il nome della subroutine di programma che contiene il codice di gestione dell'operazione di drop; eventualmente può essere una sequenza di istruzioni (senza GOTO). Questa routine è richiamata direttamente a fronte del rilascio dell'oggetto sul controllo. All'interno della subroutine di Drop dovrà essere indicata la specifica GETDROPPEDOBJECT
APPUNTAMENTOSELEZIONATO
Restituisce l'identificativo dell'appuntamento correntemente selezionato. Variabile di output di tipo intero.
VALORISTILE
Definizione degli stili di riga mediante un elenco esplicito di coppie valore/nome stile.
APPUNTAMENTI
Indica la strutturazione della gestione degli appuntamenti all'interno del planner.
I nomi delle variabili devono essere indicati in maiuscolo.
RISORSE
Indica la strutturazione della gestione delle risorse (o calendari) all'interno del planner.
Indica la strutturazione della disponibilità delle risorse all'interno del planner.
DISPONIBILITA
Indica la strutturazione della disponibilità delle risorse all'interno del planner.
In ambiente Net l'indicazione delle disponibilità fa si che vengano creati degli elementi HTML per gestire i giorni bloccati. Le azioni di modifica effettuate sui giorni bloccati, potrebbero
non funzionare correttamente.
GIORNI
Indica la strutturazione dei colori assegnati ai giorni visualizzati.
Viene aggiunto all'intestazione del giorni un attributo COLOR che assumerà il valore di VARCOLORE.
Questo dovrà essere referenziato tramite una selezione sul CSS dell'applicazione nella modalità [color='VARCOLORE'] { background-color:<COLORE DESIDERATO> }
SCHEDULE
Permette di specificare alcune proprietà del tipo di vista Schedule.
GRID
Attached Property per pannello di tipo Grid
EXPANDER
Attached Property per pannello di tipo Expander
DOCK
Consente di indicare se l'oggetto deve occupare tutto lo spazio del DockPanel in verticale e/o in orizzontale (possono essere indicati entrambi).
PERSONALIZZABILE
Definisce l'oggetto grafico come personalizzabile dall'utente in fase di runtime.
Parametro con valori ammessi, si possono utilizzare i seguenti valori:
| Valore | Descrizione |
|---|---|
0 | No |
1 | Si |
MODIFICABILE
Attributo booleano che permette di indicare se il controllo grafico è in modalità di sola lettura o no. Se il valore è #FALSE, sono impedite:
- Le modifiche agli appuntamenti esistenti (drag & drop e resize)
- L'eliminazione tramite tasto CANC
- La creazione di nuovi appuntamenti tramite doppio click
L'utilizzo del parametro esclude l'utilizzo del parametro PROTETTO
LINKTO
Permette di creare un legame tra due controlli esistenti all'interno della stessa videata.
STILE
Parametro di definizione dello stile da applicare al controllo.
Può essere una delle costanti definite in BC per gli stili oppure uno stile precedentemente definito tramite '@DEFSTYLE.
DISABILITATO
Determina se il controllo è abilitato o disabilitato.
CAMBIOVISTA
Callback richiamata quando viene cambiata la vista corrente visualizzata sul planner.
CAMBIODATE
Callback richiamata quando vengono cambiate le date visualizzata sul planner.
PAGINAZIONE
[NUMEROELEMENTI[NumeroElementi] Attributo che permette di definire la paginazione del planner, che visualizzerà solamente il numero di elementi indicati. Questo permette di poter gestire strutture con molte risorse senza penalizzare le prestazioni. NumeroElementi: Indica il numero massimo di risorse visualizzate nel planner. Le Attached Property di un oggetto inserito all'interno di un pannello definiscono le modalità di visualizzazione dell'oggetto nel pannello e definiscono il comportamento da adottare quando sono modificate a run-time le dimensioni della videata (conseguentemente le dimensioni del pannello contenitore, conseguentemente quelle del controllo). Se l'oggetto viene definito all'interno di un pannello contenitore di tipo Grid è OBBLIGATORIO definire le sue Attached Property; se l'oggetto viene definito all'interno di un pannello di tipo Expander/Stack/Dock NON E' OBBLIGATORIO definire le sue Attached Property.
FINECARICAMENTO
Callback dell'azione da eseguire
DATACORRENTE
Indica la data su cui è effettuato il posizionamento del periodo visualizzato presente tra DATAINIZIO e DATAFINE.
Può essere una costante o una variabile di tipo DATE,
APPUNTAMENTOSELEZIONATO - (Output, Opzionale Parametro che restituisce l'identificativo dell'appuntamento correntemente selezionato
Variabile di output di tipo intero.
ESPORTASUEXCEL
Consente di abilitare o disabilitare la possibilità di esportare il contenuto del planner su un file Excel.
Parametro con valori ammessi, si possono utilizzare i seguenti valori:
| Valore | Descrizione |
|---|---|
0 | No |
1 | Si |
Metodi
| Metodo | Descrizione | SMP |
|---|---|---|
| Deseleziona_tutti | Permette di deselezionare tutti gli appuntamenti | |
| Get_AppuntamentiSelezionati | Resituisce l'appuntamento selezionato | |
| Get_Appuntamento_DataFine | Resituisce la data di fine dell'appuntamento | |
| Get_Appuntamento_DataInizio | Resituisce la data di inizio dell'appuntamento | |
| Get_Appuntamento_Descrizione | Resituisce la descrizione dell'appuntamento | |
| Get_Appuntamento_ID | Resituisce l'id dell'appuntamento | |
| Get_Appuntamento_OraFine | Resituisce l'ora di fine dell'appuntamento | |
| Get_Appuntamento_OraInizio | Resituisce l'ora di inizio dell'appuntamento | |
| Get_Appuntamento_TuttoIlGiorno | Resituisce se l'appuntamento è per tutto il giorno | |
| Get_DataCorrente | Restituisce la data corrente | |
| Get_DataFine | Resituisce la data fine | |
| Get_DataInizio | Resituisce la data inizio | |
| Get_DataSelezionata | Resituisce la data selezionata | |
| Get_DataSelezionata_Fine | Resituisce la data fine selezionata | |
| Get_OraSelezionata | Resituisce l'ora selezionata | |
| Get_OraSelezionata_Fine | Resituisce l'ora fine selezionata | |
| Get_Risorsa | Resituisce la risorsa | |
| Get_RisorsaDest | Resituisce la risorsa dest | |
| Get_VistaAttiva | Resituisce la vista attiva | |
| Get_Zoom | Restituisce il valore dello zoom del planner | |
| Set_AppuntamentoSelezionato | Permette di selezionare o deselezionare un appuntamento | |
| Set_DataCorrente | ||
| Set_Intervallo | ||
| Set_Intervallo_Ora | ||
| Set_Scala | ||
| Set_Stili | ||
| Set_Vista | ||
| Set_Zoom | Imposta il valore dello zoom del planner |
Esempi
Definizione semplice
SHARED DIM StartTime[INT]
SHARED DIM EndTime[INT]
SHARED DIM DataFrom[DATE]
SHARED DIM DataTo[DATE]
SHARED DIM ViewType[INT]
SHARED DIM ResourceId[INT]
SHARED DIM ResourceColor[STRING]
SHARED DIM ResourceDes[STRING]
SHARED DIM ResourceVisibility[INT]
SHARED DIM DispId[INT]
SHARED DIM DispDate[DATE]
SHARED DIM DispTimeFrom[INT]
SHARED DIM DispTimeTo[INT]
SHARED DIM EventId[INT]
SHARED DIM EventResId[INT]
SHARED DIM EventType[INT]
SHARED DIM EventObj[STRING]
SHARED DIM EventTool[STRING]
SHARED DIM EventPlace[STRING]
SHARED DIM EventStartDate[DATE]
SHARED DIM EventStartTime[INT]
SHARED DIM EventEndDate[DATE]
SHARED DIM EventEndTime[INT]
SHARED DIM EventState[INT]
SHARED DIM EventTypeIco[INT]
SHARED DIM EventBlock[INT]
SHARED DIM currDate[DATE]
...
'@DEFVID DIM[30,124] NOME[Videata] TIT["Agenda della risorsa"] ID["VIDEATA"] RIBBON[IDRIBBON["RIBBONBAR"]]
'@DEFRIBBONBAR NOME[RibbonBar] _
IDRIBBONBAR["RIBBONBAR"] _
CATEGORIA[ID["CATEGORIA"] _
GRUPPO[ID["GRUPPO"] _
BOTTONE[ID["SYS_EXIT"] AZIONE[Exit()]] _
BOTTONE[ID["SYS_EXIT_ESC"] AZIONE[Exit()] NASCOSTO[1]] _
BOTTONE[ID["BTN_SET_SCALA_60"] AZIONE[SetScale(60)]] _
BOTTONE[ID["BTN_SET_SCALA_30"] AZIONE[SetScale(30)]] _
BOTTONE[ID["BTN_SET_SCALA_15"] AZIONE[SetScale(15)]] _
BOTTONE[ID["BTN_SET_SCALA_10"] AZIONE[SetScale(10)]] _
BOTTONE[ID["BTN_SET_SCALA_5"] AZIONE[SetScale(5)]] _
] _
]
'@DEFGRIDPANEL NOME[GRIDPANEL] ID["GridPanel"] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[28] LAYOUT[#DINAMICO]] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[122] LAYOUT[#DINAMICO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]]
'@DEFPLANNER NOME[PLANNER] ID["PLANNER"] POS[1,1] DIM[1,1] _
DATAINIZIO[DataFrom] DATAFINE[DataTo] ORAINIZIO[StartTime] ORAFINE[EndTime] _
SCALA[30] _
CALENDARIO[1] VISUALIZZAZIONE[ViewType] RET[2,2] MULTIRISORSA[1] _
SCHEDULE[VISUALIZZAZIONE[1]] _
MODIFICABILE[#FALSE] _
APPUNTAMENTI[STRUTTURA["EventStructure"] AGGIORNA[GOSUB Populate] _
VARRISORSA["EventResId"] _
VARIDENTIFICATIVO["EventId"] _
VARDESCRIZIONE["EventObj"] _
VARTOOLTIP["EventTool"] _
VARLUOGO["EventPlace"] _
VARTIPOLOGIA["EventType"] _
VARDATAINIZIO["EventStartDate"] _
VARDATAFINE["EventEndDate"] _
VARORAINIZIO["EventStartTime"] _
VARORAFINE["EventEndTime"] _
VARSTATO["EventState"] _
VARTIPO["EventTypeIco"] _
VARBLOCCATA["EventBlock"]] _
RISORSE[STRUTTURA["RisStructure"] _
VARIDENTIFICATIVO["ResourceId"] _
VARDESCRIZIONE["ResourceDes"] _
VARCOLORE["ResourceColor"] _
VARVISIBILE["ResourceVisibility"]] _
DISPONIBILITA[STRUTTURA["DisStructure"] _
VARRISORSA["DispId"] _
VARDATA["DispDate"] _
VARORAINIZIO["DispTimeFrom"] _
VARORAFINE["DispTimeTo"]] _
GRID[COL[2] RIGA[2] COLDIN[1] RIGADIN[1]]
'@ENDGRIDPANEL NOME[GRIDPANEL]
'@RUNVID
...
'@SR DefStructures
' Definizione struttura calendari
'@DEFDYNSTRUCT STRUTTURA["RisStructure"] _
CAMPI[ResourceId, ResourceColor, ResourceDes, ResourceVisibility] _
IND[ResourceId] _
ERRORE
' Definizione struttura disponibilità
'@DEFDYNSTRUCT STRUTTURA["DisStructure"] _
CAMPI[DispId,DispDate,DispTimeFrom,DispTimeTo] _
IND[DispId,DispDate,DispTimeFrom] _
ERRORE
' Definizione struttura eventi per calendari
'@DEFDYNSTRUCT STRUTTURA["EventStructure"] _
CAMPI[EventId,EventResId,EventType,EventObj, EventTool, _
EventPlace,EventStartDate,EventStartTime,EventEndDate,EventEndTime, _
EventState,EventTypeIco,EventBlock] _
IND[EventId] _
ERRORE
Return
...
'@SR Populate
'@ZAPDYNSTRUCT STRUTTURA["RisStructure"]
'@ZAPDYNSTRUCT STRUTTURA["DisStructure"]
'@ZAPDYNSTRUCT STRUTTURA["EventStructure"]
' RISORSA
ResourceId=1: ResourceColor="Mario": ResourceDes="Mario Rossi": ResourceVisibility=1
'@ADDDYNSTRUCT STRUTTURA["RisStructure"] CAMPI[ResourceId, ResourceColor, ResourceDes, ResourceVisibility]
' DISPONIBILITA'
DispId=1: DispDate=currDate: DispTimeFrom=800:DispTimeTo=900
'@ADDDYNSTRUCT STRUTTURA["DisStructure"] CAMPI[DispId, DispDate, DispTimeFrom, DispTimeTo]
' EVENTI (per calendario)
currDate=FNDATEADD(currDate,1,0,0)
EventId=2:EventResId=1:EventType=1:EventObj="Secondo appuntamento"
EventTool="Strumento":EventPlace="Luogo Appuntamento":EventStartDate=currDate:EventStartTime=1000
EventEndDate=currDate:EventEndTime=1230:EventState=2:EventTypeIco=9
'@ADDDYNSTRUCT STRUTTURA["EventStructure"] _
CAMPI[EventId, EventResId, EventType, EventObj, EventTool, _
EventPlace, EventStartDate, EventStartTime, EventEndDate, EventEndTime, _
EventState, EventTypeIco, EventBlock]
return
...
'@SRP Exit()
'@EXITWINDOW
Return
...
'@SRP SetScale(ScaleValue[INT] [IN])
PLANNER.Set_Scala(ScaleValue)
Return