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

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

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

后来经过 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>
      

世上还是大神多呀!

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

  • 思源笔记

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

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

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

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 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>
    
  • 其他回帖
  • 补充说明:模板使用关联或汇总时,填充值为数组,所以可能需要使用 index .汇总 0 来访问第一个值,或者使用 range 迭代所有值。

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

  • lunzi 2 评论

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

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

    88250 1
    @88250 太棒了!
    Liuzn
  • 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 更新了该回帖
  • 查看全部回帖

推荐标签 标签

  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    196 引用 • 540 回帖 • 1 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 5 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 725 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 484 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 315 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    12 引用 • 54 回帖 • 51 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    51 引用 • 25 回帖
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 254 关注
  • OnlyOffice
    4 引用 • 3 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖 • 6 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 668 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖 • 2 关注
  • SendCloud

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

    2 引用 • 8 回帖 • 487 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    123 引用 • 74 回帖
  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖
  • GitHub

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

    210 引用 • 2036 回帖
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 2 关注
  • 自由行
    5 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    6 引用 • 14 回帖
  • SQLServer

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

    21 引用 • 31 回帖 • 2 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖 • 1 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖 • 1 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 6 关注