Argomento precedente: Precompilazione di una casella combinata in base a un oggetto dati di reportArgomento successivo: Utilizzo delle espressioni JavaScript nei campi


Utilizzo dell'input dell'utente per compilare e precompilare una casella di selezione.

È possibile utilizzare l'input fornito dall'utente in uno o più campi nel modulo per determinare i valori di una casella di selezione. Questa tecnica risulta utile per offrire all'utente due set di diverse scelte valide presenti nella propria fonte dati, tuttavia non gli si consente di specificare una scelta personalizzata. In tal modo si rafforza la standardizzazione e si evita l'immissione di scelte non valide, fornendo però all'utente diverse opzioni di scelta.

Un'applicazione comune di questa tecnica si verifica su un modulo con caselle di selezione per paese e stato. Grazie agli attributi reportobjid e reportobjvars, è possibile configurare la caselle di selezione dello stato in modo da visualizzare solo gli stati del paese selezionato dall'utente.

Per utilizzare questa tecnica di precompilazione di una casella di selezione, in base alla selezione dell'utente in una casella precedente, attenersi alla procedura che segue. Questo processo utilizza come esempio di esecuzione lo scenario paese-stato.

  1. Nel Generatore di report, creare un oggetto dati che richieda all'origine dei dati (ad esempio MDB) quelli desiderati nella prima casella di selezione. La query deve restituire l'elenco dei valori possibili e lo inserisce nell'elenco della casella combinata. Questa fase fa parte della procedura di precompilazione di una casella combinata in base a un oggetto dati di report.

    Nell'esempio di esecuzione, creare un oggetto dati di report per recuperare l'elenco di paesi dal database.

    Quando il modulo viene visualizzato, l'oggetto di dati del report viene eseguito e i risultati vengono inseriti nella casella combinata.

    Annotarsi l'ID dell'oggetto dati per riferimenti futuri.

    Considerare la seguente query di esempio che un oggetto dati richiede al MDB. Questo esempio restituisce l'elenco dei paesi disponibili per il servizio o l'opzione di servizio al quale è associato il modulo

    SELECT country_id,country_name from my_country_table
    

    Questa query effettua quanto segue:

  2. Sul modulo, aggiungere una casella di selezione, che rappresenta uno degli elementi di un modulo.
    1. Per l'attributo _id, specificare un nome significativo, quindi salvare il modulo. Registrare il valore per riferimenti futuri quando si specifica l'attributo reportobjvars.
    2. Per il valore dell'attributo HTML reportobjid, specificare l'ID dell'oggetto dati, quindi salvare il modulo.

    Nota: quando si utilizza un oggetto dati per compilare una casella combinata, non aggiungere altre opzioni alla casella di selezione, poiché verrebbero ignorate (non utilizzate) quando l'utente apre il modulo. Tutte le opzioni per la casella di selezione vengono ignorate, viene preso in considerazione solo l'oggetto dati.

    1. Per l'attributo multiple della casella di selezione, specificare Falso, in modo che gli utenti possano selezionare una sola opzione della casella combinata. Salvare il modulo.
    2. Per l'attributo title (testo del suggerimento), se lo si desidera, è possibile specificare del testo di istruzioni, ad esempio "Fare clic sulla freccia e selezionare un paese". Salvare il modulo.
    3. Se lo si desidera, è possibile modificare il testo visualizzato e sostituire "Seleziona" del gruppo di selezione con un nome più rappresentativo. A tal fine selezionare l'elemento nella struttura componenti e fare clic sull'icona Rinomina nella parte superiore della struttura.

      Nota: è possibile eventualmente localizzare il testo di questa descrizione di comando o il nome della casella di selezione se il modulo è utilizzato da utenti con impostazioni locali differenti.

    4. Lasciare vuoto l'attributo value, perché viene compilato con il primo risultato restituito dalla query.
  3. Creare un secondo oggetto dati del report per recuperare un elenco di valori dal database, in base alla selezione dell'utente nella prima casella di selezione. In questo oggetto dati di report, specificare alcune variabili del report nella query che vanno compilate utilizzando l'input fornito dall'utente in altri campi del modulo.

    Nell'esempio di esecuzione, creare un secondo oggetto dati di report per recuperare gli stati dal database, in base al paese selezionato dall'utente. Attenersi alle linee guida nella Fase 1 per creare il secondo oggetto dati di report.

  4. Nel modulo, aggiungere la seconda casella di selezione. Questa casella va precompilata, in base alla selezione che l'utente ha effettuato nella prima casella di selezione. Attenersi alle linee guida nella Fase 2 per creare la seconda casella di selezione, tuttavia tenere presenti le considerazioni che seguono:
  5. Nella seconda casella di selezione, specificare l'attributo reportobjvars nel formato seguente: $({'reportvar':value}).

    Un valore valido è uno dei seguenti:

    Nell'esempio di esecuzione, creare una seconda casella di selezione da compilare con gli stati dal database, in base al paese selezionato dall'utente. Per l'attributo reportobjvars della casella di selezione dello stato, specificare la funzione JavaScript predefinita denominata ca_fdGetSelectedOptionValues, come segue:

    $({'selected_country':ca_fdGetSelectedOptionValues ('<form _id> ','country' )[0]})
    
    form _id

    Specifica il valore dell'attributo _id del modulo che contiene la prima casella di selezione. Si fa riferimento a questo modulo nella Fase 2.

    paese

    Specifica il valore dell'attributo _id del modulo della prima casella di selezione. Il valore viene creato e registrato nella Fase 2.

  6. Nella prima casella di selezione, impostare l'attributo onchange per recuperare i dati per la seconda casella di selezione, non appena l'utente operi una selezione nella prima casella. Per l'attributo onchange, specificare la funzione JavaScript predefinita denominata ca_fdFetchSelectData, nel formato che segue:
    ca_fdFetchSelectData('<form _id>','<field _id>'); 
    
    form _id

    Specifica il valore dell'attributo _id del modulo che contiene la seconda casella di selezione. Si fa riferimento a questo modulo nella Fase 4.

    field_id

    Specifica il valore dell'attributo _id del modulo che contiene la seconda casella di selezione. Il valore viene creato e registrato nella Fase 4.

    Nel nostro esempio di esecuzione, impostare l'attributo onchange per la casella di selezione al valore che segue:

    ca_fdFetchSelectData('<form _id>','<state field _id>'); 
    
  7. Provare il modulo per verificare che funziona nel modo desiderato.

Si consiglia di controllare questo modulo con un servizio in un ambiente di prova prima di utilizzarlo in un ambiente di produzione.