工厂、大楼或园区的设施管理,常需要定期抄录水表、电表、瓦斯表等设备的读数,并计算每天的用量。这类读数多半是累计数字,每日用量要用“本日读数”减去“前一日读数”,如果用打印件或 Excel 逐笔计算,不仅耗时,也容易抄错或漏算。
这篇文章以水表为例,演示如何在 Ragic 中,让现场人员扫描设备上的 QR Code,直接打开这台设备的输入画面,只需要填写当天的读数,系统就会自动带出前一日读数并算出每日用量。内容分为三个部分:
・创建每日抄表纪录,自动计算每日用量
・生成 QR Code,扫码打开输入画面
・使用说明

要自动算出每日用量,系统必须获取“前一天的读数”。不过子表格中的公式只能读同一列的数据,无法直接获取上一列的数字,所以不能只靠子表格完成。
做法是先把每天的抄表数据转成独立的一笔数据,再让系统自动找出“同一支水表、前一天”的那一笔,把它的读数带过来相减。
在“水表纪录”(每一支水表一笔数据)创建一个独特值字段作为“水表编号”,并新增一个子表格,用来逐日纪录水表读数。
在子表格中创建一个“子表格独特值”字段,使用字符串公式把“水表编号”与“抄表日期”组合成专属标识符,例如 WM-001-20260720,代表 WM-001 这支水表在 2026/07/20 的纪录。公式范例如下(A1 为“水表编号”、D5 为“抄表日期”,请依实际的字段调整):
A1+"-"+YEAR(D5)+RIGHT("0"+MONTH(D5),2)+RIGHT("0"+DAY(D5),2)
之后要找“前一天的数据”,就是靠比对这个“子表格独特值”。

在设计模式的表单工具中,使用用子表格生成新表单,把抄表子表格转成一张独立的“水表抄表纪录”。这样每天的纪录都会是各自独立的一笔数据,系统才能互相比对。
“水表抄表纪录”与“水表纪录”中的抄表子表格是同一份数据,在“水表抄表纪录”新增的数据,也会出现在对应水表的子表格中。日常输入建议以第二部分扫码打开的“水表抄表纪录”为主,子表格则适合用来检视单一水表的历史读数。
接着从源表单字段,把“水表纪录”的“水表编号”新增到这张表单,后续组合“子表格独特值”时会用到。
再创建一个公式字段“前一日日期”,公式为该笔数据的“抄表日期”减 1 天。

先创建一个链接字段,设置链接与加载连到“水表抄表纪录”自己。将左侧的“前一日子表格独特值”设为链接字段,对应右侧的“子表格独特值”(蓝色线);再将左侧的“前一日水表数值”设为加载字段,对应右侧的“本日水表数值”(黑色线)。

接着在这个链接字段(“前一日子表格独特值”)套用公式,用“水表编号”与“前一日日期”组合出“前一天那笔数据的子表格独特值”。组合时请使用 YEAR()、MONTH()、DAY() 等日期公式搭配字符串公式,并确保格式与步骤 1 的“子表格独特值”完全一致(包括月、日是否补零),才能比对到正确的数据。公式范例如下(A9 为“水表编号”、D1 为“前一日日期”,请依实际的字段调整):
A9+"-"+YEAR(D1)+RIGHT("0"+MONTH(D1),2)+RIGHT("0"+DAY(D1),2)

如此一来,输入“抄表日期”后,系统就会自动算出“前一日日期”,并链接到前一天的那一笔数据,再把该笔数据的“本日水表数值”带进来,作为“前一日水表数值”。

最后创建一个公式字段“本日用量”,公式为“本日水表数值”减去“前一日水表数值”。公式范例如下(A3 为“本日水表数值”、A14 为“前一日水表数值”,请依实际的字段调整):A3-A14

备注:
1. 这一套设置同时用到多个功能,建议先在测试表单上用两三天的假数据实际跑一轮,确认“前一日水表数值”与“本日用量”都有正确带出后,再套用到正式表单。
2. 如果之后调整过公式或字段,请记得重新计算公式,已创建的数据才会套用新的结果。
有了“水表抄表纪录”之后,就可以为每支水表生成专属的 QR Code。现场人员扫描后,会直接打开这张表单的新增数据画面,并自动带入这支水表的编号与相关信息,只需要输入今天的读数,本日用量就会由第一部分设置的公式自动算出。
如果条形码的内容是网址,扫描后就等同于在浏览器中打开该网址,还可以透过网址参数,在打开的画面带入特定字段的值。
在“水表纪录”上创建一个自由输入字段,用字符串公式组合出“水表抄表纪录”新增数据的网址,并在网址后面带上这支水表的编号,网址写法请参阅这篇文档。公式范例如下(A1 为“水表编号”):
"https://ap11.ragic.com/example/forms12/2/?webview&webaction=form&ver=new&pfv1006213="+A1
设计概念是:网址前半段指定要打开“水表抄表纪录”的新增画面,最后的 pfv 参数则预先填入“水表编号”字段(字段 ID:1006213),其值为这支水表自己的编号。这样每支水表的 QR Code 网址都不一样,扫描后打开的画面就会自动带入对应的水表。

组好网址后,把这个字段设置为以条形码显示,就会自动变成 QR Code。

使用标签生成器,把 QR Code 字段排版成标签样式打印输出,贴在对应的水表设备上。现场人员之后只要用手机相机或 Ragic App 扫描,就会直接打开“水表抄表纪录”的新增画面,水表编号也会自动带入。

“水表编号”是从源表单字段新增的链接字段,可以在链接与加载设置中,再加入要一并带出的加载字段,例如“水表名称”、“厂区编号”、“位置”,逻辑与第一部分的链接与加载相同。扫码带入“水表编号”后,这些数据就会自动出现。
“抄表日期”则可以在字段的默认值设置中选择“创建日期 $DATE”,这样打开新增画面时,日期就会自动带入当天,不需要另外选择。如果需要补登过去的日期,也可以自行修改。
在“子表格独特值”字段的附加字段设置中勾选不可重复。保存时 Ragic 会自动比对,如果同一支水表、同一天已经有纪录,就会挡下并提示无法保存。
整体设置完成后,建议先挑一支水表完整测试一轮:扫码打开、输入读数、保存,并确认“前一日水表数值”与“本日用量”都正确。如果有套用上面的进阶设置,也一并确认数据是否自动带出、重复输入是否会被拦截,再大量印制标签给现场人员使用。
现场人员只要用手机相机或 Ragic App 扫描水表上的 QR Code,就会打开“水表抄表纪录”的新增画面。这张表单和“水表纪录”的抄表子表格是同一份数据,保存后也能在该水表的子表格中查看历史读数。
打开画面后,“水表编号”与“抄表日期”(默认为当天)会自动带入,系统也会一并带出“前一日日期”与“前一日水表数值”。用户只需要填写“抄表人”与“本日水表数值”,再单击保存即可。

如果是周一或连假后才抄表,请先将“抄表日期”改为未抄表的日期,逐日补上纪录,“前一日水表数值”才能正确串接。未抄表日期的读数要如何填写(例如沿用前一笔已知读数,让用量集中反映在恢复抄表的那一天),需由管理员依实际情况决定,这和使用打印件纪录时会遇到的状况相同,并非系统能代为判断的部分。
同样的做法也可以用在电表、瓦斯表或其他设备的定期读数,只要把“水表编号”换成对应的“设备编号”即可。