在WinForm项目中使用FastReport.Net(三、绑定数据)

上节我们实现了预览和设计的窗体,也可以预览和设计我们的报表了,但是我们还是没有数据的交互,这次我们来创建一个数据库,然后将数据绑定到我们的报表中

数据库准备

  • 我们使用VisualStudio自带的mdf文件数据库,首先我们在工程中创建一个文件夹APP_DATA,在此文件夹中创建一个mdf文件


    在WinForm项目中使用FastReport.Net(三、绑定数据)_第1张图片
    创建窗口
  • 然后我们可以在服务器资源管理器中看到我们的数据库


    在WinForm项目中使用FastReport.Net(三、绑定数据)_第2张图片
    服务器资源管理器
  • 然后我们右键表新建一个表
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
)
  • 然后在设计器左上角点击更新按钮,在弹出的窗口中点击更新数据库


    在WinForm项目中使用FastReport.Net(三、绑定数据)_第3张图片
    更新

    在WinForm项目中使用FastReport.Net(三、绑定数据)_第4张图片
    弹出的窗口
  • 更状态全部打钩之后,表就创建好了,我们刷新服务器资源管理器,然后打开表数据,添加一些数据进去


    在WinForm项目中使用FastReport.Net(三、绑定数据)_第5张图片
    添加的数据
  • ok我们现在在服务器资源管理器里面选择mdf文件,在属性列表里,找到连接字符串,拷贝一份出来,等会需要用的到


    在WinForm项目中使用FastReport.Net(三、绑定数据)_第6张图片
    属性
Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=I:\dotNET\ReportDemo\ReportDemo\APP_DATA\Database.mdf;Integrated Security=True

设计器数据获取

  • 我们在PreviewForm.cs里,写一个方法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, "学生信息");
            conn.Close();
            return ds;
        }
  • 然后我们在Form_Load方法里绑定数据集
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, "学生信息");
            dReport.Prepare();
            dReport.Design(); 
        }
  • 我们F5一下,在设计窗口下,在[数据]->[选择数据源]中,就能看到我们绑定的数据了


    在WinForm项目中使用FastReport.Net(三、绑定数据)_第7张图片
    结果
  • 我们设计一个表格,把我们的数据放进去


    在WinForm项目中使用FastReport.Net(三、绑定数据)_第8张图片
    设计的报表
  • 我们可以预览一下,然后保存

为Preview绑定数据

  • 现在我们用同样的方法为Preview绑定数据,getData()方法一致,可以直接复制过来
 private void PreviewForm_Load(object sender, EventArgs e)
        {
            pReport = new Report();   //实例化一个Report报表
            String reportFile = "Report/report.frx";
            pReport.Load(reportFile);  //载入报表文件
            pReport.Preview = previewControl1; //设置报表的Preview控件(这里的previewControl1就是我们之前拖进去的那个)
            DataSet ds = new DataSet();
            ds = getData();
            pReport.RegisterData(ds,"学生信息");
            pReport.Prepare();   //准备
            pReport.ShowPrepared();  //显示
        }
  • 我们测试一下


    在WinForm项目中使用FastReport.Net(三、绑定数据)_第9张图片
    预览界面

由于我还没弄清楚报表里面的循环输出,所以只看到了一行数据,等我去研究研究。然后我们后面再说关于条件数据等
到这里FastReport的引入、加载、绑定都心里有数了!

你可能感兴趣的:(在WinForm项目中使用FastReport.Net(三、绑定数据))