在报表控件 FastReport .NET 中使用 PageCreate 事件

news2024/11/29 6:24:38

FastReport Business Graphics .NET,是一款基于fastreport报表开发控件的商业图形库,借助 FastReport 商业图形库,您可以可视化不同的分层数据,构建业务图表以进行进一步分析和决策。利用数据呈现领域专家针对 .NET 7、.NET Core、Blazor、ASP.NET、MVC、Windows Forms 和 Mono 提供的完整的产品

FastReport .NET 是适用于.NET Core 3,ASP.NET,MVC和Windows窗体的全功能报告库。使用FastReport .NET,您可以创建独立于应用程序的.NET报告。

    FastReport .net下载(qun:278631305)icon-default.png?t=N7T8https://www.evget.com/product/1861/download

新事件 PageCreate 在 FastReport .NET 引擎中创建新页面时发生。在此阶段,您可以更改页面的属性。 StartPage、FinishPage 和 ManualBuild 等其他事件在构建页面模板开始/结束之前触发。

例如,您可以在横向和纵向页面方向之间交替。或者,借助此事件,您可以创建一个单独的数据源,其中包含有关 ExportAlias 或其他页面属性的信息。在事件执行过程中,您可以设置参数,并在下一页的开头迭代数据源。

以下示例描述了使用 PageCreate 事件定义 ExportAlias 的修改后的演示报告。

<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" TextQuality="Regular" ReportInfo.Description="Demonstrates a group report. To create it:&#13;&#10;- go to "Report|Configure Bands..." menu;&#13;&#10;- press "Add" button and add a group header (this will add a data band and a group footer as well);&#13;&#10;- return to the report page, doubleclick the group header to show its editor." ReportInfo.Created="01/17/2008 04:31:41" ReportInfo.Modified="03/13/2024 17:32:59" ReportInfo.CreatorVersion="1.0.0.0">
<ScriptText>
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
using System.Data;
using FastReport;
using FastReport.Data;
using FastReport.Dialog;
using FastReport.Barcode;
using FastReport.Table;
using FastReport.Utils;

