InvalidGetError: Get not possible, invalid or unknown error trying to get Field.rect
Good morning all.
I am building a smart multi-purpose form. One of its features is to allow the user to enter a vertical section at a specific location on a vessel drawing. Once the location is selected, a vertical line is displayed together with a set of data fields where the user is supposed to enter water depths. In order to do this, I use the rect data from specific fields as base and then I add the appropriate figures to create a new set of fields at the selected location. Here is the full code (runs when you click a button on the page. This page is a template)
//var FieldGND="P"+this.pageNum+".GND.";
var FieldGND="S.";
// the following are the numbers for min and max frame numbers
var FRmax=226;
var FRmin=-5;
// the following are actual frame numbers marking changes in frame spacing
var fr1=FRmin;
var fr2=13;
var fr3=36;
var fr4=206;
var fr5=FRmax;
// the following are x-coordinates in points for frame locations marking changes in frame spacing
var pos1=93.03;
var pos2=122.03;
var pos3=169.71;
var pos4=525.39;
var pos5=556.39
var FRnum=parseInt(app.response({cQuestion:"Enter frame number (" + FRmin + " to " + FRmax + ")",cTitle:"Insert position by frame number",cDefault:"0"}));
if(FRnum>FRmax || FRnum<FRmin){
app.alert("Frame number out of range. Must be between " + FRmin + " and " + FRmax);
}else{
var FRxpos=0.0;
// use linear regression
if(FRnum<=fr2){
FRxpos = pos1+(FRnum-fr1)*(pos2-pos1)/(fr2-fr1);
}else if(FRnum<=fr3){
FRxpos = pos2+(FRnum-fr2)*(pos3-pos2)/(fr3-fr2);
}else if(FRnum<=fr4){
FRxpos = pos3+(FRnum-fr3)*(pos4-pos3)/(fr4-fr3);
}else if(FRnum<=fr5){
FRxpos = pos4+(FRnum-fr4)*(pos5-pos4)/(fr5-fr4);
}
//app.alert("1");
var txt0rect=[FRxpos-0.5,536.88,FRxpos+0.5,650.84];
var txt1rect=this.getField("ACT.F.004").rect; //this line fails
var txt2rect=this.getField("ACT.F.017").rect;
var txt3rect=this.getField("ACT.S.009").rect;
var txt4rect=this.getField("ACT.S.016").rect;
var txtFPOS=this.getField("ACT.FR1.0").rect;
//app.alert("2");
txt1rect[0]=FRxpos-7.25;txt1rect[2]=FRxpos+7.25;
txt2rect[0]=FRxpos-7.25;txt2rect[2]=FRxpos+7.25;
txt3rect[0]=FRxpos-7.25;txt3rect[2]=FRxpos+7.25;
txt4rect[0]=FRxpos-7.25;txt4rect[2]=FRxpos+7.25;
txtFPOS[0]=FRxpos-1.5;
txtFPOS[2]=FRxpos-7.5-1.5;
//app.alert("3");
var txtrot=90;
var txtsize=7;
//app.alert(FieldGND+"frame."+FRnum+".BHD");
var bhd=this.addField("frame."+FRnum+".BHD","text",this.pageNum,txt0rect);
//bhd.borderStyle=border.d;
bhd.strokeColor=color.red;
bhd.readonly=true;
var f1=this.addField("frame."+FRnum+".FBp","text",this.pageNum,txt1rect);
f1.rotation=90;
f1.textColor=color.blue;
f1.strokeColor=color.red;
f1.textSize=txtsize;
f1.alignment="center";
var f2=this.addField("frame."+FRnum+".FBs","text",this.pageNum,txt2rect);
f2.rotation=90;
f2.textColor=color.blue;
f2.strokeColor=color.red;
f2.textSize=txtsize;
f2.alignment="center";
var f3=this.addField("frame."+FRnum+".SNDp","text",this.pageNum,txt3rect);
f3.rotation=90;
f3.textSize=txtsize;
f3.strokeColor=color.red;
f3.alignment="center";
var f4=this.addField("frame."+FRnum+".SNDs","text",this.pageNum,txt4rect);
f4.rotation=90;
f4.textSize=txtsize;
f4.strokeColor=color.red;
f4.alignment="center";
var f=this.addField("frame."+FRnum+".FPOS","text",this.pageNum,txtFPOS);
f.rotation=90;
f.alignment="center";
f.value="FR"+FRnum;
f.textColor=color.red;
f.fillColor=color.white;
f.strokeColor=color.red;
f.textSize=5;
f.readonly=true;
}and this is the line where the code fails...
var txt1rect=this.getField("ACT.F.004").rect;
and I'm sure the rest will fail as well.
Now this was working perfectly while the fields were created on a regular page. However when this page was turned into a template (which is spawned when required) the code stopped working and fails at the line above with the following error:
InvalidGetError: Get not possible, invalid or unknown. Field.rect:44:Field Button01:Mouse Up
The page is spawned from an option button on another page, using this.getTemplate("GND").spawn(this.numPages-1,false,false);
Funny thing is, out of curiosity I extracted the page to another file and everything works like a charm. Is this some kind of bug/limitation of templates or am I missing something?
Thank you all in advance for your help.
Using Windows 10, Acrobat DC Pro (2015 release)
