报表生成器FastReport .Net用户指南:带图表的报告(图表编辑器)

news2024/11/15 19:44:06

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

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

"Chart"对象包含许多可在图表编辑器中处理的设置。要调用编辑器,请双击 "Chart"对象:

fastreport

处理系列

 "Chart "对象可以包含一个或多个系列。系列列表显示在编辑器中:

fastreport

要添加新系列,请按 "Add... "按钮。您将看到 "Gallery "对话框:

fastreport

择需要的类别,然后选择 - 需要的系列类型。如果想将序列放在自己的图表区域中,请选中 "Add new chart area for this series "复选框。对于某些系列类型(如饼图、圆图、金融图、金字塔图),无论复选框状态如何,都会自动添加新的图表区域。

要删除序列,请按 "Delete "按钮。要更改序列顺序,请使用 "Up"和 "Down "按钮。

设置外观

使用图表编辑器,您可以设置每个图表元素的外观。所有属性(超过 100 个)分为几类。其中一些是 "Chart "对象特有的,而另一些则系列的一部分。

如果从系列列表中选择 "Chart "对象,则会看到以下属性页面:

fastreport

  • "Appearance" - 图表的边框和填充;
  • "Chart area" - 边框、填充、阴影;
  • "3D" - 3D 设置;
  • "Axes"- 设置轴的外观、标题、标签、网格、标记、自定义标签和条带;
  • "Legend" --图例样式、停靠、边框、填充、阴影和字体;
  • "Title"- 标题、停靠、边框、填充、阴影和字体的样式。

如果从系列列表中选择系列对象,则会看到以下属性页面:

fastreport

  • "Appearance"--针对所选系列类型的一些特定设置;
  • "Fill & border"--系列值的填充和边框;
  • "Labels"--系列标签。您可以选择标签类型、字体、颜色和填充;
  • "Markers"--系列标记。可以选择标记类型、颜色和边框。
连接图表和数据

您可以通过多种方式在图表中填充数据:

  • 使用数据源。为 "Chart "对象指明数据源,并将每个系列连接到数据列。
  • 每个系列使用固定。
  • 使用脚本为对象填充数据。

要将图表连接到数据源,请按照以下步骤操作:

  • 在系列列表中选择 "Chart "对象;
  • 切换到 "Data"选项卡;
  • 选择数据源:

fastreport

  • 设置数据筛选表达式。该过滤器将应用于所有图表系列;
  • 在系列列表中选择系列;
  • 切换到 "Data"选项卡;
  • 为每个系列值选择数据列。根据系列类型,它可能有两个或多个值。大多数系列类型都有两个值 - X 值和 Y 值:

fastreport

需要时,设置数据筛选表达式。该过滤器将只应用于当前系列;
在 "Color "控件中,您可以指明返回颜色值的数据列。
您也可以为系列提供值列表。在这种情况下,不需要数据连接。请在系列列表中选择一个系列,然后切换到 "Values "选项卡。在表中填入数值:

fastreport

数据排序

默认情况下,图表对象按自然顺序显示数据。您可以更改排序顺序;要更改排序顺序,请从系列列表中选择系列,然后切换到 "Dataprocessing "选项卡:

fastreport

您可以选择其中一种排序模式--不排序、按 X 值排序和按 Y 值排序。

数据分组

当序列中的数据包含多个相同的 X 值时,我们会遇到一个问题。例如,用于演示图表的 MatrixDemo 表中有以下数据:

NameYearMonhItemsSoldRevenue
Andrew Fuller2002121800
Andrew Fuller19991021900
Andrew Fuller19991122000
Andrew Fuller2000222100
Janet Leverling19991033000
Janet Leverling19991133100
Janet Leverling2000333200
...

如果我们尝试根据这些数据制作图表(例如,员工的销售额--将 X 值设置为 Name 列,Y 值设置为 ItemsSold 列),我们将得到以下错误结果:

fastreport

在这种情况下,我们需要将相同的雇员分组为一个值。为此,请在系列列表中选择系列,然后切换到 "Data processing"选项卡。选择分组类型--"X 值",并选择 "Sum "作为分组函数:

fastreport

所有相同的员工将被归类为一个值,他们的销售额将被汇总。您将看到以下结果:

fastreport

收集数据

该数据处理工具可将多个序列值合并为一个值。您可以选择以下算法之一:

AlgorithmDescription
TopN所有其他值都会被收集并显示为 "others "值(您可以为该值选择标签)。
BottomN如果未设置收集值的文本,则不显示该值。
Less than value收集小于指定值的系列值,并显示为 "others"值。
Less than percent收集小于指定百分比的系列值,并显示为 "others "值。
Greater than value大于指定值的系列值被收集并显示为 "others "值。
Greater than percent收集大于指定百分比的系列值,并显示为 "others "值。

若显示前 5 个值,可按以下方式设置系列:

fastreport

您将得到以下结果:

fastreport

Exploding the values

对于饼型序列,可以对某些值进行Explod处理。请在系列列表中选择系列,然后切换到 "Data processing "选项卡:

fastreport

您可以使用以下一种爆炸类型:最大值、最小值和特定值。如果选择后一种模式,则必须指定要爆炸的值。它可以是任何表达式(详见 "表达式 "章节)。例如,如果要explode Andrew Fuller's value,请使用以下表达式:

 
"Andrew Fuller"

您将得到以下结果:

fastreport

设置自动系列

您可以对图表进行设置,使其能够根据数据源中的数据自动创建新系列。要设置自动序列,请执行以下操作:

  • 创建一个序列并设置其属性。该系列将作为所有新系列的模板;
  • 选择"Chart" 对象并设置自动序列数据列。该列的值将是新系列的名称。如果还没有具有此类名称的系列,则将添加新系列。

让我们演示一下如何创建自动序列。我们将使用 MatrixDemo 数据表获取员工每年销售额的图表。一个序列代表一年。具体操作如下

  • 将图表连接到 MatrixDemo 数据源;
  • 创建一个序列并设置其数据:

fastreport

在 "Data processing "选项卡上,选中 "Group by X value "复选框。这是必要的,因为我们的数据源中有多个同名雇员;
在系列列表中选择图表,并在 "Data "选项卡上设置其自动系列列:

fastreport

  • 我们的系列值数量可能不同(因为有些员工在这一特定年份没有销售额)。要对齐序列值,请选中 "Align X values "复选框。

我们将得到以下结果:

fastreport

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

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

相关文章

自动化测试用例设计粒度

自动化测试用例的粒度指的是测试用例的细致程度,即每个测试用例检查的功能点的数量和范围。 通常,根据测试用例的粒度,可以被分为3种不同的层次,从更低层次的细粒度到更高层次的粗粒度。 第一种:单元测试 - 细粒度 …

性能测试之(六):JMeter 元件

