Configurazione dei calcoli in finestra
Vi sono due fasi per la configurazione di una finestra dinamica:
- Creare un calcolo che restituisca una Funzione finestra su un attributo in Progettazione oggetti
- Progettare la finestra per eseguire il calcolo mediante Gestione finestre
Le due procedure in basso dimostrano come rendere il campo Impatto obbligatorio sulla finestra Incident se il campo Urgenza risulta completato. Si utilizzano tecniche simili per le altre Funzioni in finestra. Successivamente verranno forniti ulteriori esempi di calcolo.
Per creare il calcolo:
- Avviare Progettazione oggetti, quindi aprire l'oggetto per la finestra.
Nel nostro esempio, si tratta di Gestione dell'incident\Incident. - Creazione di un nuovo attributo stringa con Max. Lunghezza impostato a -1 per memorizzare il calcolo.
Raccomandiamo di iniziare i nomi degli attributi di calcolo con DynamicWindow, in modo da semplificarne l'individuazione nelle progettazioni.
- Impostare il Tipo calcolo del nuovo attributo a Calcolo finestre.
Verrà visualizzata la finestra di dialogo Modifica formula. - Togliere il segno di spunta dalla casella di controllo Rileva automaticamente dipendenze.
Saremo noi a impostare le dipendenze. - Creare un calcolo che imposti il Valore a ":SetMandatory(attributo, Vero)".
Nel nostro esempio, per rendere obbligatorio l'attributo Impatto, digitare il calcolo seguente:
import System
static def GetAttributeValue(Incident):
Value = ":SetMandatory(_Impact, True);"
return Value
Questo esempio di calcolo non corrisponde a un calcolo normalmente utilizzato in un sistema live. Anche se rende obbligatorio l'Impatto se il campo Urgenza è completato, esso non gestisce la reimpostazione del campo se il campo Urgenza viene modificato ancora successivamente. Questo esempio viene incluso solo all'interno della dimostrazione delle procedure per l'impostazione di finestre dinamiche. Il calcolo più completo viene descritto successivamente.
Le linee che iniziano con Value e return nell'esempio in alto presentano un rientro singolo. Se si copiano esempi da qui, assicurarsi che vengano mantenuti i rientri corretti quando vengono incollati nell'editor di calcolo.
:SetMandatory utilizza solo il nome dell'attributo. Non includere il nome dell'oggetto (ad esempio, non utilizzare Incident._Impact). Ricordarsi che se l'attributo non era un attributo di sistema, inizierà con un carattere di sottolineatura (ad esempio, _Impact).
È possibile aggiornare più attributi di destinazione separandoli con dei punti e virgola. Ad esempio:
Value = “:SetMandatory(attribute1,True);:SetMandatory(attribute2,False);”
- Trascinare l'attributo che causa l'esecuzione del calcolo dall'albero Attributi al riquadro Dipendenze.
Per il nostro esempio, trascinare Urgenza incident. Notare che il nome del database interno per l'attributo – _IncidentUrgency – appare nel riquadro Dipendenze. - Fare clic su OK.
La finestra di dialogo Modifica formula si chiude. - Fare clic su
.
Vengono salvate le modifiche all'oggetto.
Ora che si è creato il calcolo che imposta il campo su obbligatorio, è possibile configurare la finestra per utilizzarlo.
Per configurare la finestra:
- In Gestione finestre, aprire la finestra richiesta.
Nel nostro esempio, si tratta di una finestra Incident. - Aggiungere l'attributo calcolato creato sopra sulla finestra.
L'attributo deve essere aggiunto alla finestra, tuttavia può essere nascosto impostando la proprietà ShowOnWindow su Falso. Raccomandiamo di impostare ShowOnWindow su Vero mentre si progetta e si testa il calcolo.
- Selezionare il controllo che si desidera utilizzare per attivare il calcolo.
Si tratta dell'attributo aggiunto al riquadro Dipendenze nel calcolo. Nel nostro esempio, si tratta di Urgenza. - Nella griglia Proprietà per il controllo, impostare È Calcola sul change a Vero.
- Salvare le modifiche alla finestra.
Quando un utente seleziona un'Urgenza sulla finestra Incident, il calcolo viene attivato e il valore dell'attributo calcolato viene impostato a :SetMandatory(_Impact, True);. Ciò rende quindi obbligatorio il campo Impatto.