Riferimento a oggetti senza nome e ripetuti

Con Designer è possibile creare sia oggetti senza nome che più oggetti con lo stesso nome. È inoltre possibile creare calcoli e script per accedere e modificare proprietà e valori di oggetti senza nome utilizzando il simbolo cancelletto (#) e valori di occorrenza degli oggetti con la notazione parentesi quadre ([ ]). FormCalc interpreta correttamente i caratteri simbolo cancelletto (#) e parentesi quadre ([ ]), non è così per JavaScript. Per accedere al valore di un campo di testo in una situazione in cui ricorre il simbolo cancelletto (#) o le parentesi quadre ([ ]), utilizzando JavaScript, è necessario utilizzare il metodo resolveNode insieme a una sintassi di riferimento completa o abbreviata.

Ad esempio, quando si crea un nuovo modulo vuoto, per impostazione predefinita, il nome del sottomodulo che rappresenta la pagina del modulo è un sottomodulo senza nome con un valore di occorrenza pari a 0. Nell'immagine seguente viene mostrata la gerarchia di modulo in un nuovo modulo con denominazione oggetti predefinita.

Il sottomodulo senza titolo che rappresenta la prima pagina del modulo ha un numero di occorrenza pari a 0. In questa situazione, entrambe le sintassi di riferimento seguenti possono accedere al valore del campo di testo nella gerarchia di modulo sopra in un nuovo modulo che utilizza condizioni di denominazione predefinite:

    xfa.form.form1.#subform.TextField1.rawValue 
    xfa.form.form1.#subform[0].TextField1.rawValue
Nota: Per impostazione predefinita, se non si specifica un valore di occorrenza per un oggetto, la sintassi di riferimento accede alla prima occorrenza dell'oggetto.

FormCalc riconosce la sintassi di riferimento completa sopra e la interpreta direttamente. Per accedere allo stesso valore utilizzando JavaScript, è necessario utilizzare uno dei moduli del metodo di scripting resolveNode:

    xfa.resolveNode("xfa.form.form1.#subform.TextField1").rawValue; 
    xfa.resolveNode("xfa.form.form1.#subform[0].TextField1").rawValue;

Se si aggiunge una nuova pagina al modulo, per impostazione predefinita, il nome del sottomodulo che rappresenta la nuova pagina è senza titolo; tuttavia, il valore di occorrenza per il nuovo sottomodulo è impostato su 1. È possibile specificare il nuovo sottomodulo senza nome utilizzando una sintassi di riferimento simile come sopra:

    xfa.form.form1.#subform[1].TextField1.rawValue // FormCalc 
    xfa.resolveNode("xfa.form.form1.#subform[1].TextField1").rawValue; // JavaScript
Nota: Le opzioni di completamento istruzioni disponibili nell'Editor di script includono oggetti senza nome all'inizio dell'elenco. Oggetti con più valori di occorrenza vengono visualizzati solo una volta nell'elenco, rappresentando la prima occorrenza dell'oggetto. Per accedere a un valore di occorrenza diverso dalla prima occorrenza, è necessario aggiungere manualmente il valore di occorrenza alla sintassi di riferimento.

È possibile utilizzare il metodo resolveNode per fare riferimento a oggetti all'interno di altre istruzioni di sintassi di riferimento. Ciò può contribuire a ridurre la quantità di script necessari per fare riferimento a un oggetto, una proprietà o un metodo particolari. Ad esempio, è possibile semplificare la sintassi di riferimento che indica un campo di testo nella seconda pagina del modulo nella seguente istruzione:

    xfa.form.form1.resolveNode("#subform[1].TextField1").rawValue; // JavaScript

Per ulteriori informazioni sul metodo resolveNode vedere resolveNode.