微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从Business Central报表扩展中读取Blob到文本

如何解决从Business Central报表扩展中读取Blob到文本

我正在为Business Central创建一个报告,一个采购订单报告。扩展了“采购订单”页面,以添加工作描述,这是一个Blob数据类型。我已经将blob字段添加到了我的报表扩展程序中,现在我像将其在页面中看到的那样,将Blob转换为Text。示例:“这是测试工作说明”。我相信我必须先使用InStream,然后再阅读。有人可以提供示例代码来帮助我将其作为文本添加到我的报告中吗?

解决方法

您可以在Microsoft文档上找到很好的示例: Write,WriteText,Read,and ReadText Method Behavior for Line Endings and Zero Terminators

但是我认为这是您所需要的:

procedure GetWorkDescription (PurchHeader: Record "Purchase Header")WorkDescription: Text
var
    MyInStream: InStream;

begin
    Clear(WorkDescription);
    PurchHeader.Calcfields("Work Description");
    If PurchHeader."Work Description".HasValue() then begin
        PurchHeader."Work Description".CreateInStream(MyInStream);
        MyInStream.Read(WorkDescription);
    end;
end;
,

这个例子非常好用!我只是想添加到它。在我的Purchase标头中,添加了以下代码:

column(WorkDescription; GetWorkDescription())
            {
            }

然后在末尾添加的OnPreReport()中:

        WorkDescription: Text;

然后在最后添加了过程:

    procedure GetWorkDescription(): Text
    var
        TypeHelper: Codeunit "Type Helper";
        InStream: InStream;
    begin
        "Purchase Header".CalcFields("Purchase Header"."Work Description");
        "Purchase Header".Work Description".CreateInStream(InStream,TEXTENCODING::UTF8);
        exit(TypeHelper.ReadAsTextWithSeparator(InStream,TypeHelper.LFSeparator));
    end;

借助您的示例代码,我能够生成实际的文本!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。