Questo esempio illustra come nascondere i pulsanti durante la stampa di un modulo, e come nascondere e mostrare gli oggetti modificando i valori di presenza durante l'esecuzione.
Nota: In alternativa, è possibile utilizzare la finestra di dialogo Generatore azioni del menu Strumenti, in modo da nascondere e mostrare oggetti nei moduli con layout scorrevole evitando di procedere alla scrittura di script. Per informazioni, vedere
Esecuzione di azioni nei moduli
In questo esempio, tutti gli oggetti modulo sono visualizzati sul modulo.
Per mostrare o nascondere gli oggetti, il compilatore può utilizzare gli elenchi a discesa all'interno dell'area Valori di presenza. Nel diagramma seguente, il campo Indirizzo è nascosto e il layout modulo si è modificato di conseguenza. Anche il pulsante Stampa modulo è invisibile.
Nota: Per mostrare e nascondere oggetti durante l'esecuzione, è necessario salvare il modulo come un file modulo XML dinamico di Acrobat.
Per visualizzare questo esempio di script e altri, vedere il LiveCycle Developer Center.
Scripting dei valori di presenza dei sottomoduli
Lo script dei valori di presenza dei sottomoduli utilizza un'istruzione switch per gestire le tre opzioni di presenza che un compilatore può applicare all'oggetto del sottomodulo:
switch(xfa.event.newText) {
case 'Invisible':
Subform1.presence = "invisible";
break;
case 'Hidden (Exclude from Layout)':
Subform1.presence = "hidden";
break;
default:
Subform1.presence = "visible";
break;
}
Scripting dei valori di presenza dei campi di testo
Lo script dei valori di presenza dei campi di testo richiede due variabili. La prima variabile memorizza il numero di oggetti contenuti in Subform1:
var nSubLength = Subform1.nodes.length;
La seconda variabile memorizza il nome del campo di testo selezionato dal compilatore nell'elenco a discesa Campi di testo:
var sSelectField = fieldList.rawValue;
Lo script seguente utilizza il metodo replace per rimuovere tutti gli spazi dal nome del campo memorizzato nella variabile sSelectField, che consente al valore dell'elenco a discesa di corrispondere al nome dell'oggetto nella palette Gerarchia:
sSelectField = sSelectField.replace(' ', '');
Questo script utilizza un ciclo For per scorrere tutti gli oggetti contenuti in Subform1:
for (var nCount = 0; nCount < nSubLength; nCount++) {
Se l'oggetto corrente in Subform1 è di tipo field e l'oggetto corrente ha lo stesso nome dell'oggetto selezionato dal compilatore, vengono eseguiti i seguenti casi switch:
if ((Subform1.nodes.item(nCount).className == "field") & (Subform1.nodes.item(nCount).name == sSelectField)) {
Lo script seguente utilizza un'istruzione switch per gestire i tre valori di presenza che un compilatore può applicare agli oggetti campo di testo:
switch(xfa.event.newText) {
case 'Invisible':
Subform1.nodes.item(nCount).presence = "invisible";
break;
case 'Hidden (Exclude from Layout)':
Subform1.nodes.item(nCount).presence = "hidden";
break;
default:
Subform1.nodes.item(nCount).presence = "visible";
break;
}
}
}
Scripting dei valori di presenza dei pulsanti
Lo script dei valori di presenza dei pulsanti richiede due variabili. Questa variabile memorizza il numero di oggetti contenuti in Subform1:
var nSubLength = Subform1.nodes.length;
Questa variabile memorizza il nome del pulsante selezionato dal compilatore nell'elenco a discesa Pulsanti:
var sSelectButton = buttonList.rawValue;
Lo script seguente utilizza il metodo replace per rimuovere tutti gli spazi dal nome del pulsante memorizzato nella variabile sSelectField, che consente al valore dell'elenco a discesa di corrispondere al nome dell'oggetto nella palette Gerarchia:
sSelectButton = sSelecButton.replace(/\s/g, '');
Questo script utilizza un ciclo For per scorrere tutti gli oggetti contenuti in Subform1:
for (var nCount = 0; nCount < nSubLength; nCount++) {
Se l'oggetto corrente in Subform1 è di tipo field e l'oggetto corrente ha lo stesso nome dell'oggetto selezionato dal compilatore, vengono eseguiti i seguenti casi switch:
if ((Subform1.nodes.item(nCount).className == "field") &
Subform1.nodes.item(nCount).name == sSelectButton)) {
Questo script utilizza un'istruzione switch per gestire i cinque valori di presenza che un compilatore può applicare agli oggetti pulsante.
Nota: La proprietà relevant indica se un oggetto deve essere visualizzato durante la stampa del modulo.
switch(xfa.event.newText) {
case 'Invisible':
Subform1.nodes.item(nCount).presence = "invisible";
break;
case 'Hidden (Exclude from Layout)':
Subform1.nodes.item(nCount).presence = "hidden";
break;
case 'Visible (but Don\'t Print)':
Subform1.nodes.item(nCount).presence = "visible";
Subform1.nodes.item(nCount).relevant = "-print";
break;
case 'Invisible (but Print Anyway)':
Subform1.nodes.item(nCount).presence = "invisible";
Subform1.nodes.item(nCount).relevant = "+print";
break;
default:
Subform1.nodes.item(nCount).presence = "visible";
break;
}
}
}
Scripting per ripristinare gli elenchi a discesa
Utilizzare il metodo resetData per ripristinare i valori predefiniti di tutti gli elenchi a discesa:
xfa.host.resetData();
Utilizzare il metodo remerge per riunire la struttura del modulo con i dati del modulo. In questo caso, il metodo ripristina efficacemente lo stato originario degli oggetti nell'area degli oggetti modulo:
xfa.form.remerge();