1. 概述编辑
1.1 问题描述
填报时如果只想修改数据库表中的几条数据,那么可以通过选择主键字段自动匹配出对应的数据行,然后只修改这些数据行的数据即可。
这样填报时不用加载出数据库表中的所有数据,极大提高了填报效率,匹配效果如下图所示:
1.2 解决思路
在对应的单元格中,通过 SQL 公式取出对应的值,然后将公式所在单元格的插入行策略设置为原值即可。
2. 示例编辑
2.1 设计填报表格
新建普通报表,设计填报表格,A3 单元格添加下拉框控件,B3~F3 添加文本框控件,如下图所示:
2.2 下拉框设置数据字典
选中 A3 单元格,给下拉框控件绑定数据字典,如下图所示:
2.3 添加公式
B3~F3 单元格添加公式,根据 A3 单元格下拉框选择的值,查询出指定的数据,如下图所示:
B3~F3 单元格添加的公式如下,公式中用到了 SQL 函数,详细介绍参见文档:SQL函数
B3:sql("FRDemo","select 产品名称 from 产品 where 产品id="+A3,1,1)
C3:sql("FRDemo","select 单位数量 from 产品 where 产品id="+A3,1,1)
D3:sql("FRDemo","select 成本价 from 产品 where 产品id="+A3,1,1)
E3:sql("FRDemo","select 单价 from 产品 where 产品id="+A3,1,1)
F3:sql("FRDemo","select 库存量 from 产品 where 产品id="+A3,1,1)
注:公式里面产品 ID 对应 A3 单元格的内容为数字,如果是字符串需要修改公式,如:sql("FRDemo","select 产品名称 from 产品 where 产品id='"+A3+"'",1,1)
2.4 设置插入行策略
选中 B3~F3 单元格,将单元格的插入行策略修改为原值,如下图所示:
3. 模板下载编辑
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\自动匹配.cpt
点击下载模板:自动匹配.cpt