Använda instanshanterarens metoder för att kontrollera delformulär

Det här exemplet visar hur du kan använda instanshanterarens metoder (som ingår i XML-formulärobjektmodellen) för att utföra åtgärder på delformulärsobjekt under körning. Du kan t ex lägga till och ta bort instanser av ett visst delformulär, tabell eller tabellrad.

I följande formulär utnyttjar formuläranvändaren de fyra knapparna för att använda instanshanterarens olika metoder. När formuläranvändaren t ex klickar på knappen Lägg till läggs en ny Subform2-instans till i formuläret.

Obs! Knappen Flyttta flyttar om de två första Subform2-instanserna, och knappen Ange visar det högsta antalet Subform2-instanser. I båda fallen kan du behöva lägga till och ta bort delformulär, eller redigera informationen i textfälten för att se ändringarna av Subform2-instanserna.

Skript för att fastställa om du har lagt till det maximala antalet delformulär till ett formulär

Följande skript fastställer om formuläret innehåller det maximala antalet Subform2-instanser. Om det högsta antalet föreligger visas ett meddelande. I annat fall läggs en ny Subform2-instans till i formuläret.

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

Du kan även skriva det här skriptet genom att använda understrykning (_) för att referera till instanshanterarens egenskaper och metoder, så som visas här:

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

Skript för att fastställa om det finns fler delformulär att ta bort från formuläret

Följande skript fastställer om formuläret innehåller någon Subform2-instans. Om det inte finns någon visar skriptet ett meddelande som indikerar att det inte finns några instanser. Om det finns instanser tar skriptet bort den första från formuläret.

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

Du kan även skriva det här skriptet genom att använda understrykning (_) för att referera till instanshanterarens egenskaper och metoder, så som visas här:

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

Skript för att tvinga fyra delformulärsinstanser att visas på formuläret

Det följande skriptet tvingar fyra Subform2-instanser att visas på formuläret, oavsett hur många instanser som finns för tillfället:

    methods.Subform2.instanceManager.setInstances(4);

Du kan även skriva det här skriptet genom att använda understrykning (_) för att referera till instanshanterarens egenskaper och metoder, så som visas här:

    metoder._Subform2.setInstances(4);

Skript för att tvinga det första och det andra delformuläret att byta plats på formuläret

Följande skript tvingar den första och den andra Subform2-instansen att byta plats på formuläret.

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

Du kan även skriva det här skriptet genom att använda understrykning (_) för att referera till instanshanterarens egenskaper och metoder, så som visas här.

    metoder._Subform2.moveInstance(0,1);