Reporting Services系列三:几个细节

(1)使用VB代码

报表—属性—代码,可以添加VB代码,用于预处理一些东西,如拼接一些较复杂的sql语句等。

可以在“引用”中添加对一些系统程序集的引用,然后使用其中的方法。

 

(2)表达式默认可使用的函数、全局对象
可使用表达式引用 Microsoft.VisualBasic 运行时库的内置命名空间、.NET Framework 命名空间中的System.Convert System.Math。若要引用其他 .NET Framework CLR(公共语言运行时)命名空间,必须使用完全限定的命名空间,例如System.Text.StringBuilderSystem.DateTime.Now.AddDays(……)

 

有效的表达式引用包括:

报表函数

sum等。有关详细信息,请参阅在表达式中使用报表函数 (Reporting Services)

报表集合

全局、用户、参数、字段、报表项、数据源、数据集,如最常使用的Parameters。有关详细信息,请参阅在表达式中使用全局集合 (Reporting Services)

Visual Basic 运行时库

有关详细信息,请参阅 msdn.microsoft.com 上的“Visual Basic 运行时库成员”。

System.Math

有关详细信息,请参阅 Math

System.Convert

有关详细信息,请参阅 Convert

自定义代码

即在“代码”选项卡添加的Visual Basic代码。可以定义在每个报表定义中使用的公共常量、变量、子例程和函数。有关详细信息,请参阅在表达式中使用自定义代码引用 (Reporting Services)

.NET Framework

在表达式中添加完全限定引用。例如,System.Text.StringBuilder

自定义程序集\其他 .NET Framework 程序集\其他外部程序集

在“报表属性”菜单中,在“引用”选项卡的“引用”部分下添加引用。有关详细信息,请参阅Using Custom Assemblies with Reports和报表属性(“引用”选项卡,报表设计器)。

自定义类实例

在“报表属性”菜单中,于“引用”选项卡的“类”部分下添加引用。有关详细信息,请参阅在表达式中使用自定义代码引用 (Reporting Services)和报表属性(“引用”选项卡,报表设计器)。

 

(3)如何得到总行数

="创建报表时间:"+ Globals!ExecutionTime +"   总行数:" & CountRows("DataSet1")

其中DataSet1表示数据集名称,请注意在字符串连接方面,“+”和“&”,应该是由于VB语法的原因。

 

(4)按行数分页

RS报表默认按最初设定的报表页面高度进行分页。也可以能过以下方法实现按行数分页,表格—右键—属性—组—添加,添加一个分组表达式:

输入=(RowNumber("ContainerName") - 1) \ PageSize ( PageSize用每页所包含的记录条数替代,ContainerName用包含这个组的表、矩阵或者列表的名称替代)。这个表达式是用记录的行号整除分页大小,也就是记录所在的页码数。最后选中“在结尾处分页”,在每个组实例的结尾处放置分页符。

如果每页的行数较大,大约是由于高度超出了报表页面默认的高度,报表将自动按50行分,这时应该修改table的高度,可以设置一个较大的值,系统将自动缩放。

(注意:按行数分页,有一个副作用,由于必须选中“在结尾处分页”,如果你预想在table之后紧跟着显示一张图,你会发现图总是显示在table最后一页的下一页)

 

(5)几个细节

无法完成涉及多行的单元格的合并,投机的方法是隐藏边框。

 

页面上放一个textbox,在其下紧挨着放一个table,有时会发现呈现出来时textboxtable之间无故出现一个空白行,没有找到原因,通常通过删除textbox重建一个可以避免。

 

尝试在“代码”页中通过VB连接数据库(Oracle,需要“引用”中添加对System.DataSystem.Data.OracleClietSystem.Xml的引用),获取查询语句,再呈现报表,“预览”是可以的,但是发布后出现错误,提示无法得到查询语句,没有找到原因。

 

动态语句中,不等于要用<>,如用!=将提示“类型字符“!”与声明的数据类型“System.Object”不匹配”。

 

动态语句中,字符串连接符“&”两侧请加上空格,否则将提示“类型字符“&”与声明的数据类型“System.Object”不匹配”。

原文地址:https://www.cnblogs.com/morvenhuang/p/713072.html