報告和引擎對象
FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC報表分析解決方案,使用FastReport .NET可以創(chuàng)建獨立于應用程序的.NET報表,同時FastReport .Net支持中文、英語等14種語言,可以讓你的產(chǎn)品保證真正的國際性。
除了報告中包含的對象外,腳本中還定義了兩個變量:報告和引擎。
報告變量指的是當前的報告。在下面的列表中,列出了報告對象的方法:
Method | Description |
---|---|
object Calc(string expression) |
計算表達式并返回值。首次調(diào)用此方法時,表達式將被編譯,這需要一些時間。 |
object GetColumnValue(string complexName) |
返回數(shù)據(jù)列的值。列名必須以 "DataSource.Column "形式顯示。如果列的值為空,則默認將其轉(zhuǎn)換為一個值(0、空字符串、false)。 |
object GetColumnValueNullable(string complexName) |
返回數(shù)據(jù)列的值。與前一個方法相反,它不會轉(zhuǎn)換為默認值,也可能為空。 |
Parameter GetParameter(string complexName) |
返回具有指定名稱的報告參數(shù)。在引用嵌套參數(shù)時,名稱可以是復合的:"MainParam.NestedParam"。 |
object GetParameterValue(string complexName) | 返回具有指定名稱的報告參數(shù)的值。 |
void SetParameterValue(string complexName, object value) |
設置指定名稱的報告參數(shù)值。 |
object GetVariableValue(string complexName) |
返回系統(tǒng)變量的值,例如 "Date"。 |
object GetTotalValue(string name) |
按名稱返回 "Data"窗口中定義的總計值。 |
DataSourceBase GetDataSource(string alias) |
按名稱返回報表中定義的數(shù)據(jù)源。 |
Property | Description |
---|---|
float CurX |
當前 X 軸坐標??梢詾樵搶傩再x值,以便移動打印對象。 |
float CurY |
當前在 Y 軸上的打印位置??梢詾樵搶傩再x值,以移動打印對象。 |
int CurColumn |
多欄報表中當前列的編號。第一列的編號為 0 |
int CurPage |
打印頁面的編號。該值可從系統(tǒng)變量 "Page "中獲取。 |
float PageWidth |
頁面寬度減去左右頁邊距。 |
float PageHeight |
頁面高度減去上下頁邊距。 |
float PageFooterHeight |
頁面頁腳(及其所有子帶)的高度 |
float ColumnFooterHeight |
欄腳(及其所有子帶)的高度。 |
float FreeSpace |
頁面可用空間的大小。 |
bool FirstPass |
如果正在執(zhí)行第一次(或唯一一次)報告?zhèn)鬟f,則返回 true。可通過 Report.DoublePass 屬性獲取傳遞次數(shù)。 |
bool FinalPass |
如果正在執(zhí)行最后一次(或唯一一次)報告?zhèn)鬟f,則返回 true。 |
Engine.PageWidth 和 Engine.PageHeight 屬性決定打印區(qū)域的大小,幾乎總是小于頁面的實際大小。打印區(qū)域的大小由頁邊距決定,頁邊距由 LeftMargin、TopMargin、RightMargin 和 BottomMargin 頁面屬性給出。
Engine.FreeSpace 屬性決定頁面上可用空間的高度。如果頁面上有 ""Report footer" "帶,則在計算 FreeSpace 時會考慮其高度。請注意,打印頁邊框后,可用空間會減少。
如何形成準備好的報告頁面?
FastReport 引擎在頁面上顯示條帶,直到有足夠的空間進行條帶輸出。當沒有可用空間時,將打印 "報告頁腳 "條帶并形成新的空頁。顯示條帶從當前位置開始,當前位置由 X 和 Y 坐標決定。該位置由 Engine.CurX 和 Engine.CurY 屬性重新調(diào)整。打印帶狀圖后,CurY 會自動按打印帶狀圖的高度增加。打印多欄報表時,CurX 的位置會發(fā)生變化。
Engine.CurX 和 Engine.CurY 屬性不僅可用于讀取,也可用于寫入。這意味著您可以通過使用一個合適的事件來手動移動條帶。使用這些屬性的示例請參見 "示例 "部分。
在使用返回尺寸或位置的屬性時,請記住這些屬性是以屏幕像素為單位的。
點擊復制
Method | Description |
---|---|
void AddOutline(string text) |
在報告大綱中添加元素(請參閱 "交互式報告 "章節(jié)),并將當前位置設置為添加的元素。 |
void OutlineRoot() |
設置大綱根部的當前位置。 |
void OutlineUp() |
將當前位置移動到更高層次的大綱元素上。 |
void AddBookmark(string name) |
添加書簽(請參閱 "交互式報告 "章節(jié)) |
int GetBookmarkPage(string name) |
返回書簽所在頁碼。 |
void StartNewPage() |
開始一個新頁面。如果報表是多欄報表,則開始新的一欄。 |
通過使用 AddOutline、OutlineRoot 和 OutlineUp 方法,可以手動創(chuàng)建報告大綱。通常,這都是借助 OutlineExpression 屬性自動完成的,每個波段和報表頁面都有 OutlineExpression 屬性。
AddOutline 方法為當前大綱元素添加一個子元素,并使其成為當前元素。當前的報告頁面和頁面上的當前位置都與新元素相關聯(lián)。如果多次調(diào)用 AddOutline 方法,就會產(chǎn)生如下結構:
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");
點擊復制
將創(chuàng)建以下大綱:
Item1 Item2 Item3 Item4
點擊復制
在處理書簽時,需要使用引擎對象的 AddBookmark 和 GetBookmarkPage 方法。通常,書簽會在使用書簽屬性時自動添加,報告的所有對象都有該屬性。
通過使用 Add Bookmark 方法,可以以編程方式添加書簽。該方法會在當前頁面的當前打印位置創(chuàng)建一個書簽。
GetBookmarkPage 方法會返回書簽所在的頁碼。該方法通常用于創(chuàng)建目錄,以顯示頁碼。在這種情況下,報告必須有雙通道。