无需技术开发就能做打卡应用,用 SeaTable 脚本简单又方便

做个自定义的打卡应用还苦于无法实施?还需要购买软件?还得求着公司程序员给你开发?如果还这样费时费力的话,那你也太落伍啦!现在用 SeaTable 就可以轻松解决,并且完全免费,拿来即用。

举个例子,日常工作中,无论是在论坛社区,还是在QQ群、微信社群等,一些做运营的小伙们经常会组织线上活动,如素描打卡训练营、健身打卡训练营、营养餐打卡训练营等等。这类打卡活动,涉及的数据量大而又繁琐,且多属于重复性。需要每天记录每个人的打卡信息,然后再按照打卡活动规则对收集的信息进行处理,最后再做统计和分析。那如何不用购买软件,不需要技术开发,就能快速又省时省力地实现这种打卡应用呢?

下面,我们就通过一个"十天营养餐打卡“活动,来看下如何用 SeaTable 轻松实现打卡应用的吧。本活动案例仅供参考,主要是给大家提供一个思路。

这个打卡活动的规则是:参与者须连续9天,每天打卡一次,并且打卡时间≥16点,且<22点。对于符合打卡活动规则的参与者,我们会在活动结束后如数返还缴纳的费用。那么要实现这个打卡应用,我们就需要完成以下工作:

  • 如何收集和自动汇总打卡信息
  • 如何自动标记出不符合打卡时间的打卡记录
  • 如何统计出符合打卡时间且连续打卡9天及以上者

分别来看。

用表单收集和自动汇总打卡信息

收集和自动汇总打卡信息,都可以通过 SeaTable 的表单来完成。它在表格上就可以创建表单,通过表单填写并提交的数据都会实时自动汇总到表格里。我们来看下步骤:

1、增加子表并分别创建表单

在打卡活动开始前,我们就先在 SeaTable 中新建一个表格,然后在里面增加两个子表,一个用来记录参与活动的打卡者基本信息,一个用来自动汇总每天的打卡信息(这时两个子表里只有列的名称,并没有打卡者信息和打卡信息)。

然后,点击表格右上角的“表单”按钮,分别为这两个子表,创建出表单。

在「打卡人」子表中:

名称、微信号、联系方式这几列,都会要求意向参与者通过表单来填写并提交。

费用、是否缴费列,我们会事先告知,待通过表单收集完意向参与者后,我们再自己填写、联系缴费并勾选。

「每日打卡汇总」子表,如下图:

在「每日打卡汇总」子表中:

名称列:用了“文本”类型,用来让打卡人填写姓名。

打卡凭证列:用了“图片”类型,打卡者可以直接添加多张图片。

创建时间列:用了“创建时间”类型,它不需要打卡人在表单上填写,它在表格里会自动记录提交表单的时间,也就是打卡时间。

2、设置并共享表单

在完成上一步后,我们就可以分别进入两个表单的设置界面,根据需要对表单进行设置,比如对填写项设置是否必填、填写注释、表单备注、访问权限是什么(任何人都可以填写、仅注册登录用户可填写、团队版中特定的群组可填写)、填写后跳转网址等(我就填写了本表单的共享网址)。

两个表单都设置完成后,点击表单上的共享按钮,就可以把表单的共享链接或二维码发到打卡群里了。他们打开表单后,填写并提交的信息就会自动汇总到相应的表格里。

我们可以先发「基本信息」表单来收集缴费参与者,然后等活动正式开始后,再发「每日打卡汇总」表单,来供参与者按打卡规则每日打卡。

每日打卡汇总表单设置,如下图:

用脚本自动标记出不符合打卡时间的打卡记录

打卡活动开始后,我们可以不时的提醒参与者按打卡规则坚持每天打卡,待活动结束后,会把之前缴纳的费用返还给符合规则的打卡者。

那么,问题就来了,「每日打卡汇总」表里,有的打卡时间是在打卡规定时间内,有的是在打卡规定时间外,有的是在规定的打卡时间内打卡了多次。

面对繁杂的汇总数据,我们该如何自动又快速的筛选出:打卡时间是在16点至22点前的呢?像这种对表格里数据的个性化处理,我们就可以用 SeaTable 的脚本功能。它在表格上就可以创建并运行脚本。

下面,我们来看下步骤:

1、增加视图并为其增加“标记”列

本活动打卡规则是:参与者须连续9天,每天打卡一次,并且打卡时间是在16点至22点前。如符合规则,那么活动结束后,我们会如数返还之前缴纳的费用。因此,我们会按打卡规则编写脚本代码。利用编写好的脚本筛选掉不符合打卡时间的打卡者。

下方这个视图中的“标记”列,就是用来自动标记通过脚本筛选出的不符合打卡时间的打卡者。

2、粘贴脚本代码并点击运行脚本

完成上一步后,我们在下方的视图表上,点击右上角的“脚本”,将编写好的脚本代码粘贴或者导入进去。然后就可以点击运行脚本了。

脚本会对「标记筛选视图」 里的汇总数据自动进行如下处理:

  • 打卡时间不在16点至22点前的则被判定为无效,会自动在“标记”列显示为“无效”;

  • 打卡时间在16点至22点前的,在“标记”列会显示为空,并且打卡者如果在一天内打卡多次,也只会取16点至22点前的第一次打卡时间作为有效记录。也就是说,即使有打卡者每天都打卡了,且每天有多个16点至22点前的打卡时间,那么该打卡者每天也只会有一次有效记录。

运行脚本后,如下图:

脚本如下图:

脚本地址:

https://github.com/seatable/seatable-scripts-cn/blob/master/examples/python/verify_records.py

(PS:本案例表格用到的脚本,复制就可以使用。字段名称可根据实际修改)

在上一步,我们用脚本判断出了不符合打卡时间的打卡记录,并标记为了无效,那么接着,用工具栏的“过滤器”设置条件为:标记列,不是,无效,就可以自动过滤出符合打卡时间的打卡者了。

如下图:

用统计功能统计出连续打卡9天及以上者

在前面,我们用脚本筛选出了符合打卡规定时间的打卡记录,且每人每天最多只有一次有效记录,但是有的打卡者不一定连续9天都打卡了,该如何从符合打卡时间的记录里,快速统计出那些连续打卡9天及以上的打卡者呢?

用“统计”就可以实现,点击右上角的“统计”,选择「每日打卡汇总」子表、「标记筛选视图」,以及相应参数,就可以快速统计出来了。

比如在下方的统计图表、统计者表格中,我们就可以看到符合打卡规定时间且连续打卡9天的打卡者,一共有3名。

然后把之前缴纳的费用返还给这3名打卡者就可以了。至此,我们就轻松地完成了一个周期的打卡活动。

统计图表设置如下图:

放大后的统计表格如下图:

总结

以上,我们用 SeaTable 的表单、脚本、统计功能,快速实现了一个打卡小应用,轻松地组织完成了一个打卡活动。再也不需要麻烦程序员去开发应用,更不需要花钱购买软件了。本案例中的脚本代码,修改下字段名称即可使用。SeaTable 的脚本功能支持 JavaScript 和 Python 两种编程语言,对于会编程的朋友来说,处理数据会更加方便。

本文中的案例只用到了部分功能,打卡也只是其中一个场景,我们用脚本并结合它的其他功能,可以实现很多小应用,比如:

运营可以用来做问卷调查并实现自动从中随机抽出几名作为中奖用户;

行政可以用来从繁多的考勤数据中,自动统计出每人每天的最早打卡时间和最晚打卡时间,作为每天的上下班时间;

运维可以用来对多个站点的证书过期时间实现自动化监控,自动提前发出提醒通知等等。

总之,作为一款新型的协同表格和信息管理工具,SeaTable 在使用上非常灵活,也能极大地提高办公效率。而且它也不需要下载安装,网页端、微信小程序都可以登录。非常值得使用!