Subformulieren besturen met de methoden van Instance Manager

In dit voorbeeld ziet u hoe u de methoden van Instance Manager (onderdeel van het XML-formulierobjectmodel) gebruikt om bewerkingen op subformulierobjecten uit te voeren bij uitvoering Zo kunt u bijvoorbeeld exemplaren van een bepaald subformulier, of een bepaalde tabel of rij toevoegen of verwijderen.

In het volgende formulier kan de invuller de verschillende Instance Manager-scriptmethoden toepassen met behulp van de vier knoppen. Als de invuller bijvoorbeeld op de knop Toevoegen klikt, wordt er een Subform2-exemplaar aan het formulier toegevoegd.

Opmerking: met de knop Verplaatsen kunt u de eerste twee Subform2-exemplaren verschuiven en met de knop Instellen geeft u het maximum aantal toestane Subform2-exemplaren weer. In beide gevallen is het wellicht nodig om subformulieren toe te voegen of te verwijderen, of moet u de gegevens in de tekstvelden aanpassen om de wijzigingen in de Subform2-exemplaren weer te geven.

Een script maken om te bepalen of een formulier het maximum aantal subformulieren bevat

Met het volgende script kunt u bepalen of het ondersteunde maximum aantal Subform2-exemplaren aan het formulier is toegevoegd. Als dit het geval is, wordt er een bericht weergegeven. Anders wordt er een Subform2-exemplaar aan het formulier toegevoegd.

    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); 
}

U kunt in dit script ook een liggend streepje (_) gebruiken om naar de eigenschappen en methoden van Instance Manager te verwijzen, zoals u hier ziet:

    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); 
}

Een script maken om te bepalen of er meer subformulieren van het formulier kunnen worden verwijderd

Met het volgende script wordt bepaald of er Subform2-exemplaren op het formulier voorkomen. Als dit niet het geval is, wordt hiervan melding gemaakt in een bericht. Zijn er wel Subform2-exemplaren, dan wordt het eerste exemplaar van het formulier verwijderd.

    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); 
    }

U kunt in dit script ook een liggend streepje (_) gebruiken om naar de eigenschappen en methoden van Instance Manager te verwijzen, zoals u hier ziet:

    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); 
    }

Een script maken om vier subformulierexemplaren op het formulier weer te geven

Met het volgende script worden er vier Subform2-exemplaren op het formulier weergegeven, ongeacht hoeveel exemplaren er al zijn:

    methods.Subform2.instanceManager.setInstances(4);

U kunt in dit script ook een liggend streepje (_) gebruiken om naar de eigenschappen en methoden van Instance Manager te verwijzen, zoals u hier ziet:

    methoden._Subform2.setInstances(4);

Een script maken om het eerste en tweede subformulier van plaats te laten wisselen op het formulier

Met het volgende script wisselen het eerste en het tweede Subform2-exemplaar van plaats op het formulier.

    methods.Subform2.instanceManager.moveInstance(0,1);

U kunt in dit script ook een liggend streepje (_) gebruiken om naar de eigenschappen en methoden van Instance Manager te verwijzen, zoals u hier ziet:

    methoden._Subform2.moveInstance(0,1);