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