当前位置: 首页 > news >正文

报表生成器FastReport .Net用户指南:表达式(下)

在上一篇文章《报表生成器FastReport .Net用户指南:表达式(上)》中,我们已经介绍了表达式中的表达式编辑器引用报告对象使用 .Net 函数数据元素参考这四部分,接下来让我们继续介绍表达式中的:引用数据源引用总值参考报告参数

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

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

引用数据源

在引用数据源列时,使用以下格式:

[DataSource.Column]

例如,源名称与列名称之间用句号隔开:

[Employees.FirstName]

如果使用关系引用数据源,源名称可以是复合的。更多详情,请参阅 "数据 "部分。例如,可以这样引用相关数据源列:

[Products.Categories.CategoryName]

让我们看看下面这个在表达式中使用列的示例:

[Employees.FirstName] + " " + [Employees.LastName]

这里需要注意的是:每一列都有明确的数据类型,该类型在 "DataType(数据类型)"属性中设置(如果事先在 "Data(数据)"窗口中选择了数据列,则可以在 "Properties(属性)"窗口中看到)。表达式中如何使用列取决于列的类型。例如,在上述示例中,名和姓这两列都是字符串类型,因此可以这样使用。在下面的示例中,我们将尝试使用数值类型的 "Employees.Age "列,这将导致错误:

[Employees.FirstName] + " " + [Employees.Age]

出现错误的原因是,字符串和数字不能混用。为此,您需要将数字转换为字符串:

[Employees.FirstName] + " " + [Employees.Age].ToString()

在本例中,我们把 "Employees.Age "列当作一个整数变量来引用。事实也是如此。我们知道,所有表达式都是经过编译的。从编译器的角度来看,所有非标准的东西(如引用数据列)都会被转换成另一种类型,而这种类型是编译器可以理解的。因此,最后一个表达式将被转换成下面的形式:

(string)(Report.GetColumnValue("Employees.FirstName")) + " " +
(int)(Report.GetColumnValue("Employees.Age")).ToString()

如图所示,FastReport 按以下方式更改对数据列的引用:
[Employees.FirstName] --> (string)(Report.GetColumnValue("Employees.FirstName"))

[Employees.FirstName] --> (string)(Report.GetColumnValue("Employees.FirstName"))[Employees.Age] --> (int)(Report.GetColumnValue("Employees.Age"))

也就是说,我们可以在表达式中将数据列当作具有确定类型的变量来使用。例如,下面的表达式将返回雇员姓名的第一个符号:

[Employees.FirstName].Substring(0, 1)
引用总值

要引用一个总值,请使用其名称:

[TotalSales]

FastReport 将引用总数转换为以下形式:

Report.GetTotalValue("TotalSales")

正如您所看到的,这里没有使用数据类型。之所以如此,是因为总值属于 FastReport.Variant 类型。它可以在任何表达式中直接使用,因为它会自动转换为任何类型。例如:

[TotalSales] * 0.2f
参考报告参数

要用报告参数,应使用其名称:

[Parameter1]

参数可以嵌套。在这种情况下,父参数名和子参数名都应使用以下形式:

[ParentParameter.ChildParameter]

参数有明确的数据类型。它在参数的 "DataType "属性中设置。在表达式中的使用方式取决于参数的数据类型。

FastReport 将对报告参数的引用转换为以下方式:

((string)Report.GetParameterValue("Parameter1"))

相关文章:

报表生成器FastReport .Net用户指南:表达式(下)

在上一篇文章《报表生成器FastReport .Net用户指南:表达式(上)》中,我们已经介绍了表达式中的表达式编辑器、引用报告对象、使用 .Net 函数、数据元素参考这四部分,接下来让我们继续介绍表达式中的:引用数据…...

JavaScript极速入门(1)

初识JavaScript JavaScript是什么 JavaScript(简称JS),是一个脚本语言,解释型或者即时编译型语言.虽然它是作为开发Web页面的脚本语言而著名,但是也应用到了很多非浏览器的环境中. 看似这门语言叫JavaScript,其实在最初发明之初,这门语言的名字其实是在蹭Java的热度,实际上和…...

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:浮层)

设置组件的遮罩文本。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 overlay overlay(value: string | CustomBuilder, options?: { align?: Alignment; offset?: { x?: number; y?: number } })…...

Meta AI移动设备上部署LLM的新框架MobileLLM

Meta AI 研究团队推出的 MobileLLM 标志着大语言模型(LLMs)朝着模拟人类理解和生成自然语言迈出了革命性的一步。LLMs 在处理和分析大量数据集方面的能力已经显著影响了自动化客户服务、语言翻译和内容创作等多个领域。然而,由于传统 LLMs 在计算和存储资源方面的需求庞大,…...

