Fastreport是一个强大的报表控件,使用起来也很方便,有点类似于VS里面winform的工具箱,都是直接拉控键到界面上,双击控键,输入你想显示在页面的值。
首先是创建新的数据源,有两种方式连接数据源,一种是连接到数据库上,关联数据库的表,这样就可以直接调用数据库表里面的数据。还有一个是连接一个空的数据库,在输入创建表的SQL语句,创建一个新的表,右击表,增加新的列,在练习使用Fastreport过程,遇到了一个很奇葩的问题。在列的属性里面有一个Calculate,当把它设置成false时,我预览就会报下面的错:
但是另一个项目里面我把Calculated设置false就没有报错,可以预览。一直搞不懂这到底是为什么。。
还有一个就是如何删除掉Fastreport里面那些表。找了很久一直找不到删除这些表的方法。。
如何在C#中引用Fastreport的报表呢??
首先在要引用Fastreport,这样才能使用Fastreport的方法。代码如下所示:
private void button3_Click(object sender, EventArgs e) { string reportName = "Model.frx"; string path = Application.StartupPath + "\" + "Model.frx"; FastReport.Report fr = new FastReport.Report(); if (File.Exists(path)==true) { fr.Load(reportName);//加载回执单表 DataTable dataTable = new DataTable(); SetModelInfo(); //创建一张信息表 CreateDataTable(dataTable, modelQr); fr.RegisterData(dataTable, "tt"); //fr.PrintSettings.ShowDialog = true; //fr.Print(); if (fr.Prepare()) fr.ShowPrepared(); }
frx文件一定要放在该类库的bin文件下的debug里面。不然读取不到。
Fastreport里面创建的表里面的列名要和在C#代码里面字段Model的属性字段一样,这样在打印报表时候才能把数据传过去。
效果如下所示:
生成的二维码,因为有之前的 项目在,所以我只是一直在copy代码而已,虽然还不懂二维码到底是怎么生成的,但是起码以后有碰到的话可以弄得出来一个二维码。