Click event of a button only delets one subform and after doesn`t work

sc203718

16-01-2019

The project is done in Adobe LiveCycle Designer in JavaScript.

I have an add button which adds one instance of a subform and a delete button which deletes one instance of a subform.

When i click delete it deletes only one subform. If i click it again it does nothing...What should i do ?

//form1.tabelAnexa.Row[1].veg2.veg1.prod.instanceManager.removeInstance(form1.tabelAnexa.Row[1].veg2.veg1.prod.instanceManager.count-1);

_veg1.removeInstance(1);

var rd = frmO.caption.value.resolveNode("#text").value;;

if (frmO.rawValue == null){

app.alert("Mai intai trebuie sa completati campul: " + rd + "!");

xfa.host.setFocus(frmO);

xfa.host.openList(frmO);

}

else{

/*

   This button will Remove the current instance of the repeating subform or table row.

   bCalc: Flag - true if the removed instance might be referenced by other calculations, otherwise false.

   message: The error message displayed.

*/

var bCalc = true;

var message = "Ați atins numărul minim de elemente permise.\n\nVor fi sterse datele introduse in campurile acestui element!";

// DO NOT MODIFY THE CODE BEYOND THIS POINT - 10.0.2.20120224.1.869952.867557 - Subform_Instance_Controls_IRM.xfo.p4

var oWrapper = this.parent.parent; // The outer subform built in to the object, enclosing the button group.

var oTargetSubform = oWrapper.parent; // The subform or table row the controls are intended to manipulate.

var oManager = oTargetSubform.instanceManager; // Get the instance manager.

var nMinCount = oManager.occur.min; // Get the minimum number of subform occurrences allowed.

var nSubCount = oManager.count; // Get the current number of instances.

// Proceed if the minimum number of subform occurrences has not been reached.

if (nSubCount > nMinCount) {

// Invoke the Instance Manager.

oManager.removeInstance(oTargetSubform.index);

// Fire the form calculations.

if (bCalc == true) {

// Execute all the form calculations.

xfa.form.recalculate(1);

}

} else {

var raspuns = xfa.host.messageBox(message,"Remove Item",2,2);

if (raspuns == 4){

_prod.setInstances(0);

_prod.setInstances(1);

}

}

// END OF DO NOT MODIFY

}

Accepted Solutions (1)

Accepted Solutions (1)

Magus069

MVP

16-01-2019

Hi there,

to correctly remove a subform with a button inside it with additional code, you must make sure to remove that subform at the end of all code.

What is happening here, is that you have a button within a subform, and it has numerous lines of code, on the first line it removes itself from the form... just by removing its instance the code cannot continue to execute because the object doesn't exist anymore...

So make sure to execute all of your code that does not include the object itself and once everything is done, only then you can remove the parent's instance of the object.

I hope this will help