使用Tesseract-OCR对PDF等图片文件进行文字识别

安装 用 Homebrew 来安装 Tesseract brew install tesseract 2. 完成 tessearact 的安装后,还需要安装中文数据包,执行以下两个操作, brew info tesseract 执行这个指令的目的,是找到 Homebrew 把 tesseract 安装在文件夹内&am…...

部署YOLOv8模型的实用常见场景

可以的话,GitHub上点个小心心,翻不了墙的xdm,csdn也可以点个赞,谢谢啦 车流量检测(开源代码github): test3 meiqisheng/YOLOv8-DeepSORT-Object-Tracking (github.com) 车牌检测&#xff0…...

SpringBoot缓存

目录 缓存支持 缓存集成 redis缓存集成 缓存支持 Spring 框架只提供抽象,不提供具体的缓存存储,底层需要依赖第三方存储组件,如果当前应用没有注册CacheManager 或者 CacheResolver 实例,Spring Boot 会按以下缓存组件的顺序来…...

STC89C52串口通信详解

目录 前言 一.通信基本原理 1.1串行通信与并行通信 1.2同步通信和异步通信 1.2.1异步通信 1.2.2同步通信 1.3单工、半双工与全双工通信 1.4通信速率 二.串口通信简介 2.1接口标准 2.2串口内部结构 2.3串口相关寄存器 三.串口工作方式 四.波特率计算 五.串口初始化步骤 六.实验…...

基础算法|线性结构|前缀和学习

参考文章: https://blog.csdn.net/weixin_72060925/article/details/127835303 二维数组的前缀和练习: 这里要注意的地方就是求子矩阵和的时候,这里要减去的是x1-1,y1-1的部分,因为所求的目标值是包括边界的 //前缀…...

设计模式之模版方法实践

模版方法实践案例 实践之前还是先了解一下模版方法的定义 定义 模板方法模式是一种行为设计模式,它定义了一个骨架,并允许子类在不改变结构的情况下重写的特定步骤。模板方法模式通过在父类中定义一个模板方法,其中包含了主要步骤&#xf…...

sql中COALESCE函数详解

在SQL中,COALESCE函数是一个非常有用的函数,用于从其参数列表中返回第一个非NULL值。如果所有给定的参数都是NULL,那么COALESCE函数将返回NULL。这个函数可以接受多个参数,使其在处理可能出现的NULL值时非常灵活和强大。 语法 C…...

rust-analyzer报错“Failed to spawn one or more proc-macro servers,....“怎么解决?

最近,在使用vscode测试rust代码时,遇到了一些问题。在经过反复折腾后,最终解决了问题,在此写下作为记录,以便于以后参考。 我遇到的报错内容是: Failed to spawn one or more proc-macro servers. cannot find proc-macro-srv, the workspace E:\100rust\temp is missin…...

Communications--9--一文读懂双机热备冗余原理

1、热备冗余管理 2、主备系状态判断 3、如何从冷备做到热备? 参见: 用软件实现热备冗余信号系统的安全切换...

可调恒定电流稳压器NSI50150ADT4G车规级LED驱动器 提供专业的汽车级照明解决方案

NSI50150ADT4G产品概述: NSI50150ADT4G可调恒定电流稳压器 (CCR) ,是一款简单、经济和耐用的器件,适用于为 LED 中的调节电流提供成本高效的方案(与恒定电流二极管 CCD 类似)。该 (CCR) 基于自偏置晶体管 (SBT) 技术&…...

Unity中使用代码动态修改URP管线下的标准材质是否透明

//修改为透明 material.SetFloat("_Surface",1.0f); material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); material.Set…...

关于制作Python游戏全过程(汇总1)

目录 前言: 1.plane_sprites模块: 1.1导入模块: 1.1.1pygame:一个用于创建游戏的Python库。 1.1.2random:Python标准库中的一个模块,用于生成随机数。 1.2定义事件代号: 1.2.1ENEMY_EVENT:自定义的敌机出场事件代号&#xf…...

独立站营销新纪元:AI与大数据塑造个性化体验的未来

随着全球互联网的深入发展和数字化转型的不断推进,作为品牌建设和市场营销的重要载体,独立站将迎来新的发展机遇。新技术的涌现,特别是人工智能和大数据等技术的广泛应用,为独立站带来了前所未有的机遇与挑战。本文Nox聚星将和大家…...

C语言项目实战——贪吃蛇

