美文网首页.NET
在WinForm项目中使用FastReport.Net(三、绑定

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

作者: AiDede | 来源:发表于2017-10-12 15:17 被阅读252次

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

    数据库准备

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


      创建窗口
    • 然后我们可以在服务器资源管理器中看到我们的数据库


      服务器资源管理器
    • 然后我们右键表新建一个表
    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
    )
    
    • 然后在设计器左上角点击更新按钮,在弹出的窗口中点击更新数据库


      更新
      弹出的窗口
    • 更状态全部打钩之后,表就创建好了,我们刷新服务器资源管理器,然后打开表数据,添加一些数据进去


      添加的数据
    • ok我们现在在服务器资源管理器里面选择mdf文件,在属性列表里,找到连接字符串,拷贝一份出来,等会需要用的到


      属性
    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一下,在设计窗口下,在[数据]->[选择数据源]中,就能看到我们绑定的数据了


      结果
    • 我们设计一个表格,把我们的数据放进去


      设计的报表
    • 我们可以预览一下,然后保存

    为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();  //显示
            }
    
    • 我们测试一下


      预览界面

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

    相关文章

      网友评论

        本文标题:在WinForm项目中使用FastReport.Net(三、绑定

        本文链接:https://www.haomeiwen.com/subject/kvtoyxtx.html