在本章中,我们将学习FastReport中使用 表的原则。我们还将仔细介绍配置FastReport.Net对话框。
Fastreport.NET在线购买价更低,专享85折起!赶紧加入购物清单吧!
使用代码创建 告
让我们考虑如何在代码中创建一个 表。我们将创建以下 表。

Report report = new Report();// register the "Products" tablereport.RegisterData(dataSet1.Tables["Products"], "Products");// enable it to use in a reportreport.GetDataSource("Products").Enabled = true;// create A4 page with all margins set to 1cmReportPage page1 = new ReportPage();page1.Name = "Page1";report.Pages.Add(page1);// create ReportTitle bandpage1.ReportTitle = new ReportTitleBand();page1.ReportTitle.Name = "ReportTitle1";// set its height to 1.5cmpage1.ReportTitle.Height = Units.Centimeters * 1.5f;// create group headerGroupHeaderBand group1 = new GroupHeaderBand();group1.Name = "GroupHeader1";group1.Height = Units.Centimeters * 1;// set group conditiongroup1.Condition = "[Products.ProductName].Substring(0, 1)";// add group to the page.Bands collectionpage1.Bands.Add(group1);// create group footergroup1.GroupFooter = new GroupFooterBand();group1.GroupFooter.Name = "GroupFooter1";group1.GroupFooter.Height = Units.Centimeters * 1;// create DataBandDataBand data1 = new DataBand();data1.Name = "Data1";data1.Height = Units.Centimeters * 0.5f;// set data sourcedata1.DataSource = report.GetDataSource("Products");// connect databand to a groupgroup1.Data = data1;Working with Windows.Forms 23// create "Text" objects// report titleTextObject text1 = new TextObject();text1.Name = "Text1";// set boundstext1.Bounds = new RectangleF(0, 0,Units.Centimeters * 19, Units.Centimeters * 1);// set texttext1.Text = "PRODUCTS";// set appearancetext1.HorzAlign = HorzAlign.Center;text1.Font = new Font("Tahoma", 14, FontStyle.Bold);// add it to ReportTitlepage1.ReportTitle.Objects.Add(text1);// groupTextObject text2 = new TextObject();text2.Name = "Text2";text2.Bounds = new RectangleF(0, 0,Units.Centimeters * 2, Units.Centimeters * 1);text2.Text = "[[Products.ProductName].Substring(0, 1)]";text2.Font = new Font("Tahoma", 10, FontStyle.Bold);// add it to GroupHeadergroup1.Objects.Add(text2);// data bandTextObject text3 = new TextObject();text3.Name = "Text3";text3.Bounds = new RectangleF(0, 0,Units.Centimeters * 10, Units.Centimeters * 0.5f);text3.Text = "[Products.ProductName]";text3.Font = new Font("Tahoma", 8);// add it to DataBanddata1.Objects.Add(text3);// group footerTextObject text4 = new TextObject();text4.Name = "Text4";text4.Bounds = new RectangleF(0, 0,Units.Centimeters * 10, Units.Centimeters * 0.5f);text4.Text = "Count: [CountOfProducts]";text4.Font = new Font("Tahoma", 8, FontStyle.Bold);// add it to GroupFootergroup1.GroupFooter.Objects.Add(text4);// add a totalTotal groupTotal = new Total();groupTotal.Name = "CountOfProducts";groupTotal.TotalType = TotalType.Count;groupTotal.Evaluator = data1;groupTotal.PrintOn = group1.Footer;// add it to report totalsreport.Dictionary.Totals.Add(groupTotal);// run the reportreport.Show();
准备好的 告如下:

使用自己的预览窗口
使用EnvironmentSettings组件(参见 “配置FastReport.Net环境 “部分),您可以调整标准预览窗口。相关属性包含在EnvironmentSettings.PreviewSettings属性里面。
如果您由于某些原因不想使用标准预览窗口,您可以创建自己的预览窗口。要做到这一点,请使用可以添加到您的表单上的PreviewControl控件。要在该控件中显示 表,请通过以下代码将其连接到Report对象。
report1.Preview = previewControl1;
要准备一份 告并在PreviewControl中显示,请使用Report对象的Show方法。
report1.Show();your_form.ShowDialog();
或以下代码:
if (report1.Prepare()){report1.ShowPrepared();your_form.ShowDialog();}
在这些例子中,your_form是包含PreviewControl的表单。
使用PreviewControl组件的方法,你可以从你的代码中处理它。您甚至可以使用ToolbarVisible, StatusbarVisible属性来关闭标准工具栏和/或状态栏。这在Demos/C#/CustomPreview示例项目中进行了演示。
在数据向导中过滤表格
数据向导可以从 “数据|添加数据源… “菜单中调用。在这里您可以设置连接并选择一个或多个数据表。默认情况下,向导会显示所选连接中的所有可用表。如果您想过滤不必要的表,请使用 “Config.DesignerSettings.FilterConnectionT “菜单。DesignerSettings.FilterConnectionTables事件。以下示例显示了如何从表列表中删除 “表1 “表。
using FastReport.Utils;Config.DesignerSettings.FilterConnectionTables += FilterConnectionTables;private void FilterConnectionTables(object sender, FilterConnectionTablesEventArgs e){if (e.TableName == "Table 1")e.Skip = true;}
还想要更多吗可以点击阅读【FastReport 表2020最新资源盘点】,查找需要的教程资源。让人兴奋的是FastReport .NET 表正在 火热销售中!低至3701元起!>>查看价格详情
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!