特殊的Button
一个特殊用途的Button同样是请求AdobeFormServer执行一个特殊的动作。
特定的Button有:
- FSSUBMIT_
- FSPRINT_
- FSSIGN_[name of signature object]
- FSVERIFY_[name of signature object]
- FSPREVIOUS_
- FSNEXT_
- FSRESET_
FSSUBMIT_ button
当用户点击FSSUBMIT_按键时,Web应用程序被请求,将表单上的数据发送给Adobe Form Server,并且允许Adobe Form Server执行当前表单上的脚本,执行脚本有
- Click event for the FSSUBMIT_ button
- OnCalculate event for all fields
- OnCalculate event for the page
- OnValidate event for all fields , including checks for mandatory fields
- OnValidate event for the page , provided that all field validations were successful
- OnFormClosing event , provided than the validations were successful
当FSSUBMIT_ button被点击后,这个表单上的所有其它处理被终止,除非:
- 应用程序发现有其它的动作需要提前执行
- 有验证错误产生时
下表显示动作的执行过程
step | User/Client actions (HTML) | Application Actions (ASP) | Adobe Form server actions (Object) |
1 | 点击了名为FSSUBMIT_的按键 | 执行客户端脚本 | |
2 | 浏览器向TargetURL发送HTTP Post请求 | ||
3 | 创建FormServer object,调用ProcessHTTPRequest()方法,发送IIS请求(发送的内容包括客户端上的数据) | ||
4 | 打开XFT表单,如果先前已经将表单数据通过ProcessHTTPRequest方法发送给了Adobe Form Server,Adobe Form server将重新保存前面的代码数据,数据保存到模板中。 | ||
5 | 将新的数据填充到表单模板中,对于多页表单,Server会分清应该填充哪个表单的。 | ||
6 | 执行XFA模板中的点击脚本 | ||
7 | 运行实例表单中所有的OnCalculate()脚本 | ||
8 | 运行实例表单中的所有OnValidate()脚本。 每一个表单中的组件都会经过验证。Form Server不会发现一个错误后就停止,而是全部进行验证,然后将出错的组件用都显示出来。 |
||
9a | 终端用户显示一个网页,网页内容有表单的全部组件内容及出错的组件列表。 | 判断Adobe From Server返回的FSAction代码,如果是FSValidate那么就继续执行后面的用户操作。 向客户端浏览器执行BinaryWrite,将HTML写到客户端IE中。 |
如果验证过程出错,显示至少一个错误,Form Server返回一个新的HTML网页,内容有: 当前填写的数据表单 一个框,里面记录了表单中的错误 返回FSAction代码为FSValidate |
9b | 如果没有错误,Adobe Form Server执行: 1.执行OnFormClosing()脚本 2.生成XML数据 3.转换数据成UTF-8格式 4.返回给调用的应用程序 返回FSAction代码为FSSubmit |
||
10 | 确认Adobe Form Server返回的FSAction为FSSubmit 确认表单已经处理完了FSSIGN_BUTTON ,Server返回了XML数据 执行其它符加的处理 |
||
11 | 根据Web应用程序的类型显示相应的结果 |
文章来源:http://ms.mblogger.cn/xuzhong/posts/16442.aspx