<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.6.2" -->
<rss version="0.92">
<channel>
	<title>报表工具博客-ibaobiao</title>
	<link>http://ibaobiao.com</link>
	<description>专注报表相关研究，报表工具、报表技术、报表应用、报表相关知识</description>
	<lastBuildDate>Sun, 17 Jan 2010 01:01:48 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>即时报表中的报表数据量控制</title>
		<description>由于润乾即时报表是自由定制报表的工具，开放性很大，用户在制作web报表过程中不排除有不合理的设计报表的情况如错误的选取视图或错误的设置条件等，这种情况下数据量可能会很大，很有可能导致一些不可预知的性能问题。即时报表提供了性能管理功能对这种可能发生的情况进行控制。即时报表的性能管理功能包括对报表数据量的控制和对统计图数据量的控制两个方面。下面首先介绍一下对生成报表时数据量控制功能。1、报表数据量控制的实现

即时报表设置了一个对数据量的控制参数，对于超过数据量的报表，用户可选择继续查看或要求重新设置。与权限控制类似，数据量的控制参数也是通过入口jsp的参数maxDataCount传入。之后，该变量会存在session中，名字为sys_MaxDataCount，类型为java.lang.Integer。若该变量为空，则表示无限制。在集成即时报表时，可直接在session中存储一个名字为sys_MaxDataCount的Integer变量，替代从入口的传入。

当报表数据量超出限制时，还可控制用户是否继续浏览报表。这个控制参数通过入口jsp的布尔型参数canContinue传入（取值0、1或true、false），并存储在session中，变量名为sys_CanContinue，类型为java.lang.Boolean，缺省值为false。在集成环境下，可直接在session中存储一个名为sys_CanContinue的Boolean型变量，替代从入口的传入。

2、数据限制的判断

对于网格式报表和分组式报表，maxDataCount控制结果数据集的行数（行数不能超过maxDataCount），这样最后的报表行数也被控制在maxDataCount之内。

对于交叉式报表，maxDataCount不对数据集作限制，但是会限制结果报表的行列数，即结果报表的数据区不能超过maxDataCount × maxDataCount大小。

注意：如果限制的合理的话，对于一个设置正确的报表，不会有任何影响。但是对于设置错误的报表，可以有效防止一些性能问题如服务器宕机。

即时报表的报表数据量控制对由于不合理的设计而导致数据量过大从而导致一些不必要的性能问题提供了控制功能，同时也减少了一些不必要的资源浪费。

引自：润乾报表知识库
原文链接： </description>
		<link>http://ibaobiao.com/archives/1026</link>
			</item>
	<item>
		<title>润乾报表对横向扩展强制换行的设计方法</title>
		<description>润乾报表设计器不仅提供给客户各种设计报表的功能与途径，同时也具备了很多应变式的特性与设计方式，以最大限度的满足用户在设计报表时所能遇到的各类需求。本文就以一个实际需求来展示润乾应用时的灵活应变性。需求描述：横向扩展的报表实现分多行展示。

例如下图中的报表预览图，为一个横向扩展的报表，从图中可看出报表含有五个字段，且图上没有截下报表的所有表格，报表右侧还有表格没有显现。由于数据量较大，导致报表预览时形成一个横向的狭长的报表，预览效果不易观察数据，也不尽美观。

解决思路：报表的扩展类型为横向扩展时，在报表模板上加上控制扩展列数的函数，即扩展几列后换行；同时在报表模板上显示换行的次数。

报表模板如下图所示。



报表模板的数据集配置如下：

ds1: SELECT 雇员.雇员ID,雇员.姓氏,雇员.名字,雇员.地址,雇员.家庭电话 FROM 雇员

单元格设置如下：

A1：=ds1.count()，用于计算此数据集内的数据个数。

B1：=int(A1)/5+1，用于计算一共需要扩展的行数，其中”5″是每行的数据列数。A4：=to(1,B1)，作为强制分行的扩展基础。

B4：=(A4-1)*5，是每行的基数。

D3：=to(1,5)，与B1统一，控制显示为5列数据。

D4：=ds1.select1(雇员ID, 雇员ID ==D3+B4) ，其中D3+B4分别递增，达到与每个雇员ID进行匹配的目的，这里需要着重强调的是数据集里需要”雇员ID”是连续递增的数字，来实现换行后的匹配。在此例中”雇员ID”是初始值为1的有序递增数据，如果是其它情况，读者可以自己根据具体情况求出这个”雇员ID”或者在数据库中添加一列有序的数字来实现。

D5：=ds1.select1(姓氏,雇员ID==D3+B4)，把D5的上主格设置为D4。

D6：=ds1.select1(名字, 雇员ID ==D3+B4)。

D7：= D5+D6。

D8：=ds1.select1(地址, 雇员ID ==D3+B4)。

D9：=ds1.select1(家庭电话, 雇员ID ==D3+B4)。

C11：=”第”+A4+”行/共”+int(B1)+”行”。

将C5，C6，C7，C8，C9，C10 ，C11，C12的左主格都设置为B4。将1，3，5，6行设为隐藏行，1，2列设置为隐藏列。报表设计完成，发布报表，预览效果如下图所示。



从上图可以看出，在这个报表中实现了固定列数的换行，达到了客户的需求，而且这个换行效果在导出excel的时候同样有效，显示如下图。



以上的例子中，将报表预览显示列数规定为5列，具体设置根据用户的需要而定，还可以将这个数设置为参数，供用户自行输入来选择。

引自：润乾报表知识库
原文链接：润乾报表对横向扩展强制换行的设计方法  
相关文章：Web报表单元格内容竖向显示的实现方法;横向分页报表的标题切分

其他相关内容： 润乾 ； 商业智能BI联盟 ;  报表软件 ；Java报表商业智能解决方案web报表的扩展功能 </description>
		<link>http://ibaobiao.com/archives/1023</link>
			</item>
	<item>
		<title>交叉报表的的修饰方法</title>
		<description>交叉报表是一种常见的报表，润乾报表提供了丰富完善的交叉报表设计方法和途径，本文就来介绍一下润乾报表设计器在设计交叉报表时的一些设计技巧，用户可在日后的交叉报表设计中用到这些方法完成一些个性化的设计。

首先设计一个交叉报表，报表模板如下图所示。



报表的预览结果如下图所示。



下面对上述报表做进一步修饰设计，让其预览更美观。

第一步、修饰报表外观

润乾设计器中可设计报表边框线的颜色，本文将上述报表模板边框线设置为红色，将字体编辑为更美观的字体，如仿宋体，以及字号大小和颜色等设置，如下图设置。



第二步、修饰报表内容

将计数行加入到表头中。点击表头A1、A2将A1、A2中的TITLE和DEGREE改为级别和学历，增加一个计数(EMPID)使得将A1，A2单元格分为三部分，分别显示等级、学历、计数(EMPID) ，为了使得A1、A2合并单元格中的文字显示更加协调可根据具体表格情况调整A1、A2合并单元格大小。注意这里使用的逗号都是在英文输入法下输入的。然后将单元格B1、B2合并，如下图所示。





第三步、修改交叉表头斜线颜色与整体报表颜色一致

设置A1、A2单元格斜线和报表格子的颜色一致。选中A1、A2右击菜单选择”边框设置”。颜色下拉菜单选红色，风格不变，粗度下拉菜单选1.0，再点击红框中的斜线按钮，最后点【确定】，如下图所示。



报表的美观设计操作基本完成，预览效果如下图所示。



从预览效果图可看出，交叉报表的展现更加简单直观，颜色样式也较为赏心悦目。润乾报表设计器提供的个性化设计方式还有很多，用户可在报表设计中运用这些设计方法将报表设计的更加完美。
引自：润乾报表知识库
原文链接：交叉报表的的修饰方法
相关文章：Web报表单元格内容竖向显示的实现方法;split函数及其特殊用法；横向分页报表的标题切分

其他相关内容： 润乾 ； 商业智能BI联盟 ;  报表软件 ；Java报表商业智能解决方案web报表的扩展功能 </description>
		<link>http://ibaobiao.com/archives/1019</link>
			</item>
	<item>
		<title>即时报表国际化</title>
		<description>润乾即时报表是基于语义层文件设计的可通过拖拽的方式轻松实现web报表制作的工具。即时报表不仅支持各种常见的web报表制作，提供了各种方便用户操作的功能如Flex工具条等，而且还提供了对国际化的支持。下面我们就简单介绍一下即时报表国际化的实现。

即时报表是通过jspTag，在显示系统文字的地方使用tag标签，标签根据系统设置或客户端的语言，输出对应语言的信息来实现国际化的。当把浏览器的语言设置成 中文(中国)[zh-cn] 时，访问即时报表，页面就是中文的，如下图



当把浏览器的默认语言设置成 英语(美国)[en-us] 时，访问即时报表，可看到英文界面，如下图



目前，即时报表只提供两种语言的支持即默认语言（中文）和英文，如果想增加多种语言的支持，需要为每种语言编写一个配置文件，当没有对应的语言配置文件，会显示缺省信息。配置文件的编写有两点需要注意：

(1) 语言配置文件的命名规则为：fastreport_语言代码_国家代码.properties，例如 fastreport_zh_CN.properties，fastreport_en_US.properties等等；

(2) 配置文件的内容格式为：关键字=对应文字 如 英文配置：main.title=Runqian Fast Report ，中文配置：main.title=\u6da6\u4e7e\u5373\u65f6\u62a5\u8868。
引自：润乾报表知识库
原文链接：即时报表国际化
相关文章： </description>
		<link>http://ibaobiao.com/archives/1017</link>
			</item>
	<item>
		<title>即时报表中的权限控制</title>
		<description>在实际应用中，可能需要限制用户制作web报表时访问到的视图或者数据。润乾即时报表不仅支持各种常见的web报表制作，提供各种方便用户操作的功能如Flex工具条，支持国际化，而且还提供了权限控制的功能。下面我们就简单介绍一下即时报表的权限控制。

即时报表的权限定义通过入口jsp的参数dataSet传入，参数的内容为XML格式的字符串，结构定义如下：&#60;?xml version=”1.0″ encoding=”utf-8″?&#62;
&#60;views&#62;
&#60;view name=”视图名1″&#62;
&#60;macro&#62;条件1&#60;/macro&#62;
&#60;macro&#62;条件2&#60;/macro&#62;
&#60;macro&#62;条件3&#60;/macro&#62;
&#60;/view&#62;
&#60;view name=”视图名2″&#62;
&#60;macro&#62;&#60;/macro&#62;
&#60;/view&#62;
&#60;/views&#62;

其中，&#60;view name=”视图名1″ &#62;&#60;/view&#62;设置有权限访问的视图，每个view节点中的&#60;macro&#62;&#60;/macro&#62; 设置对应的该视图下设置的条件，这个条件设置并不是必须的。这里设置的条件要符合xml语法，如 不能直接写 订单.运货费&#60;500 而是要写成 订单.运货费&#38;lt;500 等。

即时报表在入口页面读入并解析这个xml之后，将其转为HashMap存在session中，名字为sys_AccessibleViews。

sys_AccessibleViews的结构为：



将即时报表集成到别的项目时，可直接按上面的结构构造一个HashMap，并存在session中。若该HashMap为空，则表示无限制。

即时报表的权限控制为使用者把即时报表集成到自己的应用中提供了权限控制入口，满足了用户的需求。

引自：润乾报表知识库
原文链接： </description>
		<link>http://ibaobiao.com/archives/1021</link>
			</item>
	<item>
		<title>即时报表中使用自定义指标</title>
		<description>润乾即时报表提供为web报表增加自定义指标的功能。所谓自定义指标就是用户可以通过对可用字段进行编辑，得到自己需要的衡量指标。如可以通过定义指标来统计产品的总价。下面就以设计简单报表 产品信息统计 为例，介绍一下如何在即时报表中使用自定义指标。

1、准备工作

在 数据集 标签页选择产品视图。

2、添加和使用指标

首先，切换到 设计报表 标签页，新建一个指标，设置如下图

点击确定后，指标 总价 就增加好了。添加好的指标，会被存储在当前会话中，在会话被销毁（关闭浏览器或者会话超时）或点击重新设计报表前，一直是可用的，且指标对于简单报表、分组报表和交叉报表是共享的。例如，在简单报表中定义的指标，在分组报表和交叉报表的设计页面也是可以看得到的。

通过拖拽的方式在选定字段中使用该指标字段，如下图



然后，使用默认的报表风格，查看报表，可看到报表如下图



这样就完成了指标的添加和使用。

润乾即时报表提供的自定义指标功能，为用户在设计web报表时使用自己需要的衡量指标提供了极大的方便，满足了用户更广泛的需求，但有两点需要注意

(1) 指标名称必须填写，且指标表达式必须正确，点击确定时才能成功添加指标。

(2) 指标表达式可以通过双击左边的字段，添加到指标表达式文本框内，且每次添加都会添加在内容的结尾，也可以自己编辑表达式，但是表达式的样式必须为：[视图名.字段名]。
引自：润乾报表知识库
原文链接： </description>
		<link>http://ibaobiao.com/archives/1014</link>
			</item>
	<item>
		<title>即时报表中使用专项过滤条件</title>
		<description>

润乾即时报表提供专项过滤条件的功能。所谓专项过滤条件功能就是使用语义层文件中预先设置好的条件参数过滤查询数据。下面简单介绍一下即时报表中专项过滤条件的使用。

注意：只有在语义层文件中设置了条件参数，才可以在基于该语义层文件的即时报表中使用专项过滤条件。

下面以产品视图为例，简单介绍如何在即时报表中使用产品视图的专项过滤条件。

操作流程如下：首先，在语义层文件中为 产品 视图 添加 条件参数 ，设置如下图



然后，在即时报表中使用该语义层文件，设计报表。

报表设计步骤如下：

第1步，『数据集』 标签页中选择 产品 视图。

第2步，切换到『查询条件』标签页，在左侧的专项过滤条件栏会全部显示出设置好的专项过滤条件，如下图



第3步，不选中任何一项复选框，设计报表后查看报表，效果如下图



第4步，选中 单价不为空 前面的复选框，设计报表后查看报表，效果如下图



这样，可以看到单价为空的数据已经被过滤掉了。

即时报表中提供的专项过滤条件功能，可以设置一些比较常用的过滤条件，用户在制作表时，无需单独设置就可以使用这些常用的过滤条件，为用户制作web报表带来了更大的方便。
引自：润乾报表知识库
原文链接： </description>
		<link>http://ibaobiao.com/archives/1009</link>
			</item>
	<item>
		<title>自定义函数实现java中的全局唯一标识符（UUID）方法</title>
		<description>数据库中存在着主键约束特性，也就是不能出现相同的主键。如果用一些简单的整数做主键，很有可能会违反主键约束。针对这一应用约束，产生了UUID(Universally Unique Identifier)–来解决这个问题。UUID是全局唯一标识符，指在一台机器上生成的数字，它保证对在同一时空中的所有机器都是唯一的。web报表的开发大部分都需要使用数据库，有时就需要用到这个方法来解决一些问题，Java1.5中增加了UUID的方法，本文就将介绍如何把java中的这个方法应用在润乾报表设计中。

Java中的方法函数，在润乾报表中使用，需要通过自定义函数来调用。

实现思路：通过润乾提供的二次开发的接口和类实现将java中的方法调用到报表中。

第一步、编写自定义函数的java类，继承com.runqian.report4.model.expression.Function这个类，具体代码如下。

public class MyUUid extends Function
{
public MyUUid(){ }//空值构造方法
public Object calculate(Context ctx, boolean isInput) //标准接口，ctx为运算环境，isInput为是否填报
{
//得到java中的UUID,格式为类似****-****-****的,可以根据自行设置更改返回值的格式,这里以字符串的形式演示.
String s = UUID.randomUUID().toString();
String value = s.substring(0,8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);//拆分字符串,重新拼成一个新字符串.
return value;
}
}

第二步、将编译好的java类.class文件配置到设计器以及项目中。修改设计器的配置文件，路径为\reportHome\designer\web\WEB-INF\classes\config\customFunctions.properties 文件，加入以下内容：uuid=0,com.runqian.custom.function.MyUUid

其中:uuid是自定义函数的名称,0代表非数据集函数, com.runqian.custom.function.MyUUid是自定义函数的包和类名。

同样方式修改服务器的配置文件，路径为\reportHome\webapps\demo \WEB-INF\classes\config\customFunctions.properties。若\reportHome\webapps\demo \WEB-INF\classes目录下没有config目录,则到\reportHome\designer\web\WEB-INF\classes下复制config目录。

根据上面修改的内容中定义的函数包打好包后，复制到\reportHome\designer\classes和\reportHome\webapps\demo\WEB-INF\classes目录下。

第三步、配置完成后,在报表单元格中直接调用=uuid()即可。

下面设计一张简单的报表模板，直接调用uuid函数，发布到web预览图如下图所示。



此时显示的是当前的UUID的值。

这样就实现在润乾报表中调用java提供的UUID方法了。
引自：润乾报表知识库
原文链接： </description>
		<link>http://ibaobiao.com/archives/1011</link>
			</item>
	<item>
		<title>报表组中实现Sheet间的跳转</title>
		<description>报表组的应用在报表开中发越来越广泛，可以实现一些单个报表实现不了的功能。润乾报表设计器中提供用户较全面的报表组设计开发方法，但对于一些客户的个性化需求，有些功能还不能直接实现，比如点击一个sheet页面中的订单ID然后在另一个sheet页面显示该订单的明细。本文就来通过例子说明怎样间接实现该功能。

在报表组开发中，浏览报表组默认情况下是显示第一张报表。通过查看显示报表组的页面源代码了解到报表组是把每个报表sheet的内容放在一个div中，默认显示第一个div，点击第二个报表的tab页就显示第二报表的div。所以要实现上面的功能，我们可以根据下面的思路来做。

大致思路：

首先创建一个包含两个报表的报表组，在第一个报表中创建超链接，连接到报表组本身，把订单ID和需要显示的哪个层的标志传递给报表组，第二个报表根据订单ID查询订单明细，报表组再根据显示层标志来显示相应的div。比如这个超链接：”/reportJsp/showReportGroupTest.jsp?rpg=/group/group.rpg&#38;order=”+A2+”&#38;showFlag=2″。就是显示第二个div并根据订单idA2单元格的值查询显示相应的订单明细。

制作步骤：

第一步、制作sheet报表组

设计报表模板”订单主表”。数据集的sql语句为：”SELECT 订单.订单ID,订单.订购日期,订单.货主名称,订单.货主地区,订单.到货日期 FROM 订单 WHERE 订单.订单ID like ‘105__’ ORDER BY 订单.订单ID ASC”。

单元格中输入内容如下：A1: 订单ID；B1: 订购日期；C1: 货主名称；D1: 货主地区；E1: 到货日期；A2: =ds1.Select(订单ID)；B2: =ds1.订购日期；C2: =ds1.货主名称；D2: =ds1.货主地区；E2: =ds1.到货日期。

报表模板如下图所示。



设计另一个报表 “订单明细”，为报表添加一个参数order，用来接收第一个报表传递过来的订单ID，报表数据集的sql语句：SELECT 订单明细.订单ID,订单明细.产品ID,订单明细.单价,订单明细.折扣,订单明细.数量 FROM 订单明细 WHERE 订单明细.订单ID =? ORDER BY 订单明细.订单ID ASC。在数据集编辑界面增加一个参数order。

单元格中输入的内容如下：A1：订单ID；B1: 产品；C1: 单价；D1: 折扣；E1: 数量；A2: =ds1.Select(订单ID) ；B2: =ds1.产品ID；C2: =ds1.单价；D2: =ds1.折扣；E2: =ds1.数量。

增加一个数据集，用于显示产品的中文名字，它的sql语句：”SELECT 产品.产品ID,产品.产品名称 FROM 产品”。将B2单元格的显示值表达式设置为：ds2.select1(产品名称,产品ID==value())。报表设计模板如下图所示。



新建一个报表组，把刚才创建的两个报表添加到报表组中，报表组命名为group，如下图所示。



上图中url类型使用相对路径。

给报表组定义一个参数”order”，用于接收第一个报表传过来的订单ID。设置报表组和报表之间的参数传递，选中下图中的”订单明细”点击右键如下图所示。



选择”报表项设置”，弹出设置对话框，如下图所示。



点击上图中的”+”号，添加报表组和报表之间传递的参数order。

第二步、设置超链接

在设计器打开订单主表.raq，选中A2单元格，在超链接的表达式窗口中输入”"/reportJsp/showReportGroupTest.jsp?rpg=/group/group.rpg&#38;order=”+A3+”&#38;showFlag=2″”。如下图:



第三步、制作解析报表组的jsp

在发布报表组的jsp文件中加入如下这段代码，意为当点击触发订单ID时，会通过参数将订单ID和需要显示的哪个层的标志传递给报表组，第二个报表根据订单ID查询订单明细，报表组再根据显示层标志来显示相应的div。

