【问题标题】:Inserting a hotspot inside a rich text in using lotusscript使用 lotusscript 在富文本中插入热点
【发布时间】:2014-04-02 06:43:25
【问题描述】:

我需要做的是创建一个热点链接并将其附加到富文本中。我已经通过以下链接找到了实现此功能的方法:

http://ozinisle.blogspot.com/2010/11/lotusscript-code-to-append-hotspot-to.html

现在我希望创建的热点位于现有富文本字段的内部或中间。如果您检查了它为热点创建带有正文富文本的文档的链接,我无法识别将其插入尝试使用 nav 和 range 但它只是获取纯文本,我也想获取热点链接。谢谢。

这是一个示例代码(我们在其中附加了富文本,但我想将其插入其中 - 我找到了一种方法,但使用 DXL 也会令人困惑)是否有一种简单的方法可以解决这个问题:

If rtnav.FindFirstString("<Reply: From>", RT_FIND_CASEINSENSITIVE) Then

    ' Get the <Reply:From> string
    Call rtrange.SetBegin(rtnav)
    Call rtrange.SetEnd(rtnav)

    ' Remove the <Reply:From> string
    Call rtrange.Remove()

    ' Go to the next text range after the <Reply:From> string
    Call rtrange.SetBegin(rtnav)
    Call rtrange.SetEnd(rtnav)

    ' Insert the hotspot in the right place
    Call rtitem.BeginInsert(rtrange, False)

    ' ** I WANT TO INSERT HERE THE HOTSPOT, BUT I CAN'T FIGURE IT OUT **

    Call rtitem.EndInsert

    Call rtitem.AppendRTItem(dxlbody)

End If

【问题讨论】:

    标签: lotus-notes lotusscript


    【解决方案1】:

    大约五年前,我研究了一个非常相似的问题,但我无法找到解决方案。我决定将热点放在开头而不是中间——即,通过从现有配置文档中复制包含“原型”热点的 NotesRichTextItem,并将其插入到新的 NotesRichText 项目中,然后复制包含丰富的 NotesRichTextItem我将其放在前面的文本。

    注意:这无疑可以使用 Midas Rich Text API 完成,但这是 Genii Software 的商业产品,我无法使用它。

    【讨论】:

    • 嗨,理查德,我明白你的意思,所以基本上没有办法应用它?实际上,我通过获取富文本中的所有元素并找到应该输入的位置来做了一些事情。我能够做到,但问题是(文本样式)消失了,甚至没有适当的空间,所以它看起来不正确。我希望有一些替代方案,我真的需要应用它。尽管我尝试了我知道的任何替代方案,但我仍然无法应用它。我觉得我很想解决这个问题。
    • 我没有使用 DXL 进行调查。我认为要应用我使用的技术,您仍然必须找到一种方法将现有的 NotesRichTextItem “分解”为两个 NotesRichTextItems——中断发生在正确的位置。就我而言,我正在处理可能包含任何内容的任意富文本字段,因此实际上甚至找不到正确的位置,因为我不知道那里会出现什么。
    • 是的,我同意,一旦富文本包含各种元素,这将是一个问题。如果可以应用,我将再次尝试使用 DXL,如果您找到解决方案,请分享它,理查德。非常感谢您的帮助。
    【解决方案2】:

    这很老了,可能在以后的版本中不起作用,但我记得很多年前使用一种未记录的方法来创建文档链接。

    定义于

    NotesRichTextItem

    语法

    Call notesRichTextItem.AddLinkByIds( dbReplicaID$, serverHint$, viewUNID$, documentUNID$, comment$ [, HotSpotText$ ])
    

    参数

    serverHint$

    字符串。规范或通用格式的服务器名称。

    查看UNID$

    字符串。您要用于打开文档的 notesview 的 UniversalID。如果未指定 documentUNID,则使用空字符串 ("") 创建数据库链接,或者使用默认视图打开 docLinks。

    documentUNID$

    字符串。您要链接到的文档的 UniversalID。使用空字符串 ("") 创建视图链接或数据库链接。

    评论$

    字符串。当用户在链接上按住鼠标指针时出现的文本。

    HotSpotText$

    可选。细绳。如果提供,HotSpotText 将在 RichTextItem 中显示为带框的文本,可以用鼠标单击该文本以跟随链接。在这种情况下,文本中不会出现其他标记。

    取自: http://searchdomino.techtarget.com/tip/Creating-DocLinks-using-undocumented-lotusscript-method

    【讨论】:

    • 您好,Ken,感谢您分享此信息。该功能可能是一个旧功能,因为我检查了帮助并且不再包含它,但如果将来它会帮助我(我是新的 LN 开发人员)。问题是我不想创建文档链接,因为我可以在任何地方插入它。我需要在富文本中间附加一个包含公式的热点按钮。如果您知道一种方法,请分享。非常感谢肯!
    • 啊,我明白了。首先想到 - 你不会在帮助中找到这个。这是一个未记录的功能:) 我会用另一个建议更新我的答案。
    • 从头开始 - 我的另一个想法与理查德的相似。过去,我在隐藏的个人资料文档上创建了一个富文本项目,然后我会访问该项目并将其附加到我当前需要的文档中。
    • 是的,我得到了那部分,但问题是我希望将它添加到中间的富文本中。到目前为止,对于两个富文本项目,只能追加。我正在用 DXL 操作它,虽然它真的很混乱。
    • 肯!你这个 8 岁的答案刚刚拯救了我的一天!它仍然存在于 12.0.1 中,因此即使是未记录的功能也得到了维护……太棒了!
    【解决方案3】:

    您好,我基本上可以通过应用或使用 DXL 来实现我的目标。我操纵了两个富文本 DXL,因此我能够在富文本中插入热点链接。虽然它需要很多代码,而且有点混乱,但确实可以通过它来完成。

    特别感谢大家对理查德和肯的帮助。

    我使用了这个来源:

    http://searchdomino.techtarget.com/tip/How-to-insert-RichText-into-RichText-using-LotusScript

    【讨论】:

      【解决方案4】:
      'This works in lotusscript:
      rs4.PassThruHTML= True
      Call rtitem.AppendStyle(rs4)
      rtitem.appendText(|<a href="http://www.teamwork.com.tr">Open</a>|)
      rs4.PassThruHTML= False
      Call rtitem.AppendStyle(rs4)
      

      【讨论】:

      • 欢迎来到 Stack Overflow!感谢您提供此代码 sn-p,它可能会提供一些有限的短期帮助。一个正确的解释would greatly improve 它的长期价值通过展示为什么这是一个很好的解决问题的方法,并将使它对未来有其他类似问题的读者更有用。请edit您的回答添加一些解释,包括您所做的假设。
      猜你喜欢
      • 2010-12-21
      • 2022-09-02
      • 2013-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多