使用SQL2012报表生成器自定义IT资产报表

本文将介绍如何通过SQL Server 2012 SP1的报表生成器自定义报表,为了更贴近实战,本文将自定义一张IT资产报表。

一、部署IT资产管理系统

1、本文使用微软SCCM2012R2(System Center Configuration Manager 2012 R2)作为IT资产管理系统,用来收集客户端的硬件信息。具体的部署过程因不是本文重点故略过,网上也有很多关于SCCM安装部署的资料,感兴趣的话可以自行查阅。不过需要注意的是在安装SQL Server 2012SP1时,必须安装报表功能组件。

2、部署环境如下:

计算机名 IP地址 操作系统 角色 安装软件
SCCM-DC 192.168.10.150 Win2012R2 域控制器、DNS服务器 DC、DNS
SCCM 192.168.10.151 Win2012R2
数据库服务器(含报表功能)、

SCCM服务器


SQLServer2012SP1、

SCCM2012R2、

IIS等

3、部署好SCCM后,给SCCM-DC和SCCM服务器安装客户端代理。

4、启用SCCM的硬件清单收集功能,成功收集了SCCM、SCCM-DC两台服务器的硬件信息,这些信息都写入在SCCM的数据库中,我们的IT资产报表就是基于数据库中的这些硬件信息数据来进行定制开发。

二、调试IT资产报表的SQL查询语句

本文原始出处:江健龙的技术博客http://jiangjianlong.blog.51cto.com/3735273/1867368

1、SCCM的数据库中,每台计算机只要安装了客户端代理都会被分配一个ResourceID(即资源ID),不同的硬件信息写入不同的表中,每张表都会有ResourceID字段来标识是谁的硬件信息,因此通过资源ID可以进行多表连接查询,将我们所要的全部字段显示在一张报表中。SCCM的数据库默认定义了一些视图,本文的SQL查询语句其实是通过查询视图来完成。下图的SQL语句就是通过视图v_R_System查询到资源ID和计算机名的信息。

2、下图的SQL语句是通过视图V_GS_NETWORK_ADAPTER_CONFIGUR查询到资源ID、IP地址和MAC地址的信息。用了for XML path函数是为了合并多行为一行,因为有些客户端计算机拥有多个IP地址,在SCCM数据库的表中是作为多行显示的,该函数可以将多行合并在一行显示,因此还用了+‘,’就是为了在多个IP地址间加一个逗号做间隔。

3、以上我们在两个视图中分别查询出了不同的硬件信息,共同点是都具有资源ID字段,那么我们就可以使用left join语句,将两个视图进行左外连接查询,效果如下图所示。因为我们是以查出计算机名的表为左表,需以该表为基准,哪怕某些硬件信息为空,也要显示空白,因此需要使用左外连接。通过left join可以很方便地进行模块化操作,将查询不同硬件信息的SQL语句不断连接进来。

4、下图就是我最终完成的SQL语句,查询出所有要自定义的字段,作为下文IT资产报表的基础。其实一个SQL查询语句的编写是需要不断修改和调试的,并在不同的部署环境中得到应用才能检验出bug所在,比如上文的for XML path函数,如果只是在客户端都只有1个IP的简单环境中调试时,由于根本不需要进行多行合并,也就不会去使用这个函数,但一旦出现一个客户端具有多个IP的情况时,就会发现bug出现了,需要再修改调试,不断改进和完善。

5、因具体的SQL语句编写不是本文重点,故略过,但我也把主要的硬件信息位于哪些视图给归纳了一下,仅供参考。

硬件信息 字段名 所在视图
计算机名 Netbios_Name0  v_R_System
IP地址 IPAddress0 v_GS_NETWORK_ADAPTER_CONFIGUR
MAC地址 MACaddress0
网卡型号 Name0 v_GS_NETWORK_ADAPTER vgna2
CPU类型 Name0 v_GS_PROCESSOR
每CPU核心数 NumberOfCores0
CPU数量 NumberOfProcessors0 v_GS_COMPUTER_SYSTEM
系统架构 SystemType0
硬件厂商 Manufacturer0
所属域 Domain0

产品型号

