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”不匹配”。

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...