FastReport Online Designer中文教程:数据处理

FastReport Online Designer是一个RIA应用程序(富网页应用程序),允许你从任何拥有先进网页浏览器的任何设备上运行它。

>>立即在线体验FastReport Online Designer

1. 数据源

FastReport Online Designer中不能增加数据源。但是,如果你打开已添加了数据源的报表,它将会显示在“Data”窗口。你可以将字段从数据源拖动到报表页面。这样就会创建一个带有数据字段的文本对象。

FastReport Online Designer中文教程:数据处理_第1张图片

源数据可以包含相关表,用于创建主从报表,主表中的一个记录可匹配详细表中一个或多个记录。上图显示了一个与其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”窗口进行访问:

FastReport Online Designer中文教程:数据处理_第2张图片

在报表中插入函数的方法如下:

  • 从“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"窗口中带有加号的绿色图标添加函数,如下图:

FastReport Online Designer中文教程:数据处理_第3张图片

然后,在属性页面设置参数,将Totals拖到报表页面,点击红色图标即可删除已添加的Totals。

5.报表参数

你可以在报表中定义参数,参数是一个变量,其值既可在报表里面指定又可在外面指定。参数可以在表达式中使用,并显示在像“Text”之类的报表对象中。
最常见的参数使用方法:

  • 根据参数的条件设置进行数据过滤;
  • 在报表中打印参数值。

Parameters有以下属性:

属性 描述
Name 参数的名称,可以含有除了“.”以外的任何符号
DataType 参数日期类型
Expression 返回参数值的表达式
Value 参数值

“Name”和“DataType”属性必须设置,“Expression”属性可以为空。在这种情况下,参数的值应通过编写代码进行传入。
可通过点击"Data"窗口中带有加号的绿色图标添加参数,如下图所示,并在“Properties”窗口中进行设置,然后你就可以将参数拖到报表页面进行数据过滤了:

FastReport Online Designer中文教程:数据处理_第4张图片

点击红色图标即可删除已添加的Parameter。

FastReport Online Designer中文教程:数据处理

原文:http://huang-xiaok.iteye.com/blog/2258551

你可能感兴趣的:(FastReport Online Designer中文教程:数据处理)