报表生成器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.mzph.cn/news/761701.shtml

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

相关文章

【Android 内存优化】 native内存泄漏监控方案源码分析

文章目录 前言使用效果使用apiJNI的动态注册native方法动态注册 hook的实现android_dlopen_ext和dl_iterate_phdr naive监控的实现nativeGetLeakAllocs 总结 前言 Android的native泄漏怎么检测?下面通过研究开源项目KOOM来一探究竟。 使用效果 未触发泄漏前的日志…

spring cloud gateway k8s优雅启停

通过配置readiness探针和preStop hook,实现优雅启动和停止(滚动部署) 1. k8s工作负载配置 readinessProbe:httpGet:path: /datetimeport: 8080scheme: HTTPinitialDelaySeconds: 30timeoutSeconds: 1periodSeconds: 30successThreshold: 1fa…

The plain HTTP request was sent to HTTPS port

异常信息 原因 错误信息 “The plain HTTP request was sent to HTTPS port” 表明客户端尝试使用未加密的HTTP协议发送请求到一个配置为使用加密的HTTPS协议的端口。 解决方案 要解决这个问题,需要确保使用正确的协议和端口号进行请求。应该使用的HTTPS前缀。例如…

导入excel复杂校验加异常信息返回

1.导出实现类 package com.dst.steed.fulfillment.modules.business.resourceplan.serviceimport;import com.alibaba.excel.EasyExcelFactory; import com.dst.steed.common.domain.response.Response; import com.dst.steed.common.util.*; import com.dst.steed.fulfillmen…

Spring Cloud微服务Actuator和Vue

目录 前言一、引入Actuator依赖二、暴露Actuator端点1. 配置文件2. 监控端点 三、自定义健康检查自定义健康检查类 四、vue前端代码五、监控器的优势六、监控指标的可视化1. Grafana2. Prometheus 七、安全性考虑安全配置示例 八、总结 前言 随着微服务架构的流行,…

官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会

摘要:本文整理自阿里云开源大数据平台徐榜江 (雪尽),关于阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会,内容主要分为以下四部分: 1、Flink CDC 新仓库,新流程 2、Flink CDC 新定位,新玩法 3、Flin…

【嵌入式硬件】步进电机

1.步进电机简介 1.1步进电机基本原理 步进电机的英文是stepping motor。step的中文意思是行走、迈步。所以仅从字面上我们就可以得知,步进电机就是一步一步移动的电动机。说的官方一点儿,步进电机是一种将电脉冲信号转换成相应角位移或者线位移的电动机(直线电机)。下图为…

设计模式(十二):中介者模式(行为型模式)

Mediator,中介者模式:用一个中介对象封装一些列的对象交互。属于行为型模式 Facade,外观模式:为子系统中的一组接口提供一致的界面,facade 提供了一高层接口,这个接口使得子系统更容易使用。属于结构型模式…

灵境矩阵平台x百度---智能体(一)

什么是数据插件 大模型插件:大语言模型插件是随着大语言模型发展而诞生的全新插件。大语言模型插件的核心是Web API独立于大语言模型,插件开发过程不受大语言模型的约束,同时没有开发语言的限制,更加通用,只要WebAPI遵循RESTfuI相…

html5cssjs代码 034 自定义字体

html5&css&js代码 034 自定义字体 一、代码二、解释 这是一个带有自定义字体的网页,设置了页面背景颜色、文字颜色以及全局样式。它定义了三种自定义字体并通过font-face规则引入外部字体文件,并通过CSS类(.f1, .f2, .f3)…

Oracle AI Vector Search 支持使用 SQL 生成向量和计算向量相似度

Oracle AI Vector Search 支持使用 SQL 生成向量和计算向量相似度 0. 事情准备1. 使用 SQL 生成向量数据2. 使用 SQL 计算欧氏距离(Euclidean distance)3. 使用 SQL 计算余弦相似度(Cosine similarity)4. 使用 SQL 计算点积相似度 (Dot Product Similarity)5. 使用 SQL 计算曼哈…

第十二届蓝桥杯省赛CC++ 研究生组-路径

记录到每个结点的最短距离&#xff0c;以此为基础计算后续结点最优值 #include<iostream> #include<algorithm> using namespace std; typedef long long ll;ll gcd(int a, int b){if(!b) return a;return gcd(b, a % b); }int main(){ll dp[2022] {0};//dp[i]记…

如何打破SAST代码审计工具的局限性?

关键词&#xff1a;白盒测试&#xff1b;代码分析工具&#xff1b;代码扫描工具&#xff1b;静态代码检测工具&#xff1b; 在代码的世界里&#xff0c;安全问题如同潜伏的暗礁&#xff0c;随时可能让航行中的软件项目触礁沉没。SAST代码审计工具如同雷达一样&#xff0c;以其独…

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

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

docker入门(十)—— docker-compose详解

Docker Compose dockercompose官网&#xff1a;https://docs.docker.com/compose/ 什么是 docker compose Docker Compose 是用于定义和运行多容器应用程序的工具。 这是解锁简化和高效的开发和部署体验的关键。 Compose 简化了对整个应用程序堆栈的控制&#xff0c;让您能…

html js css如何使循环混播放视频时视频切换很平滑的过渡

1.html代码 <video id"video1" autoplay loop muted playsinline><source src"video1.mp4" type"video/mp4"> </video> <video id"video2" autoplay loop muted playsinline><source src"video2.mp4…

Chrome 114 带着侧边栏扩展来了

效果展示 manifest.json {"manifest_version": 3,"name": "ChatGPT学习","version": "0.0.2","description": "ChatGPT,GPT-4,Claude3,Midjourney,Stable Diffusion,AI,人工智能,AI","icons"…

全量知识系统 控制器-神经网络设计(设想及百度AI回复)

---备忘&#xff1a;权值、阈值和极值 在神经元的计算中&#xff0c;包括三种计算值&#xff1a;权值、阈值和极值。分别是为全量知识系统设计的三级神经网络中神经元不同层级的计算任务。其中权值 是全连接的性质&#xff0c;阈值是池化的性质&#xff0c;极值是卷积的性质。…

cocos 3.8开发 微信小游戏分包技巧压缩主包

Creator 版本&#xff1a; 3.8.2 目标平台&#xff1a;小游戏开发 压缩后 我不知道别人压缩几百kb是怎么做到的。不过哪个要钱。 我这个技巧不用花钱。 论坛有教程但是没有教详细怎么做。 开整&#xff01; 做一个空白的场景。然后写一个load脚本。load主场景。 从代码可…

数据结构知识总结

二叉树 满二叉树 特性 所有叶子结点都集中在二叉树的最下面一层上&#xff0c;而且结点总数为&#xff1a;2^n-1 (n为层数 / 高度&#xff09; 完全二叉树 特性 若设二叉树的高度为h&#xff0c;除第h层外&#xff0c;其他各层的节点数都达到最大个数&#xff0c;第h层有…