服务器 频道

创建一个可靠集成的报表解决方案(图)

  编写用于 SCCM 的 SSRS 报表

  至此,我们介绍了如何使用标准 SCCM 报表与 SSRS 交互。使用 SSRS 可以编写自定义报表,此操作也并不复杂。有几种方法可以编写自定义报表。首先是根据标准 SQL 查询创建报表,这与标准 SCCM 报表中的方法非常相似。此外,还可以使用模型生成报表。可以通过 SCCM 控制台访问用于创建标准 SQL 或基于模型的报表的选项。可以从图 2 中所示的右键单击菜单中选择“Create Report”(创建报表)访问这些模型。选择“Create Report”(创建报表)将显示图 5 中显示的向导。

编写用于 SCCM 的 SSRS 报表

  图 5 System Center Configuration Manager 创建报表向导

  该向导用于创建标准 SQL 报表甚至基于模型的报表,但与可以使用 Visual Studio 进行的编写相比,选项比较有限。有关使用基于模型的报表的详细信息,请参见“使用报表生成器建 CM2007 报表”白皮书。此外,还提供了其他有助于创建模型的资源。另一种可选方法是直接在 Visual Studio 中编写自定义报表,Visual Studio 提供了一个丰富而灵活的环境来生成报表。除了以上方法以外,还有第四种可选方法,本文将对其重点介绍:使用 Report Builder 2.0。针对 SQL Server 2008 设计的 Report Builder 2.0 是一个用于设计报表的可靠环境,此环境甚至还可以用于设计可用于 SCCM 的报表模型。Report Builder 2.0 可从 microsoft.com/downloads/details.aspx?FamilyID=9f783224-9871-4eea-b1d5-f3140a253db6&displaylang=en 下载。如果编写用于 SQL Server 2005 的报表,则最可靠的可选方法是使用 Visual Studio。如果编写用于 SQL Server 2008 的报表,可以使用 Report Builder 2.0 或 Visual Studio。

  无论使用哪种编写方法,报表作者都需要充分了解 SCCM 数据库才能取得成功。SCCM 数据库讨论已经超出了本文的讨论范围。

  本文余下部分将逐步演示如何使用 Report Builder 2.0 创建基本报表、如何将最终报表部署至 SSRS 以及如何通过 SCCM 执行此报表。

  要开始操作,请启动 Report Builder 2.0,随即将显示类似图 6 所示的简介屏幕。

编写用于 SCCM 的 SSRS 报表

  图 6 Report Builder 2.0 简介屏幕

  此环境随即准备开始设计报表,并且由于它基于向导,因此简化了设计过程。在报表的设计区域中,单击标题区域,然后将默认文本替换为此报表的标题。此示例报表的标题将为“Basic ConfigMgr Report”。与任何测试一样,可以从右键单击菜单中访问全部格式设置选项。输入标题后即可开始设计报表。此设计器中有两个选项:创建基于表或矩阵的报表,或创建基于图表的报表。选择创建基于图表的报表。随即将打开“新图表”向导,如图 7 所示。

编写用于 SCCM 的 SSRS 报表

  图 7 Report Builder 2.0 新图表向导

  第一个要求是创建数据源。数据源将报表配置为链接至相应的 SQL 服务器,以及此 SQL 服务器上承载报表所用数据的相应数据库。单击“新建”[1105user1] ,随即将显示数据源屏幕。在此屏幕上,输入数据源标题,选择连接至 Microsoft SQL Server,然后手动或使用生成连接字符串的选项输入连接字符串。随即将显示类似于图 8 所示的已完成“数据源属性”窗口。

编写用于 SCCM 的 SSRS 报表

  图 8 Report Builder 2.0 中已完成的“数据源属性”窗口

  “凭据”窗口用于配置报表所期望的凭据提供方式。选项包括使用当前 Windows 用户的凭据;使用特定用户名、密码和凭据提示;或不使用凭据。仅当将报表保存至报表服务器时,才会存储这些选项。

  完成配置后,选择“确定”返回此向导。返回向导后,单击“下一步”,随即将显示一个窗口,从中输入要用于创建报表的查询。此处提供了几个有关如何使用查询设计器的选项,即在左侧数据库视图中选择所需的特定表、选择导入现有查询或选择以文本形式进行编辑并手动输入查询。使用设计器以图形方式生成查询很有用,但对于此示例报表,将使用以下查询:

  select

  (select count(*) from v_r_system vrs

  inner join v_agentdiscoveries vad

  on vrs.resourceid=vad.resourceid

  where vad.agentname = 'Heartbeat Discovery' and

  (datediff(day, vad.agenttime, getdate())< 7))

  as 'Number of agents with Heartbeat less than 7 days',

  (select count(*) from v_r_system vrs

  inner join v_agentdiscoveries vad

  on vrs.resourceid=vad.resourceid

  where vad.agentname = 'Heartbeat Discovery' and

  (datediff(day, vad.agenttime, getdate()) >7))

  as 'Number of agents with Heartbeat greater than 7 days'

  注意,当使用文本编辑器时,您可以选择查询基于文本还是基于存储过程。对于此示例,查询将基于文本。使用存储过程的好处很多,包括查询优化。使用存储过程已经超出了本文的讨论范围。无论选择哪种方法来生成查询,都必须充分了解 SCCM 数据库。此外,在针对 SCCM 数据库生成查询时,请确保使用视图而非表。完成编辑后,屏幕将类似于图 9 所示。

