English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Libreria Client
  • Libreria Standard
  • Client Specific

Message Confirm

funzione copia link

Scopo

Mostra un messaggio all'utente richiede una conferma da parte sua. Questa funzione può essere usata all'interno di una procedura per chiedere all'utente di prendere una decisione o di confermare una operazione.

Sintassi

boolean risposta = 0
// 
risposta := MessageConfirm(messaggio)

Argomenti

Messaggio Testo del messaggio da mostrare

Valore di ritorno

Viene ritornato True se l'utente conferma l'operazione o False se l'utente non conferma.

Comunicazione Client-Server

Occorre tenere presente che l'applicazione web per richiedere ed ottenere una risposta dall'utente necessita di due step. L'elenco delle operazioni eseguite è il seguente:

Browser Server
Richiesta 1
comunica che si è verificato un evento;  
  in risposta all'evento, viene eseguita la MessageConfirm. Siccome non si conosce ancora la risposta dell'utente, la funzione ritorna False e ordina al browser di mostrare la richiesta di conferma all'utente;
Richiesta 2
mostra la richiesta all'utente e comunica la risposta;  
  riceve la risposta e risimula le istruzioni antecedenti alla richiesta di conferma per poter processare la risposta ottenuta.

L'ultima azione del server cerca di riscatenare l'evento o la procedura che contiene la chiamata alla MessageConfirm, utilizzando gli stessi dati di input della volta precedente.

Questo implica che questa funzione è adatta ad essere usata in situazioni ripetibili come l'esecuzione di un comando. È invece sconsigliato il suo utilizzo in eventi come BeforeInsert, AfterInsert, AfterCommit etc. che non possono essere notificati più volte a seguito degli stessi dati di input. In tal caso l'applicazione non sarà in grado di utilizzare la risposta ottenuta dall'utente.

Note

  • Dalla versione 8.5 è possibile distinguere la non risposta dell'utente dalla risposta negativa grazie alla MessageConfirmEx.
  • In RD3, per poter mostrare del testo su più righe sarebbe necessario utilizzare il tag HTML </br>, ma per facilitare la portabilità delle applicazione da RD3 il sistema sostituisce automaticamente i \n con il tag HTML.

Esempio di codice

// ****************************************************************************
// Evento notificato dal pannello il book (report) legato al pannello sta per
// essere stampato.
// ****************************************************************************

event Prodotti.Prodotto.OnPrint(
  inout boolean Cancel         // Impostando a True questo parametro si an...
  inout int PrintDestination   // Puoi modificare la destinazione del repo...
  inout boolean SetWhereClause // Imposta a False questo parametro per evi...
)
{
  Cancel := True
  // 
  // Chiedo conferma

  if NOT(MessageConfirm(FormatMessage(La stampa impiegherà |1 secondi per
    essere completata. Sei sicuro di voler proseguire?, Prodotto.TotalRows()
    , ??, ??, ??, ??)))
  {
    return
  }
  // 
  // Segnalo all'utente che è iniziata la stampa

  EsempiMS.StartPhase(Prodotto.TotalRows(), Stampa in corso...
    <br><br>Attendere prego, True)
  // 
  // Lancio la stampa

  this.StampaAnnullata := False
  Stampa.Print(ONE, --(ONE))
  // 
  // Se non è stata annullata

  if NOT(this.StampaAnnullata)
  {
    // Apro il documento
    EsempiMS.OpenDocument(Stampa.WebFileName(), ??, ??)
  }
}

Ultima modifica: 27/07/2022 / Validità: da 9.0.3940

Vedi Anche

  • Input Box (funzione)
  • Message Box (procedura)
  • After Commit (evento)
  • Before Insert (evento)
  • After Insert (evento)
  • Message Confirm Ex (funzione)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum