1. 程式人生 > >C#機房重構之報表

C#機房重構之報表

- 前言

VB版機房就已經做過一次報表了,VS的報表和VB略有不同,一起來看看吧。

-步驟

一、建立窗體 在這裡插入圖片描述 1.建立窗體之後把下面的報表空間新增到窗體上 在這裡插入圖片描述 2.介面如下 在這裡插入圖片描述 二、建立報表 1.新增窗體(此處注意,報表為繁體字,搜尋是搜不出來的) 在這裡插入圖片描述 2. 建立之後 在這裡插入圖片描述 3.介面空白處右擊新增表 在這裡插入圖片描述 4.新建資料來源 在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述在這裡插入圖片描述 在這裡插入圖片描述 5.新增表頭資料之後簡單設計 在這裡插入圖片描述 三、最終配置 回到介面控制元件,點選控制元件的小三角 在這裡插入圖片描述 選擇好報表之後 在這裡插入圖片描述 點選查詢生成器,選擇自己需要的欄位 在這裡插入圖片描述 #程式碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Facade;
using Microsoft.Reporting.WinForms;
using Entity;

namespace UI
{
    public partial class frmAdmbill : Form
    {
        public frmAdmbill()
        {
            InitializeComponent();
        }

        private void frmAdmbill_Load(object sender, EventArgs e)
        {
            // TODO: 這行程式碼將資料載入到表“Bill.Check_Info”中。您可以根據需要移動或刪除它。
            this.Check_InfoTableAdapter.Fill(this.Bill.Check_Info);
            this.reportViewer1.RefreshReport();


            //// TODO: 這行程式碼將資料載入到表“charge_sysDataSet.CheckDay_Info”中。您可以根據需要移動或刪除它。
            //this.CheckDay_InfoTableAdapter.Fill(this.charge_sysDataSet.CheckDay_Info, DateTime.Now.Date.ToString());
        }
            

         

        private void btnLookFo_Click(object sender, EventArgs e)
        {
            //引數
            Check_Info check = new Check_Info();
            dTPStart.Text = dTPStart.Value.Date.ToShortDateString();
            
            DateTime starttime = Convert.ToDateTime(dTPStart.Text);
     
            //例項化外觀
            CheckBillFacade facadecheckbill = new CheckBillFacade();
            check.Checkdate = DateTime.Now.Date;
            DataTable table = facadecheckbill.SelectCheck_Info(check);



            ReportDataSource reportdatasource = new ReportDataSource();
            //設定報表的資料來源名稱
            reportdatasource.Name = "Bill";
            //報表資料來源例項
            reportdatasource.Value = table;
            this.reportViewer1.LocalReport.ReportEmbeddedResource = "UI.Report1.rdlc";
            //清空存在的報表
            this.reportViewer1.LocalReport.DataSources.Clear();
            //新增資料來源
            this.reportViewer1.LocalReport.DataSources.Add(reportdatasource);
            //傳遞引數
            //dTPStart.Text = DateTime.Now.ToShortDateString();
            //dTPEnd .Text = DateTime.Now.ToShortDateString();
            //DateTime starttime = Convert.ToDateTime(dTPStart.Text);
            //DateTime endtime = Convert.ToDateTime(dTPEnd.Text);
            //this.CheckDay_InfoTableAdapter.Fill(this.charge_sysDataSet.CheckDay_Info,dTPStart,dTPEnd);
            //重新整理報表
            this.reportViewer1.RefreshReport();
        }
    }
}

#小結 這次的報表讓自己對VS的瞭解更深一步,感覺還是很好用的。