编写用于 SCCM 的 SSRS 报表

  图 9 Report Builder 2.0 中基于文本的查询

  选择“下一步”继续在向导中执行操作,然后选择用于此报表的图表类型。选项包括柱形图、线形图、饼形图、条形图和面积图。对于此示例,将使用条形图。选择此图,然后单击“下一步”。

  下一个屏幕用于在要显示的图表上排列数据字段。有两个可用字段可以置于类别、值或序列部分中。对于此简单示例,请将这两个数据字段置于值部分中,然后单击“下一步”。

  您将看到此向导允许选择报表样式。选择“海洋”并结束此向导。完成后,结果将类似于图 10 所示。

编写用于 SCCM 的 SSRS 报表

  图 10 Report Builder 2.0 中已完成的报表

  从这里,可以修改图表元素本身。只需单击图表标题或图表图例即可进行任何所需的更改,包括调整图表大小、更改报表标题、更改图表样式等。进行所需的更改后,选择设计器左上角中的“运行”测试并执行此报表。进行几处修改后,此示例报表将如图 11 所示。

编写用于 SCCM 的 SSRS 报表

  图 11 在 Report Builder 2.0 中生成的示例报表的最终呈现

  完成报表后,即可将其部署至 SSRS。Report Builder 2.0 中提供了两个选项:将报表保存至 RDL 文件,或将其直接部署至 SSRS。对于此示例,将使用 Report Builder 2.0 直接进行部署。直接从 Report Builder 2.0 部署至 SSRS 需要在报表生成器中配置 SSRS 网页的位置。报表生成器窗口左下角中的快速浏览将指示 SSRS 实例对 Report Builder 是否是已知的。如果未知,请单击报表生成器窗口左上角中的“报表生成器”按钮,然后选择“选项”。图 12 中显示的屏幕将允许指定 SSRS 实例。

编写用于 SCCM 的 SSRS 报表

  图 12“报表生成器选项”窗口将允许您指定 SQL Server Reporting Services 实例。

  关联后,保存示例报表只需选择“报表生成器”按钮,然后选择保存即可。如果 SSRS 关联正确,保存窗口将显示位于 SSRS 上相应位置的文件夹。选择要将此报表保存至的文件夹,然后选择“确定”。保存报表以便在 SCCM 控制台中显示时,请确保将其置于 SCCM 根文件夹或其中的子文件夹内。此示例报表将保存在 SampleSCCMReportProject 文件夹中,如图 13 所示。

编写用于 SCCM 的 SSRS 报表

  图 13 将报表保存至 System Center Configuration Manager 根文件夹中的子文件夹.

  此报表随即部署至 SSRS。要验证部署,请打开 SSRS 网页 ,然后验证是否在 ConfigMgr_ 下创建了测试文件夹。所有片段已组合在一起,且报表已准备好在 SSRS 中执行。此处的倾向可能是打开 SCCM 控制台以执行此报表。完成到目前为止的工作后,报表将显示在 SCCM 控制台中,但如果执行此报表,则控制台将崩溃。SCCM 控制台仅支持基于 SQL Server 2005 的报表架构,但可以直接在 SSRS 控制台中访问此报表以及所有所需的选项,包括订阅、安全性等。在 SSRS 控制台中执行此示例报表将显示一个类似于图 14 中所示的屏幕。

编写用于 SCCM 的 SSRS 报表

  图 14 SSRS 控制台.

  总结

  本文详细介绍了 SCCM 与 SSRS 之间的集成,以及将简单报表部署至 SSRS 所需的步骤。此示例报表不需要用户输入,并依赖于一个简单的 SQL 查询。报表可能并且通常更为复杂,包括使用变量提示用户输入信息以及适用存储过程等。此外,还有许多设计选项可帮助更加完善地显示数据。

  尽管实际编写的大多数报表都要比这个简单示例所演示的报表复杂得多,但了解文本中的示例是成功进行 SCCM/SSRS 集成的基础。

点击查看更多TechNet精彩文章

0
相关文章