阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 4281|回复: 1

[原创] Web报表finereport根据参数将数据存入不同的数据库

[复制链接]
  • TA的每日心情
    郁闷
    2012-8-20 14:41
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    发表于 2013-6-3 23:14:48 | 显示全部楼层 |阅读模式

    1. 问题描述

    客户的用户群体很大,涵盖范围很广,为了数据安全,所以将不同区域的数据存在不同的数据库中。同时考虑到开发工作和后期的维护等,将这些数据的业务在同一张表里显示(这些业务关系一样,在数据库中表的字段都一样)。所以在数据录入时,需要根据用户所在的区域,将用户录入的数据存入不同的数据库表中。

    2. 解决思路

    在模板中建几个隐藏的按钮控件,分别设置提交事件,触发提交入库,再在工具栏上或者模板中设置自定义按钮,编写js,根据不同的参数触发不同的按钮,实现根据不同的参数提交到对应的数据库功能。

    3. 示例

    我们的FRDemo数据库中有2张表S订单和订单,这两张表的数据结构一模一样,选择华东,华中,华北地区的数据时,数据填入数据库S订单,选择其他地区时,数据填入数据库订单

    3.1 数据准备

    新建模板,新建数据集ds1:SELECT * FROM [订单] where 货主地区='${地区}'

    3.2 参数界面设置

    切换到参数设计界面,将地区参数的控件添加到面板中,数据字典设置如下:

    3.3 报表主体设计

    这里为了简洁方便,只添加了几个控件,并没有将所有数据列都添加一个控件,如下图:

    其中第5行中为填报控件,控件设置如下表:

    控件类型
    数据字典
    B5
    文本框
    C5
    下拉框
    来源于客户表,实际值客户ID,显示值公司名称
    D5
    下拉框
    来源于雇员表,实际值雇员ID,显示值姓名
    E5
    文本框
    wu
    F5
    下拉框
    公式:sql("FRDemo", "select 货主城市 from 订单 where 货主地区='" + $地区 + "'", 1)

    3.4 按钮设置

    如上图,第2行中的三个按钮分别为进行提交入库操作的2个隐藏按钮和一个进行点击操作的可见按钮。

    • E2单元格# j, U: i4 T5 P6 t: C1 n

    控件名为“s”,该控件控制S订单表的填报,添加一个点击事件,事件类型选择提交入库,如下图:7 h) V' F- P! ?* b. P

    1 f9 Z) @' |4 V# S5 N" t2 ~
    • F2单元格; u+ l( z1 G+ `3 n2 u" J

    控件名为“S1”,该控件控制订单表的填报,添加一个点击事件,事件类型选择提交入库,如下图:

    将E2单元格和F2单元格中的按钮都设置为不可见。

    • H2单元格/ P0 ^- J" u0 r2 T: c& Z* T/ u

    给该按钮添加一个点击事件,如下图:

    完整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");  

    4 R$ a- G6 k. F) f( i1 X

    该提交按钮也可自定在工具栏中,设置过程一样。

    3.5 效果查看

    点击填报预览,参数选择华东,效果如下图:

    参数选择西南,效果如下图:

    注:此例中由于数据的限制,只用了2张数据表进行填报,如果有多张表,则需要设置多个隐藏按钮。


    0 g7 E' ^/ P0 r+ ]( |" T* O
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    擦汗
    2017-12-1 15:28
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2017-12-1 17:28:45 | 显示全部楼层
    学习了,感谢楼主的分享,很有用
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表