C语言实现贪吃蛇 前言一、 游戏背景二、游戏效果演示三、课程目标四、项目定位五、技术要点六、Win32 API介绍6.1 Win32 API6.2 控制台程序6.3 控制台屏幕上的坐标COORD6.4 GetStdHandle6.5 GetConsoleCursorInfo6.5.1 CONSOLE_CURSOR_INFO 6.6 SetConsoleCursorInfo6.7 SetCon…...

ArmSoM规划开发基于RK3576的开发套件

ArmSoM正计划推出一款新的产品,这款产品将采用强大的RK3576芯片。 本文将为您介绍我们的新产品搭载的RK3576性能参数,以及它如何为您提供卓越的性能和功能。 RK3576处理器 RK3576处理器是一款强大的处理器,具备出色的性能和多样化的功能&a…...

视频剪辑如何提取伴奏?短视频剪辑有妙方

在多媒体处理中,音频的编辑和处理是不可或缺的一部分。很多时候,我们可能想要从一段视频或音频中提取伴奏,或者实现人声的分离,以便于进一步制作或混音。以下,将为您介绍一种简单而有效的方法来实现这一目标。 一、提取…...

手把手教你用QEMU+GDB调试RISC-V中断:以蜂鸟E200 ECLIC为例

从零构建RISC-V中断调试实战:基于QEMU与蜂鸟E200 ECLIC的深度解析 第一次在QEMU中成功捕获到中断向量跳转时,GDB窗口里那个闪烁的mtvec地址让我兴奋得差点打翻咖啡——这比看任何理论文档都直观十倍。作为从ARM Cortex-M转型RISC-V的嵌入式开发者&#x…...

CUA Computer SDK:虚拟机自动化的终极解决方案,让AI代理掌控桌面级交互

CUA Computer SDK:虚拟机自动化的终极解决方案,让AI代理掌控桌面级交互 【免费下载链接】cua Create and run high-performance macOS and Linux VMs on Apple Silicon, with built-in support for AI agents. 项目地址: https://gitcode.com/GitHub_T…...

OpenClaw数据可视化:GLM-4.7-Flash分析结果自动图表生成

OpenClaw数据可视化:GLM-4.7-Flash分析结果自动图表生成 1. 为什么需要自动化数据可视化 作为一名经常需要处理数据的开发者,我发现自己80%的时间都花在了数据清洗和图表调整上。每次分析新数据集时,都要重复这些步骤:写Python脚…...

Stable Diffusion Lora训练避坑指南:为什么你的模型总是‘丑’?

Stable Diffusion LoRA训练实战:从“翻车”到精通的避坑手册 每次看到别人分享的精致LoRA模型,再看看自己训练出的"克苏鲁风格"作品,是不是有种砸键盘的冲动?别急着放弃——这可能是你训练流程中几个关键环节出了问题。…...

企业如何防御LockBit 3.0?从IOC到实战检测规则编写指南

企业级防御实战:LockBit 3.0勒索病毒全维度对抗指南 1. 勒索病毒威胁态势与企业防御挑战 2023年全球网络安全报告显示,勒索软件攻击同比增长47%,其中LockBit系列占比高达28%。不同于传统恶意软件,LockBit 3.0采用模块化设计&#…...

TouchGal Galgame社区完整指南:打造你的二次元游戏乐园

TouchGal Galgame社区完整指南:打造你的二次元游戏乐园 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next TouchGal是一个专…...

BlueDot BME280库深度解析:嵌入式多传感器驱动实践

1. BlueDot BME280 库技术解析:面向嵌入式工程师的多传感器驱动实践指南BME280 是博世(Bosch)推出的高精度环境传感器,集成温度、相对湿度与气压三参数测量能力,广泛应用于气象站、IoT终端、无人机姿态补偿及室内环境监…...

Java大文件分片上传完整实现教程

解决网络不稳定、服务器内存压力和用户体验差等问题是大文件分片上传的必要性。1. 分片上传允许在网络中断后只重传失败分片,提高成功率;2. 减少服务器单次处理的数据量,减少内存和i/o压力;3. 支持断点续传和秒传功能,…...

【LaTeX】学术论文高效排版:从零搭建初稿模板

1. 为什么你需要LaTeX论文模板? 第一次写学术论文时,我像大多数人一样打开了Word。结果光是调整格式就花了三天——页码突然跑到封面中间、参考文献编号莫名其妙重置、公式和图片永远对不齐。直到导师扔给我一个.tex文件说"用这个"&#xff0c…...

洛雪音乐音源终极指南:5分钟解锁全网无损音乐资源

洛雪音乐音源终极指南:5分钟解锁全网无损音乐资源 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 洛雪音乐音源是专为洛雪音乐客户端设计的强大插件集合,能够帮助你轻松获取…...