<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.5.1" -->
<rss version="0.92">
<channel>
	<title>博计报表↓专注于提升.net报表项目的开发效率</title>
	<link>http://www.bonzerreport.com</link>
	<description>专注于提升.net报表项目的开发效率</description>
	<lastBuildDate>Thu, 29 Jul 2010 02:32:21 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>授权问题与解决办法汇总（二）</title>
		<description>

设计器授权问题

打开设计器，选择设计器授权的时候报”无效的logo文件”，无论是重做授权还是更新jar包都不能解决问题。



问题出现原因

当用尽各种方法都未能解决问题时，要关注以下问题的提示信息，如下：



请注意红框内的内容，发现在bonzer.gif后面多了一个空格，这就是产生问题的原因。

解决办法

让销售重新做一份bonzer.gif后面没有空格的授权即可。

这个问题虽然不是什么难题，但也必须注意，除了操作过程中大家要细心以外，在写程序的时候也要考虑周全。

3.5升级至4.0及其以上版本问题

客户方报表升级后，一直有授权不对的问题，指导客户放置对应的位置和一些修改文件的操作后，问题仍然存在。

问题出现原因

如果报授权不匹配的错误，而且是产品升级以后才出现的，那说明在升级过程中，用户并未将旧系统中的相关配置或授权文件完全删除。这样需要检查web.xml文件以及reportConfig.xml文件以及一些缓存文件等。

经检查，客户的web.xml文件确实存有3.5的信息，这会导致授权错误。

解决办法

将web.xml中关于3.5的信息完全删除，并配置reportConfig.xml文件，将正确的授权放到相应位置即可。

这个问题不是什么特别的问题，但是我们在解决过程中明白了一个道理，任何操作都有可能导致最后的结果出现问题，所以在实施过程中，应该尽量做到考虑全面、操作细致。

 </description>
		<link>http://www.bonzerreport.com/knowledge/basic/%e6%8e%88%e6%9d%83%e9%97%ae%e9%a2%98%e4%b8%8e%e8%a7%a3%e5%86%b3%e5%8a%9e%e6%b3%95%e6%b1%87%e6%80%bb%ef%bc%88%e4%ba%8c%ef%bc%89.html</link>
			</item>
	<item>
		<title>reportConfig.xml两种数据源连接的配置方式</title>
		<description>在reportConfig.xml配置文件中,提供了两种数据源连接的配置方式,如下：

1.jndi数据源配置（即在dataSource中配置）

此配置适用于在j2ee的服务器中配置了jndi连接池，比如：tomcat服务器下在conf\Catalina\localhost配置了连接池，则可以通过reportConfig.xml的jndi配置连接数据源。

格式如下：

&#60;config&#62;
&#60;name&#62;dataSource&#60;/name&#62;
&#60;value&#62;jdbc/test,oracle;exercise,sqlsvr,1,iso8859-1,GBK,0&#60;/value&#62;
&#60;/config&#62;

关于reportConfig.xml中的jndi数据源的配置详细如下：

数据源的JNDI名称,数据库类型[,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编码][,SQL是否需要转码];[重复]……

另外需要注意的是，这里的数据源的jndi名称要与连接池中配置的jndi数据源名称一致。

2、jdbc直连数据源配置：

此配置适用于没有在j2ee服务器上配置jndi连接池。

详细的配置方法如下：

在&#60;reportConfig&#62;&#60;/reportConfig&#62;加入如下的配置：

&#60;jdbc-ds-configs&#62;
&#60;jdbc-ds-config&#62;
&#60;name&#62;db2&#60;/name&#62;
&#60;db-type&#62;db2&#60;/db-type&#62;
&#60;connection-url&#62;jdbc:db2://192.168.0.217:50000/sample&#60;/connection-url&#62;
&#60;driver-class&#62;com.ibm.db2.jcc.DB2Driver&#60;/driver-class&#62;
&#60;user-name&#62;administrator&#60;/user-name&#62;
&#60;password&#62;runqian&#60;/password&#62;
&#60;db-charset&#62;gbk&#60;/db-charset&#62;
&#60;client-charset&#62;gbk&#60;/client-charset&#62;
&#60;extend-properties&#62;&#60;/extend-properties&#62;
&#60;/jdbc-ds-config&#62;
&#60;/jdbc-ds-configs&#62;

