Metodi di interazione
Quando si scrive codice in Application Language (AL), è possibile che si voglia interagire con l'utente in determinati momenti. Ad esempio, per chiedergli una conferma, ottenere ulteriori informazioni o consentirgli di effettuare una scelta.
Per eseguire queste operazioni, è possibile usare le seguenti funzioni di interazione:
Messaggio
Conferma
StrMenu
Errore
È possibile usare diversi metodi specializzati per visualizzare messaggi e raccogliere input. È consigliabile usare pagine per assicurarsi che l'applicazione disponga di un'interfaccia utente coerente. Tuttavia, ci sono situazioni in cui si potrebbero voler usare i metodi di interazione invece delle pagine. Gli utilizzi più importanti dei metodi di interazione sono i seguenti:
Per visualizzare una finestra che indica lo stato di avanzamento delle elaborazioni che potrebbero richiedere molto tempo.
Per interrompere il programma in esecuzione per visualizzare un messaggio di errore.
Per consentire all'utente di confermare una scelta prima che il programma continui a funzionare.
È anche possibile usare il metodo StrMenu per creare pagine che presentano opzioni all'utente. È molto più veloce usare questo metodo piuttosto che progettare una pagina che presenta all'utente solo un insieme limitato di opzioni.
Procedure consigliate per i messaggi dell'utente
Si consigliano le seguenti linee guida per la scrittura dei messaggi per gli utenti finali:
Scrivere messaggi correttamente secondo le regole grammaticali della propria lingua.
Non utilizzare barre rovesciate per indicare interruzioni di riga in un messaggio. La formattazione della riga viene completata automaticamente. L'unica eccezione è nel metodo Open. È necessario usare le barre rovesciate affinché il messaggio sia allineato correttamente.
Utilizzare il metodo FieldCaption() e il metodo TableCaption() quando possibile per ottenere nomi di campi e tabelle come stringhe. È importante per permettere all'utente di riconoscere sempre un termine che indica un nome di campo o di tabella. L'unica eccezione è nel metodo Open in cui è possibile utilizzare direttamente il nome del campo. In caso contrario, può essere difficile ottenere un allineamento corretto. Se si fa riferimento a un nome di campo senza utilizzare il metodo FieldCaption, digitare il nome del campo senza virgolette singole o doppie.
Provare a scrivere tutti i messaggi su una sola riga. Per utilizzare più di una riga, iniziare una nuova riga dopo un punto invece che nel mezzo di una frase.
Non inserire il testo direttamente nel codice AL. Immetterlo invece come etichetta in modo che il messaggio possa essere tradotto.
Metodo Message
La funzione Message viene utilizzata frequentemente in Business Central per comunicare le informazioni all'utente. Con la funzione Message è possibile notificare all'utente che un determinato processo è terminato oppure visualizzare l'output di un'espressione.
Message(string [,Value1, ...]);
Message('Hello World');
Se la stringa contiene segnaposto, è possibile sostituirli con i valori che seguono la stringa.
var
MyInt: Integer;
TheValueOfTxt: Label 'The value of %1 is %2';
begin
MyInt := 5;
Message(TheValueOfTxt, 'MyInt', MyInt);
// Displays: The value of MyInt is 5
end;
Il metodo Message viene eseguito in modo asincrono, il che significa che il messaggio non viene elaborato finché il metodo da cui è stato chiamato non termina o un altro metodo richiede l'input dell'utente. Il metodo è utile per notificare all'utente che alcune elaborazioni sono state completate.
Metodo Confirm
Quando si intende eseguire solo alcune parti del codice dopo una conferma dell'utente, usare la funzione Confirm. È possibile usare la funzione Confirm in base a una stringa, la quale viene generata dalla domanda posta all'utente. Il messaggio viene visualizzato con un pulsante Sì e un pulsante No.
È possibile selezionare il pulsante su cui deve trovarsi lo stato attivo quando viene visualizzata la finestra. Questa regola può essere impostata con il secondo parametro. Se la stringa contiene segnaposto, è possibile sostituirli con i valori di altri parametri.
Ok := Dialog.Confirm(string [,Default] [,Value1, ...]);
La funzione Confirm può essere usata in combinazione con un'istruzione If.
if Confirm('Are you sure you want to delete?') then
Message('OK')
else
Message('Not OK');
Se lo stato attivo predefinito deve essere sul pulsante No, aggiungere false come parametro.
if Confirm('Are you sure you want to delete?', false) then
Message('OK')
else
Message('Not Ok');
Metodo StrMenu
La funzione StrMenu può essere usata per chiedere informazioni agli utenti e fornire loro una selezione di scelte.
OptionNumber := StrMenu(OptionString [,DefaultNumber] [,Instruction]);
Di seguito è illustrato un esempio d'uso della funzione StrMenu.
var
Days: Text[50];
Selection: Integer;
begin
Days := 'Monday,Tuesday,Wednesday,Thursday,Friday';
Selection := StrMenu(Days, 1, 'Which day is today ?');
Message('You selected %1.', Selection);
end;
Se l'utente seleziona Mercoledì, il sistema visualizzerà: Hai selezionato 3.
Metodo Error
In caso di errore o se alcune condizioni non vengono soddisfatte durante l'elaborazione del codice, è possibile usare il messaggio Error per avvisare l'utente. Dopo il messaggio Error, l'esecuzione del codice viene interrotta.
Error(String [,Value1, ...]);
Ad esempio, il codice seguente genererà tre messaggi per l'utente: 1, 2 e un messaggio Errore. Dopo il messaggio di errore, l'esecuzione del codice viene interrotta. Il quarto messaggio con il testo 3 non viene mai visualizzato.
MESSAGE('1');
MESSAGE('2');
ERROR('OOPS !');
MESSAGE('3');
Il metodo Error è simile al metodo Message tranne per il fatto che quando l'utente ha confermato il messaggio di un metodo Error, l'esecuzione termina. Anche il metodo Error è simile al metodo FieldError. Per ulteriori informazioni, vedere Metodi CalcFields, CalcSums, FieldError, FieldName, Init, TestField e Validate.