0

我想Dialog list使用 Java 代理将字符串列表添加到 a 中。项目的值发生了变化,但它没有在表单上显示值。

Session session = getSession(); 
AgentContext agentContext = session.getAgentContext();
Database db=session.getCurrentDatabase();
Form form = db.getForm("UOs_AD");
Document document = agentContext.getDocumentContext();
Item item = document.getFirstItem("UO_AD");
Vector v = new Vector();
v.addElement("Bicycle");
v.addElement("Train");
v.addElement("Foot");
Item textListItem = document.replaceItemValue("UO_AD", null);
textListItem.setValues(v);
textListItem.setSummary(true);
document.save(true, true);
4

3 回答 3

2

我不确定我是否理解你的问题。您是否尝试更新表单,以便每当有人创建或编辑文档时,“自行车”、“火车”和“脚”将成为对话框列表中的选项?或者您是否尝试更新特定文档以便为字段值选择这三个值?您的代码似乎正在更新文档。

如果您只是想让这三个值显示为已选择,请确保您的字段在 Domino Designer 中选择了“允许不在列表中的值”属性。此外,请确保选中“允许多个值”属性。

于 2013-08-30T14:33:31.813 回答
1

replaceItemValue()仅替换当前文档中的字段值(您通过 获得agentContext.getDocumentContext()),而不是替换选项,例如,与该字段绑定的 Combobox 为用户提供的选项。

如果 Combobox 提供的选项是静态的,您需要使用 Domino Designer 打开文档所基于的表单并更改为该字段中的选项提供的值。如果您想以编程方式执行此操作,则必须使用DXL

于 2013-08-30T14:26:58.100 回答
0

好的,所以根据您的最新反馈,您的问题应该是:

如何在 IBM Notes 对话框列表中显示使用一些 Java 代码完成的 LDAP 查询结果(在我的例子中是 OU 列表)?

您对“经典”Domino Designer 不走运。经典的笔记表单只为您提供(通过 Designer,也可以通过 DXL)对话框列表的以下选项

  • 输入选项(每行一个):在编辑框中键入选项列表。
  • 使用公式进行选择:在公式窗口中键入Lotus Notes 公式以生成选择列表。
  • 使用地址对话框进行选择:此选项显示名称对话框,以便用户可以从个人通讯簿或 Domino 目录中选择名称。
  • 使用访问控制列表进行选择:此选项在数据库的访问控制列表中显示人员、服务器、组和角色的列表
  • 使用视图对话框进行选择:此选项会弹出一个对话框,其中包含视图中列中的条目

所以没有办法将一些 Java 代码的输出添加到对话框列表中。

你可以做的是:

  1. 使用 XPage。使用 XPages,您可以使用 Java 代码来填充任何类型的列表、对话框......
  2. 在计划的 Notes 代理中使用您的 Java 代码通过创建便笺文档将 LDAP 条目“同步”到 Notes 数据库中,例如。“OU”代表 LDAP 条目。使用视图,您可以使用对话框列表的“使用视图对话框进行选择”选项将它们显示给用户。
  3. 使用TDI( Domino 附带的权利)通过创建注释文档将 LDAP 条目同步到 Notes 数据库,例如。“OU”代表 LDAP 条目。使用视图,您可以使用对话框列表的“使用视图对话框进行选择”选项将它们显示给用户。
  4. 在计划的 Notes 代理中使用您的 Java 代码来使用“OU”列表更新配置文件文档中的字段。然后使用@-formula 显示对话框列表中的值。

解决方案 (2)、(3) 和 (4) 的缺点是不显示 LDAP 目录的“实时”信息。

我希望我正确理解了您的问题。如果是这样,请相应地编辑您的问题的内容和标题。

于 2013-09-02T13:55:23.507 回答