Sono stati creati due nuovi metodi, all'interno di DMWAMHND, che permettono di effettuare i controlli e le assegnazioni alle selezioni DA/A.
£DMWAMHND.um_CheckFldRangeA per i campi alfanumerici
£DMWAMHND.um_CheckFldRangeN per i campi umerici
Il metodo deve essere richiamato all'interno della BEGINCHECK e una volta per ogni singola selezione.
I parametri da passare sono:
pAlfaDA (pNumeroDA in caso di campo numerico) : campo selezione DA
pAlfaA (pNumeroA in caso di campo numerico) : campo selezione A
pObbligatori : passare ad TRUE se la selezione deve essere immessa obbligatoriamente
pDescrizione : passare la variabile multilingua (plurale) che identifichi l'oggetto della selezione (ad es. Clienti, Linee, Date Documenti)
pErrori : passare sempre il campo £R_TOTERR
pSelezioniValide: passare sempre il campo £R_TOTSELV
Esempio:
£DMWAMHND.Um_CheckFldRangeN PNUMERODA(£PGDCLI) PNUMEROA(£PGACLI) PDESCRIZIONE(*MTXTEDCLIENTI) POBBLIGATORI(TRUE) PERRORI(£R_TOTERR) PSELEZIONIVALIDE(£R_TOTSELV)
Il metodo effettua il controllo della sequenza e, se impostato, dell'obbligatorietà dei campi passati. In caso di errore verrà utilizzata la variabile multilingua passata all'interno del parametro "pDescrizione" per la creazione del relativo messaggio. Nel caso non siano presenti errori verranno effettuate le classiche assegnazioni secondo le seguenti regole:
se entrambi i parametri DA / A sono vuoti, quello A viene assegnato con *HIVALALP o *HIVALNUM a seconda della natura alfanumerica o numerica.
se è inserito SOLO il parametro DA, quello A viene assegnato = DA.
Es.
IF £DaCodice = *blank and £ACodice = *blank
£ACodice := *HIVALALP
ELSE
IF £DaCodice <> *blank and £ACodice= *blank
£ACodice := £DaCodice
ENDIF
ENDIF
Il parametro "pSelezioniValide" va utilizzato quando, in presenza di molti range, che almeno uno sia obbligatorio.
Si procede azzerando il campo £R_TOTSELV prima della BEGINCHECK, poi lo si passa a tutti i metodi di controllo range, infine si controlla il valore (prima dell'ENDCHECK)
Se il valore del campo è 0 vuol dire che l'utente non ha specificato nessuna selezione, se > 0 l'utente ha specificato almeno un range.