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

Lotus notes 如何在IBM Notes对话框列表中显示LDAP查询的结果(在本例中是OU列表),该查询使用一些Java代码完成?,lotus-notes,javaagents,Lotus Notes,Javaagents,我想使用Java代理将字符串列表添加到对话框列表中。项的值更改,但不在窗体上显示值 Session Session=getSession(); AgentContext AgentContext=session.getAgentContext(); 数据库db=session.getCurrentDatabase(); Form Form=db.getForm(“UOs_AD”); Document Document=agentContext.getDocumentContext(); Item

我想使用Java代理将字符串列表添加到
对话框列表中。项的值更改,但不在窗体上显示值

Session Session=getSession();
AgentContext AgentContext=session.getAgentContext();
数据库db=session.getCurrentDatabase();
Form Form=db.getForm(“UOs_AD”);
Document Document=agentContext.getDocumentContext();
Item Item=document.getFirstItem(“UO_AD”);
向量v=新向量();
v、 附录(“自行车”);
v、 附录(“列车”);
v、 附录(“英尺”);
Item textListItem=document.replaceItemValue(“UO_AD”,null);
textListItem.setValues(v);
textListItem.setSummary(true);
document.save(true,true);
replaceItemValue()
仅替换当前文档中某个字段的值(通过
agentContext.getDocumentContext()
获得),而不是替换绑定到该字段的组合框等为用户提供的选项

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

replaceItemValue()
仅替换当前文档中某个字段的值(通过
agentContext.getDocumentContext()
获得),而不是替换绑定到该字段的组合框等用户提供的选项


如果Combobox提供的选项是静态的,则需要使用Domino Designer打开文档所基于的表单以及该字段中的表单。如果您想以编程方式完成这项工作,则必须与一起工作。

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


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

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


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

好的,根据您最近的反馈,您的问题应该是:

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

您使用“经典”Domino Designer的运气不佳。经典notes表单仅为您提供(通过Designer,也通过DXL)以下功能:

  • 输入选项(每行一个):在编辑框中键入选项列表
  • 将公式用于选项:在“公式”窗口中键入a以生成选项列表
  • 使用地址对话框进行选择:此选项显示名称对话框,以便用户可以从个人通讯簿或Domino目录中选择名称
  • 使用访问控制列表进行选择:此选项在数据库的访问控制列表中显示人员、服务器、组和角色的列表
  • 使用视图对话框进行选择:此选项将打开一个对话框,其中包含视图中某列的条目
因此,无法将某些Java代码的输出添加到对话框列表中

您可以做的是:

  • 使用XPages。使用XPages,您可以使用Java代码填充任何类型的列表、对话框等
  • 在定时Notes代理中使用Java代码,通过创建Notes文档(例如表示LDAP条目的“OU”)将LDAP条目“同步”到Notes数据库中。使用视图,然后可以使用对话框列表的“使用视图对话框进行选择”选项将其显示给用户
  • 通过创建Notes文档(例如表示LDAP条目的“OU”),使用(Domino附带的)将LDAP条目同步到Notes数据库中。使用视图,然后可以使用对话框列表的“使用视图对话框进行选择”选项将其显示给用户
  • 在scheduled Notes代理中使用Java代码更新配置文件文档中包含“OU”列表的字段。然后使用@公式在对话框列表中显示值
  • 解决方案(2)、(3)和(4)的缺点是不显示LDAP目录的“实时”信息


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

    好的,根据您最近的反馈,您的问题应该是:

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

    您使用“经典”Domino Designer的运气不佳。经典notes表单仅为您提供(通过Designer,也通过DXL)以下功能:

    • 输入选项(每行一个):在编辑框中键入选项列表
    • 将公式用于选项:在“公式”窗口中键入a以生成选项列表
    • 使用地址对话框进行选择:此选项显示名称对话框,以便用户可以从个人通讯簿或Domino目录中选择名称
    • 使用访问控制列表进行选择:此选项将在a中显示人员、服务器、组和角色的列表