您的位置:首页 > 博客中心 > 数据库 >

[翻译]初识SQL Server 2005 Reporting Services Part 2

时间:2022-03-14 02:46

原文:

   在Part 1文章中我们对SQL Server Reporting Services 2005(SSRS)有了一个初步的了解。我们分别通过报表向导和报表设计器构建了两个报表。在Part 2我们将以一个SSRS开发者的身份深入查看更多特征信息。

  以下是我们要研究的:

  l 表达式的用法。这些表达式可以让你动态的控制从控件属性到数据绑定的报表的各个方面。

  l 报表中用到的计算和操作的通用函数。

  l 报表中自定义代码。

  我们也会创建一个矩阵控件,创建一个子报表。最后我们会见识一下报表的动态钻取和排序。

 

  这样的表达式特征将SSRS2005变成了一个非常好用的工具。因为这使得从数据展现到如何展现都可以动态设置。而不是直接写死在里面。SSRS用表达式对属性进行设置。

  看一下你的报表,现在我们想要高亮显示从特定State来的客户信息。我们可以这样设计表达式:=iff(Fields!State.Value = “CA”, “Bold”, “Normal”)

  如果我们将这个表达式应用到表格的明细列,运行报表的时候,所有来自California的列都被高亮显示。如果你正需要这些数据,就会很方便。然而如果每个高亮显示的列都需要一个报表那就太滑稽了。所以我们得进行动态设置。当报表运行的时候根据传入的参数不同而高亮显示不同的内容。

  首先,先提添加一个参数。命名为HightlightState,设置如下的数值:

 

  函数iif是SSRS中经常用到的一个表达式。格式是:

  iif (boolean statement, true result, false result)

  如果布尔表达式返回true那么函数将返回ture result,如果布尔表达式返回false,那么函数就会返回false result。布尔表达式会问:现在传进来的参数是不是等于当前的state code呢?如果返回true那么文本就会加粗显示,否则正常。

  转到预览选项卡,可以看到效果。

 

  现在让我们用Year函数只显示某人的出生年份。选择DateOfBirth列的属性,在常规选项卡的值信息中单击表达式按钮进入表达式编辑器。把表达式改成:

=Year(Fields!DateOfBirth.Value)

  这样就行了,现在预览一下。

  值得注意的还有聚合函数。这些函数可以帮助你处理数据集中的数据。比如说,你的报表是关于一些商品的单价信息,这样就可以用Sum函数创造一个总价格。再比如,你有一个关于购买日期和每笔交易的购买数量报表,就可以通过AVG函数获得平均价格。

        Return "White"

     End IF

     IF status = "101" Then

        Return "Yellow"

    End IF

     IF status = "102" Then

        Return "Tomato"

     End IF

  End Function

  单击确定关闭对话框。

  笔记:

  所有的颜色都在属性中的Color下拉列表中。

  我们现在有了一个函数,现在来包装成表达式。右击Customer Status列打开属性窗口。找到Background Color属性,从下拉列表中选择表达式。添加下面的代码创建一个表达式:

  =code.GetColor(Fields!CustomerStatus.Value)

  当报表运行的时候,这个函数会被处理,而且参数信息将会传递进去。函数根据参数决定该显示哪个颜色。SSRS就可以确定要用那个颜色赋值给相应的单元格。

gxlsystem.com,布布扣 

  注意为了使用这个函数我们需要这样写:=code.<myfunction>.

  预览报表。

 

  现在用“100”这个书进行运行报表测试。

  现在回到MainReport.rdl主报表。为了进行嵌入操作,将一个子报表控件拖拽进Address列。右击子报表选择属性,将子报表设置成MySubReport。

gxlsystem.com,布布扣 

  接下来转到参数选项卡,这里正是你将子报表连接到主报表的地方。在这里设置要将哪个参数传递个子报表相应的参数。  

  在参数名中选择CustomerID,参数值中选择=Fields!CustomerID.Value,这样就可以让子报表知道该显示那个客户的信息。

gxlsystem.com,布布扣 

  单击确定,预览主报表。

 

  运行起来是这个样子:

gxlsystem.com,布布扣 

 

  我们现在实现了分组,但是还不能进行钻取。选择表格控件,选择明细列前边的小图标,右击选择属性。展开Visibility部分,将Hidden属性设置为True,把ToggleItem属性设置为State。Hidden决定了报表运行时这一列的状态。如果设置为True那么开始是缩起和隐藏的。把ToggleItem属性设置为State,这样当报表运行的时候旁边就会向树状结构一样有个可以展开的小“+”号。

  预览报表发现只有States列显示,但是可以对其进行展开和收缩操作。

gxlsystem.com,布布扣 

 

  现在预览报表,就可以进行每一列的交互式排序。

gxlsystem.com,布布扣 

总结

  我希望这些SQL Server Reporting Services 2005高级的主题能帮助你更好的与用户进行沟通。在Part 3中,我们将会看一下图标控件和它的多种多样的功能。

热门排行

今日推荐

热门手游