原创|使用教程|编辑:郑恭琳|2015-11-20 16:55:56.000|阅读 2733 次
概述:本篇文章将主要介绍FastReport Online Designer设计器是如何进行数据处理的。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
FastReport Online Designer是一个RIA应用程序(富网页应用程序),允许你从任何拥有先进网页浏览器的任何设备上运行它。
>>立即在线体验FastReport Online Designer
FastReport Online Designer中不能增加数据源。但是,如果你打开已添加了数据源的报表,它将会显示在“Data”窗口。你可以将字段从数据源拖动到报表页面。这样就会创建一个带有数据字段的文本对象。
源数据可以包含相关表,用于创建主从报表,主表中的一个记录可匹配详细表中一个或多个记录。上图显示了一个与其Categories表连接的Products表。虽然FastReport Online Designer不能创建关系,但允许使用报表中已经存在的关系。
变量 | 描述 |
Date | 报表启动的日期和时间 |
Page | 当前报表页码 |
TotalPages | 报表的总页码数 |
PageN | 页码形式:"Page N" |
PageNofM | 页码形式:"Page N of M" |
Row# | 分组中的数据行数 |
AbsRow# | 数据行的绝对值 |
Page# | 当前报表页码 |
TotalPages# | 报表中的总页码数 |
HierarchyLevel | 分层报表中的当前层次,顶层等于1 |
HierarchyRow# | 分层报表中完整的行号,例如“1.2.1” |
FastReport.Net包含大量内置函数(60+)。所有函数都分成几类,并通过“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.文本类
注意:
函数 | 参数 | 示例 |
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") |
在许多报表中,我们可能需要显示一些汇总信息:组总数,列表的行数等。 FastReport使用Totals来完成此任务,但你需要指定以下参数:
合计函数的类型;
合计函数列表如下:
函数 | 描述 |
Sum | 计算表达式的总和 |
Min | 计算表达式中的最小值 |
Max | 计算表达式中的最大值 |
Average | 计算表达式中数值的平均值 |
Count | 返回行数 |
可通过点击"Data"窗口中带有加号的绿色图标添加函数,如下图:
然后,在属性页面设置参数,将Totals拖到报表页面,点击红色图标即可删除已添加的Totals。
你可以在报表中定义参数,参数是一个变量,其值既可在报表里面指定又可在外面指定。参数可以在表达式中使用,并显示在像“Text”之类的报表对象中。
最常见的参数使用方法:
Parameters有以下属性:
属性 | 描述 |
Name | 参数的名称,可以含有除了“.”以外的任何符号 |
DataType | 参数日期类型 |
Expression | 返回参数值的表达式 |
Value | 参数值 |
“Name”和“DataType”属性必须设置,“Expression”属性可以为空。在这种情况下,参数的值应通过编写代码进行传入。
可通过点击"Data"窗口中带有加号的绿色图标添加参数,如下图所示,并在“Properties”窗口中进行设置,然后你就可以将参数拖到报表页面进行数据过滤了:
点击红色图标即可删除已添加的Parameter。
如有任何疑问请咨询""。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn