Scopo
Questa procedura informa il sistema che sta per iniziare una operazione che potrebbe richiedere molto tempo. Insieme alla procedura TrackPhase viene utilizzata per mostrare una progress bar all'utente per informarlo dello stato di avanzamento dell'operazione.
Sintassi
Applicazione.StartPhase(numero passi, messaggio, interrompibile)
Argomenti
Numero Passi | E' un numero intero che indica il numero di passi di cui è composta l'operazione. Viene utilizzato dal sistema per calcolare la percentuale di completamento. Se non viene specificato il valore predefinito è 1. |
Messaggio | Testo del messaggio che verrà mostrato all'utente nella videata di attesa. Se non viene specificato viene utilizzata la frase "Attendere il completamento dell'operazione ..." |
Interrompibile | E' un parametro opzionale booleano che indica al sistema se l'operazione è interrompibile dall'utente. Il valore predefinito, se non ne viene specificato uno, è False. Se l'operazione è interrompibile viene mostrato un bottone nella videata di attesa. Se l'utente preme il bottone la prossima chiamata alla funzione TrackPhase restituisce il valore False. |
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(), ??, ??)
}
}
// 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(), ??, ??)
}
}
-
Attenzione: L'implementazione di questa funzionalità ha richiesto, in applicazioni web in tecnologia C#, la modifica del file Web.Config. Qualora tale file sia stato customizzato occorre copiare la riga 79 del file Web.Config presente nel Template all'interno del file presente nella directory custom dell'applicazione.
La riga da copiare è la seguente:
<add verb="*" path="D_C#_ICD_APP_TITLE.aspx" type="IDHttpHandlerDEL"/>
ed il file Web.Config del template si trova nella seguente directory:C:\Program Files\INDE\CURRENT\Template\CSharp\
- Per gestire l'interrompibilità delle operazioni occorre controllare il valore di ritorno della funzione TrackPhase.
-
La percentuale indicata dalla progress bar viene calcolata nel modo seguente:
Percentuale = (NumeroPassoCorrente*100)/NumeroTotalePassi
dove NumeroPassoCorrente è il valore fornito alla funzione TrackPhase e NumeroTotalePassi è il valore fornito al parametro NumeroPassi della procedura StartPhase. Pertanto, se non viene specificato un valore per il parametro NumeroPassi, il sistema, utlizzando il valore predefinito uguale a 1, calcolerà da subito una percentuale del 100% mostrando, all'apertura della videata di attesa, una progress bar già completa. - I metodi StartPhase e TrackPhase attualmente non funzionano su applicazioni mobile offline Windows 8 a causa delle limitazioni del browser, così come non è possibile mostrare correttamente la schermata "Attendere prego". Quando l'applicazione esegue una procedura lunga si blocca semplicemente l'interfaccia.
Ultima modifica: 24/03/2021 / Validità: da 8.0.3560