跳到主要内容

表单提交管控

在搭建宜搭应用的过程中,你可能会遇到以下问题。

  • 如何在日报管理系统中,设置只允许每人每天提交一条日报数据,不允许当日重复提交
  • 如何在周报管理系统中,设置只允许每人每周提交一条周报数据,不允许当周重复提交
  • 如何在月报管理系统中,设置只允许每人每月提交一条周报数据,不允许当月重复提交
  • 如何在问卷调查或活动报名系统中,设置只允许每人提交一条数据,不允许同一个人重复提交。

前提条件

本教程使用到宜搭的表单公式,你可以先了解以下表单公式

实现效果

每人每天只能提交一次

每人每周只能提交一次

每人每月只能提交一次

每人只能提交一次

实现步骤

每人每天只能提交一次

创建普遍表单页面

创建普通表单页面,详情请参考普通表单

在画布区域拖入以下组件。

  • 成员:命名为提交人
  • 日期:命名为提交日期
  • 单行文本:命名为唯一校验标识
    • 组件状态设置隐藏并勾选始终提交

添加表单公式

提交人选择快捷配置,默认当前登录人。

提交日期选择快捷配置,默认今天。

唯一校验标识默认值选择公式编辑,并配置下图所示公式,也可以直接复制公式源码,注意修改字段。

使用(当前登录人 userId + 提交日期年月日)来设置唯一校验标识。

{"text":"CONCATENATE(USERFIELD(​提交人​,\"userId\"),TEXT(DATE(​提交日期​),\"yyyyMMdd\"))","marks":[{"from":{"line":0,"ch":22,"sticky":null},"to":{"line":0,"ch":27,"sticky":null},"value":"employeeField_lc0bktqq","invalid":false},{"from":{"line":0,"ch":48,"sticky":null},"to":{"line":0,"ch":54,"sticky":null},"value":"dateField_lc0bktqr","invalid":false}],"isCmData":true}

添加表单校验

使用 EXIST 函数对唯一校验标识进行校验即可。

{"text":"EXIST(​唯一校验标识​)","marks":[{"from":{"line":0,"ch":6,"sticky":null},"to":{"line":0,"ch":14,"sticky":null},"value":"textField_lc0bcyfu","invalid":false}],"isCmData":true}

保存页面

每人每周只能提交一次

创建普遍表单页面

创建普通表单页面,详情请参考普通表单

在画布区域拖入以下组件。

  • 成员:命名为提交人
  • 日期:命名为提交日期
  • 单行文本:命名为唯一校验标识
    • 组件状态设置隐藏并勾选始终提交

添加表单公式

提交人选择快捷配置,默认当前登录人。

提交日期选择快捷配置,默认今天。

唯一校验标识默认值选择公式编辑,并配置下图所示公式,也可以直接复制公式源码,注意修改字段。

使用(当前登录人 userId + 提交日期年月 + 提交日期周数)来设置唯一校验标识。

{"text":"CONCATENATE(USERFIELD(​提交人​,\"userId\"),TEXT(DATE(​提交日期​),\"yyyyMM\"),MID(TEXT(ISOWEEKNUM(DATE(​提交日期​))),2,LEN(TEXT(ISOWEEKNUM(DATE(​提交日期​))))-2))","marks":[{"from":{"line":0,"ch":22,"sticky":null},"to":{"line":0,"ch":27,"sticky":null},"value":"employeeField_lc0bktqq","invalid":false},{"from":{"line":0,"ch":48,"sticky":null},"to":{"line":0,"ch":54,"sticky":null},"value":"dateField_lc0bktqr","invalid":false},{"from":{"line":0,"ch":91,"sticky":null},"to":{"line":0,"ch":97,"sticky":null},"value":"dateField_lc0bktqr","invalid":false},{"from":{"line":0,"ch":128,"sticky":null},"to":{"line":0,"ch":134,"sticky":null},"value":"dateField_lc0bktqr","invalid":false}],"isCmData":true}

添加表单校验

使用 EXIST 函数对唯一校验标识进行校验即可。

{"text":"EXIST(​唯一校验标识​)","marks":[{"from":{"line":0,"ch":6,"sticky":null},"to":{"line":0,"ch":14,"sticky":null},"value":"textField_lc0bcyfu","invalid":false}],"isCmData":true}

保存页面

每人每月只能提交一次

创建普通表单页面

创建普通表单页面,详情请参考普通表单

在画布区域拖入以下组件。

  • 成员:命名为提交人
  • 日期:命名为提交日期
  • 单行文本:命名为唯一校验标识
    • 组件状态设置隐藏并勾选始终提交

添加表单公式

提交人选择快捷配置,默认当前登录人。

提交日期选择快捷配置,默认今天。

唯一校验标识默认值选择公式编辑,并配置下图所示公式,也可以直接复制公式源码,注意修改字段。

使用(当前登录人 userId + 提交日期年月)来设置唯一校验标识。

{"text":"CONCATENATE(USERFIELD(​提交人​,\"userId\"),TEXT(DATE(​提交日期​),\"yyyyMM\"))","marks":[{"from":{"line":0,"ch":22,"sticky":null},"to":{"line":0,"ch":27,"sticky":null},"value":"employeeField_lc0bktqq","invalid":false},{"from":{"line":0,"ch":48,"sticky":null},"to":{"line":0,"ch":54,"sticky":null},"value":"dateField_lc0bktqr","invalid":false}],"isCmData":true}

添加表单校验

使用 EXIST 函数对唯一校验标识进行校验即可。

{"text":"EXIST(​唯一校验标识​)","marks":[{"from":{"line":0,"ch":6,"sticky":null},"to":{"line":0,"ch":14,"sticky":null},"value":"textField_lc0bcyfu","invalid":false}],"isCmData":true}

保存页面

每人只能提交一次

创建普通表单页面

创建普通表单页面,详情请参考普通表单

在画布区域拖入以下组件。

  • 成员:命名为提交人
  • 日期:命名为提交日期

保存页面

设置提交规则

进入页面设置。

设置提交规则并保存。

视频教程

在线试玩

Copyright © 2024钉钉(中国)信息技术有限公司和/或其关联公司浙ICP备18037475号-4