元件(多个类似功能组件的容器) 组件:封装的方法,比如取样器中的发送请求的方法 一、常见的元件 1、取样器:发送请求2、逻辑处理:控制语句执行顺序3、前置处理器:在请求(取样器&…

Spark---RDD算子(单值类型Value)

文章目录 1.RDD算子介绍2.转换算子2.1 Value类型2.1.1 map2.1.2 mapPartitions2.1.3 mapPartitionsWithIndex2.1.4 flatMap2.1.5 glom2.1.6 groupBy2.1.7 filter2.1.8 sample2.1.9 distinct2.1.10 coalesce2.1.11 repartition2.1.12 sortBy 1.RDD算子介绍 RDD算子是用于对RDD进…

Spring上下文之support模块DefaultLifecycleProcessor

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+…

C++的头文件(.h文件)与实现文件(.cpp)应该怎么写比较规范?

C中有头文件(.h)文件和实现文件(.cpp)文件 但是头文件与实现文件具体写什么? 一、头文件的内容 #idndef #define … #endif作用:当头文件被多个其它文件引用时,内部的数据不会被多次定义而造成…

Web自动化测试框架总结

实施过了web系统的UI自动化,回顾梳理下,想到什么写什么,随时补充。 首先,自动化测试不是手动测试的替代品,是比较好的补充,而且不是占大比重的补充。 70%的测试工作集中在底层接口测试和单元测试&#xff0…

css实现纵向分列,中间间距相等

方法一&#xff1a;使用网格布局&#xff08;Grid Layout&#xff09; <!DOCTYPE html> <html> <head><style>.container {height: 100px;display: grid;grid-template-columns: 2fr 1fr 3fr; /* 自定义每一列的比例 *//* 将三个行都设置为平均分配剩…

UV打印机磁栅尺的安装

UV打印机磁栅尺的安装方法有以下几个注意事项&#xff1a; 1. 安装基面的选择&#xff1a;磁栅尺需要粘合在平滑的基面上&#xff0c;基面要足够平整且干净&#xff0c;不能有杂质或油污。 2. 粘合剂的选用&#xff1a;磁栅尺的粘合剂需要选用合适的胶水&#xff0c;最好是专门…

Canal+RabbitMQ实现MySQL数据同步至ClickHouse

ClickHouse作为一个被广泛使用OLAP分析引擎&#xff0c;在执行分析查询时的速度优势很好的弥补了MySQL的不足&#xff0c;但是如何将MySQL数据同步到ClickHouse就成了用户面临的第一个问题。本文利用Canal来实现ClickHouse实时同步MySQL数据&#xff0c;使用RabbitMQ来做消息队…

【Java】面向对象程序设计 期末复习总结

语法基础 数组自带长度属性 length&#xff0c;可以在遍历的时候使用&#xff1a; int []ages new int[10];for (int i 0; i < ages.length; i)System.out.println(ages[i]); 数组可以使用增强式for语句进行只读式遍历&#xff1a; int[] years new int[10];for (int ye…

leetcode第206题反转链表❤

一&#xff1a;题目&#xff1a; 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网…

【占用网络】VoxFormer 基于视觉的3D语义场景方案 CVPR 2023

前言 本文分享“占用网络”方案中&#xff0c;来自CVPR2023的VoxFormer&#xff0c;它基于视觉实现3D语义场景补全。 使用Deformable Attention从图像数据中&#xff0c;预测三维空间中的体素占用情况和类别信息。 VoxFromer是一个两阶段的框架&#xff1a; 第一个阶段&…

前端框架的异步组件(Async Components)

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

SpringBoot集成MQTT协议

简介 MQTT 可以被解释为一种低开销&#xff0c;低带宽占用的即时通讯协议&#xff0c;可以用较少的代码和带宽为远程设备连接提供实时可靠的消息服务&#xff0c;它适用于硬件性能低下的远程设备以及网络状况糟糕的环境下&#xff0c;因此 MQTT 协议在 IoT&#xff08;Interne…

工业物联网上篇——什么是IIOT?

工业物联网背后的理念是使用工业设施中“哑巴设备”多年来产生的数据。装配线上的智能机器不仅可以更快地捕获和分析数据&#xff0c;且在交流重要信息方面也更快&#xff0c;这有助于更快、更准确地做出业务决策。 信息技术&#xff08;IT&#xff09;和运营技术&#xff08;O…

如何打开wps的备份中心查找备份文件

备份中心在我们使用WPS Office时扮演着重要的角色。经常保存文件的同时&#xff0c;我们也应该学会备份文件&#xff0c;以免意外损失。本文将向您介绍如何使用WPS备份中心来查找并恢复备份文件&#xff0c;方便您在需要时快速找到所需文件。 图片来源于网络&#xff0c;如有侵…

STM32 学习(三)OLED 调试工具

目录 一、简介 二、使用方法 2.1 接线图 2.2 配置引脚 2.3 编写代码 三、Keil 工具调试 一、简介 在进行单片机开发时&#xff0c;有很多调试方法&#xff0c;如下图&#xff1a; 其中 OLED 就是一种比较好用的调试工具&#xff1a; OLED 硬件电路如下&#xff0c…

科技智慧,产业链全覆盖:河南恩珅德农业的养殖业务优势

河南恩珅德农业以科技智慧和全产业链覆盖的优势&#xff0c;成功打造了一体化的养殖业务模式&#xff0c;为养殖者提供了全面的支持和优越的管理体验。以下是该企业养殖业务的核心优势&#xff1a; 1. 先进科技智慧 河南恩珅德农业充分利用先进的科技手段&#xff0c;引入智能…

了解并使用django-rest-framework-jwt

一 JWT认证 在用户注册或登录后&#xff0c;我们想记录用户的登录状态&#xff0c;或者为用户创建身份认证的凭证。我们不再使用Session认证机制&#xff0c;而使用Json Web Token&#xff08;本质就是token&#xff09;认证机制。 Json web token (JWT), 是为了在网络应用环…

Android开发中“真正”的仓库模式

原文地址&#xff1a;https://proandroiddev.com/the-real-repository-pattern-in-android-efba8662b754原文发表日期&#xff1a;2019.9.5作者&#xff1a;Denis Brandi翻译&#xff1a;tommwq翻译日期&#xff1a;2024.1.3 Figure 1: 仓库模式 多年来我见过很多仓库模式的实…