zoukankan      html  css  js  c++  java
  • 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”不匹配”。

  • 相关阅读:
    DDoS攻击
    CSRF攻击
    正向代理和反向代理
    DNS协议
    四次挥手
    Nginx重要概念之lingering_close
    Nginx重要概念之pipeline
    Nginx重要概念之keepalive
    http1.0、http1.1、http2.0三者的区别
    Vue axios封装二
  • 原文地址:https://www.cnblogs.com/morvenhuang/p/713072.html
Copyright © 2011-2022 走看看