使用FastReport打印C# Winform程序报表

  1. 需要引入以下dll

  • 2.打印按钮代码
private void ButtonClickPrint()
        {
            if (dgv.Rows.Count == 0)
            {
                MessageBox.Show("无数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            dgv.EndEdit();

            DataTable dt = new DataTable("XBCRecord");
            dt.Columns.Add("车间");
            dt.Columns.Add("物料种类");
            dt.Columns.Add("料号");
            dt.Columns.Add("型号");
            dt.Columns.Add("来料不良", typeof(decimal));
            dt.Columns.Add("废品", typeof(decimal));
            dt.Columns.Add("B品", typeof(decimal));

            DataRow row;
            for (int i = 0; i < dgv.Rows.Count; i++)
            {
                row = dt.NewRow();
                row["车间"] = dgv.Rows[i].Cells["车间"].Value.ToString();
                row["物料种类"] = dgv.Rows[i].Cells["物料种类"].Value.ToString();
                row["料号"] = dgv.Rows[i].Cells["料号"].Value.ToString();
                row["型号"] = dgv.Rows[i].Cells["型号"].Value.ToString();
                row["来料不良"] = dgv.Rows[i].Cells["来料不良"].Value == System.DBNull.Value ? 0 : Convert.ToDecimal(dgv.Rows[i].Cells["来料不良"].Value.ToString());
                row["废品"] = dgv.Rows[i].Cells["废品"].Value == System.DBNull.Value ? 0 : Convert.ToDecimal(dgv.Rows[i].Cells["废品"].Value.ToString());
                row["B品"] = dgv.Rows[i].Cells["B品"].Value == System.DBNull.Value ? 0 : Convert.ToDecimal(dgv.Rows[i].Cells["B品"].Value.ToString());
                dt.Rows.Add(row);
            }
            dt.TableName = "XBCRecord";


            //dtCJ.TableName = "XBCRecord";
            //DataTable dtXBCRecord = new DataTable();
            //dtXBCRecord = dtCJ.Copy();
            //dtXBCRecord.TableName = "XBCRecord";

            //// 如果没有选择任何数据,不做任何处理,直接返回
            //if (dtXBCRecord.Rows.Count <= 0)
            //    return;
            // 加载报表
            using (FastReport.Report report = new FastReport.Report())
            {
                report.Load(ReportFileName);

                // 设置数据源 
                DataSet dataSet = new DataSet();
                dataSet.Tables.Add(dt);
                report.RegisterData(dataSet);

                // 给报表中的参数设置值
                report.SetParameterValue("StartTime", dateTimePicker1.Value.ToString("yyyy/MM/dd HH:mm:ss"));
                report.SetParameterValue("EndTime", dateTimePicker2.Value.ToString("yyyy/MM/dd HH:mm:ss"));
                report.SetParameterValue("PrintTime", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
                report.SetParameterValue("sum", sum);
                //report.SetParameterValue("Use", tscmbUse.Text);
                report.Show();
            }
        }
  • 3.设计模板代码
private void toolStripButtonDesign_Click(object sender, EventArgs e)
        {
            if (dgv.Rows.Count == 0)
            {
                MessageBox.Show("无数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            DataTable dt = new DataTable("XBCRecord");
            dt = dtCJ.Copy();
            dt.TableName = "XBCRecord";
            DataSet dataSet = new DataSet();
            dataSet.Tables.Add(dt);

            FastReportHelper.CreateReport(ReportFileName, dataSet);
        }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WBClient
{
    class FastReportHelper
    {
        /// <summary>
        /// 设计报表,根据传入的报表文件打开设计界面,当报表文件不存在时,新建
        /// </summary>
        /// <param name="reportFilename">报表文件名</param>
        /// <param name="dataSet">用于设计时使用的数据源</param>
        public static void CreateReport(string reportFilename, System.Data.DataSet dataSet)
        {
            
            using (FastReport.Report report = new FastReport.Report())
            {
                if (!System.IO.File.Exists(reportFilename))
                {
                    report.FileName = reportFilename;
                }
                else
                {
                    report.Load(reportFilename);
                }

                report.RegisterData(dataSet);
                report.Design();    // 打开设计界面
            }
        }
    }
}

以下是做好的模板:

发布了30 篇原创文章 · 获赞 2 · 访问量 6606

猜你喜欢

转载自blog.csdn.net/tangliuqing/article/details/103992226
今日推荐