以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Web挖掘技术 』   (http://bbs.xml.org.cn/list.asp?boardid=69)
----  Web报表finereport根据参数将数据存入不同的数据库  (http://bbs.xml.org.cn/dispbbs.asp?boardid=69&rootid=&id=126311)


--  作者:ilovefine
--  发布时间:6/3/2013 11:14:00 PM

--  Web报表finereport根据参数将数据存入不同的数据库
1. 问题描述
客户的用户群体很大,涵盖范围很广,为了数据安全,所以将不同区域的数据存在不同的数据库中。同时考虑到开发工作和后期的维护等,将这些数据的业务在同一张表里显示(这些业务关系一样,在数据库中表的字段都一样)。所以在数据录入时,需要根据用户所在的区域,将用户录入的数据存入不同的数据库表中。
2. 解决思路
在模板中建几个隐藏的按钮控件,分别设置提交事件,触发提交入库,再在工具栏上或者模板中设置自定义按钮,编写js,根据不同的参数触发不同的按钮,实现根据不同的参数提交到对应的数据库功能。
3. 示例
我们的FRDemo数据库中有2张表S订单和订单,这两张表的数据结构一模一样,选择华东,华中,华北地区的数据时,数据填入数据库S订单,选择其他地区时,数据填入数据库订单。
3.1 数据准备
新建模板,新建数据集ds1:SELECT * FROM [订单] where 货主地区='${地区}'。
3.2 参数界面设置
切换到参数设计界面,将地区参数的控件添加到面板中,数据字典设置如下:
[img] http://blog.chinaunix.net/attachment/201306/3/27631630_137027153717j4.png[/img]
3.3 报表主体设计
这里为了简洁方便,只添加了几个控件,并没有将所有数据列都添加一个控件,如下图:
[img] http://blog.chinaunix.net/attachment/201306/3/27631630_1370271584m2hs.png[/img]
其中第5行中为填报控件,控件设置如下表:
控件类型
数据字典
B5
文本框

C5
下拉框
来源于客户表,实际值客户ID,显示值公司名称
D5
下拉框
来源于雇员表,实际值雇员ID,显示值姓名
E5
文本框
wu
F5
下拉框
公式:sql("FRDemo", "select 货主城市 from 订单 where 货主地区='" + $地区 + "'", 1)
3.4 按钮设置
如上图,第2行中的三个按钮分别为进行提交入库操作的2个隐藏按钮和一个进行点击操作的可见按钮。
E2单元格
控件名为“s”,该控件控制S订单表的填报,添加一个点击事件,事件类型选择提交入库,如下图:
[img] http://blog.chinaunix.net/attachment/201306/3/27631630_1370271594HqDe.png[/img]

F2单元格
控件名为“S1”,该控件控制订单表的填报,添加一个点击事件,事件类型选择提交入库,如下图:
[img] http://blog.chinaunix.net/attachment/201306/3/27631630_1370271604tn3P.png[/img]
将E2单元格和F2单元格中的按钮都设置为不可见。
H2单元格
给该按钮添加一个点击事件,如下图:
[img] http://blog.chinaunix.net/attachment/201306/3/27631630_1370271615IelL.png[/img]
完整js如下:
1.  var s=contentPane.getWidgetByName("s");  
2.  var s1=contentPane.getWidgetByName("s1");  
3.  if(area=='华东'||area=='华北'||area=='华中')  
4.  s.fireEvent("click");  
5.  else  
6.  s1.fireEvent("click");  
该提交按钮也可自定在工具栏中,设置过程一样。
3.5 效果查看
点击填报预览,参数选择华东,效果如下图:
[img] http://blog.chinaunix.net/attachment/201306/3/27631630_1370271629DD0E.gif[/img]
参数选择西南,效果如下图:
[img] http://blog.chinaunix.net/attachment/201306/3/27631630_13702717712xmI.gif[/img]
注:此例中由于数据的限制,只用了2张数据表进行填报,如果有多张表,则需要设置多个隐藏按钮。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms