`
wafergaleteye
  • 浏览: 3006 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用wabacus框架实现多个数据源集合到一个报表上中的做法

 
阅读更多
   使用wabacus框架开发项目有一段时间了,开发起来确实快速,普通增、删、改、查配置几下就实现了,对于复杂的业务也支持的很好,今天用它开发了一个从多个数据库中取数据进行显示的报表应用,由于第一次开发这种需求,花了点时间研究,终于搞出来了,实现也很简单,现在介绍一下实现思路,和大家分享一下,也方便以后自己再实现类似需求时参考。

   经常使用wabacus框架的朋友应该知道,其实就是报表<sql/>中加载一个数据源的数据,第二个数据源的数据在加载数据后置动作中加载出来并修改,然后存放到pojo对象中。
想了解wabacus的朋友也可以通过http://code.google.com/p/wabacus/ 了解。
先看一下集合出来的效果:


 
具体做法:
第一步:在<display/>中声明所有你要显示的列;
<display>
<col column="no" label="工号" clickorderby="true"valuestyleproperty="style='mso-number-format:\@'"/>
<col column="{non-fromdb}" property="工资" label="工资"/>
</display>
第二步:在<sql/>中配置查一个数据源的SQL语句
<sql datasource="mysql">
<select>
<value>
<![CDATA[SELECT * from tbl_baseinfo  order by no]]>
</value>
</select>
</sql>
第三步:开发一拦截器,实现查询数据后置动作,在后置动作中,先调用ReportDataAssistant类取到当前页面的第一个数据源的数  据,然后自己查询第二个数据源,把值设置到相应的记录中。最后显示会使用你修改后的数据。
ReportDataAssistant这个类有很多读写报表数据的方法,大家可以看一下源码,有详细的注释。

源码在我们下载的 src 包里面, ReportDataAssistant这个类在 com.wabacus.system.assistant包里面。

  至于怎么查询第二个数据源的数据我们可以用rrequest.getConnection("ds_name")得到连接(不要写成 (Connection) Config.getInstance().getDataSource("name").getConnection(); 不要用这种方式去取,否则用完要你自己去关闭,性能也不好,除非是在与框架无关的场合使用这种方式。)

  至于怎么修改数据,我们可以用    public void setColValue(ReportRequest rrequest,String reportid,String property,Object dataObj,Object colvalue) 这个方法来修改数据,
其中的 property 默认就是每个<col/>的column属性,除非为为<col/>配置了property属性,则传入配置的property属性值。
dataObj 存放某记录行数据的POJO对象,对于细览报表,只有一个记录行。
colvalue 要设置的值,必须与其<col/>的datatype指定的类型一致。

以下是拦截器里面的具体内容
public Object afterLoadData(ReportRequest rrequest,ReportBean rbean,Object typeObj,Object dataObj){
  if(typeObj instanceof AbsReportType){
  List list=(List)dataObj;
   
   for(int i=0;i<list.size();i++){

    Object   test=list.get(i);
    String no=String.valueOf(ReportAssistant.getInstanc   ().getPropertyValue(test,"no"));
    String sql="select * from wafer where no='"+no+"'";
    Connection conn=rrequest.getConnection("ds_mysql");
    Statement stmt=null;

  try {
   stmt=(Statement) conn.createStatement();
   ResultSet rs=(ResultSet) stmt.executeQuery(sql);

  while(rs.next()){
  
   String wafer= rs.getString("salary");

   ReportDataAssistant.getInstance().setColValue(rrequest,"report1","工资",test,wafer);

}
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
   
return dataObj;
}


完。
分享到:
评论

相关推荐

    wabacus框架开发高级指南

    Wabacus框架是一个旨在显著提升JAVA项目开发效率的通用快速开发平台,区别于仅聚焦于前端的ExtJs、JQuery等纯客户端框架,Wabacus提供了从前端到后端的一体化解决方案,能够实现类似于SSH(Struts+Spring+Hibernate...

    一个wabacus框架新的主题风格(代发)

    总之,"一个wabacus框架新的主题风格"的发布,展示了wabacus框架在用户界面个性化上的强大能力。用户或开发者不仅可以享受到新主题带来的视觉享受,还可以通过这种方式深入了解wabacus框架的工作原理和定制机制,...

    Wabacus框架

    Wabacus框架采用面向声明的开发模式,可以不用编程或极少编程即可实现复杂的数据展示,数据...支持多数据源,多数据库类型(sqlserver2000、sqlserver2005、mysql、oracle、DB2、Postgresql等) 支持本地化、国际化

    Wabacus框架开发指南(二)

    在本章节中,我们将深入探讨Wabacus框架中的页面拦截器配置,这是框架提供的一个重要功能,允许开发者在页面加载前后执行特定的操作,从而实现如权限验证、日志记录等多种业务需求。 #### 二、页面拦截器概述 页面...

    Wabacus开发实例

    从数据源的连接,到数据处理逻辑的设计,再到报表的展示和交互,每个步骤都详细讲解,旨在让你掌握Wabacus的全面使用。 8. **最佳实践** 学习过程中,我们将分享一些最佳实践,如如何优化数据加载性能,如何设计可...

    Wabacus框架开发指南(一)

    以上介绍了Wabacus框架中组件的基本配置和使用,了解这些基本属性有助于开发者更好地设计和实现报表和表单等复杂数据展示功能。在实际开发过程中,还需要结合具体的业务需求灵活运用这些属性来优化用户界面的布局和...

    Wabacus框架标签手册.pdf

    根据提供的《Wabacus框架标签手册》文档,我们可以了解到该手册是关于Wabacus框架配置与使用的详尽指南。Wabacus是一款专为快速开发报表应用而设计的Java开源框架,它提供了丰富的功能来帮助开发者轻松创建复杂报表...

    wabacus9.0 报表组件

    10、在一个项目中同时支持多个数据源,每个数据源的数据库类型可以不致 11、支持采用存储过程查询报表数据 12、支持左右拖动数据单元格,改变每个单元格的宽度 13、高度可扩展性,可以自己增加报表类型、页面类型、...

    Wabacus框架开发指南(一).pdf

    Wabacus框架开发指南(一).pdf

    wabacus开源框架

    相较于传统的SSH(Struts、Spring、Hibernate)框架,Wabacus在性能上表现出显著优势,据称可以达到六倍的提升,这使得它在高并发、大数据量的应用场景中更具竞争力。 ### 1. 框架概述 Wabacus的设计理念是简化...

    报表开发框架整理

    对于editablelist2/listform类型的报表,Wabacus允许用户一次性编辑多页上的数据记录。这一特性极大地提高了数据更新的便捷性,尤其是在处理大型数据集时更为高效。 **5. 新记录行显示位置与回调函数** 当在...

    Wabacus帮助文档

    Wabacus框架是一个强大的计算和数据处理工具,广泛应用于数据分析、统计建模以及复杂的业务逻辑实现。本文档将详细介绍Wabacus的各个方面,包括其部署流程、框架标签、接口方法以及开发指南,旨在帮助开发者更好地...

    Wabacus框架常用接口方法

    本文档详细介绍了Wabacus框架中一些常用的客户端接口方法,这些方法可以帮助开发者实现用户界面的动态交互和数据处理等功能。 1. 客户端接口方法概述 Wabacus框架的客户端接口方法主要由一系列的JavaScript函数组成...

    wabacus开发指南

    在《Wabacus框架开发指南(一).pdf》和《Wabacus框架开发指南(二).pdf》中,详细列举了使用wabacus开发的实际案例,包括如何初始化项目、创建控件、配置报表、应用模板以及如何处理用户交互等步骤。这些实例涵盖了从...

    wabacus相关多个技术文档(PDF).zip

    wabacus相关多个技术文档(PDF).zip Wabacus框架标签手册.pdf Wabacus框架常用接口方法.pdf Wabacus框架高级开发指南.pdf Wabacus框架开发指南(二).pdf Wabacus框架开发指南(一).pdf Wabacus框架入门与提高....

    Wabacus框架常用接口方法[参照].pdf

    首先,我们要理解的是,Wabacus框架在客户端提供了一系列JavaScript接口,使开发者能够直接操作数据报表和表单。这些接口允许开发者赋予输入框默认值,或者自定义添加和编辑数据记录的行为。与客户端回调函数不同,...

    Wabacus框架常用接口方法[归纳].pdf

    Wabacus框架主要为软件开发人员提供了JavaScript接口,便于他们在Web应用中实现特定功能,尤其是与数据交互相关的操作。这些接口允许开发者在客户端对数据报表和表单进行动态操作,例如赋值、添加记录行等,与框架...

    Wabacus开发文档

    - **WabacusBlank**:这是一个空白示例项目,包含了基础的数据展示配置,用户可以在该项目的基础上开发自己的应用程序或者将其集成到现有的项目中。 ##### 1.2 Wabacus框架与SSH框架的对比 Wabacus框架相比传统的...

    wabacus+springMVC+Ibatis 项目搭建

    Wabacus是一款强大的报表工具,SpringMVC是Spring框架的一部分,用于处理Web请求,而iBatis则是一个持久层框架,负责数据库交互。以下是对这些关键技术的详细说明: **Wabacus报表功能:** Wabacus是一款企业级的...

Global site tag (gtag.js) - Google Analytics