Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
9.3
9.4
9.5
10.0
10.1
10.2
10.3
10.4
10.5
10.6
Statistic
FMM
Blog
DynaPDF.AddActionToObj
Adds an action to a PDF object.
| Component | Version | macOS | Windows | Linux | Server | FileMaker iOS SDK |
| DynaPDF | 6.4 | Yes | Yes | Yes | Yes | Yes |
Parameters
| Parameter | Description | Example |
|---|---|---|
| The PDF reference returned from DynaPDF.New. | ||
| ObjectType | The type of object that should get the action. Can be Action, Annotation, Bookmark, Catalog, Field, Page or PageLink. |
"Field" |
| ObjectEvent | Which event should trigger the action. Can be OnOpen, OnClose, OnMouseUp, OnMouseEnter, OnMouseExit, OnMouseDown, OnFocus, OnBlur, OnKeyStroke, OnFormat, OnCalc, OnValidate, OnPageVisible, OnPageInVisible, OnPageOpen, OnPageClose, OnBeforeClosign, OnBeforeSaving, OnAfterSaving, OnBeforePrinting or OnAfterPrinting. |
"OnCalc" |
| Action Handle | The handle for the action. e.g. returned by DynaPDF.CreateJSAction. |
$action |
| Object Handle | The object handle, e.g. a field number for a ObjectType = Field. | $o |
Result
Returns OK or error.
Description
Adds an action to a PDF object.The parameter ActHandle requires a handle that was returned by a function that creates an action object such as DynaPDF.CreateGoToAction, etc. The object handle is also a return value of its creation function. If the object type is a page, then use the page number as handle.
It is possible to add multiple actions to one object, but note that DynaPDF does not check whether all actions are valid. For example, it is possible to add more than one action to a text field to the OnFormat event, but Acrobat executes only the first one. Always test your actions with different Acrobat versions because each version handles actions in a different manner.
The OnMouseUp event is the standard event supported by all objects. This event type supports also all action types. The other events are handled differently depending on the Acrobat version. Acrobat 4 supports JavaScript actions only in non-OnMouseUp events. Newer versions support also predefined action types. However, test your forms with the Acrobat versions that should be supported - this is the only way to find incompatibilities.
See also AddActionToObj function in DynaPDF manual.
Examples
Create sum field:
Set Variable [$y; Value:50]
Set Variable [$script; Value:"var v1 = this.getField(\"Val1\");" & ¶ & "var v2 = this.getField(\"Val2\");" & ¶ & "var v3 = this.getField(\"Val3\");" & ¶ & "event.value = v1.value + v2.value + v3.value;"]
Set Variable [$script; Value:MBS( "Text.ReplaceNewline"; $script; 2)]
Set Variable [$a; Value:MBS( "DynaPDF.CreateJSAction"; $pdf; $script)]
#Create 1st field
Set Variable [$f; Value:MBS( "DynaPDF.CreateTextField"; $pdf; "Val1"; -1; 0; 0; 50; $y; 200; 20)]
Set Variable [$r; Value:MBS( "DynaPDF.SetTextFieldValue"; $pdf; $f; "50.00"; "50.00"; "Right")]
Set Variable [$r; Value:MBS( "DynaPDF.SetNumberFormat"; $pdf; $f; "NoneDot"; 2; "MinusBlack")]
#Create 2nd field
Set Variable [$y; Value:$y + 30]
Set Variable [$f; Value:MBS( "DynaPDF.CreateTextField"; $pdf; "Val2"; -1; 0; 0; 50; $y; 200; 20)]
Set Variable [$r; Value:MBS( "DynaPDF.SetTextFieldValue"; $pdf; $f; "100.00"; "100.00"; "Right")]
Set Variable [$r; Value:MBS( "DynaPDF.SetNumberFormat"; $pdf; $f; "NoneDot"; 2; "MinusBlack")]
#Create 3rd field
Set Variable [$y; Value:$y + 30]
Set Variable [$f; Value:MBS( "DynaPDF.CreateTextField"; $pdf; "Val3"; -1; 0; 0; 50; $y; 200; 20)]
Set Variable [$r; Value:MBS( "DynaPDF.SetTextFieldValue"; $pdf; $f; "200.00"; "200.00"; "Right")]
Set Variable [$r; Value:MBS( "DynaPDF.SetNumberFormat"; $pdf; $f; "NoneDot"; 2; "MinusBlack")]
#Create sum field
#This last field calculates sum of other fields
#Works only in PDF Viewers supporting JavaScript!
Set Variable [$y; Value:$y + 30]
Set Variable [$f; Value:MBS( "DynaPDF.CreateTextField"; $pdf; "Sum"; -1; 0; 10; 50; $y; 200; 20)]
Set Variable [$r; Value:MBS( "DynaPDF.SetFieldBorderWidth"; $pdf; $f; 0)]
Set Variable [$r; Value:MBS( "DynaPDF.SetTextFieldValue"; $pdf; $f; "350.00 €"; "350.00 €"; "Right")]
Set Variable [$r; Value:MBS( "DynaPDF.SetFieldFlags"; $pdf; $f; "ReadOnly"; 0)]
Set Variable [$r; Value:MBS( "DynaPDF.AddActionToObj"; $pdf; "Field"; "OnCalc"; $a; $f)]
Set Variable [$r; Value:MBS( "DynaPDF.SetNumberFormat"; $pdf; $f; "CommaDot"; 2; "MinusBlack"; " €"; 0)]
Create checkbox to confirm page and jump to next one:
Set Variable [ $f ; Value: MBS( "DynaPDF.CreateCheckBox"; $pdf; "OK"; "OK";0; -1; $PageWidth-150; $pageHeight-20; 15; 15 ) ]
# This is javascript from Adobe to go to next page You could substitute many of their examples
Set Variable [ $script ; Value: "this.pageNum++" ]
Set Variable [ $script ; Value: MBS( "Text.ReplaceNewline"; $script; 2 ) ]
Set Variable [ $a ; Value: MBS( "DynaPDF.CreateJSAction"; $pdf; $script ) ]
Set Variable [ $r ; Value: MBS( "DynaPDF.AddActionToObj"; $pdf; "Field"; "OnMouseUp"; $a; $f ) ]
See also
- DynaPDF.CreateCheckBox
- DynaPDF.CreateGoToRAction
- DynaPDF.CreateGoToRActionEx
- DynaPDF.CreateJSAction
- DynaPDF.CreateTextField
- DynaPDF.InsertBookmarkEx
- DynaPDF.New
- DynaPDF.SetFieldFlags
- DynaPDF.SetNumberFormat
- Text.ReplaceNewline
Example Databases
Blog Entries
- MBS FileMaker Plugin, version 6.4pr5
- Tip of the day: DynaPDF form creation with calculation with FileMaker
Created 24th August 2016, last changed 21st May 2017
DragDrop.UnregisterDropTypes - DynaPDF.AddAnnotToPage
Feedback: Report problem or ask question.
Links
MBS Xojo tutorial videos