微软RDLC报表动态图片(二维码)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微软RDLC报表,动态加载图片文件(二维码)

我是一个程序员,有时候莫名其妙的遇到一些不好解决的问题,于是我就记录了下来,希望对大家有用!

开发环境:VS2010(中文),IIS7.0,IE8及以上

1、首先讲一下,我的动态的图片是一个二维码。

(1)引用一下ThoughtWorks.QRCode.dll这个DLL,如果没有的话去网上下载一个。或

ThoughtWorks.QRCode.rar

者我这个word文档里面是有一个的

(2)然后呢,当然要有一个存放二维码的文件夹,用来存放生成之后的二维码,这个名字随便起

(3)最后,当然是报表后台的代码了,不过RDLC报表是动态生成的,要写在aspx.cs 里面,写的这么清楚了,大家不会不明白吧:

private void create_two(string nr)//nr 这个参数当然是需要生成二维码的文字或字段

{

Bitmap bt;

string enCodeString = nr;

QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);

string filename = nr;

bt.Save(Server.MapPath("~/QRImage/") + filename + ".jpg");

}

(4)当然如果报错了,报红线了,那当然要去解析一下,system.drawing神马的,去引用一下吧,当然你加进来的ThoughtWorks也要去引用一下。

(例如using houghtWorks.QRCode.Codec;)

2、当然是要把生成的这个二维码放到恶心的RDLC报表上,这里讲解的是VS2010,如果环境

不对,请绕路。

(1)

我觉得注解的够清楚了。

(2)

(3)后台代码绑定

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

string sid = Request.QueryString["id"];

ReportViewer1.ProcessingMode = ProcessingMode.Local;

ReportViewer1.LocalReport.ReportPath =

erver.MapPath("~/Report/Report/SDBXZ.rdlc");

ReportViewer1.LocalReport.EnableExternalImages = true;

StringBuilder sb = new StringBuilder();

sb.Append("select * from SDBXZ_View where JGJSID='" + sid + "'");

string con =

System.Configuration.ConfigurationManager.ConnectionStrings["CostM

anagementSystem"].ToString();

DataSet ds = new DataSet();

SqlConnection sqlcon = new SqlConnection(con);

SqlCommand sqlcom = new SqlCommand(sb.ToString(), sqlcon);

SqlDataAdapter sqlad = new SqlDataAdapter();

sqlad.SelectCommand = sqlcom;

sqlad.Fill(ds, "sql");

///取得一个字段,我取得是GUID

string guid =

ds.Tables["sql"].Rows[0]["JGJSID"].ToString().Replace("-","").Trim();

///生成二维码,并保存到指定目录,在最上面这个方法已经写在那里了

create_two(guid);

///拼接一个URL(存放图片的URL)

string url = "file:///" + Server.MapPath("~/QRImage/") + guid + ".jpg";

LocalReport report = ReportViewer1.LocalReport;

///把URL付给参数EWM(图片绑定的参数)

report.SetParameters(new ReportParameter("EWM", url)); ReportViewer1.LocalReport.DataSources.Add(new

ReportDataSource("DataSet1", ds.Tables["sql"]));

ReportViewer1.DataBind();

this.ReportViewer1.ServerReport.Refresh();

}

}

3、测试下吧,大功告成!

相关文档
最新文档