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

Start Phase

procedura copia link

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(), ??, ??)
  }
}
  • 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

Vedi Anche

  • Track Phase (funzione)
  • Before Formatting (evento)
  • Sleep (procedura)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum