FastReport VCL程序员手册:通过代码创建报告表单

通常情况下,使用设计器可以创建大多数报告。但是,在某些情况下(例如,当报告的表单未知时),有必要通过代码手动创建报告。

通常,您将使用设计器创建大多数报告。但是,在某些情况下(例如,当报告的表单未知时),有通过代码手动创建报告。

要手动创建报告,应按顺序执行以下步骤:

  • 清除报告组件
  • 添加数据源
  • 添加“数据”页面
  • 添加报告页面
  • 在页面上添加乐队
  • 设置频段的属性,然后将其连接到数据
  • 在每个频率上添加对象
  • 设置对象的属性,然后将它们连接到数据

让我们检查一下“列表”类型的报告的创建。假设我们有以下简单的组件:frxReport1:TfrxReport和frxDBDataSet1:TfrxDBDataSet(最后一个连接到DBDEMOS的数据,ustomer.db。页带有“报告标题”和“主数据”带的页面。在“报告标题”区域中,将出现一个“Hello FastReport!”的对象。文本,“主数据”将包含一个对象,该对象具有指向“CustNo”字段的链接。
帕斯卡尔:

无功 数据页:TfrxDataPage; 页面:TfrxReportPage; 频段:TfrxBand; 数据带:TfrxMasterData; 备忘录:TfrxMemoView;  {清除报告} frxReport1.清除;  { 将数据集添加到报表可访问的列表中 } frxReport1.DataSets.Add(frxDBDataSet1);  { 添加“数据”页面 } 数据页:= TfrxDataPage.Create(frxReport1);  { 添加页面 } 页 := TfrxReportPage.Create(frxReport1);  { 创建一个唯一的名称 } Page.CreateUniqueName;  { 默认设置字段、纸张和方向的大小} Page.SetDefaults;  { 修改纸张方向 } Page.Orientation := poLandscape;  { 添加报告标题带} Band := TfrxReportTitle.Create(Page); Band.CreateUniqueName;  { 为一个带设置 op坐标和高度就足够了 } { 两个坐标都以像素为单位 } Band.Top := 0; 带.高度:= 20;  { 向报表标题带添加对象 } 备忘录:= TfrxMemoView.Create(Band); Memo.CreateUniqueName; Memo.Text := 'Hello FastReport!'; 备注.高度:= 20;  { 此对象将根据带的宽度进行拉伸 } Memo.Align := baWidth;  { 添加主数据带 } DataBand := TfrxMasterData.Create(Page); DataBand.CreateUniqueName; DataBand.DataSet := frxDBDataSet1;  {顶部坐标应该大于之前添加的band的顶部+高度} DataBand.Top := 100; 数据带高度:= 20;  { 在主数据上添加一个对象 } 备忘录:= TfrxMemoView.Create(DataBand); Memo.CreateUniqueName;  { 连接到数据 } Memo.DataSet := frxDBDataSet1; Memo.DataField := 'CustNo'; Memo.SetBounds(0, 0, 100, 20);  { 将文本调整到右侧对象的边距 } Memo.HAlign := haRight;  { 显示报告 } frxReport1.ShowReport;

C++:

TfrxDataPage * 数据页; TfrxReportPage * 页; TfrxBand * 频段; TfrxMasterData * 数据带; TfrxMemoView * 备忘录;  // 清除报告  frxReport1->清除();  // 将数据集添加到报表可访问的数据集列表中  frxReport1->DataSets->Add(frxDBDataset1);  // 添加“数据”页面  DataPage = new TfrxDataPage(frxReport1);  // 添加一个页面 页 = 新 TfrxReportPage(frxReport1);  // 创建一个唯一的名称  页面->CreateUniqueName();  // 默认设置字段、纸张和方向的大小  页面->SetDefaults();  // 修改纸的方向 页面->方向= poLandscape;  // 添加报表标题带 Band = new TfrxReportTitle(Page); 乐队-> CreateUniqueName();  // 为波段设置部标和高度就足够了  // 两个坐标都以像素为单位  波段->顶部 = 0; 带->高度= 20;  // 添加一个对象到报表标题栏  备忘录 = 新 TfrxMemoView(Band); 备忘录-> CreateUniqueName(); Memo->Text = "Hello FastReport!"; 备注->高度 = 20;  // 此对象将根据带的宽度进行拉伸  备注->对齐 = baWidth;  // 添加主数据带  DataBand = new TfrxMasterData(Page); DataBand->CreateUniqueName(); 数据带->数据集 = frxDBDataset1;  // 顶部坐标应大于先前添加的带的顶部 + 高度 数据带->顶部 = 100; 数据带->高度 = 20;  // 在主数据上添加一个对象  备忘录 = 新 TfrxMemoView(DataBand); 备忘录-> CreateUniqueName();  // 连接数据  备忘录->数据集 = frxDBDataset1; Memo->DataField = "CustNo"; 备忘录->SetBounds(0, 0, 100, 20);  // 将文本调整到右侧对象的边距  备忘录->HAlign = haRight;  // 显示报告  frxReport1->ShowReport(true);

让我们解释一些细节。

必须在报告中使用的所有数据源都必须添加到数据源列表中。在我们的情况下,这是使用

frxReport1.DataSets.Add(frxDBDataSet1)

行,否则,报告将。

对于将内部数据集插入 TfrxADOTable 到报表中,“数据”页面是必需的。外部数据集可以放置在“数据”页面上。

Page.SetDefaults 无需调用,因为在这种情况下页面将具有 4 格式,边距为 0 毫米。SetDefaults 设置为 10 毫米边距,并采用打印机默认具有的页面尺寸和页面页面方式。

在页面上添加区时,应确保它们不会重叠在一起。有多少设置度坐标图表顶部。修改度标无用处,带上总是有的其所在页面的宽度(如果是带,则不是您的正确应设置左和宽度属性)。注意是,乐队在页面上的顺序位置非常重要。总是以与应该设计者相同的方式定位乐队。

对象的坐标和大小以像素为单位设置。因为Left,顶部,宽度,和高度所有对象的属性有展型,你可以潜在非潜在值。定义了以下常量,用于将像素转换为厘米和英寸:

fr01cm = 3.77953; fr1cm = 37.7953; fr01in = 9.6; fr1in = 96;

例如,可以将带子的高度设置为 5 毫米,如下所示:

Band.Height := fr01cm * 5;  Band.Height := fr1cm * 0.5; 

如果您对FastReport的感兴趣,欢迎加入QQ的FastReport交流群:702295239

还想要更多吗可以点击【FastReport 报表2020最新资源盘点】寻找需要的教程资源。换上FastReport .NET正在网都火热中销售!在线订购惠享超低绑定。>>查看价格详情

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月17日
下一篇 2021年3月17日

相关推荐

发表回复

登录后才能评论