Saving SharePoint list item as draft without required fields

时间:2016-08-31 18:23:22

标签: sharepoint sharepoint-2013

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!

1 个答案:

答案 0 :(得分:0)

选项1:多种内容类型

一种方法是在列表中包含两种不同的内容类型:一种用于草稿项目,另一种用于提交项目。

同一列表中的内容类型可以针对相同列具有不同的设置。这意味着您可以在“草稿”内容类型上设置字段可选,同时在“已提交”的内容类型上必需

缺点是如果最终用户需要手动更改“内容类型”字段以发布他们的草稿,则可能不直观。

选项2:列表验证设置

另一种方法是使用列表验证设置,而不是使字段成为必需字段。

列表验证允许您指定类似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 FieldSecond 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)