1. 概述
1.1 问题描述
有些填报模板数据量较大,但是没有修改的需求,只想要查出数据直接提交入库。
使用默认的提交时,必须先预览页面,再点击提交按钮。当数据量较大时,页面预览会非常慢,甚至卡死。有什么办法可以不预览直接后台提交入库呢?
1.2 实现思路
注1:不支持移动端。
注2:使用后台提交时,设置的校验和页面事件将不再生效。
访问填报模板时,在url后面拼接上&format=submit这个参数,即可直接将报表默认查询出的数据填报入库。
2. 示例
2.1 准备数据库表
首先在 FRdemo 新建两个数据库表:Sales_format 和 Sales_format1。
Sales_format 导入一定量数据作为被查询的数据库表,Sales_format1 为空作为填报数据的数据库表,2 个表的结构相同,如下图所示:
2.2 设计填报模板
1)新建普通报表,新建数据库查询数据集 ds1,SQL 语句为:SELECT ID,销售额,销售成本,其他支出,收入 FROM Sales_format
2)设计填报表格,A2~E2 单元格添加文本控件,并将数据集中的字段拖到对应单元格中,这样前端预览时可以看到查询的结果,如下图所示:
3)新建内置 SQL 提交,数据库选择 Sales_format1,并将 A2~E2 单元格跟 Sales_format1 中的字段绑定,如下图所示:
2.3 效果预览
2.3.1 常规方式
从下图可以看到等待查询结果出来需要很长时间,然后才能进行提交入库,效率较低。
2.3.2 后台提交方式
在网页输入 http://localhost:8075/webroot/decision/view/report?viewlet=地区销售统计.cpt&op=write&format=submit即可跳过页面预览阶段,直接提交数据入库。对比常规方式,速度明显变快。