zoukankan      html  css  js  c++  java
  • RDLC报表打印一维码

                首先添加BarcodeLib.dll引用,设置图像属性如图所示:

    关键代码:

    byte[] imgBytes = GetBarcode(200, 1000, TYPE.CODE128, dt.Rows[0]["inner_pkg_no"].ToString(), out image);

    方法如下:

            private static byte[] GetBarcode(int height, int width, TYPE type, string code, out Image image)
            {
                image = null;
                Barcode b = new Barcode();
                b.BackColor = Color.White;
                b.ForeColor = Color.Black;
                b.IncludeLabel = false;
                b.Alignment = AlignmentPositions.CENTER;
                b.LabelPosition = LabelPositions.BOTTOMCENTER;
                b.ImageFormat = ImageFormat.Jpeg;
                Font font = new Font("verdana", 10f);
                b.LabelFont = font;
    
                b.Height = height;
                b.Width = width;
                image = b.Encode(type, code);
                byte[] buffer = b.GetImageData(SaveTypes.JPG);
                return buffer;
            }

    重点:数据集字段必需声明为System.Byte[]类型,如果数据库已经存储该image对象则可直接设置该字段表达式值为:

    =System.Convert.ToBase64String(Fields!imagePkgNo.Value)
    

     也可以代码动态绑定:

    DataTable dt=new DataTable();
    dt.Columns.Add("imagePkgNo", Type.GetType("System.Byte[]"));
    byte[] imgBytes = GetBarcode(200, 1000, TYPE.CODE128, dt.Rows[0]["inner_pkg_no"].ToString(), out image);
    dt1.Rows[0]["imagePkgNo"] = imgBytes;

    主要代码如下:

     private void ReportView_Load(object sender, EventArgs e)
            {
                Image image;
    
                #region 存储过程返回数据集
                ProcedureHelper procedure = new ProcedureHelper(strConn);
                SqlParameter[] parameters =
                {
                        new SqlParameter("@inner_pkgNo", SqlDbType.VarChar)
                 };
                parameters[0].Value = barCode;
                DataTable dt = procedure.ExecuteDataTable("P_PRINT_PKG", parameters);
                #endregion
    
                DataTable dt1 = new DataTable();
                if (dt.Rows.Count > 0)
                {
                    #region 只取第一行数据作为新的数据集
                    dt1 = dt.Copy();
                    dt1.Rows.Clear();
                    dt1.ImportRow(dt.Rows[0]);
                    dt1.Columns.Add("imagePkgNo", Type.GetType("System.Byte[]"));//添加新列
                    byte[] imgBytes = GetBarcode(200, 1000, TYPE.CODE128, dt.Rows[0]["inner_pkg_no"].ToString(), out image);
                    dt1.Rows[0]["imagePkgNo"] = imgBytes;
                    #endregion
    
                    #region 添加参数
                    List<ReportParameter> Paras = new List<ReportParameter>();
                    Paras.Add(new ReportParameter("packegeNum", dt.Rows.Count.ToString()));
                    this.reportViewer1.LocalReport.SetParameters(Paras);
                    #endregion
                   
                    #endregion 绑定数据源
                    ReportDataSource rds = new ReportDataSource("DataSet", dt1);
                    reportViewer1.LocalReport.DataSources.Add(rds);
                    reportViewer1.RefreshReport();
                    #endregion
                }
  • 相关阅读:
    爬取豆瓣影评1寻找json格式的电影信息
    打开SSM项目后打开tomcat找不到路径问题
    爬取豆瓣影评2完整代码
    打开SSM项目无法启动问题补充
    使用python制作国民经济行业国标的json格式
    MVC前端AJAX向后端传递数据——正常传值
    国民经济行业维度清洗,将数据清洗成标准的四级信息。
    使用vue的element组件网址
    Mybais中sql语句的抽取
    mybatis找不到mapper_Springboot整合Mybatis
  • 原文地址:https://www.cnblogs.com/gcr1314/p/4135548.html
Copyright © 2011-2022 走看看