WinForm DevExpress XtraReport报表制作实例

20180511--更新 1、添加导出电子报表功能   2、代码实现打印功能


注意这个装DevExpress 控件

主要功能

把数据库的数据填充到报表,打印报表

源码实例下载地址: http://pan.baidu.com/s/1kVkKym7 密码: qmc4

XtraReport横向显示

   属性中设置  代Landscape 属性 ,为true就是横向打印

xtraReport.Landscape =true;

设置后 高度 ,长度  要进行调整。  跟  false 的时候  倒过来 



核心代码如下

XtraReport 里面代码,主要是邦定数据作用


        public XtraReport1(DataRow dr)//构造函数重载  
        {
            InitializeComponent();
            SetDataBind(dr);
        }
        private void SetDataBind(DataRow dr)//绑定数据源  
        {
            xrTID.Text = dr[0].ToString();//或用xrTID.Text = dr["id"].ToString();//id为行的字段
            xrTuserName.Text = dr[1].ToString();
            xrTuserPass.Text = dr[2].ToString();
            xrTuserQQ.Text = dr[3].ToString();
            xrPictureBox1.ImageUrl =AppDomain.CurrentDomain.BaseDirectory+ dr[4].ToString();
        }


显示到控件里面核心代码如下


        private void btnReport_Click(object sender, EventArgs e)
        {
            string sqlStr = "select * from testReport";

            DataSet ds = DAL.SQLiteHelper.ExecuteQuery(sqlStr);//获得数据

            try
            {
                XtraReport1 xr = new XtraReport1(ds.Tables[0].Rows[0]);
                xr.CreateDocument();//创建报表

                XtraReport2 xr2 = new XtraReport2(ds.Tables[0].Rows[1]);
                xr2.CreateDocument();

                xr.Pages.AddRange(xr2.Pages);//显示报表添加第二页

                //20180511添加功能
                //注意:导出电子档中文乱码 解决方案是  改报表字体  
                //详情请看 http://www.luofenming.com/show.aspx?id=ART2018042800002
                // xr.ExportToPdf(@"D:\123.pdf");//导出PDF电子档  
                // xr.ExportToXlsx(@"D:\123.xlsx");//导出xlsx电子档
                // xr.ExportToRtf(@"D:\123.doc");//导出doc电子档  还可以导出更多类型的电子档,在这里就不一一列出
                
                //20180511添加功能
                // xr.PrintingSystem.ShowMarginsWarning = false; //取消超出边界提示框。见上篇文章
                //  xr.PrinterName = "Epson LQ-150K";//打印机名称
                // xr.Print();//打印报表功能
                 
                this.documentViewer1.PrintingSystem = xr.PrintingSystem;


            }
            catch (Exception ex)
            {

            }          
        }