FastReport Online Designer中文教程:数据处理
FastReport Online Designer是一个RIA应用程序(富网页应用程序),允许你从任何拥有先进网页浏览器的任何设备上运行它。
>>立即在线体验FastReport Online Designer
1. 数据源
FastReport Online Designer中不能增加数据源。但是,如果你打开已添加了数据源的报表,它将会显示在“Data”窗口。你可以将字段从数据源拖动到报表页面。这样就会创建一个带有数据字段的文本对象。
源数据可以包含相关表,用于创建主从报表,主表中的一个记录可匹配详细表中一个或多个记录。上图显示了一个与其Categories表连接的Products表。虽然FastReport Online Designer不能创建关系,但允许使用报表中已经存在的关系。
2.系统变量
变量 | 描述 |
Date | 报表启动的日期和时间 |
Page | 当前报表页码 |
TotalPages | 报表的总页码数 |
PageN | 页码形式:"Page N" |
PageNofM | 页码形式:"Page N of M" |
Row# | 分组中的数据行数 |
AbsRow# | 数据行的绝对值 |
Page# | 当前报表页码 |
TotalPages# | 报表中的总页码数 |
HierarchyLevel | 分层报表中的当前层次,顶层等于1 |
HierarchyRow# | 分层报表中完整的行号,例如“1.2.1” |
3.函数
FastReport.Net包含大量内置函数(60+)。所有函数都分成几类,并通过“Data”窗口进行访问:
在报表中插入函数的方法如下:
- 从“Data”窗口将函数拖到报表页面,将会创建一个包含函数的文本对象,但你需要编辑文本添加函数的参数;
- 将函数拖放到脚本代码中;
- 在表达式编辑器中的数据窗口副本中 - 你可以从中拖动项目以及在表达式文本中将其删除。
3.1.运算类
函数 | 参数 | 示例 |
Abs |
sbyte value short value int value long value float value double value decimal value |
Abs(-2.2) = 2.2 |
Acos | double d | Acos(0) * 180 / Math.PI = 90 |
Asin | double d | Asin(0) = 0 |
Atan | double d | Atan(1) * 180 / Math.PI = 45 |
Ceiling |
double d decimal d |
Ceiling(1.7) = 2 |
Cos | double d | Cos(90 * Math.PI / 180) = 0 |
Exp | double d | Exp(1) = 2.71828 |
Floor |
double d decimal d |
Floor(1.7) = 1 |
Log | double d | Log(2.71828) = 1 |
Maximum |
int val1, int val2 long val1, long val2 float val1,float val2 double val1, double val2 decimal val1, decimal val2 |
Maximum(1,2) = 2 |
Minimum |
int val1, int val2 long val1, long val2 float val1,float val2 double val1, double val2 decimal val1, decimal val2 |
Minimum(1,2) = 1 |
Round |
double d decimal d |
Round(1.47) = 1 |
Sin | double d | Sin(90 * Math.PI / 180) = 1 |
Sqrt | double d | Sqrt(4) = 2 |
Tan | double d | Tan(45 * Math.PI / 180) = 1 |
Truncate |
double d decimal d |
Truncate(1.7) = 1 |
3.2.文本类
注意:
- 这些函数不会修改传递的字符串值,只是返回一个新的修改后的字符串。
- 字符串中的第一个字符指针为0。在处理字符指针相关的函数时需牢记。
函数 | 参数 | 示例 |
Asc | char c | Asc(‘A‘) = 65 |
Chr | int i | Chr(65) = ‘A‘ |
Insert | string s, int startIndex, string value | Insert("ABC", 1, "12") = "A12BC" |
Length | string s | Length("ABC") = 3 |
LowerCase | string s | LowerCase("ABC") = "abc" |
PadLeft | string s, int totalWidth | PadLeft("ABC", 5) = " ABC" |
PadRight | string s, int totalWidth | PadRight("ABC", 5) = "ABC " |
Remove | string s, int startIndex | Remove("ABCD", 3) = "ABC" |
Replace | string s, string oldValue, string newValue | Replace("A00", "00", "BC") = "ABC" |
Substring | string s, int startIndex | Substring("ABCDEF", 1, 3) = "BCD" |
TitleCase | string s | TitleCase("john smith") = "John Smith" |
Trim | string s | Trim(" ABC ") = "ABC" |
UpperCase | string s | UpperCase("abc") = "ABC" |
3.3.日期和时间类
函数 | 参数 | 示例 |
AddDays | DateTime date, double value | AddDays(#7/29/2009#, 1) = #7/30/2009# |
AddHours | DateTime date, double value | AddHours(#7/29/2009 1:30#, 1) = #7/29/2009 2:30# |
AddMinutes | DateTime date, double value | AddMinutes(#7/29/2009 1:30#, 1) = #7/29/2009 1:31# |
AddMonths | DateTime date, int value | AddMonths(#7/29/2009#, 1) = #8/29/2009# |
AddSeconds | DateTime date, double value | AddSeconds(#7/29/2009 1:30:01#, 1) = #7/29/2009 1:30:02# |
AddYears | DateTime date, int value | AddYears(#7/29/2009#, 1) = #7/29/2010# |
DateDiff | DateTime date1, DateTime date2 | DateDiff(#1/2/2009#, #1/1/2009#) = 1.00:00:00 |
DateSerial | int year, int month, int day | DateSerial(2009, 7, 29) = #7/29/2009# |
Day | DateTime date | Day(#7/29/2009#) = 29 |
DayOfWeek | DateTime date | DayOfWeek(#7/29/2009#) = "wednesday" |
DayOfYear | DateTime date | DayOfYear(#7/29/2009#) = 210 |
DaysInMonth | int year, int month | DaysInMonth(2009, 7) = 31 |
Hour | DateTime date | Hour(#7/29/2009 1:30#) = 1 |
Minute | DateTime date | Minute(#7/29/2009 1:30#) = 30 |
Month | DateTime date | Month(#7/29/2009#) = 7 |
MonthName | int month | MonthName(1) = "January" |
Second | DateTime date | Second(#7/29/2009 1:30:05#) = 5 |
Year | DateTime date | Year(#7/29/2009#) = 2009 |
3.4.格式类
函数 | 参数 | 示例 |
Format | string format,params object[] args | ? |
FormatCurrency | object value, int decimalDigits | FormatCurrency(1.25, 1) = "$1.3" |
FormatDateTime | DateTime value | FormatDateTime(#1/1/2009 1:30#) = "01/01/2009 1:30:00 AM" |
FormatNumber | object value | FormatNumber(1234.56) = "1,234.56" |
FormatPercent | object value | FormatPercent(0.15) = "15.00%" |
3.5.转换类
函数 | 参数 | 示例 |
ToBoolean | object value |
ToBoolean(1) = true ToBoolean(0) = false |
ToByte | object value | ToByte("55") = 55 |
ToChar | object value | ToChar(65) = ‘A‘ |
ToDateTime | object value | ToDateTime("1/1/2009") = #1/1/2009# |
ToDecimal | object value | ToDecimal(1) = 1m |
ToDouble | object value | ToDouble(1) = 1 |
ToInt32 | object value | ToInt32(1f) = 1 |
ToRoman | object value | ToRoman(9) = "IX" |
ToSingle | object value | ToSingle(1m) = 1f |
ToString | object value | ToString(DateTime.Now) = "08/09/2009 4:45:00 PM" |
ToWords | object value, string one, string many | ToWords(124, "page", "pages") = "One hundred and twenty-four pages" |
ToWordsEnGb | ToWordsEnGb | ToWordsEnGb(1, "page", "pages") = "One page" |
ToWordsRu | object value | ToWordsRu(1024.25) = "Одна тысяча двадцать четыре рубля 25 копеек" |
3.6.流程类
函数 | 参数 | 示例 |
Choose | doubleindex, paramsobject[] choice | Choose(2, "one", "two", "three") = "two" |
IIf | bool expression, object truePart, object falsePart | IIf(2 > 5, "true", "false") = "false" |
Switch | params object[] expressions | Switch( a> 0, "а greater than 0", a< 0, "а less than 0", a == 0, "а equals to 0") |
4.Totals
在许多报表中,我们可能需要显示一些汇总信息:组总数,列表的行数等。 FastReport使用Totals来完成此任务,但你需要指定以下参数:
合计函数的类型;
- 表达式。“Count”函数则不需要以指定表达式;
- 条件;
- 用于处理该函数的数据band;
- 用于打印合计值的band。
合计函数列表如下:
函数 | 描述 |
Sum | 计算表达式的总和 |
Min | 计算表达式中的最小值 |
Max | 计算表达式中的最大值 |
Average | 计算表达式中数值的平均值 |
Count | 返回行数 |
可通过点击"Data"窗口中带有加号的绿色图标添加函数,如下图:
然后,在属性页面设置参数,将Totals拖到报表页面,点击红色图标即可删除已添加的Totals。
5.报表参数
你可以在报表中定义参数,参数是一个变量,其值既可在报表里面指定又可在外面指定。参数可以在表达式中使用,并显示在像“Text”之类的报表对象中。
最常见的参数使用方法:
- 根据参数的条件设置进行数据过滤;
- 在报表中打印参数值。
Parameters有以下属性:
属性 | 描述 |
Name | 参数的名称,可以含有除了“.”以外的任何符号 |
DataType | 参数日期类型 |
Expression | 返回参数值的表达式 |
Value | 参数值 |
“Name”和“DataType”属性必须设置,“Expression”属性可以为空。在这种情况下,参数的值应通过编写代码进行传入。
可通过点击"Data"窗口中带有加号的绿色图标添加参数,如下图所示,并在“Properties”窗口中进行设置,然后你就可以将参数拖到报表页面进行数据过滤了:
点击红色图标即可删除已添加的Parameter。
FastReport Online Designer中文教程:数据处理
原文:http://huang-xiaok.iteye.com/blog/2258551
FastReport Online Designer中文教程:数据处理相关推荐
- 如何将Web报表设计器FastReport Online Designer 更新到最新版本?
FastReport Online Designer是一个跨平台的报表设计器,允许通过任何平台的移动设备创建和编辑报表. FastReport Online Designer在线试用 本文将主要介绍如 ...
- letswave7中文教程1:软件安装与脑电数据导入
目录 1.安装 2.数据集介绍 3. 数据集导入 4.数据集检查 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 Letswave是一款非常好用的神经生理信 ...
- ERPLAB中文教程:创建与查看EventList
目录 创建EventList 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 QQ交流群:941473018 主要内容包括: 介绍ERPLAB中常见的几个概念: 介绍如何创建EventLis ...
- Python-EEG工具库MNE中文教程(12)-注释连续数据
目录 注释连续数据(Annotating continuous data) 通过代码创建注释 可视化原始对象 交互式注释原始对象 对注释对象的操作 本分享为脑机学习者Rose整理发表于公众号:脑机接口 ...
- PyQt5 Qt Designer 新手教程(一)—— 软件界面介绍
PyQt5 Qt Designer 新手教程(一)-- 软件界面介绍 教程博文 一.前言 终于学到了 PyQt5 Qt 设计师(Qt Designer)这个软件,博主感觉心情还是很激动的.因为,当初学 ...
- Altium Designer简明教程2
Altium Designer简明教程2 二. ALTIUM DESIGNER原理图设计 1. 软件安装 本教程所使用的软件版本为AD18版,AD18版与之前的AD17,16相比功能界面 ...
- CC3200 wifi应用基础——中文教程
CC3200 wifi应用基础--中文教程 第 1 章 CC3200 简介 CC3200 是 TI 无线连接 SimpleLink Wi-Fi 和物联网( IoT )解决方案最新推出的一款单片无线 ...
- PUTTY 中文教程
作者:柴锋 2006年11月 Web:http://chaifeng.com email: putty-tutorial [0x40] chaifeng [0x2E] com Twitter: @ ...
- 《kdb+中文教程》介绍
<kdb+中文教程>第一.二章全部内容以及第三至十章部分内容可免费阅读. 前言及目录 第一章 简介 第二章 数据类型 第三章 数组 第四章 字典 第五章 函数 第六章 表与qSQL 第七章 ...
最新文章
- 一款图像相关软件PhoXo
- 物联网配云计算 两情相悦还是单相思?
- Prolog 语言入门
- 去除(还原)git diff 时出现的 ^M
- 真香!spaCy+Cython比Python快100倍.....
- oracle := 和=,oracle a:=100 和 b=:c 区别
- 查看 rabbitmq 启动websocket 提示404_RabbitMQ 部署记录
- mvc html传参数乱码,SpringMVC Controller 接收页面传递的中文参数出现乱码
- 华为指标OceanStore
- Codeforces Round #468 (Div. 2): C. Laboratory Work(贪心)
- Json对象的字符串转换
- 信号与系统2020参考答案(网络试卷)
- API接口测试用例设计
- java简单选择排序以及时间复杂度
- 动作捕捉用于蛇运动分析及蛇形机器人开发
- iOS 视图控制器转场详解
- CSS 查看css兼容性的站点
- matlab counter是什么意思,counter-propagating是什么意思
- mysql连接服务报错1058
- Mac系统control,option,command的区别