在WinForm項(xiàng)目中使用FastReport.Net(三、綁定數(shù)據(jù))

上節(jié)我們實(shí)現(xiàn)了預(yù)覽和設(shè)計(jì)的窗體,也可以預(yù)覽和設(shè)計(jì)我們的報(bào)表了,但是我們還是沒有數(shù)據(jù)的交互,這次我們來創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),然后將數(shù)據(jù)綁定到我們的報(bào)表中

數(shù)據(jù)庫(kù)準(zhǔn)備

  • 我們使用VisualStudio自帶的mdf文件數(shù)據(jù)庫(kù),首先我們?cè)诠こ讨袆?chuàng)建一個(gè)文件夾APP_DATA,在此文件夾中創(chuàng)建一個(gè)mdf文件


    創(chuàng)建窗口
  • 然后我們可以在服務(wù)器資源管理器中看到我們的數(shù)據(jù)庫(kù)


    服務(wù)器資源管理器
  • 然后我們右鍵表新建一個(gè)表
CREATE TABLE [dbo].[T_students]
(
    [Id] INT NOT NULL PRIMARY KEY IDENTITY, 
    [no] NCHAR(50) NULL, 
    [name] NCHAR(50) NULL, 
    [school] NCHAR(50) NULL, 
    [class] NCHAR(50) NULL
)
  • 然后在設(shè)計(jì)器左上角點(diǎn)擊更新按鈕,在彈出的窗口中點(diǎn)擊更新數(shù)據(jù)庫(kù)


    更新

    彈出的窗口
  • 更狀態(tài)全部打鉤之后,表就創(chuàng)建好了,我們刷新服務(wù)器資源管理器,然后打開表數(shù)據(jù),添加一些數(shù)據(jù)進(jìn)去


    添加的數(shù)據(jù)
  • ok我們現(xiàn)在在服務(wù)器資源管理器里面選擇mdf文件,在屬性列表里,找到連接字符串,拷貝一份出來,等會(huì)需要用的到


    屬性
Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=I:\dotNET\ReportDemo\ReportDemo\APP_DATA\Database.mdf;Integrated Security=True

設(shè)計(jì)器數(shù)據(jù)獲取

  • 我們?cè)赑reviewForm.cs里,寫一個(gè)方法getData()
 private DataSet getData(){
            String connStr = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=I:\dotNET\ReportDemo\ReportDemo\APP_DATA\Database.mdf;Integrated Security=True";
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();
            String sqlStr = "SELECT * FROM T_students";
            SqlCommand comm = new SqlCommand();
            comm.CommandText = sqlStr;
            comm.CommandType = CommandType.Text;
            comm.Connection = conn; 
            DataSet ds = new DataSet();
            SqlDataAdapter adapter = new SqlDataAdapter(comm);
            adapter.Fill(ds, "學(xué)生信息");
            conn.Close();
            return ds;
        }
  • 然后我們?cè)贔orm_Load方法里綁定數(shù)據(jù)集
private void DesignForm_Load(object sender, EventArgs e)
        {
            dReport = new Report();
            String reportFile = "Report/report.frx";
            dReport.Load(reportFile);
            this.designerControl1.Report = dReport; //這里不一樣的是把Report賦給控件的屬性
            DataSet ds = new DataSet();
            ds = getData();
            dReport.RegisterData(ds, "學(xué)生信息");
            dReport.Prepare();
            dReport.Design(); 
        }
  • 我們F5一下,在設(shè)計(jì)窗口下,在[數(shù)據(jù)]->[選擇數(shù)據(jù)源]中,就能看到我們綁定的數(shù)據(jù)了


    結(jié)果
  • 我們?cè)O(shè)計(jì)一個(gè)表格,把我們的數(shù)據(jù)放進(jìn)去


    設(shè)計(jì)的報(bào)表
  • 我們可以預(yù)覽一下,然后保存

為Preview綁定數(shù)據(jù)

  • 現(xiàn)在我們用同樣的方法為Preview綁定數(shù)據(jù),getData()方法一致,可以直接復(fù)制過來
 private void PreviewForm_Load(object sender, EventArgs e)
        {
            pReport = new Report();   //實(shí)例化一個(gè)Report報(bào)表
            String reportFile = "Report/report.frx";
            pReport.Load(reportFile);  //載入報(bào)表文件
            pReport.Preview = previewControl1; //設(shè)置報(bào)表的Preview控件(這里的previewControl1就是我們之前拖進(jìn)去的那個(gè))
            DataSet ds = new DataSet();
            ds = getData();
            pReport.RegisterData(ds,"學(xué)生信息");
            pReport.Prepare();   //準(zhǔn)備
            pReport.ShowPrepared();  //顯示
        }
  • 我們測(cè)試一下


    預(yù)覽界面

由于我還沒弄清楚報(bào)表里面的循環(huán)輸出,所以只看到了一行數(shù)據(jù),等我去研究研究。然后我們后面再說關(guān)于條件數(shù)據(jù)等
到這里FastReport的引入、加載、綁定都心里有數(shù)了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容