Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 如何在RDLC报告中显示二维码_Asp.net Mvc 4_Rdlc_Qr Code - Fatal编程技术网

Asp.net mvc 4 如何在RDLC报告中显示二维码

Asp.net mvc 4 如何在RDLC报告中显示二维码,asp.net-mvc-4,rdlc,qr-code,Asp.net Mvc 4,Rdlc,Qr Code,我使用QrEncoder(NuGet Package QrCode.Net)在MVC4中生成QR码。现在我的问题是如何在RDLC报告中动态显示此二维码。我搜索了很多网站,但没有找到任何可行的解决方案。一种方法是: 在.net中创建一个处理程序,根据querystring参数动态生成二维码,并将其作为png返回 将rdlc设置为具有外部引用的映像 生成报告时,需要将其设置为允许外部引用 将url传递给要发送到报表的数据集中的处理程序/图像,并使其成为报表中图像的路径 当生成报表时,它将生成并显

我使用QrEncoder(NuGet Package QrCode.Net)在MVC4中生成QR码。现在我的问题是如何在RDLC报告中动态显示此二维码。我搜索了很多网站,但没有找到任何可行的解决方案。

一种方法是:

  • 在.net中创建一个处理程序,根据querystring参数动态生成二维码,并将其作为png返回
  • 将rdlc设置为具有外部引用的映像
  • 生成报告时,需要将其设置为允许外部引用
  • 将url传递给要发送到报表的数据集中的处理程序/图像,并使其成为报表中图像的路径

当生成报表时,它将生成并显示QR代码。

虽然可以回答这个问题,但请考虑解释它是如何工作的。-首先安装Qrcode Nutupe包,然后在该函数中传递QR码的值,然后在RDLC中选择添加图像,然后从DataSet中选择值。
     var data = db.spMemberDetailByMembership(CompanyId, BranchId, Convert.ToInt32(MemRegId)).Select(x => new SPMemberRegisterModel
            {

                ID = x.ID,             
                BookingPrice = x.BookingPrice,
                MailingAddress = MailingAddress(x.ID),
                BarCode = GenerateQrCode(x.UUID),

            }).ToList();

  reportdatasource.Value = data;
   localReport.DataSources.Add(reportdatasource);

    private byte[] GenerateQrCode(string qrmsg)
                {
                    QRCoder.QRCodeGenerator qRCodeGenerator = new QRCoder.QRCodeGenerator();
                    QRCoder.QRCodeData qRCodeData = qRCodeGenerator.CreateQrCode(qrmsg, QRCoder.QRCodeGenerator.ECCLevel.Q);
                    QRCoder.QRCode qRCode = new QRCoder.QRCode(qRCodeData);
                    Bitmap bmp = qRCode.GetGraphic(5);

                    System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
                    imgBarCode.Height = 150;
                    imgBarCode.Width = 150;
                    using (Bitmap bitMap = qRCode.GetGraphic(5))
                    {
                        using (MemoryStream ms = new MemoryStream())
                        {
                            bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                            byte[] byteImage = ms.ToArray();
                            return byteImage;
                        }
                    }
                }