根据之前调查的答案创建约束条件。

3191
5
跳到解决方案
03-29-2021 06:29
PatrickMcGarry1
新贡献者II

patrickmcgarry1_0 - 1617024161827. - png

在调查123中,我试图根据以前的答案的结果创建一个调查答案。例如,在上面的图像中,用户选择优先级,然后选择缺陷报告的日期。根据所给出的回复,完成的截止日期必须限制在缺陷日期后的24小时/1周等。我已经尝试了调查123连接的约束和计算,但连接得到一个解决方案。

标签(3)
1解决方案

接受的解决方案
UriGilad_EsriAu
Esri贡献者

@PatrickMcGarry1,

请参阅所附xlsf的示例,了解如何实现这一目标(示例适用于7天)。

首先,您需要以整数形式获取天数。你可以在选项中设置或者创建另一个隐藏字段number_of_days方法返回一个整数如果语句,例如if(选中(${priority_code},"P1 - 24HRS", 1, if(选中(${priority_code},"P2 - 1WEEK",7,等等)。

现在您可以创建一个calculate字段并将其计算为

今天的日期(decimal-date-time (()) + int ($ {number_of_days})

日期(decimal-date-time(现在())+ int ($ {number_of_days}))

然后对您的完成日期字段设置一个约束,强制它等于或大于计算字段。

希望这能有所帮助,

Uri

如果这个答案解决了你的问题,或者你觉得它有帮助,请相应地标记,以帮助其他有同样问题的人。

在原帖子中查看解决方案

5回复
UriGilad_EsriAu
Esri贡献者

@PatrickMcGarry1,

请参阅所附xlsf的示例,了解如何实现这一目标(示例适用于7天)。

首先,您需要以整数形式获取天数。你可以在选项中设置或者创建另一个隐藏字段number_of_days方法返回一个整数如果语句,例如if(选中(${priority_code},"P1 - 24HRS", 1, if(选中(${priority_code},"P2 - 1WEEK",7,等等)。

现在您可以创建一个calculate字段并将其计算为

今天的日期(decimal-date-time (()) + int ($ {number_of_days})

日期(decimal-date-time(现在())+ int ($ {number_of_days}))

然后对您的完成日期字段设置一个约束,强制它等于或大于计算字段。

希望这能有所帮助,

Uri

如果这个答案解决了你的问题,或者你觉得它有帮助,请相应地标记,以帮助其他有同样问题的人。

PatrickMcGarry1
新贡献者II

由于Uri,

我尝试更新XLS表单,但它似乎不接受约束。在附件的表格中,我已经将日期限制为从今天开始的一天,但当我添加到期日时,它不接受它为有效。不确定我做的是否正确。什么好主意吗?

谢谢,帕特里克。PWAY_Defects.JPG

0荣誉
UriGilad_EsriAu
Esri贡献者

@PatrickMcGarry1,

只是不得不洗牌几行-见附件xlsf更正字段。请注意,目前“P4例行维护”= 100天。在计算字段中更改它以适应您需要的天数。

另外,考虑更改日期的约束错误消息,以解释错误的原因,例如,“完成日期必须在7天内”。

如果这个答案解决了你的问题,或者你觉得它有帮助,请相应地标记,以帮助其他有同样问题的人。

0荣誉
PatrickMcGarry1
新贡献者II

非常感谢乌里的工作。我还尝试将选项更改为整数,这样也可以在不需要计算天数的情况下工作。

我也可以默认为截止日期完成。例如,如果我为P1 - 24HRS选择优先级代码,这可以自动将完成的截止日期从缺陷报告的日期开始算起1天吗?我想根据优先级代码和报告日期自动完成到期日期。

0荣誉
UriGilad_EsriAu
Esri贡献者

@PatrickMcGarry1,

是的,你所需要做的就是更换

今天的日期(decimal-date-time (()) + int ($ {number_of_days}))

日期(decimal-date-time ($ {date_the_defect_was_reported_on}) + int ($ {number_of_days}))

需要注意的是,这个解决方案在网页版上运行得不太好,但在Survey123应用上似乎运行得很好。

欢呼,

Uri

如果这个答案解决了你的问题,或者你觉得它有帮助,请相应地标记,以帮助其他有同样问题的人。

0荣誉