【问题标题】:Is it possible to get data from the Rich Text control and show it in an Acumatica report?是否可以从富文本控件中获取数据并将其显示在 Acumatica 报告中?
【发布时间】:2020-05-07 16:29:16
【问题描述】:

我有一个自定义屏幕,其中包含一个“详细信息”富文本区域,该区域允许将文本显示为 HTML、纯文本等。

我还请求以某种方式在 Acumatica 报告中显示该数据。不幸的是,即使选择了“纯文本”选项,它仍然在数据库字段中具有格式标记。 Acumatica 报告编写器中是否有一种类型的字段可以解释来自该类型富文本字段的数据?

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    不,在将富文本框控件添加到报表设计器之前,这实际上是不可能的。

    Acumatica 网页中的富文本控件主要是 HTML。

    如果您从VISUAL 更改为HTML,您可以获得HTML 代码。

    如果你非常有动力,你可以尝试inject破解报告中的 HTML。这是一个非常糟糕的主意,但我设法欺骗了设计师,让他们接受 HTML 内容作为导航 URL 链接内容。

    当报表以 HTML 模式呈现时,链接控件会继承链接样式之上的一些 HTML 样式。它既愚蠢又无用,但演示了在 Acumatica 报表设计器中实现富文本编辑器控件所需的底层机制。


    另一种方法是创建一个提取纯文本的自定义字段:

    #region DescriptionAsPlainText
    public abstract class descriptionAsPlainText : PX.Data.BQL.BqlString.Field<descriptionAsPlainText> { }
    
    private string _plainText;
    [PXString(IsUnicode = true)]
    [PXUIField(Visible = false)]
    public virtual String DescriptionAsPlainText
    {
        get
        {
            return _plainText ?? (_plainText = PX.Data.Search.SearchService.Html2PlainText(this.Description));
        }
    }
    #endregion
    

    【讨论】:

    • 您可以查看的是获取 Acumatica 编辑器控件内容的纯文本值。这将剥离样式并仅保留可在报表文本框中显示的文本内容。
    • 如果你想扩展注入 HTML,你需要插入一个链接转义序列或一些具有重要属性的样式来删除链接样式。无论如何,这不是一个有效的选择,但在技术上可能是最接近的。
    • 第三种选择可能需要大量开发,但在技术上是可行的,而不是破解。您可以使用库将富文本内容呈现为图像并在报表中显示该图像。 stackoverflow.com/a/17835914/7376238
    • 非常感谢您的意见,Hugues... ;D
    猜你喜欢
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多