点击列标题排序_润乾制作+Web发布

  • 格式:doc
  • 大小:41.00 KB
  • 文档页数:3

点击列标题排序
一、制作要求
使用润乾软件制作报表,实现点击列标题排序。
有两种方式实现:
一、整合为一个数据集,通过宏动态给select或者group函数指定排序所依据的表达式来实
现。
二、利用层次坐标
如果数据不是来自同一个数据集,那么就不能简单通过给group函数指定排序所依据的表达
式来实现了,而整合为一个数据集处理又很困难,这个时候就要借助层次坐标,排好名次,
然后按照名次重新取出来显示。
本文使用一个单一数据集介绍第二种实现方式,使用润乾自带的demo数据,以“各类销售
额”为例。

二、润乾制作过程
(1).添加一个数据集,并生成网格报表

(2).追加一行,追加一列,并在第一列前插入一列。
(3).F2中写入表达式:count(E2[`0]{E2>$E2})+1(实现排名,详细介绍见《高级教程4.8》)
添加参数order,布尔类型。
(4).A3中写入表达式:sort(F2{},if(order==null,true,order))
(5).A列、F列、第2行设置为隐藏。(AF列为辅助列,第2行为中间数据)
(6).E1的超链接属性,写入表达式:"javascript:click();"
其中click()为JSP文件中的自定义函数
function click()
{
document.form2.order.value=<%=request.getParameter("order")%>;
if(document.form2.order.value=="false")
document.form2.order.value="true";
else
document.form2.order.value="false";
document.form2.submit();
}
三、JSP文件
<%@ 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"%>


<%
request.setCharacterEncoding( "GBK" );
String report ="testOrder1.raq";
String reportFileHome=Context.getInitCtx().getMainDir();
StringBuffer param=new StringBuffer();

//保证报表名称的完整性
int iTmp = 0;
if( (iTmp = report.lastIndexOf(".raq")) <= 0 ){
report = report + ".raq";
iTmp = 0;
}
Enumeration paramNames = request.getParameterNames();
if(paramNames!=null){
while(paramNames.hasMoreElements()){
String paramName = (String) paramNames.nextElement();
String paramValue=request.getParameter(paramName);
if(paramValue!=null){
//把参数拼成name=value;name2=value2;.....的形式
param.append(paramName).append("=").append(paramValue).append(";");
}
}
}
String order="false";
%>












funcBarLocation="top"
generateParamForm="no"
params="<%=param.toString()%>"
width="-1"
height="-1"
needPrintPrompt="yes"
needSaveAsExcel="yes"
needSaveAsPdf="yes"
needSaveAsWord="yes"
needSaveAsText="yes"
exceptionPage="/reportJsp/myError2.jsp"
/>