php bi报表,PowerBI开发 报表设计技巧

[导读]最近做了几个PowerBI报表,对PowerBI的设计有了更深的理解,对数据的塑形(sharp data),不仅可以在Data Source中实现,例如在TSQL查询脚本中,而且可以在PowerBI中实现

最近做了几个PowerBI报表,对PowerBI的设计有了更深的理解,对数据的塑形(sharp data),不仅可以在Data Source中实现,例如在TSQL查询脚本中,而且可以在PowerBI中实现,例如,向数据模型中添加自定义字段,或者在报表数据显示时,根据数据表之间的关系做数据的统计。本文主要介绍数据的塑形和UI设计的微调。

一,创建数据列

PowerBI报表的数据分为数据源(Data Source),数据模型(Data Model),Query,数据从Data Source加载到Data Model,默认情况下,Data Model和Data Source的表结构(Schema)相同,用户可以通过增加自定义列修改Data Model的结构。Query是Data Model的视图,默认情况下,Query和Data Model的表结构相同,用户可以通过增加计算列和度量列修改Query的结构。

1,自定义数据列

在Data View->Query Editor中,创建自定义数据列,使用的是M 公式(M formula ),M公式语言用于创建灵活性数据查询,M公式对大小写敏感。用户添加自定义数据列,这会修改数据模型(Data Model)的架构,PowerBI向Data Model中添加数据列。

例如,创建MonthKey列,通过使用M公式,把DateKey(格式是:yyyyMMdd)转换成MonthKey(格式是:yyyyMM)。

ec2c29d866dd205bdaeb3b3227238621.png

2,计算列(Calculated Column)

在Report View中,计算列用于从已经加载到数据模型(Model)中的数据,根据公式计算的数据列,这跟在Data Model中增加计算列是不同的,计算列是从数据模型中计算数据,不会修改数据模型,因此,计算列的值,只会出现在Report View 和Data View中。计算列使用DAX定义字段的数据值,基于加载到数据模型的数据和公式计算结果。

计算列的值是基于当前数据行,进行计算,每行有一个计算列的值。举个例子,显示最近一年的日期:

c42c2ac74d5e95fe0f25489898328c1a.png

3,度量列(Measure)

度量值是在报表交互时对报表数据执行的聚合计算,度量值使用DAX定义字段的数据值,从数据模型中计算数据,不会修改数据模型,因此,度量值只会出现在Report View 和Data View中。度量值通常是用于聚合统计,基于用户选择的Filter,以显示不同的聚合值,由于度量值是聚合值,不是每行都有一个聚合值。举个例子,创建度量值 Answer Rate,其公式是:Answer Rate = DISTINCTCOUNT(CloudThreads[AnsweredThreadID])/DISTINCTCOUNT(CloudThreads[ThreadID])

度量列能够引用其他表的数据列,根据数据模型中的关系,能够完成很多交互性的数据统计,非常强大,但是,也很绕、绕、绕……

二,报表可视化控件的设计

在显示报表数据时,PowerBI提供多种方式,能够对数据的显示进行微调,使数据显示的效果更合理。

1,层次结构( Hierarchy)

PowerBI 支持在Report View中创建字段的层次结构(Hierarchy),在同一个Query中,拖动一个字段到另一个字段下,PowerBI自动创建一个层次结构,并以父层次字段的名称命名,例如:

4df488ee4a64aa09c301fa27a4c0f0e8.png

PowerBI内置一个可视化控件HierarchySlicer,能够显示字段的层次结构,在Fields中设置一个层次结构:

ae0987db1b7ee5985372633455a2c389.png

控件显示的结构是一个树形结构,点击“三角”,能够展开,以树形结构显示子级别的数据,HierarchySlicer支持逐层展开,如下图所示:

5182082f0e1b19b003c357e7a1d2707d.png

2,在Table控件中显示超链接(HyperLink)

在Product View中,选中Query的某一个字段,如下图,选中字段 ProfileLink,

f4aa1236c01afee2d594aabce166536f.png

在Modeling菜单下,该字段的Data Type为Text,设置文本的Data Category为Web URL:

73ca609b5a71f9193e8ec39334908eea.png

在Table可视化控件的视图属性中,设置Values的URL Icon属性为On,

ac2f7d04584af979e17be7d63a5b941b.png

在Table控件中,Web URL的显示如下所示,点击LInk,能够直接打开浏览器,跳转到指定的网址:

65a0857d8105d61a05e39de19fcac84b.png

3,数字的小数位的控制

可以在PowerBI中设置字段的数据类型,选中一个字段,打开Modeling菜单,

7ba58750dd858ce886f572187a0f4e39.png

选择字段的数据类型,Format为 Decimal number,选择货币符号($), 显示百分比(%),千位分隔符(,),或小数位数(0-N),这里设置 显示的小数位数是1,只显示一位小数。

cb4172e01c72bbbdc6984d0caf1a1237.png

显示的效果如下,Score 保留一位小数点,并使用千位分割符号:

5d6c460f4709e0c2ad393392cdddc9a4.png

三,根据当前的数据导出数据

