自动匹配
1. 问题描述
有如下图情况,只给出一系列的编号,根据编号自动在数据库中匹配出对应的数据,然后再对数据进行修改操作:


2. 实现思路
在对应的单元格中,通过sql公式取出对应的值,然后在公式的单元格中设置插入行策略为原值即可。
3. 示例
3.1 模板制作
如下图,新建一张模板,模板样式如下图:


3.2 修改模板
按照如下表格,在单元格中插入公式:
| 单元格 | 操作 | 效果 | 
|---|---|---|
| B3 | 设置为下拉框,数据来自FRDemo中的产品表,实际值和显示值都是产品ID | 设置纵向扩展,通过下拉框选择产品编号 | 
| C3 | =if(len(B3) = 0, "", sql("FRDemo", "select 产品名称 from 产品 where 产品ID=" + B3, 1, 1)) | 获取产品表中产品ID对应的产品名称 | 
| D3 | =if(len(B3) = 0, "", sql("FRDemo", "select 供应商ID from 产品 where 产品ID=" + B3, 1, 1)) | 获取产品表中产品ID对应的供应商ID | 
| E3 | =if(len(B3) = 0, "", sql("FRDemo", "select 类别ID from 产品 where 产品ID=" + B3, 1, 1)) | 获取产品表中产品ID对应的类别ID | 
| F3 | =if(len(B3) = 0, "", sql("FRDemo", "select 成本价 from 产品 where 产品ID=" + B3, 1, 1)) | 获取产品表中产品ID对应的成本价 | 
| G3 | =if(len(B3) = 0, "", sql("FRDemo", "select 单价 from 产品 where 产品ID=" + B3, 1, 1)) | 获取产品表中产品ID对应的单价 | 
| H3 | =if(len(B3) = 0, "", sql("FRDemo", "select 库存量 from 产品 where 产品ID=" + B3, 1, 1)) | 获取产品表中产品ID对应的库存量 | 
| I3 | =if(len(B3) = 0, "", sql("FRDemo", "select 订购量 from 产品 where 产品ID=" + B3, 1, 1)) | 获取产品表中产品ID对应的订购量 | 
| J3 | =if(len(B3) = 0, "", sql("FRDemo", "select 再订购量 from 产品 where 产品ID=" + B3, 1, 1)) | 获取产品表中产品ID对应的再订购量 | 
| K3 | =if(len(B3) = 0, "", sql("FRDemo", "select 中止 from 产品 where 产品ID=" + B3, 1, 1)) | 获取产品表中产品ID对应的中止 | 
3.3 插入行策略设置
设置C3:K3单元格的插入行策略为原值,即保留原有的公式。
3.4 保存模板
点击即可查看效果。在线查看模板效果请点击LineForm6.cpt
具体的设置可参考模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\LineForm6.cpt
附件列表
       主题: 填报应用
      
	 
              标签:
                                               已验证
                              
                	     
             
        
 
            
              
  
    