Model0
操作系统 caption0 v_GS_OPERATING_SYSTEM
盘符 DeviceID0 v_GS_LOGICAL_DISK
磁盘格式 filesystem0
磁盘大小 Size0
硬盘型号 caption0 v_GS_disk
显卡型号 name0 v_GS_VIDEO_CONTROLLER
物理内存 TotalPhysicalMemory0 v_GS_X86_PC_MEMORY
硬盘型号 caption0 v_GS_disk

三、自定义IT资产报表

本文原始出处:江健龙的技术博客http://jiangjianlong.blog.51cto.com/3735273/1867368

1、完成了SQL语句的编写调试后,我们就可以来创建自定义报表了。使用浏览器输入报表服务器(SQL Server Reporting Services)的URL:sccm.long.me/Reports,登录后点击报表生成器。

2、点击运行程序。

3、在启动报表生成器后,选择新建一个空白报表。

4、添加数据源,选择“使用嵌在我的报表中的连接”,选择连接类型为“Microsoft SQL Server“,连接字符串输入Data Source=.;Initial Catalog=CM_001,也可以点生成通过图形界面生成连接字符串,最后点击测试连接,可以看到已成功地创建连接。

5、添加数据集,数据源选择上文创建的数据源,在查询处将我们在前文调试好的SQL语句粘贴进来,马上就能派上用场了。

6、添加完数据集后可以看到字段都被识别出来了,这时我们再创建表,点击插入——表——表向导。

7、在表向导中,选择数据集默认就行了,因为我们在上文也就创建了一个数据集,直接Next。

8、将资源ID拖到行组,再将剩下的全部字段拖到值。

9、将显示小计和总计、展开/折叠组的复选框去掉勾选。

10、选择自己喜欢的样式,然后点Finish,完成表的创建。

11、这样我们的IT资产报表就基本完成了。

12、当然,我们可以添加标题、插入图片、调整单元格的宽度、居中显示等进行自定义和美化,把位于页脚的[&ExecutionTime](自动生成时间)拖到表内,就可以在导出报表时一起导出。

13、最后点击左上角的运行,你将看到我们自定义的IT资产报表的运行效果。

14、最后别忘了保存,默认是保存到报表服务器上。

15、登录报表服务器,可以看到我们的IT资产报表,点击它,将可以看到在浏览器中的运行效果,如果页面显示不太正常,可以开启浏览器的兼容视图模式。

16、我们可以将该报表导出,比如导出为Excel文件。

17、导出后使用WPS或Excel打开,内容跟在浏览器中显示的一样。

至此我们的IT资产报表就完成了,只要数据库中有相应的数据,编写好SQL查询语句,使用SQL Server 2012的报表生成器就可以自定义我们想要的任何报表了,并且报表可以在浏览器中访问运行,也可以导出成报表文件,非常实用。

时间: 2024-10-25 12:34:51

使用SQL2012报表生成器自定义IT资产报表的相关文章

自定义数据源是报表开发的常态

报表项目中,大部分报表经过简单的设计.制作即可完成.但是,总有一部分复杂报表需要自定义数据集才能实现.自定义数据集是指报表的数据源不能通过简单SQL实现,需要用报表工具提供的API,调用项目组人员开发的程序来实现.这部分报表数量不多,但是编程.调试工作量较大,在整个项目中占用的时间反而更长. 那么为什么自定义数据集会成为报表项目的常态,会在每个项目中出现呢?如果是一定会出现,有没有更加高效的开发工具,让自定义数据集更容易实现呢? 我们知道,报表是由两部分组成的:数据计算和报表呈现.自定义报表出现

Big Faceless Java Pdf报表生成器

Report Generator 建立在 PDF 库之上,可将 XML 转换为 PDF,是生成复杂.多页报表的绝佳方式.现在,您可使用 JSP.ASP 或类似技术来创建动态 PDF 报表,与 HTML 一样快速简便 – 它与时下的 servlet 引擎(如 WebSphere 或 Tomcat)搭配效果极佳. 正如我们的 PDF 库一样,Report Generator 完全支持 Unicode,因此可极其简便地创建阿拉伯语.中文.葡萄牙语或多语种的 PDF 报表. Big Faceless J

跨平台的报表生成器控件Stimulsoft Reports.Fx for Flex

