我在使用思源笔记的数据库来构建一个简单的记账表格。
大概是有 2 个字段,“当前消费”,和,“消费总计”
“消费总计”列是一个“模板”字段,它用于获取上一行的“消费总计”的数值,然后加上当前这一行的“当前消费”,然后自动呈现数值
这里实现遇到的一个问题是,有什么函数可以获取到这个数据库的上一行记录呢?谢谢大家!
我在使用思源笔记的数据库来构建一个简单的记账表格。
大概是有 2 个字段,“当前消费”,和,“消费总计”
“消费总计”列是一个“模板”字段,它用于获取上一行的“消费总计”的数值,然后加上当前这一行的“当前消费”,然后自动呈现数值
这里实现遇到的一个问题是,有什么函数可以获取到这个数据库的上一行记录呢?谢谢大家!
可以通过 img 标签配合 js 实现。
模板代码:
<span><img src="" style="display:none;" onerror=" (async () => { // 获取当前单元格 const currCell = this.closest('div.av__cell'); // 获取当前行 const currRow = currCell.closest('div.av__row'); // 获取前一个单元格的值 let prevCellValue = 0; let prevCellColId = ''; const prevCell = currCell.previousElementSibling; if(prevCell && prevCell.matches('div.av__cell')) { prevCellValue = parseFloat(prevCell.textContent); prevCellColId = prevCell.dataset.colId; } // 获取前一个单元格的所有前面的单元格的和 let prevPrevCellsTotal = 0; const prevPrevRows = getPrevSiblings(currRow); prevPrevRows.forEach(prevPrevRow => { if(prevPrevRow) { const prevPrevCell = prevPrevRow.querySelector(`div.av__cell[data-col-id='${prevCellColId}']`); if(prevPrevCell) { prevPrevCellsTotal += parseFloat(prevPrevCell.textContent); } } }); // 输出数据 this.parentElement.outerHTML = (prevCellValue + prevPrevCellsTotal).toFixed(2).replace('.00', '') || ''; // 获取所有前面的行 function getPrevSiblings(currRow) { let siblings = []; let sibling = currRow.previousElementSibling; while (sibling) { // 如果遇到了 div.av__row.av__row--header,则停止查找 if (sibling.tagName.toLowerCase() === 'div' && sibling.classList.contains('av__row--header')) { break; } // 收集 div.av__row 元素 if (sibling.tagName.toLowerCase() === 'div' && sibling.classList.contains('av__row')) { siblings.push(sibling); } sibling = sibling.previousElementSibling; } // 因为我们是从下往上添加的,所以最后需要反转数组来保持从上到下的顺序。 return siblings.reverse(); } })(); " />正在计算...</span>
Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。
Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。
JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA。
ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。
汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。
主仓库地址:Hi-Windom/Sillot
文档地址:sillot.db.sc.cn
注意事项:
Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper
TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。
Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。
快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。
Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。
用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖。
用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/
资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。
BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。
笔记整理交给我,一心只读圣贤书。
Open Source, Open Mind, Open Sight, Open Future!
为成为自由职业者在家办公而努力吧!
有点意思就行了
HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。
持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。
大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
新手上路,请谨慎驾驶!
微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。
FreeMarker 是一款好用且功能强大的 Java 模版引擎。
据说 99% 的性能瓶颈都在数据库。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于