润乾报表-动态查询

润乾报表提供宏工作机制,因此利用宏可以可以动态组织sql语句,得到实时报表了。

<%@ page contentType="text/html;charset=GBK" %>
<%@ taglib uri="/WEB-INF/runqianReport4.tld" prefix="report" %>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="com.runqian.report4.usermodel.Context"%>
<%@ page import="com.runqian.report4.model.ReportDefine"%>
<%@ page import="com.runqian.report4.util.ReportUtils"%>
<%@ page import="com.runqian.report4.usermodel.MacroMetaData"%>
<%@ page import="com.runqian.report4.usermodel.Macro"%>

<html>
<body topmargin=0 leftmargin=0 rightmargin=0 bottomMargin=0>
<%

request.setCharacterEncoding( "GBK" );
String realPath = request.getRealPath("/");

%>

<jsp:include page="toolbar.jsp" flush="false" />


<%

StringBuffer macBuffer = new StringBuffer();//sql 拼串
String reportName ="dsworkinfo.raq"; //模板名称

//---- 接受参数
String sdate ="",edate="",viewcode ="",status="",isLiuId="";
if(request.getParameter("sdate")!=null){
sdate = request.getParameter("sdate");
if(!sdate.equals(""))
macBuffer.append(" and a.writetime >= to_date('"+sdate+"','yyyy-mm-dd') ");
}
if(request.getParameter("edate")!=null){
edate = request.getParameter("edate");
if(!edate.equals(""))
macBuffer.append(" and a.writetime < to_date('"+edate+"','yyyy-mm-dd')+1 ");
}
if(request.getParameter("viewcode")!=null){
viewcode = request.getParameter("viewcode");
if(!viewcode.equals(""))
macBuffer.append(" and b.vc0 like '"+viewcode+"%' ");
}
if(request.getParameter("status")!=null){
status = request.getParameter("status");
if(!status.equals("") && Integer.parseInt(status)>-1)
macBuffer.append(" and a.status = '"+status+"' ");
}
if(request.getParameter("isLiuId")!=null){
isLiuId = request.getParameter("isLiuId");
if(!isLiuId.equals("") && Integer.parseInt(isLiuId)>-1)
{ int liu = Integer.parseInt(isLiuId);
if( liu==0 ){
macBuffer.append(" and b.simply_code like '%LDZCZ' ");
}
else if(liu==1){
macBuffer.append(" and b.simply_code not like '%LDZCZ' ");
}
}
}

//----设置宏替换

Context cxt = new Context(); //构建报表引擎计算环境
ReportDefine rd = (ReportDefine)ReportUtils.read(realPath+"reportFiles"+File.separator+reportName);
MacroMetaData mmd=rd.getMacroMetaData(); //构造宏的元数据
if(mmd.getMacroCount()>0)
{
cxt.setMacroValue(mmd.getMacro(0).getMacroName(),macBuffer.toString());//此模板只设计一个宏
}
String cxtName = "CXT_"+Double.toString(Math.random());
request.setAttribute(cxtName, cxt );

%>

<table align=center>
<tr><td>

<report:html name="report1"
reportFileName="<%=reportName %>"
width="-1"
height="-1"
contextName ="<%=cxtName %>"
/>

</td></tr>
</table>

<script language="javascript">

document.getElementById( "t_page_span" ).innerHTML=report1_getTotalPage();
document.getElementById( "c_page_span" ).innerHTML=report1_getCurrPage();

</script>

</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值