报表生成器FastReport .Net用户指南:关于脚本(下)

FastReport的报表生成器(无论VCL平台还是.NET平台),跨平台的多语言脚本引擎FastScript,桌面OLAP FastCube,如今都被世界各地的开发者所认可,这些名字被等价于“速度”、“可靠”和“品质”,在美国,欧洲和非洲不同国家均设有办事处。FastReports网站有10种不同语言的介绍,FastReports报表拥有40种语言的本地化的信息。

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。 阅读报表生成器FastReport .Net用户指南:关于脚本(上)

FastReport.NET官方版下载(qun:585577353)icon-default.png?t=N7T8https://www.evget.com/product/1861/download

报告和引擎对象

除了报告中包含的对象外,脚本中还定义了两个变量:报告和引擎。

报告变量指的是当前的报告。在下面的列表中,列出了报告对象的方法:

MethodDescription
object Calc(string expression)计算表达式并返回值。首次调用此方法时,表达式将被编译,这需要一些时间。
object GetColumnValue(string complexName)返回数据列的值。列名必须以 "DataSource.Column "形式显示。如果列的值为空,则默认将其转换为一个值(0、空字符串、false)。
object GetColumnValueNullable(string complexName)返回数据列的值。与前一个方法相反,它不会转换为默认值,也可能为空。
Parameter GetParameter(string complexName)返回具有指定名称的报告参数。在引用嵌套参数时,名称可以是复合的:"MainParam.NestedParam"。
object GetParameterValue(string complexName)返回具有指定名称的报告参数的值。
void SetParameterValue(string complexName, object value)设置指定名称的报告参数值。
object GetVariableValue(string complexName)返回系统变量的值,例如 "Date"。
object GetTotalValue(string name)按名称返回 "Data"窗口中定义的总计值。
DataSourceBase GetDataSource(string alias)

按名称返回报表中定义的数据源。

引擎对象是一个控制报告创建的引擎。通过使用引擎的方法和属性,可以管理在页面上放置波段的过程。您可以使用引擎对象的以下属性:

PropertyDescription
float CurX当前 X 轴坐标。可以为该属性赋值,以便移动打印对象。
float CurY当前在 Y 轴上的打印位置。可以为该属性赋值,以移动打印对象。
int CurColumn多栏报表中当前列的编号。第一列的编号为 0
int CurPage打印页面的编号。该值可从系统变量 "Page "中获取。
float PageWidth页面宽度减去左右页边距。
float PageHeight页面高度减去上下页边距。
float PageFooterHeight页面页脚(及其所有子带)的高度
float ColumnFooterHeight栏脚(及其所有子带)的高度。
float FreeSpace页面可用空间的大小。
bool FirstPass如果正在执行第一次(或唯一一次)报告传递,则返回 true。可通过 Report.DoublePass 属性获取传递次数。
bool FinalPass如果正在执行最后一次(或唯一一次)报告传递,则返回 true。

在下图中,你可以看到上面列出的一些属性的含义。 

fastreport

Engine.PageWidth 和 Engine.PageHeight 属性决定打印区域的大小,几乎总是小于页面的实际大小。打印区域的大小由页边距决定,页边距由 LeftMargin、TopMargin、RightMargin 和 BottomMargin 页面属性给出。

Engine.FreeSpace 属性决定页面上可用空间的高度。如果页面上有 ""Report footer" "带,则在计算 FreeSpace 时会考虑其高度。请注意,打印页边框后,可用空间会减少。

如何形成准备好的报告页面?

FastReport 引擎在页面上显示条带,直到有足够的空间进行条带输出。当没有可用空间时,将打印 "报告页脚 "条带并形成新的空页。显示条带从当前位置开始,当前位置由 X 和 Y 坐标决定。该位置由 Engine.CurX 和 Engine.CurY 属性重新调整。打印带状图后,CurY 会自动按打印带状图的高度增加。打印多栏报表时,CurX 的位置会发生变化。

Engine.CurX 和 Engine.CurY 属性不仅可用于读取,也可用于写入。这意味着您可以通过使用一个合适的事件来手动移动条带。使用这些属性的示例请参见 "示例 "部分。

引擎对象中定义了以下方法:

MethodDescription
void AddOutline(string text)在报告大纲中添加元素(请参阅 "交互式报告 "章节),并将当前位置设置为添加的元素。
void OutlineRoot()设置大纲根部的当前位置。
void OutlineUp()将当前位置移动到更高层次的大纲元素上。
void AddBookmark(string name)添加书签(请参阅 "交互式报告 "章节)
int GetBookmarkPage(string name)返回书签所在页码。
void StartNewPage()开始一个新页面。如果报表是多栏报表,则开始新的一栏。

通过使用 AddOutline、OutlineRoot 和 OutlineUp 方法,可以手动创建报告大纲。通常,这都是借助 OutlineExpression 属性自动完成的,每个波段和报表页面都有 OutlineExpression 属性。

AddOutline 方法为当前大纲元素添加一个子元素,并使其成为当前元素。当前的报告页面和页面上的当前位置都与新元素相关联。如果多次调用 AddOutline 方法,就会产生如下结构:

Item1 Item2 Item3

为了控制当前元素,有 OutlineUp 和 OutlineRoot 方法。第一个方法将指针移到位于更高层的元素上。因此,脚本:

Engine.AddOutline("Item1"); Engine.AddOutline("Item2"); Engine.AddOutline("Item3"); Engine.OutlineUp(); Engine.AddOutline("Item4");

将创建以下大纲:

Item1 Item2 Item3 Item4

OutlineRoot 方法会将当前元素移动到大纲的根部。例如,下面的脚本:

Engine.AddOutline("Item1"); Engine.AddOutline("Item2"); Engine.AddOutline("Item3"); Engine.OutlineRoot(); Engine.AddOutline("Item4");

将创建以下大纲:

Item1 Item2 Item3 Item4

引用系统变量

要引用系统变量,请使用报告对象的 GetVariableValue 方法:

DateTime date = (DateTime)Report.GetVariableValue("Date");

在 "Data "窗口中可以看到系统变量列表。您可以将变量拖入脚本中,FastReport 会自动创建用于引用变量的代码。

引用总值

要引用总值,请使用报告对象的 GetTotalValue 方法:

float sales = Report.GetTotalValue("TotalSales");

在 "Data "窗口中可以看到总数列表。从它,你可以拖动到脚本,在此 FastReport 代码自动引用总。

总计值具有 FastReport.Variant 类型。It can be directly in any expression, because the FastReport.Variant type is automatically converted to any type.例如

float tax = Report.GetTotalValue("TotalSales") * 0.2f;

在处理过程中,可以参考总值。通常情况下,总值在打印带子的那一刻就 "ready to use"。

引用报告参数

要引用报告参数,请使用报告对象的 GetParameterValue 方法:

int myParam = (int)Report.GetParameterValue("MyParameter");

参数可以嵌套。在这种情况下,请标出父参数的名称,并在句号后标出子参数的名称:

Report.GetParameterValue("ParentParameter.ChildParameter")

参数有明确的数据类型。它在参数的 DataType 属性中给出。在引用参数时必须考虑到这一点。您可以在"Data"窗口中看到参数列表。您可以将参数拖入脚本,FastReport 会自动创建用于引用参数的代码。

要更改参数值,请使用报告对象的 SetParameterValue 方法:

Report.SetParameterValue("MyParameter", 10);

本次关于 FastReport .Net 介绍就讲解到这里了,点击此处查看关于用户指南的更多内容。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CKA模拟题】查找集群中使用内存最高的node节点

题干 For this question, please set this context (In exam, diff cluster name) kubectl config use-context kubernetes-adminkubernetesFind the Node that consumes the most MEMORY in all cluster(currently we have single cluster). Then, store the result in the …

MySQL数据库的下载和安装以及命令行语法学习

MySQL数据库的下载和安装以及命令行语法学习 学习MYSQL,掌握住基础的SQL句型(创建数据库、查看数据库列表、数据增、删、改、查等操作类型) 首先要知道MySQL下载和安装方法: 提示:别嫌啰嗦,对于一个初识MY…

python智慧农业小程序flask-django-php-nodejs

当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统智慧农业采取了人工的管理方法,但这…

基于Python3的数据结构与算法 - 16 链表

目录 链表 1. 创建链表 2. 链表的插入和删除 3. 双链表 4. 链表总结 链表 链表是由一系列节点组成的元素集合。每个节点包含两部分,数据域item和指向下一个节点得指针next。通过节点之间的相互连接,最终串联成一个链表。 class Node:def __init…

vue key的bug

今天遇到一个bug,列表删除元素时,明明在外层设置了key,但是列表元素的状态居然复用了,找了好久原因,最后是key的取值问题,记录一下。 首先key可以取undefine,这个是不会报错的 然后项目的代码结…

通过 Socket 手动实现 HTTP 协议

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

社交媒体的未来:探讨Facebook的发展趋势

引言 在数字化时代,社交媒体已经成为人们日常生活中不可或缺的一部分。作为全球最大的社交媒体平台之一,Facebook一直在不断地追求创新,以满足用户日益增长的需求和适应科技发展的变革。本文将探讨Facebook在未来发展中可能面临的挑战和应对…

WM8978 —— 带扬声器驱动程序的立体声编解码器(2)

接前一篇文章:WM8978 —— 带扬声器驱动程序的立体声编解码器(1) 六、引脚详细说明 引脚(PIN)名称(NAME)类型(TYPE)描述(DESCRIPTION)1LIP模拟输入…

uniApp中使用小程序XR-Frame创建3D场景(1)环境搭建

1.XR-Frame简介 XR-Frame作为微信小程序官方推出的3D框架,是目前所有小程序平台中3D效果最好的一个,由于其本身针对微信小程序做了优化,在性能方面比其他第三方库都要高很多。 2.与Three.js的区别 做3D小程序的同学们对Three.js一定不陌生…

停止docker 容器并删除对应镜像

docker 容器相关命令 docker ps 查看当前系统正在运行的容器情况,返回信息分别为: 容器ID:CONTAINER ID 镜像名IMAGE NAMES 运行命令COMMAND 创建时间CREATED 状态STATUS 映射端口 PORTS docker ps |grep XXX 可以…

ssm项目(tomcat项目),定时任务(每天运行一次)相同时间多次重复运行job 的bug

目录标题 一、原因 一、原因 debug本地调试没有出现定时任务多次运行的bug,上传到服务器就出现多次运行的bug。(war的方式部署到tomcat) 一开始我以为是代码原因,或者是linux和win环境不同运行定时任务的方式不一样。 但是自己…

sentinel整合gateway实现服务限流

导入依赖: <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><dependency><groupId>com.alibaba.csp</groupId><…

数据结构:堆的创建和使用

上一期我们学习了树和二叉树的定义&#xff0c;其中我们了解到了两种特殊的二叉树&#xff1a;满二叉树和完全二叉树。 今天我们还要学习一种新的结构&#xff1a;堆 那这种结构和二叉树有什么联系呢&#xff1f;&#xff1f;&#xff1f; 通过观察我们可以发现&#xff0c;…

UE5 C++增强输入

一.创建charactor&#xff0c;并且包含增强输入相关的头文件 1.项目名.build.cs。添加模块“EnhancedInput”&#xff0c;方便找到头文件和映射的一些文件。 PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine&q…

塔楼VR火灾逃生应急安全教育突破了传统模式

城镇化的高速发展&#xff0c;给消防安全带来了严峻的挑战&#xff0c;尤其是人员密集的办公场所&#xff0c;如何预防火灾发生&#xff0c;学习火灾成因&#xff0c;减少火灾发生避免不必要的损失&#xff0c;成为安全应急科普的重中之重。 通过模拟真实的办公场所火灾场景&am…

中国贸易金融跨行交易区块链平台CTFU、区块链福费廷交易平台BCFT、中国人民银行贸易金融区块链平台CTFP、银行函证区块链服务平台BPBC

中国人民银行贸易金融区块链平台CTFP介绍 贸易金融的发展概况及存在的问题 1.1 贸易金融的概况 贸易金融是指商业银行在贸易双方债权债务关系的基础上&#xff0c;为国内或跨国的商品和服务贸易提供的贯穿贸易活动整个价值链、全程全面性的综合金融服务。伴随全球化的进程&a…

【Mock|JS】Mock的get传参+获取参数信息

mockjs的get传参 前端请求 const { data } await axios("/video/childcomments", {params: {sort: 1,start: 2,count: 5,childCount: 6,commenIndex: 0,},});后端获取参数 使用正则匹配url /*** # 根据url获取query参数* param {Url} urlStr get请求获取参数 eg:…

inputStream.avaliable()方法网络操作读取不全BUG

一、问题描述 公司有个需求&#xff0c;就是调用方&#xff08;我&#xff09;需要把pdf文件转为Base64字符串作为参数传递为被调用方&#xff0c;以下是大致转换过程&#xff1a; URL url new URL("http://xxxx.pdf");HttpURLConnection uc (HttpURLConnection) …

HTML(一)

一、网页 1.1 什么是网页 网站是指在因特网上根据一定的规则&#xff0c;使用 HTML 等制作的用于展示特定内容相关的网页集合。 网页是网站中的一“页”&#xff0c;通常是 HTML 格式的文件&#xff0c;它要通过浏览器来阅读。 网页是构成网站的基本元素&#xff0c;它通常由…

ByteMD - 掘金社区 MarkDown 编辑器的免费开源的版本,可以在 Vue / React / Svelte 中使用

各位元宵节快乐&#xff0c;今天推荐一款字节跳动旗下掘金社区官方出品的 Markdown 编辑器 JS 开发库。 ByteMD 是一个用于 web 开发的 Markdown 编辑器 JavaScript 库&#xff0c;是字节跳动&#xff08;也就是掘金社区&#xff09;出品的 Markdown 格式的富文本编辑器&#…