在 RDLC 报表动态导航中显示 BLOB 字段(包含文本)



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

谢谢

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

从 .NET 方面来看,你将需要:

  • 来自 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'的BinaryReader。System.IO.BinaryReader
  • 编码自"mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'。系统.文本.编码

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

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

可以在不使用 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);

B

igTextVar.ADDTEXT('Text which has lenghth grater than 1024...');
StringHelper: System.String.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' (DotNet Var)
DataItem.Column.SourceExpression = StringHelper.Copy(FORMAT(BigTextVar))

这是将 BigText 传递到报表 RDLC 布局而不使用更多列的技巧

我在动态导航 2017 中尝试过,效果很好!

最新更新