&#60;%
//得到显示哪个div的标志
String showFlag = request.getParameter(”showFlag”);
if(”2″.equals(showFlag)){%&#62;
//标志为2的时候就显示第二张报表，就是div名字为div_item2的层
&#60;script language=”javascript”&#62;
//显示第二个报表的div，隐藏第一个报表的div
document.getElementById( ...</description>
		<link>http://ibaobiao.com/archives/1007</link>
			</item>
	<item>
		<title>润乾报表超链接的几种方法</title>
		<description>超链接是一个非常实用的功能，在各种项目、应用中使用广泛，润乾报表也支持这个功能。本文介绍润乾报表设计器如何在报表中设置超链接。

报表的超链接就是设置单元格的超链接属性，可以分为以下三种形式：1、普通超链接：若超链接字符串不需要动态生成，可以直接写所要链接的页面路径，则可以直接在超链接属性编辑框中编辑。如：”reportJsp/showReport.jsp?raq=超链接例子2.raq”。

2、绝对路径的超链接：可输入超链接的绝对路径，即在超链接属性表达式中写完整的绝对路径，如包含传输协议的超链接：http://www.runqian.com.cn。

3、带参数的超链接：超链接字符串可以根据单元格或者参数值动态生成，用输入表达式来实现。如：”reportJsp/showReport.jsp?raq=超链接例子2.raq&#38;arg=”+”润乾公司官网：http://www.runqian.com.cn“。

下面介绍一下这三种超链接形式的实现方法。

	第一步 创建报表并设置超链接

新建一张报表，命名为超链接例子1.raq，报表模板如下图所示。



在报表的单元格输入如下内容：

A1:超链接示例； A3:普通超链接；B3:润乾官方网站；A4:带参数的超链接（字体颜色属个性化设置，用户可自行设计）。并且给A3、B3、A4设置下划线，设置方法是选中目标单元格，打开设计器右边”字体”属性组，勾选”下划线”属性，如下图所示。



第一种超链接形式：普通超链接。

选中A3单元格，在右边超链接属性表达式里面输入：”reportJsp/showReport.jsp?raq=超链接例子2.raq”，意为超链接到报表超链接例子2.raq，如下图所示。



若想在新窗口打开链接到的网页，就在属性超链接窗口的值设置为”_blank”，默认值为”_self”，表示在原来的窗口打开。

第二种超链接形式：绝对路径的超链接。

选中B3单元格，在右边超链接属性值里面输入：http://www.runqian.com.cn，意为超链接到润乾官方网站，如下图所示。



也可以在表达式里面写入上面的网址，需要用双引号引起来，如下图所示。



第三种超链接形式：带参数的超链接。

选中A4单元格，在右边超链接属性表达式里面输入：

“reportJsp/showReport.jsp?raq=超链接例子2.raq&#38;arg=”+”润乾公司官网：http://www.runqian.com.cn”

意为超链接到报表 超链接例子2.raq，并且把润乾公司网站信息传过去，如下图所示。



	第二步 创建链接目标报表

新建一个报表，命名为超链接例子2.raq，模板如下图所示。



给报表添加一个参数 arg，用于接收上一个报表传过来的信息。

单元格输入的内容如下：A1: 超链接示例：目标报表

A2: 了解我们：

B2:=@arg

	第三步 预览

将”超链接例子1.raq”发布到web页面，预览图如下图所示。



点击”普通超链接”可以连接到报表”超链接例子2.raq”，预览图如下。



点击”润乾官方网站”就可以连接到润乾的官方网站，如下图所示。





点击”带参数的超链接”就可以连接到”超链接例子2.raq”，并且把润乾官网信息传到报表”超链接例子2.raq”中，如下图所示。





润乾报表设计器提供的三种超链接设计方法，已完全能够满足用户的所有形式的超链接需求，用户可在今后web报表设计中实际操作一下。
引自：润乾报表知识库
原文链接：润乾报表超链接的几种方法
相关文章：Web报表单元格内容竖向显示的实现方法;split函数及其特殊用法；横向分页报表的标题切分

其他相关内容： 润乾 ； 商业智能BI联盟 ;  报表软件 ；Java报表商业智能解决方案web报表的扩展功能 </description>
		<link>http://ibaobiao.com/archives/1005</link>
			</item>
</channel>
</rss>
