English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Document Orientation
  • ID Document
  • Data Base

On Validate

evento copia link

Condizioni di notifica

Questo evento viene notificato al documento quando esso deve controllare se è valido. Questo solitamente avviene se:

  • L'utente ha modificato dei dati in un pannello DO
  • L'utente sta cercando di salvare i dati in un pannello DO
  • Una procedura Visual Code salva il documento tramite la funzione SaveToDB
  • Viene usata la funzione Validate() da Visual Code per validare il documento.

Utilizzo consigliato

Questo è l'evento giusto per segnalare errori relativi allo stato attuale del documento. Può essere usato anche per impostare valori di proprietà che dipendono da altri, ma per questo è preferibile l'evento di OnEndTransaction.

Argomenti

Reason Numero intero che specifica per quale ragione il documento viene validato. I valori più comuni sono ZERO per indicare la validazione completa prima del salvataggio o UNO per indicare una validazione veloce sul documento quando l'utente sta modificando i dati in un pannello DO. Altri valori potrebbero essere passati usando la procedura Validate da Visual Code.
Error Parametro di output booleano. Se impostato a True segnala una condizione di errore ed interrompe la validazione immediatamente.
Skip Parametro di output booleano. Se impostato a True non controlla le regole di validazione automatica del documento (vedi note).

Esempio di codice

// ***********************************************************
// Fired by the validation procedure to validate this document
// ***********************************************************

event Ordine.OnValidate(
  int Reason          // Reason to validate
  inout boolean Error // Set to TRUE to cancel validation
  inout boolean Skip  // Set to TRUE to skip internal validation
)
{
  // Se l'ordine è stato modificato, non voglio che non abbia nemmeno una riga, a meno che non lo
  // stia cancellando

  if IsModified(??) AND NOT(IsDeleted()) AND Reason = ZERO
  {
    if RigheOrdini.Count() = ZERO
    {
      Error := True
      this.AddDocumentError(MSG Almeno una riga)
    }
  }
}
  • Prima di iniziare la validazione vengono cancellati in automatico gli errori eventualmente segnalati sul documento in una precedente validazione.
  • La procedura di validazione prima notifica l'evento OnValidate al documento e solo dopo, se il parametro Skip non è stato impostato a True esegue la validazione interna automatica.
  • La validazione interna automatica controlla che le proprietà obbligatorie siano state valorizzate a meno che non siano dei campi contatore, inoltre controlla che le stringhe non siano troppo lunghe e le date o i numeri abbiano un valore valido. La validazione automatica non viene effettuata se il documento è in stato cancellato.
  • Se è attivo il sistema di sincronizzazione, allora questo evento viene chiamato dal framework anche con valori di reason 10 e 11 che rispettivamente segnalano la sincronizzazione del documento server in funzione dei dati del client e la re-sincronizzazione del documento client in funzione dei dati del server.

Ultima modifica: 20/09/2021 / Validità: da 6.5.2680

Vedi Anche

  • Validate (funzione)
  • On End Transaction (evento)
  • Save To DB (funzione)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum