E.g. there is a list with gazillion required fields and I want the users to be able to fill out whatever they can and save as a draft until they have full info? Is there a simple solution for this? Tia!
答案 0 :(得分:0)
一种方法是在列表中包含两种不同的内容类型:一种用于草稿项目,另一种用于提交项目。
同一列表中的内容类型可以针对相同列具有不同的设置。这意味着您可以在“草稿”内容类型上设置字段可选,同时在“已提交”的内容类型上必需。
缺点是如果最终用户需要手动更改“内容类型”字段以发布他们的草稿,则可能不直观。
另一种方法是使用列表验证设置,而不是使字段成为必需字段。
列表验证允许您指定类似Excel的公式(您可以从中引用列值),必须将其评估为true才能使验证成功。如果它的计算结果为false,则会显示验证错误消息(您可以指定该消息的文本),并且无法保存该项目。
假设您有一个名为First Field
的字段,您不一定需要立即填写,并且您还有一个名为Status Field
的选择字段,用于指示某个项目是否为草稿版本或提交(显示“草稿”或“已提交”)。
您可以设置一个列表验证公式,只要First Field
更改为Status Field
,就需要填写"Submitted"
。
公式如下:
=If([Status Field]="Submitted",NOT(ISBLANK([First Field])),TRUE)
用简单的英语说,那个公式说:
如果状态字段等于已提交 ...
...只有当第一个字段不为空时,表单才有效。
否则,表格有效。
要使这项功能适用于多个字段,您可以使用OR()
和AND()
函数一起加入条件,格式为OR(condtion1,condition2)
因此,不是ISBLANK([First Field])
来检查字段是否为空,而是使用OR(ISBLANK([First Field]),ISBLANK([SecondField]))
来检查两个字段中的任何一个是否为空。 (根据需要用您的字段标题替换First Field
和Second Field
。
现在公式如下:
=If([Status Field]="Submitted",NOT( OR(ISBLANK([First Field]),ISBLANK([Second Field]))),TRUE)
请注意,您可以任意嵌套多个OR()
条件,格式为OR(condition1, OR(condition2, OR(condition3, condition4)))
(依此类推)。
如果您遇到公式长度的限制,您可以将一些条件计算卸载到他们自己的计算列中,然后只需从验证公式中引用这些列值。
这也有助于防止公式变得如此复杂。
例如,对于您想要的每个字段,您可以创建一个公式为=NOT(ISBLANK([Column Name]))
的计算列,并将其命名为“{Column Name} Is Valid”。然后,您可以参考验证公式中的那些列:
=If([Status Field]="Submitted",AND([Field1 Is Valid],AND([Field2 Is Valid],[Field3 Is Valid])),TRUE)