process_report
- process_report()
使用范围: client
编程语言: javascript
父类: Report 类
描述说明
process_report 方法向服务端发送报表来生成报表的内容,并访问服务端返回给客户端的报表文件,然后将其打开或保存。
如果 create_form 参数等于 false 并且没有设置可见的参数。它由 print 方法直接调用。
如果有可见参数, print 方法创建一个表单窗体来指定参数值,并调用它(例如,通过一些按钮点击事件)。
检查参数值是否合法有效,并触发以下事件:
报表组的 on_before_print_report 事件处理程序
报表的 on_before_print_report 事件处理程序
在这个事件处理程序中,开发人员能为报表定义一些通用(报表组事件处理程序)的或特定(报表事件处理程序)的属性。
之后, process_report 方法向服务端发送异步请求来生成一个报表的内容。 (参考 报表的服务器端编程 )
服务端为该方法返回一个指向文件的 url ,那个文件包含为报表已生成的内容。
然后,该方法检查是否定义了报表组的 on_open_report 事件处理程序。如果定义了,就调用它。 否则,检查是否定义了报表的 on_open_report 事件处理程序,如果定义了,就调用它。
如果没定义任何一个事件,将在浏览器中打开报表,或者将报表保存到磁盘(是打开还是保存,将依赖于报表的 :doc:`extension </refs/client/report/at_extension>`属性) 。
示例
在下面的事件处理程序中,设置了报表的 id 参数的值,这些代码的定义在演示应用程序中的 发票(invoice) 报表的客户端模块中。
function on_before_print_report(report) {
report.id.value = report.task.invoices.id.value;
}