数据库模板列进度条来啦!

本贴最后更新于 333 天前,其中的信息可能已经东海扬尘

突发奇想,有一种可以简单实现数据库中进度条的方式!
就是用 🟩 和 ⬜ 按照比例来堆砌。当然,这只能粗略地体现百分比中十位的数字,个位的数字是体现不出来的。

后来经过 D 大和评论区大神的帮助,又有了完善的进度条显示方式(即进度条 3)!

效果如下:

截屏 2024022515.15.32.png

  • 建立两个数字类型的列,分别命名为“总数”和“已完成”

  • 建立 2 个模板列,分别命名为“进度”和“进度条”

  • “进度”列代码

    .action{$a:= index . "已完成" }
    .action{$b:= index . "总数" }
    .action{$c:= mul $a 100}
    .action{$d:= div $c $b}
    .action{$d}%
    
  • “进度条”列代码

    • 第一种是向下取整,即只看十位数

      .action{$a:= index . "已完成" }
      .action{$b:= index . "总数" }
      .action{$c:= mul $a 10}
      .action{$d:= div $c $b}
      .action{if eq $d 0}
      ⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜
      .action{else if eq $d 1}
      🟩⬜⬜⬜⬜⬜⬜⬜⬜⬜
      .action{else if eq $d 2}
      🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜
      .action{else if eq $d 3}
      🟩🟩🟩⬜⬜⬜⬜⬜⬜⬜
      .action{else if eq $d 4}
      🟩🟩🟩🟩⬜⬜⬜⬜⬜⬜
      .action{else if eq $d 5}
      🟩🟩🟩🟩🟩⬜⬜⬜⬜⬜
      .action{else if eq $d 6}
      🟩🟩🟩🟩🟩🟩⬜⬜⬜⬜
      .action{else if eq $d 7}
      🟩🟩🟩🟩🟩🟩🟩⬜⬜⬜
      .action{else if eq $d 8}
      🟩🟩🟩🟩🟩🟩🟩🟩⬜⬜
      .action{else if eq $d 9}
      🟩🟩🟩🟩🟩🟩🟩🟩🟩⬜
      .action{else if eq $d 10}
      🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩
      .action{end}
      
    • 第二种是四舍五入,就不解释了

      .action{$a:= index . "已完成" }
      .action{$b:= index . "总数" }
      .action{$c:= mul $a 100}
      .action{$d:= div $c $b}
      .action{if lt $d 5}
      ⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜
      .action{else if lt $d 15}
      🟩⬜⬜⬜⬜⬜⬜⬜⬜⬜
      .action{else if lt $d 25}
      🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜
      .action{else if lt $d 35}
      🟩🟩🟩⬜⬜⬜⬜⬜⬜⬜
      .action{else if lt $d 45}
      🟩🟩🟩🟩⬜⬜⬜⬜⬜⬜
      .action{else if lt $d 55}
      🟩🟩🟩🟩🟩⬜⬜⬜⬜⬜
      .action{else if lt $d 65}
      🟩🟩🟩🟩🟩🟩⬜⬜⬜⬜
      .action{else if lt $d 75}
      🟩🟩🟩🟩🟩🟩🟩⬜⬜⬜
      .action{else if lt $d 85}
      🟩🟩🟩🟩🟩🟩🟩🟩⬜⬜
      .action{else if lt $d 95}
      🟩🟩🟩🟩🟩🟩🟩🟩🟩⬜
      .action{else}
      🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩
      .action{end}
      
    • 第三种是评论区大神的方法,可以精确到个位数

      .action{$a:= index . "已完成" }
      .action{$b:= index . "总数" }
      .action{$c:= mul $a 100}
      .action{$d:= div $c $b}
      <span style="background-color: rgba(175,184,193,0.2); width: 100%; display: inline-block;height: 12px;border-radius: 6px;align-self: center;overflow: hidden;">
          <span style="text-align: right; font-size: 12px; width: .action{$d}%; background-color: rgb(45,164,78); display: inline-block;height: inherit;vertical-align: top;"></span>
      </span>
      

世上还是大神多呀!