注：读取配置文件的时候，会首先读取dataSource中jndi的配置，如果dataSource没有相关的数据源配置才会读取jdbc直连配置的数据源。 </description>
		<link>http://www.bonzerreport.com/knowledge/install/reportconfigxml%e4%b8%a4%e7%a7%8d%e6%95%b0%e6%8d%ae%e6%ba%90%e8%bf%9e%e6%8e%a5%e7%9a%84%e9%85%8d%e7%bd%ae%e6%96%b9%e5%bc%8f.html</link>
			</item>
	<item>
		<title>多个横向扩展区域的报表的设计方法</title>
		<description>在报表的设计过程中，会遇到一个复杂报表中有多个区域，这样的报表如果只包含纵向的扩展，设计起来还是比较容易的，但是当遇到有一个或者多个横向扩展的报表的话，如果按照原来的设计方法进行设计，不仅不够美观，而且数据可能不够准确，所以这类报表不能按照原有的方法来实现，需要根据具体的需求进行分析，从而找到合适的设计方法。

当报表出现横向扩展的时候，导致横向扩展所在列也横向扩展，这样就会影响此扩展格的上方和下方的单元格，这个就是问题产生的原因。

1：嵌入式或者引入式的主子表

此种方法由于子报表放在固定了宽度的单元格中，所以子报表在扩展的时候不会影响到其他单元格，这样，在子报表的横向扩展就对其他区域有什么影响了。

两种报表浏览样式如下（这两种报表的具体设计方法请参照初级设计教程）：



可以看到两个报表都有横向扩展而且展示出来的结果是不一样的。嵌入式主子表的优点是固定了单元格的大小，而由于每个单元格内容都不同，所以有可能出现列无法对其的现象；引入式主子表没有出现这个问题，但是如果横向扩展过多，也会影响美观。

2：横向扩展的强制换行

这种方法使得所有区域的报表都是横向扩展的，这样就可以控制横向扩展了多少单元格，让报表可以只横向扩展固定个数的单元格就进行换行，这样就可以避免上述不美观的情况。

这种横向扩展强制换行方法有以下两种：

（a）：使用to函数进行强制换行，这种方法可以参考强制换行这篇文章，里面有详细介绍。

（b）：使用to函数加valueat函数，实现动态的取数，这样也可以实现报表的强制换行，这种方法可以参考valueat函数的使用方法和相关文章的介绍。

注意：由于使用to函数实现了横向扩展固定的列数，当报表区域过多时，可能会出现有的单元格根本不需要扩展但也随着横向扩展了的情况，这样就需要对报表进行修改了。

3：这种方法是将以上两种方法进行中和，将有横向扩展的子报表进行横向的强制换行，这样在显示的时候就在横向上进行了控制，既取到了想要的数据，又使得页面变得美观。

综合比较上面的几种方法，如果需求比较简单，可以选择方法1和2，设计起来比较简单；如果需求比较复杂而且对美观度要求比较高的话，可以采用方法3。 </description>
		<link>http://www.bonzerreport.com/knowledge/basic/%e5%a4%9a%e4%b8%aa%e6%a8%aa%e5%90%91%e6%89%a9%e5%b1%95%e5%8c%ba%e5%9f%9f%e7%9a%84%e6%8a%a5%e8%a1%a8%e7%9a%84%e8%ae%be%e8%ae%a1%e6%96%b9%e6%b3%95.html</link>
			</item>
	<item>
		<title>博计报表按内容类别分页展现问题</title>
		<description>最近发现一些客户的需求，用字符串组参数传递给报表某个参数的若干值，然后报表根据传过来的值分类，每一个分类在页面上形成一个报表，并且占一页，导出excel的时候也分页显示，下面就用一个简单的小例子实现上面的需求。

