Domanda

Ho un datawindow contenente più campi.Voglio scrivere un'espressione di convalida per un campo denominato amount.Ho altri due campi denominati debit e credit.Se la somma del debito e del credito è maggiore dell'importo, allora voglio mostrare un messaggio di convalida all'utente.

Come posso scrivere l'espressione di convalida richiesta nella specifica della colonna di quel DataWawindow?

Voglio inoltre scrivere l'espressione di convalida per un campo denominato test.C'è un campo denominato criteria.Quando questo campo è impostato su 1, voglio che il campo di prova sia un campo obbligatorio.Come posso scrivere l'espressione di convalida per questo?

È stato utile?

Soluzione

Ci sono diversi modi per farlo, a seconda che sia necessario utilizzare l'espressione di convalida richiesta della colonna o avere la licenza per farlo diversi modi.

Considerazioni di progettazione

sarà un DataWawindow freestyle in cui è necessario convalidare una volta solo la regola per lo schermo o uno stile tabulare in cui gli utenti possono massa immettere set di dati e la regola deve essere applicata a ciascuna riga? Si desidera richiedere agli utenti di inserire i valori corretti ogni volta che un campo obbligatorio si concentra o si desidera consentire loro liberamente navigare sullo schermo e convalidare al tempo di risparmio?

Otterrai alcune risposte diverse qui, mi aspetto, ma preferisco usare le espressioni di specifiche della colonna solo per semplici controlli perché:

    .
  • logica complicata là tende a diventare difficile da leggere e mantenere
  • Se si dispone di più condizioni di errore, il checking per, che può portare ad alcuni messaggi ingombranti se si utilizza il campo Messaggio di errore incorporato della specifica della colonna

Tuttavia, concederò che le espressioni DW sono generalmente realmente veloci.

Utilizzo di un campo calcolato per le regole di convalida

Una tecnica alternativa è anche un performer veloce e può essere utilizzato nella maggior parte delle versioni di PB.

    .
  • Avere un campo calcolato sul DataWawindow che ha un nome significativo come cf_amount_rule e qualcosa del genere nell'espressione: if (debit + credit = amount, 0, 1)
  • rendi quel campo invisibile all'utente se vuoi
  • Aggiungi un altro campo calcolato nel piè di pagina per sommare cf_amount_rule e ora hai un punto di riferimento utile che ti dice rapidamente quando c'è un errore
  • Al tempo di risparmio (o l'evento PFC_Validation per gli utenti PFC) è possibile controllare la somma> 0 e pubblicare un messaggio di errore

Puristi OO potrebbero suggerire che è sbagliato mettere la logica nel Datawindow e se ti ritrovi a mettere nella stessa regola in più datawindows che è certamente un odore di codice. Ma per semplici regole che sono improbabili dei cambiamenti che ho trovato tempo e di nuovo che il DataWindow è molto efficiente nel gestire queste regole e risparmiandoti dall'avere scrivere un sacco di codice altrove.

Acquisto opzionale

    .
  • È possibile effettuare il messaggio di errore più robusto utilizzando la funzionalità Trova () per identificare righe specifiche con l'errore
  • Fornisci usi visivi utili ai tuoi utenti modificando la riga o il colore di sfondo di un campo tramite espressioni di proprietà che fanno riferimento cf_amount_rule.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top