I have been fighting with my form for over an hour, and I am probably too tired and not seeing the solution because it is after midnight in my time zone.
I am recreating in Adobe LiveCycle Designer 8 what was originally designed in an Excel workbook nearly two decades ago. I did not import the workbook into LiveCycle, since I wanted to avoid all of the macros that are working behind the scenes. (I know how to write VBA, but it is not my workbook.)
I have been learning LiveCycle as I have been going, and I am getting better it with each passing hour and day. I managed to create buttons that add and remove rows in tables on two different pages. The current table that I am working on is for a competition judge to enter their scores. Everything is ready, but when I preview the form, the table displays two body rows, instead of the single one that I created. (The buttons that I mentioned earlier, add and remove rows with similar settings in their respective tables that are selected for the one that I am experiencing problems with.)
What I have discovered so far, is that when I set the footer row to 'Include Footer Row in Final Page', I get the duplicate row. When I clear that setting, I see only one row displayed. There is over 1.5" of space below the footer row on the master page, so space should not be an issue.
I have turned on and off different settings within the table in a vain attempt to get it to display properly. Like I said earlier, I am probably too tired to troubleshoot properly at this stage.
Any ideas, suggestions, or insights will be appreciated.
Hi, I got your form, but I don't see the problem. Which one it the table your're talking about?
What I see is that you heavily using the resolveNode() method, which makes you form really slow since your're always starting at the root node of you form using xfa.resolveNode("xfa.form …"). This is unneccessary because you can address nodes directly by using their SOM expression.
For example look at the click event under form1.sfSpeakers.tblSpeakers.rAddSpeaker.btnAddSpeaker. Your current way is to resolve each target beginning from the root node which is slowest possible way to do this.
Another sample for the initialize event under form1.sfSpeakers.tblSpeakers.rSpeaker.nfSpeakerOrder. Don's use the resolveNode() method. Don't use the initialize event for this purpose. Why? Because the event only fires once so the vaues won't get updated until you reopen the form next time. This can lead into confusion if you delete instances.
Use the SOM expression relative to an object. In this case use the repeated itself and its index change event which is form1.sfSpeakers.tblSpeakers.rSpeaker. Since the field nfSpeakerOrder is a nested object you can simply write this short code.
nfSpeakerOrder.rawValue = this.index + 1;
Btw: There'e a function in the script editor that helps to get the SOM expressions. Place the text cursor at the position of you code you want enter the SOM expression. Then move the mouse over the object you want the reference, hold down [Ctrl] so the mouse arrow becomes a "v" then click the left mouse button. The SOM expression of this object then is pasted into the position in script editior you've selected before.