如果你还有更好的方式,欢迎和我交流 ~

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    23707 引用 • 96212 回帖
2 操作
Liuzn 在 2024-02-25 22:59:48 更新了该帖
Liuzn 在 2024-02-25 15:23:45 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250 2 2 评论

    非常有趣!

    顺便说一下,模板字段是可以使用 HTML/CSS 代码的。

    1 回复
    出个教程
    lv37
    太秀了,比 Notion formula 2.0 的 style 可玩性更强 👍
    Feline
  • Liuzn

    那就要大神来出手了 😂

    1 回复
  • Undii 4 3 评论

    ❤ 基于你的代码改了一下:

    rgba(175,184,193,0.2) 是背景色; rgb(45,164,78) 是已完成的部分;

    .action{$a:= index . "已完成" }
    .action{$b:= index . "总数" }
    .action{$c:= mul $a 100}
    .action{$d:= div $c $b}
    
    <span style="background-color: rgba(175,184,193,0.2); width: 100%; display: inline-block;height: 10px;border-radius: 5px;align-self: center;overflow: hidden;">
        <span style="text-align: right; font-size: 12px; width: .action{$d}%; background-color: rgb(45,164,78); display: inline-block;height: inherit;vertical-align: top;"></span>
    </span>
    
    
    
    1 操作
    Undii 在 2024-02-25 15:03:06 更新了该回帖
    「已完成」和「总数」是不是放反了?
    JeffreyChen
    大神太强了!
    Liuzn
    @a2930610542 没看出来,能用就行呗
    Undii
  • 太秀了!

  • lunzi 2 评论

    这个功能我研究过了,现在有个很大的缺陷是,比如你现在表里的“已完成”和“总数”是手写,想要让他好用,肯定需要用上关联和汇总字段,自动算出一个完成数。但是模板是不支持这两种字段的

    数据库“模板列”无法读取“汇总列”和“关联列”的值 - 88250 的回帖 - 链滴 (ld246.com)

    88250 1
    @88250 太棒了!
    Liuzn
  • Feline 1 赞同

    支持 html/css,进度条直接用 progress 也成,但是改样式没有手搓进度条来得方便。

    <progress max=.action{.总数} value=.action{.已完成}></progress>
    
  • leoyao 1

    在 v3.0.10 后会报错,更新后如下

    .action{$a:= index . "已完成" 0}
    .action{$b:= index . "总数" 0}
    .action{$c:= mul $a 100}
    .action{$d:= div $c $b}
    <span style="background-color: rgba(175,184,193,0.2); width: 100%; display: inline-block; height: 20px; border-radius: 5px; align-self: center; overflow: hidden; position: relative; font-family: Arial, sans-serif;">
        <span style="text-align: right; font-size: 12px; width: .action{$d}%; background-color: rgb(45,164,78); display: inline-block; height: inherit; vertical-align: top; color: white; padding-right: 5px; line-height: 20px;">.action{$d}%</span>
        <span style="position: absolute; right: 5px; top: 0; bottom: 0; color: black; display: flex; align-items: center;"></span>
    </span>
    
    
    2 回复
    1 操作
    JeffreyChen 在 2024-05-17 16:38:44 更新了该回帖
  • 补充说明:模板使用关联或汇总时,填充值为数组,所以可能需要使用 index .汇总 0 来访问第一个值,或者使用 range 迭代所有值。

    关联:Issue #11029 · siyuan-note/siyuan

  • mark-j 1 评论

    进度百分比和进度条能否合二为一?

    前两种进度条应该都是可以的,第三种进度条我也不知道能不能,需要大神来说明了
    Liuzn
  • mark-j

    3.1.9 还是报错?原因是总数没有输入数字,分母不能为 0。

  • mark-j

    进度条和数值二合一代码image.png

  • mark-j 2 1 赞同
    .action{$a:= index . "已完成" }
    .action{$b:= index . "总数" }
    .action{$c:= mul $a 100}
    .action{$d:= div $c $b}
    
    <span style="background-color: rgba(175,184,193,0.2); width: 100%; display: inline-block; height: 12px; border-radius: 6px; align-self: center; overflow: hidden;">
        <!-- 进度条的已完成部分 -->
        <span style="text-align: right; font-size: 12px; width: .action{$d}%; background-color: rgb(45,164,78); display: inline-block; height: inherit; vertical-align: top; color: white; line-height: 12px;">
            .action{$d}%
        </span>
    </span>
    
请输入回帖内容 ...

推荐标签 标签

  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    8 引用 • 40 回帖
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    166 引用 • 595 回帖
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1388 回帖 • 273 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    210 引用 • 2036 回帖
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    179 引用 • 407 回帖 • 482 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 74 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 12 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 274 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 162 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖 • 1 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 365 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 488 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 2 关注
  • 音乐

    你听到信仰的声音了么?

    61 引用 • 511 回帖
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖 • 3 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    78 引用 • 391 回帖
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖 • 3 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖
  • OnlyOffice
    4 引用 • 7 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