Dear Readers and Fellow Form Developers,
The time has come for me to focus my extra energy on other goals and projects at Adobe and at home.
I have thoroughly enjoyed helping the XFA community for these past 4.5 years. All of the content on this blog was a direct result of your questions and I learned a great deal about Adobe’s XFA technology and its LiveCycle Enterprise Suite along the way. Thank you!
I leave you now with a final “form to end all forms” (in my mind, anyway): A version of the classic Tank Wars game implemented entirely in XFA + JavaScript.
Why do this, you wonder? Well, it was a good challenge, you couldn’t embed Flash in an XFA form back then and I wanted to do something that would really put LiveCycle Designer’s Script Editor through its usability paces.
Comments are now closed on all posts and pages except for this one and the XFA Tank Wars page which will close on December 31, 2010. I will continue to host this blog for your reference and bookmarks however I cannot guarantee it will be available forever.
Good luck on all your present and future form development projects.
Stefan
Posted by Stefan Cameron on December 3rd, 2010
Filed under
General,
Instance Manager,
Scripting,
Tutorials,
XFA
Did you know that the list portion of a drop down list field can be displayed programmatically? You can set focus to the field and force its drop list to be displayed all in a single API call:
xfa.host.openList(@object)
xfa.host.openList(@string) -- deprecated since XFA 2.6
where @object is a reference to the drop down list field and @string is the SOM expression of the drop down list field.
xfa.host.openList(myDropDownList); // set focus/show the drop list
The second form of the API has been deprecated since XFA 2.6 which means that since Designer 8.1, it is preferred to use the first form which takes a reference to the field rather than its SOM expression.
If you’re using Designer 8.0 or earlier, you can get the SOM expression of any field by using its somExpression property:
xfa.host.openList(ddlInDesigner71.somExpression)
This works in both JavaScript and FormCalc with the same syntax.
Now if only there was a way to programmatically show the drop calendar of a date/time field…
Posted by Stefan Cameron on May 31st, 2010
Filed under
Scripting,
Tips,
Tutorials,
XFA
Many of you have been requesting some debugging features for XFA Forms (and I’m sure many more of you just haven’t voted for it yet). It so happens that Acrobat Pro has a JavaScript Debugger which can be used — to a limited extent — with XFA Forms. See John Brinkman’s post to learn more about it — thanks John!
As he puts it, there are limitations, the biggest ones of them being, in my opinion, the inability to debug script objects and the inability to retain breakpoints between debugging sessions. Nonetheless, this tool can give you way more insight than the good old “JavaScript Console + saveXML(‘pretty’)” combination can in certain cases, and it does it in a nice tree to boot!
Posted by Stefan Cameron on March 12th, 2010
Filed under
Acrobat,
Debugging,
Scripting,
Tutorials,
XFA
Paul Guerette, a colleague of mine at Adobe, will be giving a “tech talk” eSeminar on connecting forms to databases over at AcrobatUsers.com on Tuesday, March 23, 2010, at 10am PST (1pm EST).
If you have been struggling with connecting a form to a database, are wanting to know what the best practices and/or security concerns are, or have some specific questions you would like to ask, I highly recommend you attend the session. It’s free to attend (and free to become a member in order to attend)!
I’ll be answering chat questions “live” as the session unfolds. I hope you can join us!
Posted by Stefan Cameron on March 10th, 2010
Filed under
Acrobat,
Data Binding,
Designer,
Scripting,
Tutorials,
XFA
I thought I would point-out a nice improvement that was made to XFA <subform> elements back in XFA 2.8: The addition of the access property.
In days of yore, if you wanted to disable all fields and exclusion groups (for the sake of brevity, I’ll refer to these collectively as “fields” in this article) in a particular section of your form, you would’ve had to write a script that recursively drilled down into all children of that section looking for fields to disable. This is because the access attribute only applied to fields.
With this change, assuming the section in question is contained within a subform, you can now easily disable all fields contained within it simply by setting the subform‘s access attribute to “readOnly”!
Continue reading…
Posted by Stefan Cameron on March 8th, 2010
Filed under
Scripting,
Tutorials,
XFA