在数据建模时,需要创建两个表之间的关系,PowerBI要求跟关系相关的两个数据列,必须有一列是唯一值,不允许存在重复值。在DimCalendar表中,存在DateKey列,该列是以int表示的日期类型,例如,2017年10月1日,用DateKey表示是20171001,从DimCalendar表中导出MonthKey,公式是MonthKey=DateKey/100。需要根据MonthKey列新建一个Query,做法是:

1,添加新的查询(Query)

在查询编辑器(Query Editor)中,选中列 MonthKey,右击弹出快捷菜单,选择“Add as New Query”,从当前列中新建查询

476c1451971733c1ab72523e95df594a.png

2,把List转换成Table

此时,新建的Query命名为MonthKey,是一个List类型,需要把List转换成Table,选中该List,打开主菜单Transform,点击“To table Convert”,把List转换成Table

954219f22c839a2841dc19fe4d954dfc.png

从一个List创建Table,PowerBI需要用户选择界定符,该List没有任何界定符,选择None:

205c4cf4141c8fcc201175173bb58a93.png

3,修改数据

新表的数据列名是Column1,右击弹出快捷菜单,点击“Rename”,把该列重命名为MonthKey,点击“Change Type”把该列的数据类型修改为“Whole Number”,点击“Remove Duplicates”,删除重复的数据值

9fabfbed1af971e893345e042ee1c295.png

4,查看导出数据表的实现步骤

在右侧的查询设置(Query Settings)中查看实现的步骤,选择某一个Step,点击Step 名称前的“×”,能够把该Step删除。

7d8d4c18fb3057d6a57bb8855d8ae465.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BIWEB WMS v5.8使用前必读 安装步骤: 1.打开压缩包,将压缩包里的biwebcorp里的文件上传至服务器 2.运行http://您的网址 3.一路点击下一步 进行简单配置 安装完成 注:一定要填写你的E-mail地址,以更好的发挥我们的营销功能 4.安装成功 为了你更好的使用BIWEB WMS v5.8的所有功能,请按照以下方式配置: 1.注意config/global.inc.php中的两个语句。 define('__WEBCOMMON_ROOT', __WEB_ROOT .'/web_common5.8'); //web_common在网站目录内 //define('__WEBCOMMON_ROOT', $_SERVER["DOCUMENT_ROOT"] .'/../web_common5.8'); //web_common在网站目录外 该语句需要设定正确的路径来调用ArthurXF框架底层。如果您的服务器为虚拟主机,您不需要进行任何设置; 如果您需要设置该底层程序可以支持整台服务器上所有BIWEB网站系统共享,你可以将web_common目录放到网站根目录外,并将上面的语句设置为下面的即可正常使用了。 //define('__WEBCOMMON_ROOT', __WEB_ROOT .'/web_common5.8'); //web_common在网站目录内 define('__WEBCOMMON_ROOT', $_SERVER["DOCUMENT_ROOT"] .'/../web_common5.8'); //web_common在网站目录外 安装过程,如果你选择的是手动配置文件,请执行2.3.两条。自动安装配置请跳过。 2.修改config/global.inc.php中关于数据库的配置如下变量 $arrGPdoDB['db_name'] = 'biweb'; $arrGPdoDB['db_user'] = 'root'; $arrGPdoDB['db_password'] = ''; 3.通过phpmyadmin建立一个和你设定的库名相同的数据库名,例如:建立上面设定的biweb库。 4.将目录cache,complie,data,html,uploadfile设置为777权限,将系统根目录下的sitemap.xml设置为666权限。 5.在apache的配置文件中增加以下的虚拟主机配置,里面的站点名称和路径可以更改为你自己的设定 <VirtualHost *:80> # ServerAdmin webmaster@dummy-host.example.com RewriteEngine On ErrorDocument 404 /plug-in/404/404.php <FilesMatch "^[^\.]*.$"> ForceType application/x-httpd-php </FilesMatch> <Directory D:\AppServ\www\biweb.cn\uploadfile> php_flag engine off </Directory> <Directory D:\AppServ\www\biweb.cn\html> php_flag engine off </Directory> DocumentRoot D:\AppServ\www\biweb.cn ServerName biweb.cn # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common </VirtualHost> 设置好了以上的内容配置,就可以使用404和静态化链接功能了。 6.windows环境下在php.ini中加入extension=php_pdo.dll和extension=php_pdo_mysql.dll,在linux环境下编译php时必须加入PDO和PDO_MYSQL模块。 7.在本地测试的环境,还需要到C:\WINDOWS\system32\drivers\etc\host文件中增加“127.0.0.1 站点名” 8.如需安装配置文件分类的功能模块,请先设定/功能栏目中/config/type.inc.php的数组,如果该文件不存在或为空,将自动安装数据库分类的功能模块。 .配置文件分类的实例:如果需要增加分类可以按此例子增加,但是不支持2维数组。 <?php $arrMType = array ( 1=>'网站公告', 2=>'行业新闻', ); ?> 官方网站:http://www.biweb.cn/ 如有技术难题,欢迎前往官方论坛:http://www.biweb.cn/bbs/

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值