Hi everyone, First: apologies for the long email; this got a little complicated. Summary: there may be a bug in setting up calculate field for widgets? Parts: - calculator.tex - A M(N)WE - The MWE Only Sort of Works # calculator.tex On 13 Nov 2019, at 10:26, Pablo Rodriguez wrote:
Hi Paul,
I wonder whether tex/texmf-context/doc/context/examples/calculator/calculator.tex from the ConTeXt Suite might be what you look for.
Just in case it helps,
It does (and is quite something!); it's not quite what I need, though. I'd like to take advantage of the internal _calculate_ event when a field updates - the calculator.tex PDF appears to be entirely programmatically event driven? (Which could certainly work for my application, but I want to try to keep this as simple for the user as possible.)
Pablo
# A M(N)WE Here's a Minimal Working Example, with some caveats: --- begin MWE --- \usemodule[fields] \starttext \setupinteraction [state=start] \startJScode{tallyUp} var a_fld = this.getField("A"); var b_fld = this.getField("B"); event.value = a_fld.value + b_fld.value; \stopJScode \setupfield[numField][reset,horizontal] [height=2pc,rulethickness=1pt,framecolor=lightgrey] \setupfield[totalField][reset,horizontal] [ height=2pc, rulethickness=1pt, framecolor=lightgrey, option=readonly, calculate=JS(tallyUp), ] \definefield[A][line][numField][] \definefield[B][line][numField][] \definefield[Total][line][totalField][] A: \field[A] B: \field[B] \blank[big] Total: \field[Total] \stoptext --- end MWE --- The idea here is that the resulting PDF will have three fields: A, B, and Total. Whenever a value is placed in A and/or B, on blur the value in Total will get updated automatically. # The MWE Only Sort of Works Things that are working: - I can put values in A and B - I can't directly manipulate Total (read-only seems to be working fine) Thing that doesn't work: - Total does not get automatically updated (for _any_ of the JS-enabled/tolerant PDF viewers I have.) Upon closer inspection of the resulting PDF with PDF Studio 2019 (I don't have Acrobat Pro at the moment), I can confirm some things: - The appropriate JavaScript is placed in the form, as a custom calculation script for the Total field. (This leads me to believe that the calculate= key in \setupfield is working.) - If I try to check the calculation order of the PDF, PDF Studio 2019 gives me the warning: "There are no fields with calculations." (So maybe there's a magic bit that needs to get flipped somewhere?) - If I use PDF Studio 2019 to change the calculate attribute on the field Total to something else, save, and then revert the calculate attribute _back_ to the custom script as supplied from the .tex file and save, the Total field starts working as expected, and I can see the field in the calculation ordering. If I can get the PDF to work in PDF Studio 2019, I can confirm that it also works in all of the other JS-enabled/tolerant PDF viewers I have. # Summary It looks like the appropriate JavaScript script is getting attached to the field for a calculate event, but is not being run? Or something? Anyway, that's as far as I've gotten. Any insight or assistance is appreciated; I'll see if I can make more progress. Thanks! -Paul