需求:将FNUMBER编号多行数据合并放在一个二维码字符
使用Join与LookupSet函数将多行数据,合为一行
LookupSet参考下面官方说明
分页报表中的 LookupSet 函数 - Microsoft Report Builder & Power BI Report Builder | Microsoft Learn
原数据集DataSet1
合并后字符
005 007 008 009 106 FA01
新建rdl或rdlc文件
自定义公式
=Join (LookUpSet (true,true,Fields!FNUMBER.Value, "DataSet1")," ")
录入自定义公式
预览效果
如果要换行效果,将公式改为
=Join (LookUpSet (true,true,Fields!FNUMBER.Value, "DataSet1"),Chr(10))
生成二维码
添加一个二维码数据集
保存文件名为qrCodePrint,关闭报表文件,用打开记事本qrCodePrint.rdl编辑(vs保存的扩展名为rdlc)
将字段类型改为<rd:TypeName>System.Byte[]</rd:TypeName>
保存,再用报表设计器打开,插入图片,生成二维码图片
引用SkiaSharp.QrCode包
添加生成二维码图片代码
var path="qrCodePrint.rdl";
var qrCode = new QrCode(qrtext, new Vector2Slim(256, 256), SKEncodedImageFormat.Png);
MemoryStream memoryStream = new MemoryStream();
qrCode.GenerateImage(memoryStream);
qrcode[0].QRCODE = memoryStream.ToArray();
report.DataSources.Add(new ReportDataSource("qrcode", qrcode));
byte[] pdf = RenderRdl(path,report);
return File(pdf, "application/pdf");
效果