翻譯|行業資訊|編輯:胡濤|2024-03-21 10:17:20.953|閱讀 115 次
概述:本文主要介紹在報表生成器FastReport .Net中,關于腳本的相關部分,歡迎查閱!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
FastReport的報表生成器(無論VCL平臺還是.NET平臺),跨平臺的多語言腳本引擎FastScript,桌面OLAP FastCube,如今都被世界各地的開發者所認可,這些名字被等價于“速度”、“可靠”和“品質”,在美國,歐洲和非洲不同國家均設有辦事處。FastReports網站有10種不同語言的介紹,FastReports報表擁有40種語言的本地化的信息。
FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC報表分析解決方案,使用FastReport .NET可以創建獨立于應用程序的.NET報表,同時FastReport .Net支持中文、英語等14種語言,可以讓你的產品保證真正的國際性。 閱讀報表生成器FastReport .Net用戶指南:關于腳本(上)
除了報告中包含的對象外,腳本中還定義了兩個變量:報告和引擎。
報告變量指的是當前的報告。在下面的列表中,列出了報告對象的方法:
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 軸坐標??梢詾樵搶傩再x值,以便移動打印對象。 |
float CurY |
當前在 Y 軸上的打印位置??梢詾樵搶傩再x值,以移動打印對象。
|
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
OutlineRoot 方法會將當前元素移動到大綱的根部。例如,下面的腳本:
Engine.AddOutline("Item1"); Engine.AddOutline("Item2"); Engine.AddOutline("Item3"); Engine.OutlineRoot(); Engine.AddOutline("Item4");
將創建以下大綱:
Item1 Item2 Item3 Item4
要引用系統變量,請使用報告對象的 GetVariableValue 方法:
DateTime date = (DateTime)Report.GetVariableValue("Date");
在 "Data "窗口中可以看到系統變量列表。您可以將變量拖入腳本中,FastReport 會自動創建用于引用變量的代碼。
要引用總值,請使用報告對象的 GetTotalValue 方法:
float sales = Report.GetTotalValue("TotalSales");
在 "Data "窗口中可以看到總數列表。從它,你可以拖動到腳本,在此 FastReport 代碼自動引用總。總計值具有 FastReport.Variant 類型。It can be directly in any expression, because the FastReport.Variant type is automatically converted to any type.例如
float tax = Report.GetTotalValue("TotalSales") * 0.2f;
在處理過程中,可以參考總值。通常情況下,總值在打印帶子的那一刻就 "ready to use"。
要引用報告參數,請使用報告對象的 GetParameterValue 方法:
int myParam = (int)Report.GetParameterValue("MyParameter");參數可以嵌套。在這種情況下,請標出父參數的名稱,并在句號后標出子參數的名稱:
Report.GetParameterValue("ParentParameter.ChildParameter")
參數有明確的數據類型。它在參數的 DataType 屬性中給出。在引用參數時必須考慮到這一點。您可以在"Data"窗口中看到參數列表。您可以將參數拖入腳本,FastReport 會自動創建用于引用參數的代碼。要更改參數值,請使用報告對象的 SetParameterValue 方法:
Report.SetParameterValue("MyParameter", 10);
本次關于 FastReport .Net 介紹就講解到這里了,點擊此處查看關于用戶指南的更多內容。如果您想獲取更多產品試用/授權/價格信息,請點擊FastReport .Net了解,或者點擊咨詢。
FastReport技術QQ群:585577353 歡迎進群一起討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn