Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Many Calculations Causing Form to Pause

New Here ,
Sep 19, 2016 Sep 19, 2016

I have created a 6 page QC form with rankings in Adobe Acrobat XI.  There are 20 sections with approx 11 questions in each section.  Each question is a dropdown with choices NA,1,2,3.  The associated export values are 0,3,3,3.  I have three calculations after each section - points possible, points earned, percentage.

points possible example:

event.value = this.getField("Misc1").value + this.getField("Misc2").value +this.getField("Misc3").value +this.getField("Misc4").value +this.getField("Misc5").value +this.getField("Misc6").value +this.getField("Misc7").value +this.getField("Misc8").value +this.getField("Misc9").value +this.getField("Misc10").value;

points earned: simple sum of fields in section (e.g. Misc1, Misc2, etc)

percentage example:

var numerator = +getField("Points earned_18").value;

var denominator = +getField("Points possible_18").value;

event.value = denominator !== 0 ? numerator / denominator : "";

I also have a total calculation for points possible, points earned, and percentage.  I have checked the calculation order and it is correct.  When I run the form I have to wait about 5 seconds when moving between each drop down field as the whole form is trying to calculate.  Any suggestions?

TOPICS
Acrobat SDK and JavaScript , Windows
189
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Sep 19, 2016 Sep 19, 2016
LATEST

You may have to optimize the calculations.

Scripting languages interpret each action when it is encountered and this done each time the script is encountered. This means each line is syntax checked, converted to execution tokens and then the tokenized object is executed. If one uses document level functions with or without parameters, then syntax checking and tokenization is done only once.

I would look at creating a sum function to sum the passed fields or the field values.

Also putting using one field to perform all the calculations  can speed things up by eliminating the need to read the code for each field that needs a calculation.

You might also improve the speed by using hierarchical field names so getting the field objects from the field names is reduced to getting the parent field and then creating an array of the children field objects instead of getting each field by name.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines