报告和引擎对象
FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。
除了报告中包含的对象外,脚本中还定义了两个变量:报告和引擎。
报告变量指的是当前的报告。在下面的列表中,列出了报告对象的方法:
Method | Description |
---|---|
object Calc(string expression) |
计算表达式并返回值。首次调用此方法时,表达式将被编译,这需要一些时间。 |
object GetColumnValue(string complexName) |
返回数据列的值。列名必须以 "DataSource.Column "形式显示。如果列的值为空,则默认将其转换为一个值(0、空字符串、false)。 |
object GetColumnValueNullable(string complexName) |
返回数据列的值。与前一个方法相反,它不会转换为默认值,也可能为空。 |
Parameter GetParameter(string complexName) |
返回具有指定名称的报告参数。在引用嵌套参数时,名称可以是复合的:"MainParam.NestedParam"。 |
object GetParameterValue(string complexName) | 返回具有指定名称的报告参数的值。 |
void SetParameterValue(string complexName, object value) |
设置指定名称的报告参数值。 |
object GetVariableValue(string complexName) |
返回系统变量的值,例如 "Date"。 |
object GetTotalValue(string name) |
按名称返回 "Data"窗口中定义的总计值。 |
DataSourceBase GetDataSource(string alias) |
按名称返回报表中定义的数据源。 |
Property | Description |
---|---|
float CurX |
当前 X 轴坐标。可以为该属性赋值,以便移动打印对象。 |
float CurY |
当前在 Y 轴上的打印位置。可以为该属性赋值,以移动打印对象。 |
int CurColumn |
多栏报表中当前列的编号。第一列的编号为 0 |
int CurPage |
打印页面的编号。该值可从系统变量 "Page "中获取。 |
float PageWidth |
页面宽度减去左右页边距。 |
float PageHeight |
页面高度减去上下页边距。 |
float PageFooterHeight |
页面页脚(及其所有子带)的高度 |
float ColumnFooterHeight |
栏脚(及其所有子带)的高度。 |
float FreeSpace |
页面可用空间的大小。 |
bool FirstPass |
如果正在执行第一次(或唯一一次)报告传递,则返回 true。可通过 Report.DoublePass 属性获取传递次数。 |
bool FinalPass |
如果正在执行最后一次(或唯一一次)报告传递,则返回 true。 |
Engine.PageWidth 和 Engine.PageHeight 属性决定打印区域的大小,几乎总是小于页面的实际大小。打印区域的大小由页边距决定,页边距由 LeftMargin、TopMargin、RightMargin 和 BottomMargin 页面属性给出。
Engine.FreeSpace 属性决定页面上可用空间的高度。如果页面上有 ""Report footer" "带,则在计算 FreeSpace 时会考虑其高度。请注意,打印页边框后,可用空间会减少。
如何形成准备好的报告页面?
FastReport 引擎在页面上显示条带,直到有足够的空间进行条带输出。当没有可用空间时,将打印 "报告页脚 "条带并形成新的空页。显示条带从当前位置开始,当前位置由 X 和 Y 坐标决定。该位置由 Engine.CurX 和 Engine.CurY 属性重新调整。打印带状图后,CurY 会自动按打印带状图的高度增加。打印多栏报表时,CurX 的位置会发生变化。
Engine.CurX 和 Engine.CurY 属性不仅可用于读取,也可用于写入。这意味着您可以通过使用一个合适的事件来手动移动条带。使用这些属性的示例请参见 "示例 "部分。
在使用返回尺寸或位置的属性时,请记住这些属性是以屏幕像素为单位的。
点击复制
Method | Description |
---|---|
void AddOutline(string text) |
在报告大纲中添加元素(请参阅 "交互式报告 "章节),并将当前位置设置为添加的元素。 |
void OutlineRoot() |
设置大纲根部的当前位置。 |
void OutlineUp() |
将当前位置移动到更高层次的大纲元素上。 |
void AddBookmark(string name) |
添加书签(请参阅 "交互式报告 "章节) |
int GetBookmarkPage(string name) |
返回书签所在页码。 |
void StartNewPage() |
开始一个新页面。如果报表是多栏报表,则开始新的一栏。 |
通过使用 AddOutline、OutlineRoot 和 OutlineUp 方法,可以手动创建报告大纲。通常,这都是借助 OutlineExpression 属性自动完成的,每个波段和报表页面都有 OutlineExpression 属性。
AddOutline 方法为当前大纲元素添加一个子元素,并使其成为当前元素。当前的报告页面和页面上的当前位置都与新元素相关联。如果多次调用 AddOutline 方法,就会产生如下结构:
Item1 Item2 Item3
点击复制
为了控制当前元素,有 OutlineUp 和 OutlineRoot 方法。第一个方法将指针移到位于更高层的元素上。因此,脚本:
Engine.AddOutline("Item1"); Engine.AddOutline("Item2"); Engine.AddOutline("Item3"); Engine.OutlineUp(); Engine.AddOutline("Item4");
点击复制
Item1 Item2 Item3 Item4
点击复制
Engine.AddOutline("Item1"); Engine.AddOutline("Item2"); Engine.AddOutline("Item3"); Engine.OutlineRoot(); Engine.AddOutline("Item4");
点击复制
将创建以下大纲:
Item1 Item2 Item3 Item4
点击复制
在处理书签时,需要使用引擎对象的 AddBookmark 和 GetBookmarkPage 方法。通常,书签会在使用书签属性时自动添加,报告的所有对象都有该属性。
通过使用 Add Bookmark 方法,可以以编程方式添加书签。该方法会在当前页面的当前打印位置创建一个书签。
GetBookmarkPage 方法会返回书签所在的页码。该方法通常用于创建目录,以显示页码。在这种情况下,报告必须有双通道。