【问题标题】:Lotus Notes: How to show up Rich Text Field in a view? For existing documentsLotus Notes:如何在视图中显示富文本字段?对于现有文件
【发布时间】:2014-10-16 14:33:09
【问题描述】:

我在表单定义中有一些富文本字段。它实际上只是文本。我想在视图中显示它,但在添加新列时找不到该字段。

我搜索了很多,发现富文本不能直接显示在视图中。

然后我发现这个想法是将隐藏字段作为计算字段,公式定义为 @Abstract([TextOnly];60400;"","FieldName")

但这仅在创建新文档或对文档进行更改时才有效。 我有将近 25,000 个文档,手动执行此操作是不切实际的。

有没有办法重新计算隐藏的计算域?或者任何其他方式在视图中显示富文本字段?

【问题讨论】:

    标签: lotus-notes lotusscript


    【解决方案1】:

    您已经有一个隐藏字段,它仅获取 RichText 字段的文本部分。这适用于新文档或经过编辑的文档。

    编写一个公式代理,将隐藏字段设置为所有其他文档。它会有一个公式

    SELECT @All; 
    FIELD FieldNameTextOnly := @Abstract([TextOnly]; 2000; ""; "FieldName");
    ""
    

    和目标选项“所有文档在视图中”。转到包含所有 25k 文档的视图并启动代理。

    如果您还没有为隐藏字段“FieldNameTextOnly”添加一列到您的视图中。

    请注意要从 RichText 字段中获取的字符数,因为这些字符将是计算视图的一部分,因此视图可能会变得非常大...

    【讨论】:

    • 在 Designer 中使用菜单“Create\Design\Agent”创建代理并选择类型“Formula”。
    • 我对 Lotus Notes 还是很陌生。我创建了一个代理。你知道怎么运行吗?
    • computewithform 解决方案的缺点是它非常慢并且在某些情况下会破坏文档(例如,如果您使用计算的 docID 字段作为链接)
    • ComputeWithForm 的另一个缺点是,如果在对表单进行更改之前保存了某些文档,则验证公式可能会失败。
    • 这应该是答案
    【解决方案2】:

    您可以使用以下代码编写一个代理程序来运行所有视图中的文档:

    暗淡会话作为新的笔记会话 暗淡的数据库作为笔记数据库 作为notesview的昏暗视图 暗淡的文档作为notesdocument 设置 db = session.currentdatabase 设置视图 = db.getview("") 设置文档 = view.getfirstdocument() 而不是 doc 什么都不是 调用 doc.computewithform(true, false) 调用 doc.save(true,true) 设置 doc = view.getnextdocument(doc) 文德

    但运行此代理后,您将更改文档的最后修改日期。如果保存日期很重要,您可以将其写入其他字段并显示。

    【讨论】:

    • 我必须创建代理吗?我可以用按钮创建一个表单吗?然后在按钮单击事件中添加代码。然后在Notes中预览并单击按钮?我对 Lotus Notes 真的很陌生。我不确定它是否必须是代理
    • 两种方式都可以。但是如果视图中的文档很多,你应该使用代理并触发它在服务器上运行,这样会快很多
    • 其实我是按照我说的那样做的。我正在测试 10 个文档。但是使用上面的代码。它不工作。
    • 我尝试了代理方式,它有效。我仍然对这一切感到困惑。我已经通过单击按钮进行了测试,但没有运气。我认为唯一的区别可能是,而不是迭代视图。我使用 db.allDocuments 来获取所有文档。但我不认为这可能是它一开始就不起作用的原因。
    • 虽然此方法通常有效,但如果任何文档的字段值验证失败,则可能会出现问题。
    猜你喜欢
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多