2012-02-07 237 views
0

我在使用InfoPath创建的表单中有一个日期字段,它允许用户输入日期,该日期可能是任务的到期日期。我希望有另一个“计算值”字段设置为:如何仅使用XPath计算日期差异?

  1. 如果该日期已过,则显示“过期”
  2. 如果不是,则表明留到给定日期的天数

这可能没有写入VB/C#代码,而只是将表达式粘贴到XPath对话框中?

谢谢!

回答

0

假设这是其中用户输入的日期值将XML节点

<due-date>2012-02-08</due-date> 

然后下面的xpath表达式将返回剩余的到期日期,如果输入的日期是电流日期之前和返回“逾期天'如果输入的日期通过当前日期。

if((xs:date(current-date())) <= (xs:date(/due-date))) 
    then days-from-duration((xs:date(/due-date)) - (xs:date(current-date()))) 
    else 'OverDue' 
+0

该解决方案使用XPath 2.0,但InfoPath只提供XPath 1.0,我相信。 XPath 1.0中没有调用其他语言的解决方案。 – 2012-02-07 08:12:57