第一步：新建一张报表，连接demo数据源。

新建一张报表，连接sql数据源，增加一个参数arg1，类型为字符串组；然后增加一个数据集ds1，数据集的sql为：SELECT 类别.类别ID,类别.类别名称,类别.说明 FROM 类别 ，给数据集增加两个参数，如下图所示：



然后增加数据集的检索条件：类别.类别ID in (?) or ? is null，最后数据集的sql样式如下图所示：


第二步：设计报表

设计一张如下图所示的报表，报表的上下两行都为空白行：



第三步：设置行后分页和左主格

设置A3、B3、C3单元格的左主格为A2，然后设置第三行为行后分页，如下图所示：



第四步：制作参数模板

新建一张可以填报的普通报表，连接demo数据源，然后新建一个数据集ds1，数据集的sql为：SELECT 类别.类别ID,类别.类别名称 FROM 类别，如下图所示，设置B1单元格的编辑风格为下拉数据集，具体的样式如下图所示：



然后设置B1的变量名为arg1，设置的方法见下图：



第五步：保存并发布报表

保存主报表名字为fenye.raq，参数模板的名字为fenye_arg.raq，然后在设计器中发布主报表，并选择相应的参数，就能看到下面两幅图的效果：





这样就可以根据类别分页，导出的时候也会跟页面上一样，分多个sheet页展现，实现了上面的需求。 </description>
		<link>http://www.bonzerreport.com/knowledge/basic/%e5%8d%9a%e8%ae%a1%e6%8a%a5%e8%a1%a8%e6%8c%89%e5%86%85%e5%ae%b9%e7%b1%bb%e5%88%ab%e5%88%86%e9%a1%b5%e5%b1%95%e7%8e%b0%e9%97%ae%e9%a2%98.html</link>
			</item>
	<item>
		<title>博计报表中巧用参数实现交叉表行列互换</title>
		<description>博计报表在发布到web页面后，其样式就被固定了，如果想把报表换种形式展现，通常的做法是重新设计一张报表模板来实现。下面介绍一种简单方法来结局这种需求。

实现思路：
1. 设计单元格表达式根据参数不同而变化，从而实现样式跟随表达式变动。
2．点击一个超链接按钮通过url强制传参给报表中的单元格，从而控制报表的样式。
首先来看这样一张报表（bonzer\webroot\reportFiles\1.基础报表\交叉报表.raq），在页面上的展现效果如下图:



这是一个多维交叉分组报表，上表头是地区/城市，左表头是日期。

如果想动态改变一下报表的样式，左表头变成地区和城市的分组展现，上表头变成年份和月份的分组展现，并且只通过一张报表，这就需要用文章标题中提到的：利用参数实现行列变换的方法了。

本文以此报表为基础，实现可以行列互换的功能（上表头和左表头互换），使得报表在web页面上样式改变。

第一步：设计器中选择配置-参数

给报表增加一个参数，我们把这个参数叫做转换参数，顾名思义，这个参数就是控制行列转换用的。






第二步：修改单元格表达式，让单元格接受参数

我们把C2单元格的表达式修改为：
= if(@arg1==”1″,ds1.group(year(OrderDate),false,OrderDate!=null)+”年”,ds1.group(ShipRegion,false,ShipRegion!=null))
此表达式的意思是：当参数arg1的值为1时，C2单元格的表达式为ds1.group(year(OrderDate),false,OrderDate!=null)+”年”，否则默认为ds1.group(ShipRegion,false,ShipRegion!=null)
关于博计报表中if（）函数的用法请参考博计帮助文档中的相关介绍。
据这个逻辑，依照地区与城市之间的关系，年份和月份之间的关系，把单元格的表达式做如下修改：
C3：= if(@arg1==”1″,ds1.group(month(OrderDate),false)+”月”,ds1.group(ShipCity,false))
A4：= if(@arg1==”1″,ds1.group(ShipRegion,false,ShipRegion!=null),ds1.group(year(OrderDate),false,OrderDate!=null)+”年”)
B4：= if(@arg1==”1″,ds1.group(ShipCity,false),ds1.group(month(OrderDate),false)+”月”)

第三步：修改交叉表头并在其中设置超链接



红色框中的交叉表头区是整张报表的关键，既要在行列转换的时候做到文字跟随变化，又要充当转换控制的按钮。
修改此单元格的表达式为：=if(@arg1==”1″,”分布,运货重,时间”,”时间,运货重,分布”)
然后在此单元格的属性中：



加入超链接属性：




if(@arg1==null, “/reportBase/reportAspx/showContent.aspx?report=/交叉报表.raq&#38;arg1=1″,”/reportBase/reportAspx/showContent.aspx?report=/交叉报表.raq”）

这个超链接的作用就是点击这个单元格，赋予arg1参数值，然后通过超链接中的url把参数传递到asp中的报表里，通过对参数值的判断，来确定超链接中的url，这样就可以来回转换，防止只能转换一次的情况出现。（超链接也可以设置在其他单元格中，本文中这样做是为了美观且容易理解）
接下来，我们把报表发布到页面上去看效果：




点击设置了超链接的表头单元格后，url自动转换为/reportBase/reportAspx/showContent.aspx?report=/交叉报表.raq&#38;arg1=1，强制把参数arg1=1传给报表的各个单元格，单元格表达式发生变化，报表样式也随之变化，于是实现了行列互换的效果：



此时，如果想转换到前一种样式，只需再点击一次表头单元格即可。
在这个报表中，我们运用了很多颇具技巧性的方法，例如参数结合超链接的运用，if（）函数的运用，往往一些看似很复杂的报表，通过一些技巧性的做法都是可以迎刃而解的。 </description>
		<link>http://www.bonzerreport.com/knowledge/basic/%e5%8d%9a%e8%ae%a1%e6%8a%a5%e8%a1%a8%e4%b8%ad%e5%b7%a7%e7%94%a8%e5%8f%82%e6%95%b0%e5%ae%9e%e7%8e%b0%e4%ba%a4%e5%8f%89%e8%a1%a8%e8%a1%8c%e5%88%97%e4%ba%92%e6%8d%a2.html</link>
			</item>
	<item>
		<title>博计报表打印缩放说明</title>
		<description>问题描述：

客户在使用博计打印功能的时候，在打印预览页面选择”按高”或”按宽”缩放。



当前报表行数比较少（如本例中是一行），当点击”按高缩放”的时候会出现下面的提示，



点击确定以后，打印内容会有所变化，有的客户比较费解。

现象说明：

打印缩放是根据当前内容进行宽高同比例缩放，当报表内容超过一页纸时，整个报表会按比例缩小到一张纸的范围；当报表内容不足一页纸时，报表会按比例填充到整张纸范围。

如本例中的A1单元格，设置其宽高都为8.0，然后选择按高缩放。此时报表的内容会填充满整张纸，即报表行高会变成纸张高度，同时，报表宽度也会同比例增加到纸张高度大小，这时问题出现了。因为A4纸张的宽度要远小于其高度，此时A1单元格的宽度为纸张高度，那么它将远远超过纸张宽度，就是说，报表中的某一列宽度比给定（A4纸）的纸张宽，这种情况是报表工具不允许的。

同理，按宽缩放也一样。

那如何避免这种情况的发生呢？我们还需要从报表设计入手：

首先，我们制作的报表如果行数比较少，但还想使用按高缩放的功能，这时对于我们列宽的要求就比较高了，当选择按高缩放的时候，一定不能让其中的某列宽度大于纸张宽度；

其次，行高的问题可以通过将该单元格设置成合并格，并勾选”单元格”拆分选项来解决；

最后，要遵循报表设计的规则，尽量避免一些极端情况的发生。 </description>
		<link>http://www.bonzerreport.com/knowledge/basic/%e5%8d%9a%e8%ae%a1%e6%8a%a5%e8%a1%a8%e6%89%93%e5%8d%b0%e7%bc%a9%e6%94%be%e8%af%b4%e6%98%8e.html</link>
			</item>
	<item>
		<title>博计报表中如何利用JavaScript函数获取单元格的值</title>
		<description>博计报表展现在web页面以后，有时需要通过鼠标点击单元格的事件来获取该单元格的值。本文介绍如何在博计报表中实现上述需求，博计报表中通过在aspx页面中设定JavaScript函数就可以完成。

首先，需要知道报表是如何在页面上展现的。设计器安装目录：

\webroot\reportBase\reportAspx\showReport.aspx就是一个典型的展现博计报表的aspx例子：



从上图可以看到整个报表标签&#60; rq:HtmlTag&#62;包含在一个&#60; table&#62;标签中，在报表扩展的时候，就是在这个table中去扩展。
想通过点击鼠标去获得单元格的值，就要定位单元格。如何去定位一个单元格呢，就要通过&#60; rq:HtmlTag&#62;中的name属性，然后加上单元格的位置来定位。这里我们举例的报表来自博计设计器的安装目下的：
\webroot\reportFiles\1.基础报表\交叉报表
例如：(”report1″).rows[1].cells[1]就代表的是报表的B2单元格。(表头为rows[0],第一列为cells[0])
接下来，在页面中增加一段JavaScript函数，用这个函数去获得单元格的值。

&#60; script language=”javascript”&#62;
function _getDispValueByName(){
var cell = document.getElementById(”report1″).rows[1].cells[1].innerText; //通过ID去定位单元格位置
alert(cell); //用alert()函数弹出这个单元格的值
}
&#60; /script&#62;
最后，可以做一下效果展示，在页面上增加一个按钮，来触发这个JavaScript函数。
&#60; input type=”button” onclick=_getDispValueByName() value=”check”&#62;

通过这个例子,不仅知道怎样去定位单元格获取单元格的值，还可以看出博计报表中是可以使用强大的JavaScript函数来实现很多特殊功能的。 </description>
		<link>http://www.bonzerreport.com/knowledge/basic/%e5%8d%9a%e8%ae%a1%e6%8a%a5%e8%a1%a8%e4%b8%ad%e5%a6%82%e4%bd%95%e5%88%a9%e7%94%a8javascript%e5%87%bd%e6%95%b0%e8%8e%b7%e5%8f%96%e5%8d%95%e5%85%83%e6%a0%bc%e7%9a%84%e5%80%bc.html</link>
			</item>
	<item>
		<title>博计报表api设计统计图</title>
		<description>博计报表提供了api接口，供用户进行设计开发，给客户自行开发程序很大的扩展空间，并且也使得开发变得更加灵活，控制性更强。本篇文章主要介绍一下如何通过api接口绘制一个统计图。

例如客户想画一个柱状图，下面讲一下实现过程。新建一个jsp。

jsp需要引入的相关包，因为本例比较简单所以引用的包也较少。

&#60;%@ page import=”com.runqian.report4.usermodel.*”%&#62;
&#60;%@ page import=”com.runqian.report4.model.*”%&#62;
&#60;%@ page import=”com.runqian.report4.util.*”%&#62;
&#60;%@ page import=”com.runqian.report4.usermodel.graph.*”%&#62;

第一步新建一个默认的空报表，代码如下

ReportDefine rd = new ReportDefine2(1, 1);//一行一列的报表
IRowCell rowCell = rd.getRowCell(1);
IColCell colCell = rd.getColCell((short)1);
rowCell.setRowHeight((float)150);
colCell.setColWidth((float)150);

第二步构造一个空的统计图：

// 构造一个空统计图
GraphProperty gp = new GraphProperty();

// 设置统计图类型–柱状图
gp.setType(GraphTypes.GT_COL);

// 设置坐标轴颜色
gp.setAxisColor(238130238);

// 设置柱形图间距
gp.setBarDistance(”20″);

// 设置统计图标题
gp.setGraphTitle(”统计图例子”);

// 设置标题与图形之间的距离
gp.setTitleMargin(”10″);

// 设置横轴标题
gp.setXTitle(”横坐标轴”);

// 设置纵轴标题
gp.setYTitle(”纵坐标轴”);

第三步，构造分类轴和系列值的定义，并把他们赋给统计图，

GraphCategory[] graphCat = new GraphCategory[1];
GraphSery[] sery=new GraphSery[1];
for(int i = 0; i&#60;graphCat.length;i ++){//由于本例比较简单，所以这个循环看起来是多余的，但是在实际的应用中，这个循环 在赋值过程中很有用处
GraphCategory category = new GraphCategory();
category.setCategory(”销量”);
graphCat[i] = category;

//根据分类设置它对应的系列对象

for(int ...</description>
		<link>http://www.bonzerreport.com/knowledge/%e5%8d%9a%e8%ae%a1%e6%8a%a5%e8%a1%a8api%e8%ae%be%e8%ae%a1%e7%bb%9f%e8%ae%a1%e5%9b%be.html</link>
			</item>
	<item>
		<title>博计报表页面超过255列导出excel</title>
		<description>最近接触到一些客户的需求，客户想在页面展现的时候不分页，然后在导出excel的时候分页，而客户的报表列数很多，超过了excel的255列的限制。这样如果不做任何处理，直接在页面上点击导出excel的按钮，就会弹出对话框提示excel不支持超过255列，也就无法正常导出，所以要想导出这样的报表就必须采取一些特殊的设置，下面就做一个简单的例子，实现超过255列的不分页报表导出excel。

有两种办法可以实现上面的需求，分别为：

1．展现时候展现一张不分页的，导出的时候导出另外一张报表，在导出的时候调用API导出那个分页的报表。

2．在jsp中设置width=”-1″ ,excelUsePaperSize=”yes”然后把报表设置成按纸分页的，也可以正常导出excel。

下面分别介绍一下这两种方法的实现过程：

第一种：调用API的方法。

第一步：制作一张超过255列的报表，报表的样式如下图所示(这里直接用to(1,300)函数实现了)



保存这个报表为300col.raq。

第二步：设置分页。

点击属性-报表属性-分页，设置分页方式为按纸分页，然后另存这个报表为300col1.raq

第三步：编写导出的API

导出excel的API内容如下：

&#60;%@ page language=”java” contentType=”text/html; charset=gbk”
pageEncoding=”gbk”%&#62;
&#60;%@page
import=”com.runqian.report4.usermodel.*,com.runqian.report4.util.*,com.runqian.report4.model.ReportDefine”%&#62;
&#60;%@ page import=”java.io.*,com.runqian.report4.usermodel.DataSetConfig
“%&#62;
&#60;%
Context cxt = new Context();
String reporthome = Context.getInitCtx().getMainDir();
String path = application.getRealPath(reporthome);
String raq = path+File.separator+”300col1.raq”;
ReportDefine rd = (ReportDefine) ReportUtils.read(raq);
Engine engine = new Engine(rd,cxt);
IReport ir = engine.calc();
ReportUtils.exportToExcel(path+File.separator+”300col.xls”,ir,true);
%&#62;

在发布不分页的报表(也就是300col.raq)的jsp中调用上面的jsp，将300col1.raq导出，就可以实现导出超过255列excel的需求了。

第二种：使用标签实现。

在展现报表jsp的博计标签中加入如下两个内容： width=”-1″ , excelUsePaperSize=”yes”，width=”-1″的含义是页面展现的时候纸张宽度无线大，这样展现的时候就不分页了，而excelUsePaperSize=”yes”的含义是导出excel的时候按照设置的纸张大小来分页，jsp的内容如下：

&#60;%@ page contentType=”text/html;charset=GBK” %&#62;
&#60;%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report” %&#62;

&#60;% //这里为两种方法准备图片连接的公共部分
String appmap = request.getContextPath();
String printImage = “&#60;img alt=打印 ...</description>
		<link>http://www.bonzerreport.com/knowledge/basic/%e5%8d%9a%e8%ae%a1%e6%8a%a5%e8%a1%a8%e9%a1%b5%e9%9d%a2%e8%b6%85%e8%bf%87255%e5%88%97%e5%af%bc%e5%87%baexcel.html</link>
			</item>
	<item>
		<title>博计报表–初始化为空的参数报表制作</title>
		<description>博计报表由于没有动态参数和动态宏，按照传统的参数判断来实现报表初始化为空，点击查询才展现数据的需求比较困难。那有没有其他的方法实现该功能呢？当然是有的。今天就来介绍一种使用frame的方法来实现该需求。

准备报表：

实现用报表使用设计器自带应用中的 参数报表.raq 和 参数报表_arg.raq。

具体实现：

新建frame.html文件，文件内容如下：

&#60;frameset rows=”100,*” framespacing=”2″ frameborder=”yes” border=”2″
bordercolor=”#993300″&#62;
&#60;frame src=”params.aspx” name=”topFrame” scrolling=”NO” noresize &#62;
&#60;frame src=”" name=”reportFrame”&#62;
&#60;/frameset&#62;

新建param.aspx文件，文件内容如下：

&#60;%@ Page Language=”C#” AutoEventWireup=”true” %&#62;
&#60;%@ Register Assembly=”report35net” Namespace=”com.runqian.report.tag” TagPrefix=”rq” %&#62;
&#60;%@ Import Namespace=”System.IO” %&#62;

&#60;html&#62;
&#60;body topmargin=0 leftmargin=0 rightmargin=0 bottomMargin=0&#62;
&#60;table id=param_tbl align=center&#62;
&#60;rq:ParamTag
ID=”ParamTag_1″
Name=”param1″
ParamFileName=”参数报表_arg.raq”
NeedSubmit=”no”
runat=”server”
resultPage=”reportBase/testAspx/report.aspx”
target=”reportFrame” /&#62;
&#60;td&#62;&#60;a href=”javascript:_submit( param1 );”&#62;&#60;img src=”img/query.jpg” border=no style=”vertical-align:middle”&#62;&#60;/a&#62;&#60;/td&#62;
&#60;/table&#62;
&#60;/body&#62;
&#60;/html&#62;

其中resultPage=”reportBase/testAspx/report.aspx”，resultPage是博计的发布参数报表标签中的属性，属性含义：提交参数后，显示报表的结果页面；属性取值：相对于应用根目录的页面URL。

新建report.aspx文件，内容如下：

&#60;%@ Page Language=”C#” AutoEventWireup=”true” %&#62;
&#60;%@ Register Assembly=”report35net” Namespace=”com.runqian.report.tag” TagPrefix=”rq” %&#62;
&#60;%@ Import ...</description>
		<link>http://www.bonzerreport.com/knowledge/basic/%e5%8d%9a%e8%ae%a1%e6%8a%a5%e8%a1%a8%e2%80%93%e5%88%9d%e5%a7%8b%e5%8c%96%e4%b8%ba%e7%a9%ba%e7%9a%84%e5%8f%82%e6%95%b0%e6%8a%a5%e8%a1%a8%e5%88%b6%e4%bd%9c.html</link>
			</item>
</channel>
</rss>
