【问题标题】:Xpage Name Text Box save values as CANONICALIZEXpage 名称文本框将值保存为 CANONICALIZE
【发布时间】:2014-10-17 05:43:03
【问题描述】:

名称文本框绑定到相关备注表单中的名称字段。 保存XPage时如何使文本框中的值自动转换为CANONICALIZE?

我尝试了以下方法,但都失败了。 A) 使用 currentDocument.save() 保存表单 B)使用简单的操作“保存文档” C) 在输入验证、输入翻译甚至计算字段下的相关备注表单字段中添加@Name([CANONICALIZE], @ThisValue)。

【问题讨论】:

    标签: xpages


    【解决方案1】:

    OpenNTF Domino API 有一个 openntfNABNamePicker 数据提供程序,您可以在提供此功能的名称选择器控件上使用它。它有一个 returnNameFormat 属性,允许您定义名称是否应存储为 Abbreviated、Common 或 Canonical。

    也可以使用转换器,以便名称在浏览器和服务器之间转换为规范格式。

    【讨论】:

    【解决方案2】:

    试试

    document1.replaceItemValue("yourField", @Name("[CANONICALIZE]",document1.yourField));
    

    在您的 xpage 的 querySaveDocument 事件中,

    document1:

    <xp:this.data>
            <xp:dominoDocument var="document1" ... />
    </xp:this.data>
    

    【讨论】:

      【解决方案3】:

      您还可以在保存脚本中使用以下代码:

       var name:NotesName = session.createName(getComponent("inputText1").value)
      document1.replaceItemValue("NameNA", name.getCanonical())
      document1.save()
      

      NameNA 是“名称”类型的备注字段,“document1”是您的数据源。

      【讨论】:

        【解决方案4】:

        规范化需要一些东西来处理。 “John Doe”不会神奇地变成“CN=John Doe/OU=ThePitt/O=GI”

        如果没有目录来查找名称,只有“John Doe/ThePitt/GI”之类的名称才能正确规范化。

        您可以使用@NameInfo 检查是否可以从目录中取回全名。

        【讨论】:

          【解决方案5】:

          转换很简单,使用 OpenNTF Domino API 无需编码。

          我发现自己在我的项目中寻找解决上述问题的方法,虽然 Paul 提供了答案,但我花了一段时间才真正理解如何解决这个问题。

          我在下面添加了一张图片,只是为了帮助任何可能发现自己处于类似情况的人。它显示了更改 valueNameFormat 属性的位置

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-08-09
            • 1970-01-01
            • 2012-09-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多