Birt 报表之脚本操作数据

本文详细介绍了如何解决BirtVersion问题,并通过实例展示了如何使用Java类和脚本查询心电图周报表数据。涵盖了从版本一致性到Java类实现、参数设置直至脚本生成的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这之前我必须说一下Birt Version 的问题,这个问题害死我了,本来很简单的问题,就是因为Version的问题我整了将近两星期。

如果你的项目是旧项目你必须要下载跟旧项目的Birt的Rumtime的Version操持一致。

 

你在New Data Sources 时选择 Scripted Data Source

 

 

 

 

好吧,少年如果你已经进行到这一步了,那么你就应该把你的Java类写一下了。

<span style="color:#000000;">import java.text.ParseException;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ibm.icu.text.SimpleDateFormat;
import cn.bts.action.BasicAction;
import cn.bts.action.synchronization.CardiographAction;
import cn.bts.entity.synchronization.CardiographEntity;
import cn.bts.service.synchronizaion.SynchronizationService;
import cn.bts.util.InitServlet;
import cn.bts.vo.DwrResultVO;
@Component
@Scope("request")
public class CardiographReport extends BasicAction{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public static Logger logger=Logger.getLogger(CardiographAction.class);
	private static CardiographReport instance;

	private static ApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(InitServlet.SERVLET_CONTEXT); 

	
	private CardiographEntity card;
	//这个是你数据存放的实休类</span>
<span style="color:#000000;">	private List<CardiographEntity> cardList;
</span>
<span style="color:#000000;">	private SynchronizationService service = (SynchronizationService) context.getBean("synchronizationServiceImpl");
</span>
<span style="color:#000000;">	//由于我这使用的service是用的@也就是annotaction版本的,无法获取到Service,这就把他改成不是用@获取</span>
<span style="color:#000000;">	
	/**
	 * 获取当前对象
	 * @return
	 */
	public static CardiographReport getInstance() {
		  if (instance == null) {
		   instance = new CardiographReport();
		  }
		  return instance;
	}//单例</span>
<span style="color:#000000;"></span> 
<pre class="java" name="code"><span style="color:#000000;">/**
	 * 查询心电图周报表数据
	 * @return
	 * @throws ParseException 
	 */
	public List<CardiographEntity> readCardList(HttpServletRequest request) throws ParseException {
		String subscriberId=request.getParameter("subscriberId");
		String weekStart=request.getParameter("weekStart");
		String weekEnd=request.getParameter("weekEnd");
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		card=new CardiographEntity();
		card.setSubscriberId(subscriberId);
		card.setWeekStart(sdf.parse(weekStart));//起始时间
		card.setWeekEnd(sdf.parse(weekEnd));//结束时间
		List<CardiographEntity> cardList=service.fetchReportList(card);
		return cardList;
	}</span>
<span style="color:#000000;">}</span>
//如果做过项目的,上面这个方法应该是很简单的就不解释了,如有不懂直接与我联系


我这是查询一个周的报表也就本周的起始时间跟结束时间。

 

java类写好了,那么开始操作我们的脚本了。

这步是添加你需要的字段。

开始写脚本:

 

下一步

 

 

下一步

下一步

 

我制作完成的报表:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值