ReportViewer的RDLC打印报表怎么动态加载参数、图片、背景图

s="File://D:/Design/CSharp/海宏校园自助一体机/Reports/学生成绩一览表_背景图.png";
ReportParameter parBeijingtu = new ReportParameter("beijingtu", s);
viewer.LocalReport.SetParameters(parBeijingtu);

RDLC用参数很容易变成2016版,这个没解决。

//读取打印文件
                sDir = Server.MapPath("~/reports/");
                sFile = sDir + 打印模板文件;
                viewer.LocalReport.ReportPath = sFile;
                viewer.LocalReport.ReportEmbeddedResource = Path.GetFileName(sFile);
                viewer.LocalReport.EnableExternalImages = true;   //外置图片

                //绑定数据
                //ds = new ds_Main();
                viewer.LocalReport.DataSources.Clear();
                for (int i = 0; i < tableList.Count; i++)
                {
                    DataTable itm = tableList[i];
                    s = itm.TableName;
                    if (s.ToUpper() == "SHEZHI") { dtShezhi = itm; continue; }  //设置库单独加
                    if (string.IsNullOrEmpty(s)) s = "table" + i.ToString();
                    //
                    dds = new ReportDataSource(s, itm);
                    viewer.LocalReport.DataSources.Add(dds);
                }
                //设置库
                if (dtShezhi == null) dtShezhi = new DataTable();
                DataColumnCollection cols = dtShezhi.Columns;
                if (cols.IndexOf("beijingtu") < 0) dtShezhi.Columns.Add(new DataColumn("beijingtu", typeof(string)));
                if (cols.IndexOf("gongsiming") < 0) dtShezhi.Columns.Add(new DataColumn("gongsiming", typeof(string)));
                if (dtShezhi.Rows.Count > 0) s = dtShezhi.Rows[0]["beijingtu"].ToString(); else s = "";

                //背景图
                sImg = sDir + Path.GetFileNameWithoutExtension(打印模板文件) + "_背景图.png";
                if (string.IsNullOrEmpty(s) && File.Exists(sImg))
                {   //右键,主体属性,File://D:/Design/CSharp/海宏校园自助一体机/Reports/学生成绩一览表_背景图.png
                    s = "File://D:/Design/CSharp/海宏校园自助一体机/Reports/学生成绩一览表_背景图.png";
                    s = "File://" + sImg.Replace("\\", "/");
                    //发现参数的方式就成了2016版,加载报错,改用shezhi数据集
                    //ReportParameter parBeijingtu = new ReportParameter("beijingtu", s);
                    //viewer.LocalReport.SetParameters(parBeijingtu);
                    if (dtShezhi.Rows.Count > 0) dr = dtShezhi.Rows[0];
                    else
                    {
                        Gs_DataFunction.initializeRecord(dr = dtShezhi.NewRow());
                        dtShezhi.Rows.Add(dr);
                    }
                    dr["beijingtu"] = s;
                }
                //最后把设置库注册进去
                dds = new ReportDataSource("shezhi", dtShezhi);
                viewer.LocalReport.DataSources.Add(dds);

                //刷新界面
                viewer.LocalReport.Refresh();
                nPage = viewer.LocalReport.GetTotalPages();

这样报表的设置数据集就有了个字段:beijingtu

报表格式这样设计:

 

OK了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值