反饋已提交
網絡繁忙
客户的用户群体较大,涵盖范围较广,为了数据安全,在数据填报录入时,需要根据用户所在的区域,将用户录入的数据存入不同的数据库表中,这些数据表的表结构完全一样(即表的字段名,字段类型等设置完全一样)。
如果不同区域使用不同的模板,会加大开发和后期维护的工作量,那么怎么才能在一张模板中实现,根据区域的不同,将数据填报至不同的数据库表中呢?
在 报表填报属性 添加内置 SQL,选择数据库和数据表的时候,在选择数据库和数据表名称的地方直接输入=$参数。
如下图所示:
在模板中添加该参数,并给参数赋值(值应该为数据库名称或者数据表名称),在点击提交按钮的时候,将参数值传递过来,实现入库操作。
注1:参数的值为不同的数据表名称,那么所有这些数据表与模板绑定的字段必须完全一样。
注2:数据库名称是指 FineReport 建立的数据连接名称。
以 FineReport 设计器内置 FRDemo 的「订单表」和「S 订单表」为例,向这两张表中插入数据。
在 FineReport 设计器中,点击文件>新建普通报表,参照下图设计模板:
控件类型与单元格的对应关系如下表所示:
注:下拉框数据字典和形态的具体设置方式请查看 数据字典
在 FineReport 设计器中点击模板>模板参数,添加两个参数base 和table,默认值为空。
其中 base 参数用来传递数据库的名称,table 参数用来传递表名,如下图所示:
1)将 base 参数和 table 参数全部添加到「参数面板」中,base 控件和 table 控件均使用下拉框,如下图所示:
2)修改 Labelbase 控件的控件值为数据库:,如下图所示:
以相同步骤,修改 Labeltable 控件的控件值为数据表:。
3)base 参数下拉框的控件值为FRDemo ,如下图所示:
4)table 参数下拉框的控件值为订单 ,数据字典中类型设置选择自定义,输入所有需要填报的数据表的名称,形成下拉框的下拉选项。
注:由于参与动态填报的数据库中的数据表中与单元格绑定的字段都是一致的,所以随便选择一组在数据库中存在的数据库名和表名称即可,主要是为了获取需单元格绑定的数据表字段。
1)退出参数面板,点击模板>报表填报属性,添加内置 SQL,数据库后面输入=$base,表后面输入=$table,会弹出一个参数输入框,base 参数输入 FRDemo,点击确定。如下图所示:
2)点击智能添加字段,会弹出一个参数输入框,base 参数输入 FRDemo,table 参数输入订单。如下图所示:
3)选择需要填报入库的字段,点击智能添加单元格,将模板总的字段与数据表字段绑定起来,设置「订单 ID 」为主键,如下图所示:
注:该方法支持移动端,以 PC 端效果为例。
保存模板,点击填报预览。
如下图所示,数据库由于只有一个值,无需选择,即 base 参数为 FRDemo。
注:base参数也是可以改变的,只需要给其赋值即可。
1)数据表选择订单,点击查询,填报一条记录,提交入库,即可在订单表中看到刚刚插入的记录,而 S 订单表中则没有。如下图所示:
2)数据表选择 S 订单,点击查询,填报一条记录,提交入库,即可在S 订单表中看到刚刚插入的记录,而订单表中则没有。如下图所示:
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\TypicalApp\DynamicForm.cpt
点击下载模板:DynamicForm.cpt
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