0

我是 XPages 应用程序的天真开发人员之一。我开始使用 XPages,因为我发现它们真的很有趣,可以构建我们想要的任何东西。

这是我几天以来一直在努力解决的问题之一,但无法克服它。

在我的休假申请中,我有两个日期字段,leaveFrom 和 leaveTill 和一个计算编辑框,我将在其中显示编号。天数 (noDays) 动态,即上述两个休假日期字段的差异。而我无法做这么简单的事情。

我正在使用 Lotus 8.5.3 来创建这个应用程序。我看到了一些方法,比如getcomponent("").setvalue()or getvalue()。但这两种方法在 8.5.3 中不可用。当我使用这些方法时,我总是会出错。我也尝试在 CSJS 上使用 getComponent .. 但没有成功。

我还尝试使用其他脚本方法,我可以创建后端文档,但值未显示在我当前的 xpage 上。

请告诉我正确的路径。

4

3 回答 3

4

您可以使用以下 XSnippet 来比较日期(从而也计算两个日期之间的天数):http ://openntf.org/XSnippets.nsf/snippet.xsp?id=compare-dates 。我希望您可以将其用作您特定情况的输入。

关于 getComponent("").getValue() 和 .setValue()。它们当然也可以在 8.5.3 中使用。请记住,XPages 区分大小写。

于 2012-12-04T07:48:33.117 回答
2

该代码不起作用,因为 Java 日期的timeDifference方法不存在:

var difference = endDate.timeDifference(startDate);

您必须先将其转换为NotesDateTime

var difference = null; 
try{
    var nDateStart = session.createDateTime( startDate );
    var nDateEnd = session.createDateTime( endDate );

    difference = nDateEnd.timeDifference(nDateStart); 
    difference = (Math.floor(difference/86400)) + 1;
}catch(e){return e}

difference
于 2012-12-05T08:36:44.537 回答
0

感谢您的解释性视频,我从他们那里学到了很多东西。

9 中的注释?:)

回到你的问题。

如果两个字段都是 DATETIME 格式,那么您可以执行以下操作。

(endDate - startDate) / (24*60*60);
于 2012-12-04T07:49:44.590 回答