Reporting Service技巧

Reporting Service技巧(一):表格中奇偶行不同颜色的设置

在报表开发中,我们都希望设计出的报表非常美观,就象Excel2007给我们带来的全新的视觉感受一样,让使用者感觉很舒服。
    美观性设置中,在报表中奇偶行显示不同的背景颜色就是其中的一种,那么我们就来介绍一下在Reporting Services 2005中如何来实现。
    方法一:系统函数
    设置所有单元格的背景为如下表达式:
                                        backgroudcolor=iif(RowNumber(Nothing) Mod 2, "Lavender", "White")
    其中:
            RowNumber(Nothing):提供了对最外层数据区域中的各行的运行计数值
    为了实现更好的通用性,我们可以将此写成一个自定义函数。
   
    方法二:自定义函数
    此方法设置得更为巧妙,利用一个全局变量bOddRow来实现奇偶行的切换。

Private bOddRow As Boolean 
  '*****************************************************************************
    '-- Display green-bar type color banding in detail rows
    '-- Call from BackGroundColor property of all detail row textboxes
    '-- Set Toggle True for first item, False for others.
    '*****************************************************************************
    Function AlternateColor(ByVal OddColor As String, ByVal EvenColor As String, ByVal Toggle As Boolean) As String
        If Toggle Then bOddRow = Not bOddRow
        If bOddRow Then
            Return OddColor
        Else
            Return EvenColor
        End If
    End Function
    函数设置完成之后,在表格第一列的背景色中设置为:
                                              =Code.AlternateColor("Black", "White", True)
    其他列设置为:
                                              =Code.AlternateColor("Black", "White", False)





[url=]Reporting Services技巧(二) 实现对KPI的支持[/url]
Analysis Services2005的一个新增功能是KPI,然而这种功能在Reporting Services 2005中却无法使用,也就是说,ReportingServices 2005无法读取Analysis Services的KPI,这里提供两种解决办法:
        1.通过Report Builder

我们可以在Report Builder中创建报表,可以直接读取Analysis Services中已经设置好的KPI,由于ReportBuilder的报表设计功能有限,所以我们可以将已经添加好KPI的报表保存起来,再利用开发环境打开进行其他设置,增加其他功能。
缺点是我们无法对KPI的图标进行设置。

        2.利用自定义代码

在开发环境中,我们同样可以利用自定义代码来完成对KPI的读取。
首先我们需要将所需的KPI图标读取到报表中,这样我们可以在报表里面利用这些图标,也可以将其读取到项目中,这样,项目中所有的报表都可以利用这些图标。
接下来我们设定如下的代码:

        Public Function GetKPI(ByVal currentValue As Integer,ByVal type As String) As String


                  Select currentValue



                            Case 1



                                      Return type &"2"



                            Case 0



                                    Return type &"1"



                            Case -1



                                    Return type &"0"



                  End Select


        End Function

    自定义函数通过从Cube中读取的状态和趋势值,在图像的属性Value中设置

                  =code.GetFace(Fields!Product_Gross_Profit_Margin_状态_.Value,"cyl")

    来获取图标的文件名,其中,type是图标的类型。这样,我们可以自定义这些图标,同时,图标也可以是Flash。