Tableau分页报表PLUS版+支持模糊查询(无限趋近网页自开发版)

        1.前言

        大家好,之前猴子的灵岛提出了一个新的报表需求,我觉得这个成果可以拿出来和大家分享一下。这是一个跟网络上其他文章报表分页截然不同的一种开发方式。

        需求:

        1.制作一张用户检索数据报表

        2.是否能做到上面为搜索框下面为显示结果的报表呢

        3.该报表数据为82万,是否能够将其加载速度优化到极致呢。

        4.样式一定要好看,你可以参考代码自开发业务系统中报表的样式来制作,因为这张报表是给所有部门大小领导使用,非本部门使用(我们是业务部门)。

        当然,最后做出来的结果也是完美的交付了。

        如图,这个是拿超市数据做的示例分页报表,和大家分享下制作的过程。实际报表的样式要更好看更具细节。但实现的本质是一模一样的。

        大家可以按照我的下面文章一步一步跟着做。

        2.数据准备工作

        这边猴子是直接在Tableau安装文件夹中拿的超市示例数据,路径如下

        C:\Users\monkey\Documents\我的 Tableau 存储库\数据源\2024.2\zh_CN-China\示例 - 超市.xls

        大家可以在自己的Documents目录下按照超链接找到该文件

       3.关键字段描述

       我们首先打开超市示例数据,然后点开订单sheet页,如图

        行ID这个字段很重要,很重要,很重要,这个是我们进行分页的核心字段

        至于我在单位做的那张报表,已经在ADS层中的用户数据检索表(Tableau进行数据提取的表)进行了索引的制作(自动生成索引,字段名字也叫ID),也就是从1-80多万的数字。索引ID在tableau表中起到的作用等同于该订单sheet页的行ID。

        4.报表分页相关公式组件开发
        4.1 先拉一张表出来

        这一步没啥可说的,超市示例数据的字段直接拉上去就好,就是随便拉个表。我拉的如图所示,该表有将近10000条数据(本人项目中是80万)。

        4.2 创建排序计算公式(关键步骤)

        该公式是整个分页报表的核心公式,根据表ID这个字段来进行排序

        如图

        公式如下:行ID排序  RANK_UNIQUE(SUM([行 Id]),'asc')

        字段说明:为什么要写这样一个公式呢,是为了支持分页模糊查询

        如下图,我们模糊搜索6424的订单ID结果如下,如果不用行ID排序,直接用行ID字段来进行分页操作的话,那么行id为3466,7963,7964,7965的数据将不会在第一页显示出来。

        为了避免这个问题特意创建的字段,使用唯一排序。

        

        接下来我们将行ID排序字段也拉到表上面,如图,然后将行id字段右键,点掉显示标题,将这个字段隐藏起来就OK了(该方式是为了避免最后一页显示不全,所以不直接将行ID排序替换掉行ID)。

        排序计算公式步骤完成

        4.3 创建分页使用参数

        接下来我们来创建两个参数

        4.3.1 每页显示数据数量

        如图所示,创建一个数据类型为整数的参数名称为每页显示数据数量工作簿打开时的值为当前值当前值设置为20(这个随便设置,个人喜欢设置20),允许值为全部然后点击确定

        4.3.2 页数

        除了命名和当前值不一样,其他的和上一个参数几乎一模一样,如图

  

        4.4 创建分页相关公式

        接下来我们创建分页功能所用到的相关公式,下面我直接把每个公式都列出来了,直接复制粘贴即可。

        4.4.1.页数最大值

      

        如下:页数最大值   int(COUNT([行 Id])/[每页显示数据数量])+1

        该字段是用于显示一共有多少页的。紫色的文字是刚才创建的参数。比如我们行ID有9959个,每页显示数据数量为20(参数是活得),就能得出当每页显示20条数据的时候,一共会有498页。而int是为了显示整数页面,+1的话是进一页。

        4.4.2 页数最小值

        如下:页数最小值   { FIXED :min(1)}

        最小值就是1,这个没啥好说的

        4.4.3 页数判断值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值