ok thanks, now I only have a doubt. Between the last row and the footer I should insert a graphic element that covers the empty space. To do that the only way I can think of is to delete the empty rows, except one. And let this one have the height of the space left. Is it possible?
I thought I had to calculate the height in advance because I have to insert a series of rows, which can extend over 1 or more pages. Then I have to put a footer in a fixed position at the bottom, and between the last row and the footer another element is required to cover the remaining empty space (in the last page). So I wanted to calculate the height of the subform that contains the rows to set the height of the subform above the footer
no, that cannot be done. I assume we are talking XFA in Designer.
In a dynamic setup as you describe, the final size of the subform, including the necessity to have a page brake (pagination), is determined when the form has been layouted in the renderer. The event layoutReady basically is fired when the form "knows" all the layout elements that are to be placed. At that point in time you cannot re-arrange everything. Print rendering does it once not repeatedly. No script will be able to calculate the size beforehand unless you know the size of each row (constant) and the number of rows in the data.
But why would you want to replace the subforms? Do you not want to throw a new page when the data is more than fits?