Sharepoint 2013/2016计算列停止计算

Sharepoint 2013/2016计算列停止计算,sharepoint,sharepoint-2013,sharepoint-2016,Sharepoint,Sharepoint 2013,Sharepoint 2016,我在SharePoint On Premises中有一个计算列,显示截止日期的天数,该天数在一天左右的时间内工作正常,然后停止计算,但如果我转到“列表设置”并单击该列,然后单击“确定”,它会再次计算吗 是否有人遇到过类似的问题。我在2013年和2016年都有过这一期,但几周后就转到了2016年,仍然是同一期 我尝试了“空白”和“空白”,所以不确定这是否是导致问题的原因 这个公式有问题吗 以下是公式: =IF(ISBLANK([Due Date])," ", IF(ISERROR(DATEDIF

我在SharePoint On Premises中有一个计算列,显示截止日期的天数,该天数在一天左右的时间内工作正常,然后停止计算,但如果我转到“列表设置”并单击该列,然后单击“确定”,它会再次计算吗

是否有人遇到过类似的问题。我在2013年和2016年都有过这一期,但几周后就转到了2016年,仍然是同一期

我尝试了“空白”和“空白”,所以不确定这是否是导致问题的原因

这个公式有问题吗

以下是公式:

 =IF(ISBLANK([Due Date])," ",
IF(ISERROR(DATEDIF(NOW(),[Due Date],"d"))," ",DATEDIF(NOW(),[Due Date],"d")))
,其中包括那些依赖于当前日期的

SharePoint列(甚至计算列)中的值存储在SharePoint的底层SQL Server数据库中

页面加载时不执行计算列中的计算;相反,只有当某个项目发生更改时才重新计算它们(在这种情况下,公式仅针对该特定项目重新计算),或者当列公式发生更改时才重新计算它们(在这种情况下,公式针对所有项目重新计算)

如果需要显示随时间推移而变化的动态值,则有几种选择

客户端渲染 考虑使用客户端呈现,它允许您使用JavaScript动态确定列表视图中记录的显示方式。此JavaScript在页面加载时运行,因此它可以比计算列更好地处理当前的时间相关值

要使用客户端渲染,您需要创建一个JavaScript文件来控制视图的显示方式。您可以将该文件上载到SharePoint上的某个位置,在那里人们至少可以对其进行读取访问,然后编辑要以不同方式显示的列表视图web部件,并将其“JSLink”属性设置为指向您的JavaScript文件

查看了解使用JSLink文件伪造动态日期字段的示例

微软也提供了一些文档,但我认为他们做的工作比必要的要多(在VisualStudio中为他们的示例创建一个完整的新列表定义项目,而不仅仅是为现有列表创建一个JSLink JavaScript文件)

其他选择 上面链接的旧问题中提到了一些其他选项:

  • 条件格式:可以应用条件格式突出显示满足特定条件的记录。这可以使用SharePoint Designer或HTML/JavaScript完成

  • 筛选列表视图:由于列表视图是实时查询和生成的,因此可以在列表视图过滤器中使用可变值。您可以设置一个列表视图web部件,该部件仅显示创建的
    与当前的
    相等的项目。由于您可以在一个页面上放置多个列表视图web部件,因此您可以在一个部分中放置今天的项目,在另一个web部件中放置所有其他项目,从而实现视觉上的分离

  • 工作流、计时器作业或计划任务:您可以使用重复过程每天设置正常(非计算)列的值。您需要谨慎使用此方法以确保良好的性能;例如,如果列表已超过列表视图阈值,则不希望它查询和更新列表中的每个项目


  • 要展开“筛选列表视图”选项,您可以使用一个视图,该视图仅显示在特定天数内到期的项目。例如,如果
    到期日期
    字段小于
    [Today]+7
    到期日期
    大于或等于
    [Today]
    ,则可以通过过滤显示7天内到期的所有项目。您也可以对视图进行排序,以便将到期日较早的项目显示在更靠近顶部的位置。

    好的,谢谢,但实际上不符合要求,我发布了我将尝试查看它是否有效的内容。有关解决方法,请参阅: