1

编辑4:

我终于能够解决我自己的问题。请参阅下面的复选标记答案。

编辑3: 我觉得我真的很接近解决这个问题,我的路上只有一个障碍。过滤器只能应用于列表框、组合框或下拉列表框。我能够过滤我的信息,但我需要为我过滤的信息获取一个 MAX 值,我不知道如何做到这一点。我已经尝试了 max 函数,但我得到的只是 NaN。

截图

您会注意到我的“当前年份 #s +1 默认为 NaN。但是当我从过滤的下拉列表中选择一个数字时,它会起作用。我需要能够默认为列表中的最大数字。请参阅另一个屏幕截图。我似乎无法弄清楚如何默认为最大报告数。有什么建议或想法吗?

编辑 2: 问题仍未得到解答。要将最近的编辑移到顶部。

编辑 1: 似乎我们正在采用 Ktharsis 方法。他建议在我们获得 MAX(@ID) +1 之前的一年使用过滤器。我还不确定如何实现这一点。在获得 MAX(@ID) +1 之前,是否有一个公式可以在 Sharepoint 中过滤年份,以便我们的顺序 ID 每年都会重置?一旦得到答复,我将发布另一个更新。

我正在尝试创建一个将在新的一年重置的唯一编号计数器 ID。我有数字计数器部分,但我不知道如何在新的一年开始时将其重置。

示例:2010-0057、2010-0058、2010-0059..... 2011-0001、2011-0002 等。

相反,它只是继续序列。关于如何实现这一点的任何想法?首选方法是不使用编程。附带说明一下,我将其与 SharePoint 网站集成,实际上我是从 SharePoint 的 ID 字段中获取我的序列号。我正在为我的数字序列使用 MAX(ID) 公式。

** 第一次使用这个网站,如果这个问题不属于这里,我很抱歉。

4

3 回答 3

2

在 InfoPath 中,您可以通过这种方式在公式中获取当前年份(无需编程)。

substring(today(), 1, 4)

但是,如果您的系统设置不是美国英语,则格式可能会有所不同(如果您的用户有不同的系统设置,这不是一个好主意)。

要从 SharePoint 中获取正确的数据,您需要过滤您的列表。您当前正在询问所有列表数据并获取 MAX(ID)。过滤此列表以仅获取当前年份,然后获取 MAX(ID),它将为您提供正确的序列号。

于 2011-02-08T13:27:23.273 回答
1

我终于想通了!尽管 Ktharsis 确实给了我一些提示,但他并没有回答我的问题,即我实际上在哪里有一些有用的东西。因此(不要成为刺客),我正在回答我自己的问题并向你们展示我做了什么。

我如何在每个新年重置自动生成的数字: 忽略我之前关于使用下拉框过滤器的所有编辑。这些都不起作用。这是你需要的。在您的提交规则中,添加一条规则以从您的共享点位置查询数据(不完全确定此步骤是否必要,但不会造成伤害)。在下方添加另一条规则以“设置字段值”。在“字段”选项下选择您的“数字计数器字段”。

在“值”选项下,输入:

最大值(@Report_Number[@Year = substring-before(today(), "-")]) + 1

这将获得当前年份的最大报告编号并将其加 1。因此,如果报告编号 20 是您在 sharepoint 数据库中的最高报告编号,它现在将使您提交的报告编号为 21。这将每年重新开始。

对于我的表格,我的“数字计数器字段”基本上会提供我的“报告编号字段”并在必要时添加零。例如,如果我在报告编号 2 上,它将发布报告编号 0002。

如果没有任何新年报告,我还没有尝试过看看会发生什么。但是您可以在此之前添加一条规则来查找最大报告编号,如果它为零,则将此报告编号设为 1。

如果您对我的解决方案有任何疑问。请告诉我。在我发布这个问题之前,我已经花了几个月的时间来解决这个问题。感谢所有帮助过的人。

于 2011-02-25T18:47:20.643 回答
0

也许我在这里遗漏了一些东西,但是如果您从共享点获取您的序列号,除非您创建一个新的列表或库来从中提取它,否则这个数字不会一直增加吗?如果你这样做,那么数字应该从 0 开始。

于 2011-02-11T22:27:16.683 回答