2012-12-03 22 views
1

我想知道是否可以通过Xpages中的客户端脚本处理备注视图和文档集合?我可以通过客户端JS访问Notes文档/集合吗?

到目前为止的故事....我正在建立一个人力资源系统,包括一个完整的缺席部分(假期,疾病,其他缺席等)。我在Notes客户端中编写了一个按钮,该按钮创建一个Excel电子表格,根据缺席文档(getview,getalldocumentsbykey到集合中)显示当前用户最近12个月缺席的日历。它在每个文档中使用各种字段(包括多值字段)来循环收集,以计算缺失长度,全天/半天等,并使用超链接以不同的颜色将它们标记在工作表上以访问文档。

它还计算其他事情,如布拉德福德因素评分,并围绕用户工作日进行计算。

任何人,我一直在挑战整个系统在浏览器中工作,消除任何需要的笔记客户端,所以....回到我原来的问题,我需要能够得到文档从笔记视图通过一个关键字,然后我可以通过客户端JavaScript访问该字段。

这可能吗?如果需要,我可以提供更多信息...

+3

您可以使用XPage完成所有这些(例如使用服务器端JS或使用Java)。您是否已经使用XPage进行此解决方案? –

+0

我敢肯定,即使没有xPages,也可以使用LotusScript Web代理完成大部分操作,但关键问题是您使用什么API将数据放入Excel中。你能告诉我们一些实际的代码吗?如果Excel的API必须是客户端的,那么DXL可能是最好的选择 - 但我不想把它当作给定的。 –

+0

lotusscript版本正在使用:'Set xlApp = CreateObject(“Excel.Application”)'来创建Excel对象并从那里构建它。 CSJS版本使用:var xlApp = new ActiveXObject(“Excel.Application”)'来实现相同的结果。我假设它是客户端在用户计算机上启动Excel对象而不是在服务器上弹出Excel打开的对象? @PerHenrikLausten @RichardSchwartz – CodenameSnugs

回答

1

您是否考虑过Notes Browser Plugin?它应该允许您通过浏览器运行基于Notes的应用程序,而无需修改代码。

Here is a write up about it

+0

它尚未发布。 –

+0

测试版可用。将在不到30天的时间内完成。 – DaBaer

+0

除了这部分,整个应用程序是Xpages的基础,所以我不认为这将是任何使用.. – CodenameSnugs

1

您可以访问所有Domino从客户端的JavaScript圣维特Java和CORBA对象。你只需要一个小程序,将Session返回给javascript。下面是来自设计师的帮助说明:

http://www-12.lotus.com/ldd/doc/domino_notes/rnext/help6_designer.nsf/9/0d05bb3cec358f7085256c54004bdbff

然而,由于每时下建议客户端和服务器端JavaScript的XPages中的结合通常被用来代替CORBA。 Domino Data Service是从服务器获取数据到(例如)客户端JavaScript的最新方式。

您可能还想看看Apache POI,您可以使用它在服务器端创建Excel文件。 ActiveX只适用于IE,尽管有些插件可以让它在其他浏览器上运行。

编辑

我通常用“的客户端和服务器端JavaScript组合”做的是在客户端使用dojo.xhrGet(或xhrPost)。在服务器上,我有一个XPage(早期代理),它收集数据并以JSON格式返回。

  • PANU
+0

CORBA看起来很有前途,但我对Java一无所知。看起来我需要创建一个包含'import lotus.domino。*; public class dummy extends AppletBase(){}'?然后,我是否可以将其添加为Xpage的资源? (似乎没有Java的选项).. @Panu – CodenameSnugs

+0

是的,小程序需要返回Notes会话。小程序代码位于我链接的页面上的“示例”链接下。将设计器的小程序添加到:Recources/Applets。使用HTML加载页面上的applet:https://eyeasme.com/Shayne/HTML5_APPLETS/。在这个解决方案中,CORBA/IIOP需要在服务器上启用,它可能不是默认的。 –

+0

你可以做到这一点,并用javac.exe进行编译。在Designer Eclipse中创建一个Java项目并从那里开始可能会更容易。 –

1

编辑以注重& ReadViewEntries并添加细节

纯粹做它在浏览器端很可能最好通过获取DXL或使用& JSON完成ReadViewEntries URL命令,然后编写Javascript来处理数据,并在本地执行等同于CreateObject的调用。你可以找到& ReadViewEntry here的文档。(@Panu已经提到了DDS,这也是一个好主意。)

或者参见here了解一些示例代码,该代码展示了用LotusScript编写的Domino Web代理可以用来创建将发送到浏览器带有内容类型的标题,导致它在Excel中打开。我还没有验证这个特定的代码,但我已经看到了对该技术的其他参考。这个特定的代码可能不会给你尽可能多的控制权 - 例如颜色和链接,但我认为它也可以用xlsx格式实际生成XML格式的数据,并以类似方式发送。

1

我认为你应该去REST。在Domino中,它可以以JSON格式提供来自视图/文档的数据,您可以在本地使用客户端JavaScript。 欲了解更多信息,请尝试在谷歌搜索和ddwiki,例如this tutorial video

相关问题