欢迎来到天天文库
浏览记录
ID:8837792
大小:1022.15 KB
页数:3页
时间:2018-04-09
《微软rdlc报表动态图片(二维码)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、微软RDLC报表,动态加载图片文件(二维码)我是一个程序员,有时候莫名其妙的遇到一些不好解决的问题,于是我就记录了下来,希望对大家有用!开发环境:VS2010(中文),IIS7.0,IE8及以上1、首先讲一下,我的动态的图片是一个二维码。(1)引用一下ThoughtWorks.QRCode.dll这个DLL,如果没有的话去网上下载一个。或者我这个word文档里面是有一个的(2)然后呢,当然要有一个存放二维码的文件夹,用来存放生成之后的二维码,这个名字随便起(3)最后,当然是报表后台的代码了,不过RDLC报表是动态生成的,要写在aspx.cs里面,
2、写的这么清楚了,大家不会不明白吧:privatevoidcreate_two(stringnr)//nr这个参数当然是需要生成二维码的文字或字段{Bitmapbt;stringenCodeString=nr;QRCodeEncoderqrCodeEncoder=newQRCodeEncoder();bt=qrCodeEncoder.Encode(enCodeString,Encoding.UTF8);stringfilename=nr;bt.Save(Server.MapPath("~/QRImage/")+filename+".jpg");}(
3、4)当然如果报错了,报红线了,那当然要去解析一下,system.drawing神马的,去引用一下吧,当然你加进来的ThoughtWorks也要去引用一下。(例如usinghoughtWorks.QRCode.Codec;)2、当然是要把生成的这个二维码放到恶心的RDLC报表上,这里讲解的是VS2010,如果环境不对,请绕路。(1)我觉得注解的够清楚了。(2)(3)后台代码绑定protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){stringsid=Request.Query
4、String["id"];ReportViewer1.ProcessingMode=ProcessingMode.Local;ReportViewer1.LocalReport.ReportPath=erver.MapPath("~/Report/Report/SDBXZ.rdlc");ReportViewer1.LocalReport.EnableExternalImages=true;StringBuildersb=newStringBuilder();sb.Append("select*fromSDBXZ_ViewwhereJGJSID='
5、"+sid+"'");stringcon=System.Configuration.ConfigurationManager.ConnectionStrings["CostManagementSystem"].ToString();DataSetds=newDataSet();SqlConnectionsqlcon=newSqlConnection(con);SqlCommandsqlcom=newSqlCommand(sb.ToString(),sqlcon);SqlDataAdaptersqlad=newSqlDataAdapter();sq
6、lad.SelectCommand=sqlcom;sqlad.Fill(ds,"sql");///取得一个字段,我取得是GUIDstringguid=ds.Tables["sql"].Rows[0]["JGJSID"].ToString().Replace("-","").Trim();///生成二维码,并保存到指定目录,在最上面这个方法已经写在那里了create_two(guid);///拼接一个URL(存放图片的URL)stringurl="file:///"+Server.MapPath("~/QRImage/")+guid+".jpg";
7、LocalReportreport=ReportViewer1.LocalReport;///把URL付给参数EWM(图片绑定的参数)report.SetParameters(newReportParameter("EWM",url));ReportViewer1.LocalReport.DataSources.Add(newReportDataSource("DataSet1",ds.Tables["sql"]));ReportViewer1.DataBind();this.ReportViewer1.ServerReport.Refresh(
8、);}}3、测试下吧,大功告成!
此文档下载收益归作者所有