namespace FastReport
{
public class ReportScript
{
private void Page1_CreatePage(object sender, EventArgs e)
{
if(Data1.DataSource.RowCount == 0)
Data1.InitDataSource();
Page1.ExportAlias = Data1.DataSource["ProductName"].ToString().Substring(0,1);
}
}
}
</ScriptText>
<Styles>
<Style Name="EvenRows" Fill.Color="OldLace" Font="Arial, 10pt"/>
</Styles>
<Dictionary>
<TableDataSource Name="Products" ReferenceName="NorthWind.Products" DataType="System.Int32" Enabled="true">
<Column Name="ProductID" DataType="System.Int32"/>
<Column Name="ProductName" DataType="System.String"/>
<Column Name="SupplierID" DataType="System.Int32"/>
<Column Name="CategoryID" DataType="System.Int32"/>
<Column Name="QuantityPerUnit" DataType="System.String"/>
<Column Name="UnitPrice" DataType="System.Decimal"/>
<Column Name="UnitsInStock" DataType="System.Int16"/>
<Column Name="UnitsOnOrder" DataType="System.Int16"/>
<Column Name="ReorderLevel" DataType="System.Int16"/>
<Column Name="Discontinued" DataType="System.Boolean" BindableControl="CheckBox"/>
<Column Name="EAN13" DataType="System.String"/>
</TableDataSource>
<Total Name="TotalProducts" TotalType="Count" Evaluator="Data1" PrintOn="GroupFooter1"/>
</Dictionary>
<ReportPage Name="Page1" Watermark.Font="Arial, 60pt" CreatePageEvent="Page1_CreatePage">
<ReportTitleBand Name="ReportTitle1" Width="718.2" Height="103.95" CanGrow="true">
<TextObject Name="Text1" Top="56.7" Width="718.2" Height="47.25" Text="ALPHABETICAL PRODUCT LIST" HorzAlign="Center" VertAlign="Center" Font="Tahoma, 14pt, style=Bold"/>
<TextObject Name="Text11" Top="28.35" Width="718.2" Height="28.35" Anchor="Top, Left, Right" Fill.Color="WhiteSmoke" CanGrow="true" CanShrink="true" Text="[Report.ReportInfo.Description]&#13;&#10;" Padding="4, 4, 4, 4" Font="Tahoma, 8pt"/>
<TextObject Name="Text18" Width="718.2" Height="28.35" Anchor="Top, Left, Right" Fill.Color="WhiteSmoke" Cursor="Hand" Hyperlink.Value="http://fast.report/cda2a" Hyperlink.OpenLinkInNewTab="true" Text="Learn how to build this report on the Fast Reports Academy channel" VertAlign="Center" Font="Tahoma, 10pt, style=Bold, Underline" TextFill.Color="Blue"/>
</ReportTitleBand>
<GroupHeaderBand Name="GroupHeader1" Top="107.15" Width="718.2" Height="37.8" StartNewPage="true" KeepWithData="true" Condition="[Products.ProductName].Substring(0,1)" SortOrder="None">
<TextObject Name="Text7" Left="9.45" Width="699.3" Height="37.8" Border.Lines="All" Border.Color="LightSkyBlue" Fill="LinearGradient" Fill.StartColor="LightSkyBlue" Fill.EndColor="AliceBlue" Fill.Angle="90" Fill.Focus="0.42" Fill.Contrast="1" Text="[[Products.ProductName].Substring(0,1)]" Padding="5, 0, 0, 0" VertAlign="Center" Font="Tahoma, 12pt, style=Bold"/>
<DataBand Name="Data1" Top="148.15" Width="718.2" Height="18.9" DataSource="Products" KeepTogether="true">
<TextObject Name="Text2" Left="9.45" Width="604.8" Height="18.9" Border.Lines="Left" Border.Color="LightSkyBlue" Text="[Products.ProductName]" VertAlign="Center" Font="Tahoma, 8pt">
<Highlight>
<Condition Expression="[Row#] % 2 == 0" Fill.Color="AliceBlue" TextFill.Color="Black" Font="Arial, 10pt" ApplyFill="true" ApplyTextFill="false"/>
</Highlight>
</TextObject>
<TextObject Name="Text4" Left="614.25" Width="94.5" Height="18.9" Border.Lines="Right" Border.Color="LightSkyBlue" Text="[Products.UnitPrice]" Format="Currency" Format.UseLocale="true" Format.DecimalDigits="2" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt">
<Highlight>
<Condition Expression="[Row#] % 2 == 0" Fill.Color="AliceBlue" TextFill.Color="Black" Font="Arial, 10pt" ApplyFill="true" ApplyTextFill="false"/>
</Highlight>
</TextObject>
<Sort>
<Sort Expression="[Products.ProductName]"/>
</Sort>
</DataBand>
<GroupFooterBand Name="GroupFooter1" Top="170.25" Width="718.2" Height="47.25" KeepWithData="true">
<TextObject Name="Text8" Left="9.45" Width="699.3" Height="18.9" Border.Lines="Left, Right, Bottom" Border.Color="LightSkyBlue" Text="Total products: [TotalProducts]" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt, style=Bold"/>
</GroupFooterBand>
</GroupHeaderBand>
<PageFooterBand Name="PageFooter1" Top="220.7" Width="718.2" Height="28.35" Fill.Color="WhiteSmoke">
<TextObject Name="Text9" Left="614.25" Width="94.5" Height="28.35" Text="[PageN]" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt"/>
<TextObject Name="Text12" Left="9.45" Width="217.35" Height="28.35" Cursor="Hand" Hyperlink.Value="https://www.fast-report.com/en/product/fast-report-net/" Text="Generated by FastReport .NET" VertAlign="Center" Font="Tahoma, 8pt, style=Underline" TextFill.Color="Blue"/>
</PageFooterBand>
</ReportPage>
</Report>

将示例中的报表导出到 Excel 2007 的结果:

导出完成的报告的示例

注意 1.调用新事件后,Engine.CurPage 会增加,并且由于 CurPage 是页面的索引,因此在创建前两个页面时,其值为 0。因此,我们建议在使用新事件时在报告脚本中使用单独的页面计数器。

注意 2.当将 Visible 属性更改为 false 时,页面的进一步构建将停止。

借助新属性,您可以移动到新的数据记录行并在添加新页面时修改页面属性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1603272.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文阅读-Federated-Unlearning-With-Momentum-Degradation

论文阅读-Federated Unlearning With Momentum Degradation 联邦忘却与动量退化 Yian Zhao IEEE Internet of Things Journal 2023 年 10 月 2 日 CCF-C momentum degradation-MoDe 动量退化 memory guidance-记忆引导 knowledge erasure-知识擦除 Deep-learning neural n…

【记录】Python|Selenium 下载 PDF 不预览不弹窗(2024年)

版本&#xff1a; Chrome 124Python 12Selenium 4.19.0 版本与我有差异不要紧&#xff0c;只要别差异太大比如 Chrome 用 57 之前的版本了&#xff0c;就可以看本文。 如果你从前完全没使用过、没安装过Selenium&#xff0c;可以参考这篇博客《【记录】Python3&#xff5c;Sele…

搭建Zookeeper完全分布式集群(CentOS 9 )

ZooKeeper是一个开源的分布式协调服务&#xff0c;它为分布式应用提供了高效且可靠的分布式协调服务&#xff0c;并且是分布式应用保证数据一致性的解决方案。该项目由雅虎公司创建&#xff0c;是Google Chubby的开源实现。 分布式应用可以基于ZooKeeper实现诸如数据发布/订阅…

UE5 C++ 射线检测

一.声明四个变量 FVector StartLocation;FVector ForwardVector;FVector EndLocation;FHitResult HitResult;二.起点从摄像机&#xff0c;重点为摄像机前9999m。射线检测 使用LineTraceSingleByChannel 射线直线通道检测&#xff0c;所以 void AMyCharacter::Tick(float Delt…

c++ qt6.5 打包sqlite组件无法使用,尽然 也需要dll支持!这和开发php 有什么区别!

运行 程序会默认使用当前所在文件夹中的 dll 文件&#xff0c;若文件不存在&#xff0c;会使用系统环境变量路径中的文件&#xff1b;又或者是需要在程序源代码中明确指定使用的 dll 的路径。由于我安装 Qt 时将相关 dll 文件路径都添加到了系统环境变量中&#xff0c;所以即使…

Hbase的shell命令(详细)

一、help 1.help 显示命名的分组情况 2.help 命令名称 查看命令的具体使用&#xff0c;包括命令的作用和用法。 举例&#xff1a;help list 二、general 组&#xff08;普通命令组&#xff09; 命令 描述 …

设计循环队列(队列oj)

1.设计循环队列 设计你的循环队列实现。 循环队列是一种线性数据结构&#xff0c;其操作表现基于 FIFO&#xff08;先进先出&#xff09;原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。…

高版本Android studio 使用Markdown无法预览(已解决)

目录 概述 解决方法 概述 本人升级Android studio 当前版本为Android Studio Jellyfish | 2023.3.1 RC 2导致Markdown无法预览。 我尝试了很多网上的方法都无法Markdown解决预览问题&#xff0c;包括升级插件、安装各种和Markdown相关的插件及使用“Choose Boot Java Runtim…

CentOS系统上部署Docker,mysql,nginx

CentOS7系统上部署Docker&#xff0c;mysql&#xff0c;nginx 未完&#xff0c;持续更新中 更新软件包索引&#xff1a; 首先&#xff0c;确保你的CentOS系统是最新的。你可以通过运行以下命令来更新你的系统&#xff1a; yum update安装Docker&#xff1a; CentOS的软件仓…

十大开源机器人 智能体

1- Poppy 网址 https://www.poppy-project.org/en/ 2- Nao 网址:https://www.aldebaran.com/en/nao 3- iCub 网址: https://icub.iit.it/

蓝桥杯2024年第十五届省赛真题-R 格式

找到规律后如下&#xff0c;只需要用高精度加法和四舍五入&#xff08;本质也是高精度加法就能做&#xff09;&#xff0c;如果没有找到规律&#xff0c;就得自己写高精度乘法和加法&#xff0c;不熟练很容易错。 //#include<bits/stdc.h> #include<iostream> #i…

【UE5.1】使用MySQL and MariaDB Integration插件——(3)表格形式显示数据

在上一篇&#xff08;【UE5.1】使用MySQL and MariaDB Integration插件——&#xff08;2&#xff09;查询&#xff09;基础上继续实现以表格形式显示查询到的数据的功能 效果 步骤 1. 在“WBP_Query”中将多行文本框替换未网格面板控件&#xff0c;该控件可以用表格形式布局…

论文笔记:Are Human-generated Demonstrations Necessary for In-context Learning?

iclr 2024 reviewer 评分 6668 1 intro 大型语言模型&#xff08;LLMs&#xff09;已显示出在上下文中学习的能力 给定几个带注释的示例作为演示&#xff0c;LLMs 能够为新的测试输入生成输出然而&#xff0c;现行的上下文学习&#xff08;ICL&#xff09;范式仍存在以下明显…

1 回归:锂电池温度预测top2 代码部分(一) Tabnet

2024 iFLYTEK A.I.开发者大赛-讯飞开放平台 TabNet&#xff1a; 模型也是我在这个比赛一个意外收获&#xff0c;这个模型在比赛之中可用。但是需要GPU资源&#xff0c;否则运行真的是太慢了。后面针对这个模型我会写出如何使用的方法策略。 比赛结束后有与其他两位选手聊天&am…

YOLOv9改进策略 | 损失函数篇 | EIoU、SIoU、WIoU、DIoU、FocusIoU等二十余种损失函数

一、本文介绍 这篇文章介绍了YOLOv9的重大改进&#xff0c;特别是在损失函数方面的创新。它不仅包括了多种IoU损失函数的改进和变体&#xff0c;如SIoU、WIoU、GIoU、DIoU、EIOU、CIoU&#xff0c;还融合了“Focus”思想&#xff0c;创造了一系列新的损失函数。这些组合形式的…

前端请求发送成功,后端收到null

1、dishId为64&#xff0c;有数据 2、但是后端调试接不到数据&#xff0c;为null 3、形参部分缺少RequestBody接收JSON数据&#xff0c;加上即可

C++修炼之路之STL_stack,queue和容器适配器

目录 前言 一&#xff1a;SLT中stack和queue的基本使用 1.在官网中对stack和queue的简单介绍 2.数据结构中栈和队列的基本知识和操作 3. STL中stack的接口函数及使用 4.STL中queue的接口函数及使用 二&#xff1a;容器适配器Container 三&#xff1a;使用容器适配器…

浏览器工作原理与实践--安全沙箱:页面和系统之间的隔离墙

前面三篇文章我们主要围绕同源策略介绍了Web页面安全的相关内容&#xff0c;那今天我们把视野向外延伸&#xff0c;来聊聊页面安全和操作系统安全之间的关系。 在《仅仅打开了1个页面&#xff0c;为什么有4个进程&#xff1f;》那篇文章中&#xff0c;我们分析了浏览器架构的发…

第一篇【传奇开心果系列】我和AI面对面聊编程:深度比较PyQt5和tkinter.ttk

传奇开心果系列博文 系列博文目录我和AI面对面聊编程系列 博文目录前言一、今天我们面对广大读者选择PyQt5和tkinter.ttk做比较这个话题目的是什么&#xff1f;二、举一个最简单的pyqt5信号和插槽的例子三、这和tkinter的点击事件有什么区别&#xff1f;四、如何选择&#xff1…

深澜计费管理系统 /demo/proxy存在任意文件读取漏洞

声明&#xff1a; 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 简介 深澜计费管理系统是一款用于网络设备计费管理的软件…