前言

由于工作的原因,有一段时间没有发新的随笔了,最近使用了SharePoint PerformancePoint做了一些报表,与大家分享经验。

本文完全原创,转载请说明出处,希望对大家有用。

阅读目录

内容

开发环境

操作系统:Windows Server 2008R2

数据库:SQL Server 2008R2

SharePoint Server 2010

BI目标

需求:

  • 根据销售数据显示所选年份的月销售额
  • 根据销售数据显示所选年份销售额前十的供应商
  • 根据销售数据显示所选年份每个供应商每月的销售额(包括合计)

根据上述需求,我们可以分析出此报表需要至少2个纬度:时间维度,供应商维度。

首先设计报表的呈现方式,为了更好的对比所选年份的月销售额,我们选择柱状图。

销售额前十的供应商选择饼图来体现不同的百分比。

每个供应商每月的销售额选择表格来呈现。

其他问题:多数据源,需要使用ETL将多个数据源数据汇总。

BI实施

首先使用SSIS创建ETL,用来将多个数据源处理后汇总。

这里我们不做详细解释,因为SSIS功能很强大,希望大家多做研究,我只对我自己做的进行截图并解释一下:

上图显示的是ETL中最重要的数据处理阶段,根据需求,我们从3个不同的数据库中取得数据,经过数据转换(为了数据格式统一),汇总到新的数据库(可以认为是数据仓库)。

接下来是重要的数据分析阶段,使用SSAS构建多维数据库

根据BI目标中的需求,我们根据ETL汇总的数据生成2个纬度的Cube

分别是Dim.date,Dim.supply

Dim.date维度中包括有日->月->年

Dim.supply维度主要是供应商的信息

到这里我们数据已经准备就绪,需要使用PerformancePoint来呈现数据

首先要新建数据源,连接我们之前建好的多维数据库

接下来是具体的报表操作

1、新建1个年份筛选器(year)

按照个人需求,选择筛选器的值,这里选择成员选择器,也就是说筛选器的值是由多维数据库中的维度填充。

2、新建一个Analytic chat报表

如图:

我们可以使用PerformancePoint提供的可视化设计页面,将所需要呈现的数据分别拖拽到行、列以及数据背景

如图:

3、最后新建一个Dashboard,用来承载我们做好的报表

效果如图:

按照需求,我们还需要做2个报表,制作方法与上面的示例相同,仅数据选择上有些不同,按照自己的需要添加即可。

有时我们只用PerformacePoint提供的可视化界面无法实现我们想要的,可以点击界面中的Query(查询)标签,可以看到报表的MDX,这样就可以更加自由的编辑了。

需要注意的是,如果自定义了MDX,参数也需要自定义,否则无法识别。

如图:

这样我们的报表已经创建完成,剩下的工作就是测试和优化了。

下面贴一下我做好的页面效果:

总结

PerformancePoint优势:

  • 作为报表呈现的一种方式,简单、丰富、直观
  • 支持多种数据源
  • 支持分析报表钻取

PerformancePoint限制:

  • 报表样式无法定制;
  • 只能作为基础报表的一种方式,同时必须承载于SharePoint

SharePoint PerformancePoint开发实例的更多相关文章

  1. 【SharePoint学习笔记】第1章 SharePoint Foundation开发基础

    SharePoint Foundation开发基础 第1章 SharePoint Foundation开发基础 SharePoint能做什么 企业信息门户 应用程序工具集(文档库.工作空间.工作流.维 ...

  2. SharePoint 2010 最佳实践学习总结------第1章 SharePoint Foundation开发基础

    ----前言 这段时间项目出在验收阶段,不是很忙,就潜心把SharePoint学一下,不求有多深刻,初衷只是先入门再说.后续会发布一系列的学习总结.主要学习的书籍为<SharePoint2010 ...

  3. SharePoint 2013 开发教程

    做了SharePoint有三年了,大家经常会问到,你的SharePoint是怎么学的,想想自己的水平,也不过是初级开发罢了.因为,SharePoint开发需要接触的东西太多了,Windows操作系统. ...

  4. 在Visual Studio 2015 中添加SharePoint 2016 开发模板

    前言 SharePoint 2016已经发布很久了,然而,默认安装VS2015以后,却没有SharePoint 2016的开发模板.其实问题很简单,和VS2012开发SharePoint 2013一样 ...

  5. ecshop二次开发 给商品添加自定义字段【包含我自己进一步的开发实例详解】

    本文包含商品自定义添加教程及进一步的开发实例: 教程: 说起自定义字段,我想很多的朋友像我一样会想起一些开源的CMS(比如Dedecms.Phpcms.帝国)等,他们是可以在后台直接添加自定义字段的. ...

  6. RDIFramework.NET -.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(WebForm版)

    RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(WebForm版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之 ...

  7. RDIFramework.NET-.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(MVC版)

    RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(MVC版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之产品管理 ...

  8. SharePoint Framework 开发工具和库

    博客地址:http://blog.csdn.net/FoxDave SharePoint Framework包含一些客户端JavaScript库,你可以用来构建自己的解决方案.本文提供了你可以用来 ...

  9. Cocos2d-x 3.X手游开发实例详解

    Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰 ...

随机推荐

  1. RPC服务框架dubbo(四):Dubbo中Provider搭建

    1.新建Maven Project, 里面只有接口(dubbo-service) 1.1 为什么这么做? RPC框架,不希望Consumer知道具体实现.如果实现类和接口在同一个项目中,Consume ...

  2. Spring Cloud(二):Spring Cloud Eureka Server高可用注册服务中心的配置

    前言 Eureka 作为一个云端负载均衡,本身是一个基于REST的服务,在 Spring Cloud 中用于发现和注册服务. 那么当成千上万个微服务注册到Eureka Server中的时候,Eurek ...

  3. [Jobdu] 题目1455:珍惜现在,感恩生活

    题目描述: 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买.请问:你用有限的资金最 ...

  4. [Jobdu] 题目1522:包含min函数的栈

    题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 输入: 输入可能包含多个测试样例,输入以EOF结束.对于每个测试案例,输入的第一行为一个整数n(1<=n< ...

  5. layoutSubviews什么时候触发调用

    ios layout机制相关方法 - (CGSize)sizeThatFits:(CGSize)size - (void)sizeToFit ——————- - (void)layoutSubview ...

  6. vue-tree

    vue-tree vue 编写的树形菜单,小巧实用,支持vue1.0,vue2.0 v1.0 功能: 1.支持多级树目录 2.支持高亮点击的节点 3.支持展开点击节点 4.支持点击收缩节点时收缩所有子 ...

  7. shiro身份认证

    pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...

  8. try与catch

    首先要清楚,如果没有try的话,出现异常会导致程序崩溃.而try则可以保证程序的正常运行下去,比如说:try{int i = 1/0;}catch(Exception e){........}一个计算 ...

  9. mysql 位运算

    & 与运算 |  或运算 ^ 异或运算 或者 你也可以将 与运算理解为 + 法  例如 1|2 = 3   (1+2 = 3)1|2|4 = 7 (1+2+4 = 7) 将 异或运算理解为 - ...

  10. C#调用SQL Server有参的存储过程

    一.使用SqlParameter的方式 代码: using System; using System.Collections.Generic; using System.ComponentModel; ...