在 RDLC 报告动态 NAV 中显示 BLOB 字段(包含文本)

问题描述 投票:0回答:3

我想在 rdlc 报告中显示表记录链接中的注释字段。我如何将它包含在数据集中以循环到 BLOB 字段以提取文本值?使用 NAV90

谢谢

blob rdlc dynamics-nav
3个回答
3
投票

注释存储为二进制文本。 您需要使用 .NET 将值读出到字符串中。

从 .NET 方面来看,您需要:

  • BinaryReader来自'mscorlib,版本=2.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089'.System.IO.BinaryReader
  • 编码来自'mscorlib,版本=2.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089'.System.Text.Encoding

至于将实际的 BLOB 读入字符串:

RecordLink.Note.CREATEINSTREAM(InStream);
BinaryReader := BinaryReader.BinaryReader(InStream,Encoding.UTF8,FALSE);
MESSAGE('Your note text is %1',BinaryReader.ReadString);

2
投票

无需使用 DotNet 变量即可检索文本。

CommentStream : InStream;
CommentText : Text;

好:

tbl.CALCFIELDS(Comments);
tbl.Comments.CREATEINSTREAM(CommentStream);
CommentStream.READTEXT(CommentText);

在我的例子中,包含这样的文本编码参数是行不通的。有一段时间,但停止工作。我不知道不一致的原因,但尽管如此,删除文本编码参数修复了它。

坏:

tbl.CALCFIELDS(Comments);
tbl.Comments.CREATEINSTREAM(CommentStream, TEXTENCODING::UTF8);
CommentStream.READTEXT(CommentText);

0
投票
BigTextVar.ADDTEXT('Text which has length greater than 1024...');

StringHelper: System.String.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' (DotNet Var)

DataItem.Column.SourceExpression = StringHelper.Copy(FORMAT(BigTextVar))

这是在不使用更多Column的情况下将BigText传递到Report RDLC布局中的技巧

我在 Dynamics NAV 2017 中尝试过,效果很好!

© www.soinside.com 2019 - 2024. All rights reserved.