- 博客(112)
- 收藏
- 关注
原创 PowerBI 计算时间用EDATE
我发现很奇怪的现象,假如某个日期字段为2024-9-1,那么“去年”计算出来为2023-9,但是,如果日期字段原本就有2023-9的数据,那么“去年”最后得到的结果为NULL。很奇怪,感觉就是计算出的值,会被现有相同的值过滤掉,始终找不到原因,最后改为EDATE解决问题。我在原表基础上,根据日期字段,计算去年时间。
2025-04-08 19:02:01
229
原创 PowerBI 用字段参数实现饼图动态图例显示
注意,对参数表进行selectedvalue,会获取字段的完整名称 ('销售表'[支付渠道]),所以这里要用是否包含来判断。5. 饼图就能根据切片器进行图例的动态显示了,这么做还有一点好处,不需要对原数据表进行计算,可以避免修改筛选上下文。3. 完成后,报表会自动添加一个切片器(这里我们切换成单选模式),数据窗口将出现[参数]表。用户通过切片器,选择是通过"支付渠道"来统计数据,或者是通过"销售门店"来统计销售数据。2. 如图勾选上列"支付渠道",和列"销售门店"4.报表放入饼图,拖入字段。
2025-04-02 11:25:26
164
原创 PowerBi 桑基图(SanKey)显示多节点的解决方法
严格来说,这不是问题,因为图表检测到数据有从source到dest,有2个以上的节点,比如上海->北京->南京。但是图表这样显示,不是很美观,客户可能会要求我们修改。解决方法,把dest的数据前面加一个空格。
2025-03-31 17:36:19
231
原创 PowerBI 矩阵,列标题自定义排序
主页“->"输入数据"->”新建表“最后把门店表的门店名称放入矩阵的列里。然后,如图所示,让门店按照ID排序。矩阵的列标题的排序顺序就能自定义啦。
2025-03-27 17:48:42
330
原创 PowerBI,用度量值实现表格销售统计(含合计)的简单示例
1.我们新建一个计算表,把门店信息从销量表里提取出来,这里我不建议直接将数据表的的字段放入切片器,因为它是维度,实际开发中,维度表可能有多个字段,多个表联合组成,所以最好是用单独的表。度量值 [L1_销量],放入表格里,会自动根据关联关系逐行计算,每次只计算当前行的产品销量,放在表格外,就会计算所有的总和。2. IN VALUES,是用于切片器是多选的情况,如果是单选用SELECTEDVALUE()。解释:按照产品编码分组,计算每个产品编码的总销量(GROUPBY),然后再求总和(最外层的SUMX)。
2025-03-24 10:07:35
481
原创 PowerBI 条形图,解决数据标签在条形内部看不清的问题
字体也会自动切换为白色,如果设计要求条形的颜色是浅色,就会导致数据看不清晰。最上面两行,数据标签显示在了条形内部,哪怕设置了值为黑色。或者用规则,设置值在条形图数据区间内为黑色,也行。点击字体颜色旁边的条件格式。设置字体颜色为新建的度量值。将数据标签位置设置为端外。
2025-03-19 16:03:29
252
原创 PowerBi,一个简单的动态度量值以及图表联动的案例
L1不用FILTER,直接计算SUM。改为在L2里按照线上,线下FILTER,这样,就只需要两个度量值了。左边的饼图显示每个门店的销量以及百分比,右边是一个堆积条形图,显示每种商品的销量,并且有一个切片器能切换显示销售渠道。编辑交互完成后,一定记得再点击一下,才取消,否则切换到其他菜单后,编辑交互功能会一直存在。L2通过判断切片器的选择,分别调用不同的度量值。L1开头的度量值,是分别计算线上和线下的销量。选中切片器,编辑交互为不影响左边的饼图。选中饼图,编辑交互为,右边的条形图是“
2025-03-10 16:54:48
318
原创 PowerBi使用SQL脚本导入数据库数据
2. 展开高级选项,这里可以写入SQL,对一些复杂的查询,合并,以及字段处理。对于善于SQL编程的人,太方便了。1.获取数据,选择一个数据库连接。
2025-03-06 15:29:30
185
原创 Javascript使用Sodium库实现 aead_xchacha20poly1305_ietf加密解密,以及与后端的密文交互
Node.js环境安装 sodium-native (其他库可能会出现加密解密失败,如果要使用不一样的库,请自行验证)示例代码,使用的是 sodium-native v4.3.2 (其他版本可能会有变化,如果要使用,请自行验证)
2025-02-21 11:02:32
316
原创 PowerBI 矩阵 列标题分组显示(两行列标题)
我们在“可视化”->“列”,上双击,输入空格,就能消除左上角的"类别"两字,同理修改其他列标题名。然后再修饰下背景色,边框等,就得到最终结果啦。然后修改布局为“表格”行标题,去掉"+/-"
2025-02-13 17:49:45
684
原创 记一次多表join,分组聚合查询的踩坑
A表的ID字段,在B表中有对应的多条记录,在C表中也有对用的多条记录,我想按照A表的ID分组,分别对B表和C表里的数据进行求和。经检查发现,是因为这种写法,B表和C表里的数据进行了交叉多次求和。结果发现SQL运行奇慢无比,而且计算出来的数据十分巨大。
2025-02-08 16:57:44
235
原创 npm pack 手动下载非本机平台的依赖包
我们首先去打开node_modules里面的package-lock.json文件,找到rollup。然后我们把他移动到依赖包目录下,路径按照package-lock的结构,就可以一起发给linux机器了。但是某些特殊情况,比如开发用windows,发布用linux,而linux又无法联网下载依赖包。我们可能就需要在本机下载好linux的包,然后把node_modules整个发给linux机器。找到linux平台的依赖包名和版本号,使用。有些依赖包是需要平台支持的,当我们使用。比如 rollup 依赖包,
2025-01-15 15:42:36
583
原创 Vite代理不成功的解决方法
可以试试将target的 "localhost" 修改为 127.0.0.1 或者 [::1]前端报代理错误,后端没有访问记录,说明代理没有成功。
2025-01-15 14:47:43
460
原创 PowerBI 图表使用千分位数值
(以此类推,如果有金额显示则:$#,###,##)格式代码: #,###,##在度量工具菜单里,勾上千分位。方法2:自定义数据格式。方法1. 使用度量值。
2024-12-27 10:28:09
720
原创 PowerBI 今年与去年销量同比统计的设计案例
假设我们有张数据表,包含了一些产品,在两年间的销售数据(2010年和2011年):我们想制作今年与去年的销量同比一个折线图,显示每月的总销售数据做同比展示一个堆积条形图,统计每种产品的同比销量(提示:应该是“销量”,不是"数量",做完发现字错了,懒得改了)
2024-11-26 17:16:12
904
原创 PowerBI 用TREATAS和INTERSECT实现无关表筛选
这时就需要用到TREATAS(table_expression, <column>[, <column>[, <column>[,…Treat as,顾名思义,“把...当作...”,可以用第一个参数 table表达式里的值,去筛选后面参数表中的列。[产品]表里,有三条数据 "red","yellow","green"出现在[颜色]表里,但是它们之间没有任何关系。所以当我们将[颜色]表作为切片器的话,是无法对[产品]表进行筛选的。不出意料的,切片器对[产品]表没有筛选作用。
2024-11-21 16:10:27
591
原创 PowerBI 用DAX 实现合并查询的方式
因为两张表有相同的列名【巧克力ID】,所以直接使用NATURALLEFTOUTERJOIN()函数就可以解决。但是NATURALLEFTOUTERJOIN()函数有一个限制条件是:需要关联表具有相同的列名,而实际情况是,比如,巧克力表里,“巧克力ID”就叫“ID”,这样就无法使用NATURALLEFTOUTERJOIN()函数。最近在做PowerBI项目,遇到有客户要求不允许使用"合并查询"功能去改变表结构,但是又需要合并查询的情况。(为了以示区分,我们暂且叫它【巧克力(不同列名)】表)
2024-11-20 18:08:47
973
原创 PoweBI 用DAX 实现透视列和逆透视列
PowerBi的编辑查询->转换,可以实现数据表的透视列(行转列,或者叫一列变多列)和逆透视列(列转行,或者叫多列变一列)功能。但是这种方法会修改原始数据表,在开发中,可能会遇到客户不允许我们修改表的情况,那么我们就要考虑使用DAX来实现。我们想把“兴趣”列,变成两列:"偏好视频"和"偏好作者",有的,就显示对应的兴趣,没有就显示空,或者无。兴趣成功的单独分类统计,然后我们就可以通过将它作为计算表来进行其他统计计算,而不需要修改原始数据表。
2024-11-20 11:34:49
500
2
原创 PowerBI 无法拖动字段到组件上
我也不知道是什么地方的改动导致的,也找不到解决方法。只好重新创建了一个.pbix文件,把原文件的报表全部拷贝到新文件才解决的。就是说报表无法自动聚合计算,所以无法拖动字段到组件上。我们可以看到,出问题的数据表字段前面都没有了聚合图标。今天在做PowerBI时发现一个奇怪的问题。本来好好的报表,突然无法拖动字段到组件上。如果有大佬知道解决方法,望不吝赐教。原因可能是因为"隐式度量值"被禁用。后来在网上搜索相关问题,发现。
2024-11-15 10:32:17
299
原创 PowerBI 用RANK,RANKX和TOPN 排名的简单示例
4.页面上添加一个表格,分别添加'销量'[产品],[总销售量],[排名],[排名2],并点击右上角的...选择"排序方式"->"排名",以及“以升序排序”注意用RANKX函数计算的排名,在"总计"行会有一个数字1。如果要去掉,则需要判断当前行是否有产品数据(总计行是没有的)。然后页面上添加一个堆积条形图,X轴添加[总销售量2],Y轴添加'表'[产品],我们就得到如下一个Top3的排行榜图啦。2. 添加计算总销量的度量值,它将在RANK和RANKX里被使用。这样我们就得到一个销量排行榜啦。
2024-11-14 17:25:17
1414
原创 Node.Js+Knex+MySQL增删改查的简单示例(Typescript)
package.json如下,拷贝并替换你们本地的package.json后运行 npm install 命令安装所需要的依赖。项目使用了nodemon+ts-node方便development。代码部分,VS Code推荐使用Fitten Code插件,目前免费的AI编程工具。可以检查错误,智能补全,代码解释等等,极大提高效率。推荐使用VS Code的插件REST Client进行测试。
2024-11-12 13:45:12
424
原创 防止事件冒泡和防止触发子元素
可以使用mouseenter,或者添加 e.stopPropagation()style里添加 pointer-events: none。1. 防止事件冒泡,触发父元素。以mouseover为例。2. 防止子元素被触发。
2024-11-07 15:55:44
343
原创 不用JS实现鼠标悬停提示框,以及Emotion里:hover使用踩坑
不写onMouseEnter/onMouseLeave或者onMouseOver/onMouseOut,实现鼠标悬停提示框。Enter和Over的区别是,一个事件不冒泡,一个事件冒泡。
2024-11-06 09:49:17
461
原创 Webpack 配置module.css报错Uncaught TypeError: Cannot read properties of undefined
于是认真思考:因为报错信息没有包含类似”couldn't find button.module.css“,”style-loader“....,且npm命令行没有任何报错,所以可以断定css-loader和style-loader是正确安装并启动了的。我又尝试在Button.jsx里点击了css的路径,可以正常跳转到css文件,说明路径引用也没有错误。入口文件是index.jsx,组件Button.jsx使用了样式button.module.css。很奇怪,明明引用了却无法读取css类名。
2024-11-01 10:26:00
444
原创 Webpack devserver 报错Invalid options object. Dev Server has been initialized using an options object
这时就需要在入口文件 index.jsx (webpack.config.js里配置) 里添加页面加载事件的侦听,否则页面DOM还未加载完成,就会去执行组件渲染,导致找不到。遇到这种情况,我们需要检查webpack.config.js里是否有配置contentBase,如果有,就把contentBase用static替换掉。运行npm start就可以打开dev server了。这里就提示contentBase是未知的。
2024-10-31 18:06:57
649
原创 Node.js实现文件上传下载
1. 安装 express, multer库。4. 前端页面upload.html。7. 运行前端页面执行上传。
2024-10-24 17:42:38
410
2
原创 HttpOnly Cookie
HttpOnly Cookie 是一种具有特殊属性的 Cookie,旨在提高 Web 应用程序的安全性。我们可以使用Httponly cookie,在服务器端生成和保存token,防止token被客户端访问,比如。,可以防止客户端 JavaScript 访问这些 Cookie,从而减小 XSS(跨站脚本)攻击的风险。客户端将无法使用javascript访问cookie。
2024-10-24 11:41:09
270
原创 Node.js配置Typescript自动编译
4.使用 ts-node: ts-node 是一个可以直接运行 TypeScript 代码的工具。5.运行项目: 使用以下命令启动项目,nodemon 将会监听文件变化并自动编译和重新启动。我们使用Node.js编译运行typescript,通常是以下两个命令。这种方式很繁琐,下面分享给大家自动编译typescript的方法。2. 安装 TypeScript 和 nodemon。3. 创建一个 TypeScript 配置文件。
2024-10-15 15:43:22
453
原创 让你一看就懂,Javascript的原型和原型链
如果没有,它将查找该对象的原型,而原型对象可能也有原型,于是一层一层,依此类推,直到找到或者到达原型链的末端(通常是 null)作用:通过 prototype,我们可以给构造函数添加属性和方法,使得所有由该构造函数创建的对象实例都能访问这些属性和方法。作用:通过 __proto__,我们可以直接访问或修改对象的原型,但是这种做法并不推荐,因为可能会破坏继承链。__proto__ 与对象实例相关,它指向了构造函数的 prototype,用于访问具体对象的原型。没关系,希望我的这一篇文章,能让你一看就懂。
2024-10-11 11:01:31
316
原创 Javascript 仅允许在异步函数和模块顶级使用 “await“
这是因为async 函数是异步函数,它返回一个 Promis,await必须与async一同出现。所以这里普通函数无法调用它。我们在调用这个异步函数时,比如在一个普通函数里调用它。仅允许在异步函数和模块顶级使用 "await"我们新建一个普通非async函数。解决方法是使用.then()假设我们有一个异步函数。
2024-10-09 19:01:04
524
原创 React 插入不转义的html
在 React 中,字符串作为内容插入到 JSX 中,默认会被转义。这是为了防止 执行恶意代码,XSS(跨站脚本攻击)等安全问题。如果想要 HTML 不被转义,可以使用dangerouslySetInnerHTML属性。
2024-10-08 17:26:50
521
原创 CSS 图标和文本对齐
图标和数字的显示位置是错开的,会非常不好看。下面介绍三种对齐的方法。比如下面一段HTML代码,我们想在图标旁边显示文本或者数字。再进一步调整图标和文本的大小,就能实现完全的对齐。第二种方法,使用 Inline-Block。第一种方法,使用FlexBox。第三种方法,使用Grid。大家根据喜好,挑选吧。
2024-10-08 16:25:06
1448
原创 Windows环境下使用Docker配置MySQL数据库
7 . (可选)数据持久化,为了确保数据在容器重启后不会丢失,可以使用 Docker 数据卷。第二种方法,打开 C:\用户\{你的用户名}\.docker\daemon.json,直接添加到文件里就行了。Docker Desktop的Images界面,就会多一个MySQL 5的镜像。用Docker配置数据库,无论是做开发,还是做生产部署,都非常的方便。本文将分享用Docker配置数据库的步骤,这里用MySQL举例。其他的数据库如MSSQL,又或者redis等关系型数据库,同理。
2024-09-30 15:14:35
1739
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人