在 Business Central Report Extension 中读取 Blob 到文本
Read Blob to Text in Business Central Report Extension
我正在为 Business Central 创建一个采购订单报告。采购订单页面已扩展以添加工作描述,这是一种 blob 数据类型。我已将 blob 字段添加到我的报告扩展中,现在我将 Blob 转换为文本,就像在我的页面中看到的那样。示例:“这是测试工作描述”。我相信我必须先使用 InStream,然后再使用 Read。有人可以提供示例代码来帮助我将此作为文本添加到我的报告中吗?
您可以在 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;
这个例子工作得很好!我只是想补充一下。在我的购买 header 中,我添加了以下代码:
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;
在您的示例代码的帮助下,我能够生成实际的文本!
我正在为 Business Central 创建一个采购订单报告。采购订单页面已扩展以添加工作描述,这是一种 blob 数据类型。我已将 blob 字段添加到我的报告扩展中,现在我将 Blob 转换为文本,就像在我的页面中看到的那样。示例:“这是测试工作描述”。我相信我必须先使用 InStream,然后再使用 Read。有人可以提供示例代码来帮助我将此作为文本添加到我的报告中吗?
您可以在 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;
这个例子工作得很好!我只是想补充一下。在我的购买 header 中,我添加了以下代码:
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;
在您的示例代码的帮助下,我能够生成实际的文本!