Stimulsoft Reports.Fx for Flex是一个跨平台的报表生成器控件,用于丰富的互联网应用程序中.在创建这个报表工具的时候,我们使用了一种在互联网商业程序开发中的一个高级技术 - Adobe Flex.我们试图给软件开发者和用户最灵活的工具来创建和使用报表.这个工具不仅可以提高您的工作效率,还可以在您的web 程序中增添许多pluses. 具体功能: 解决问题 在我们的产品发布之前,互联网程序的报表贝各种问题限制.在显示报表时,缺乏活力,简易性和交互性.与服务器之间交换信息.

sql server 2008 r2 报表生成器 创建报表

一.在sharepoint报表网站中,新建报表,新建数据集,发布(选择发布文件夹[dataset],方便管理): 二. 在sharepoint报表网站中,新建报表,使用插入表向导,插入一行,editorrromname .注意行分组详细信息中改为“详细信息”. 三.报表生成器中的参数设置,例如按照editorroomname,先创建数据集editorroomname: select discount(editorroomname) from v_theme_price where editorr

SCCM2016定制软件资产报表

SCCM是微软的企业级桌面管理产品,说是桌管,但其实在老王看来SCCM最能拿得出手的实际上是它的资产智能报表和符合性基线功能.? 大家玩过SCCM的都知道,SCCM报表默认能统计上来的资产无非就是硬件信息,软件安装信息,许可信息.? 统计软件的时候可以按照软件的维度,统计某集合下所有的已安装软件,通过报表钻取一级一级的找到安装了软件的计算机,计算机的硬件配置,IP,登录用户.?但是在我国企业信息项目永远都需要的就是定制,老板们需要简单一目了然?举个例子,有个需求,需要定义出一类非办公软件,在一张

只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft

原文:只用最适合的! 全面对比主流 .NET 报表控件:水晶报表.FastReport.ActiveReports 和 Stimulsoft 前言 随着 .NET 平台的出现,报表相关的开发控件随之出现,目前已经有若干成熟的产品可供开发人员使用,本文旨在通过从不同维度对比目前最流行的4款 .NET报表控件,给所有报表开发人员在做产品选型时一份全方位的参考. 为什么需要报表控件 数据报表,作为商业系统中必不可少的功能(或者成为模块),随着这些年大数据.BI.数据决策的流行,数据报表也逐渐成为商业系

atitit.报表最佳实践oae 与报表引擎选型

atitit.报表最佳实践oae 与报表引擎选型 1. 报表的主要的功能and结构 2 1.1. 查询设计器(配置化,metadata in html) ,anno 2 1.2. 查询引擎 2 1.3. 建立数据源 2 1.4. 输出显示 2 1.5. 格式化 2 1.6. 图表引擎(支持二维码,条形码) 2 1.7. 导出 excel,txt,csv,pdf,xml,html 2 1.8. 打印 2 2. 报表的选择根据 2 2.1. 开发快速 recomm  db report ( 2 2.

教你如何做出一份报表:流程分析之报表模板

上周我们谈了流程分析之报表数据源,现在说说报表模板. 进入后台管理----H3管理中心----流程分析----报表模板. 把鼠标悬浮在报表模板上,会显现出五个icon,分别是新增目录.明细汇总表.交叉分析表.删除.刷新,这里主要讲明细汇总表,因为交叉分析表与此大同小异.选择第2个明细汇总表,即可新增. 在数据源下方的下拉框中选择已经建好的报表数据源,这里以上次新建的报表数据源为例,然后来到以下的界面. 从左边中挑选需要的数据项,拖到中间的蓝色矩形条中,如若系统中已有相关的流程数据,那么数据会自动

ActiveReports 报表应用教程 (6)---分组报表

原文:ActiveReports 报表应用教程 (6)---分组报表 在 ActiveReports 中可以设置单级分组.嵌套分组,同时,还可以使用表格.列表以及矩阵等数据区域控件对数据源进行分组操作.分组报表在商业报表系统中应用不胜枚举,客户信息归类统计表.商品分类统计表.销售记录年度.阅读统计等等.本文将介绍如何在 ActiveReports 中实现分组报表. 1.创建报表文件 在应用程序中添加一个 ActiveReports 报表文件,使用的项目模板类型为 ActiveReports 页面