Questo esempio illustra come utilizzare i metodi di instance manager (contenuto nel modello di oggetto modulo XML) per eseguire operazioni sugli oggetti sottomodulo durante l'esecuzione. Per esempio, è possibile aggiungere o rimuovere le istanze di un sottomodulo, di una tabella o di una riga di tabella particolari.
Nel modulo seguente, il compilatore utilizza i quattro pulsanti per utilizzare i vari metodi di scripting di instance manager. Per esempio, quando il compilatore fa clic sul pulsante Aggiungi, una nuova istanza Subform2 viene aggiunta al modulo.
Nota: Il pulsante Sposta riordina le prime due istanze Subform2 e il pulsante Imposta visualizza il numero massimo di istanze Subform2. In entrambi i casi, può essere necessario aggiungere o rimuovere sottomoduli, oppure apportare modifiche ai dati nei campi di testo per visualizzare le modifiche apportate alle istanze Subform2.
Scripting per determinare se ad un modulo è stato aggiunto il numero massimo di sottomoduli
Lo script seguente determina se sul modulo è presente il numero massimo supportato di istanze Subform2. Se è presente il numero massimo di istanze supportate, lo script visualizza un messaggio. Altrimenti, al modulo viene aggiunta una nuova istanza Subform2.
if (methods.Subform2.instanceManager.count ==
methods.Subform2.instanceManager.max) {
xfa.host.messageBox("You have reached the maximum number of items allowed.",
"Instance Manager Methods", 1);
}
else {
methods.Subform2.instanceManager.addInstance(1);
xfa.form.recalculate(1);
}
Questo script può essere scritto anche utilizzando la notazione carattere di sottolineatura (_) per fare riferimento alle proprietà e ai metodi di instance manager, come illustrato:
if (methods._Subform2.count == methods._Subform1.max) {
xfa.host.messageBox("You have reached the maximum number of items
allowed.", "Instance Manager Methods", 1);
}
else {
methods._Subform2.addInstance(1);
xfa.form.recalculate(1);
}
Scripting per determinare se sul modulo esistono più sottomoduli da eliminare
Lo script seguente determina se sul modulo sono presenti istanze Subform2. In caso negativo, lo script visualizza un messaggio ad indicare che non è presente alcuna istanza. In caso siano presenti istanze, lo script rimuove la prima istanza dal modulo.
if (methods.Subform2.instanceManager.count == 0) {
xfa.host.messageBox("There are no subform instances to remove.",
"Instance Manager Methods", 1);
}
else {
methods.Subform2.instanceManager.removeInstance(0);
xfa.form.recalculate(1);
}
Questo script può essere scritto anche utilizzando la notazione carattere di sottolineatura (_) per fare riferimento alle proprietà e ai metodi di instance manager, come illustrato:
if (methods._Subform2.count == 0) {
xfa.host.messageBox("There are no subform instances to remove.",
"Instance Manager Methods", 1);
}
else {
methods._Subform2.removeInstance(0);
xfa.form.recalculate(1);
}
Scripting per visualizzare sul modulo quattro istanze sottomodulo
Lo script seguente visualizza sul modulo quattro istanze sottomodulo Subform2, indipendentemente dal numero di istanze presenti attualmente:
methods.Subform2.instanceManager.setInstances(4);
Questo script può essere scritto anche utilizzando la notazione carattere di sottolineatura (_) per fare riferimento alle proprietà e ai metodi di instance manager, come illustrato:
methods._Subform2.setInstances(4);
Scripting per scambiare la posizione sul modulo del primo e del secondo sottomodulo
Lo script seguente scambia la posizione sul modulo della prima e della seconda istanza Subform2.
methods.Subform2.instanceManager.moveInstance(0,1);
Questo script può essere scritto anche utilizzando la notazione carattere di sottolineatura (_) per fare riferimento alle proprietà e ai metodi di instance manager, come illustrato.
methods._Subform2.moveInstance(0,1);