翻譯|使用教程|編輯:楊鵬連|2021-07-06 16:19:12.360|閱讀 157 次
概述:本文詳細介紹了如何在報表設計器中使用帶有函數的自定義庫。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
隨著現代技術的高速發展,相關產業所衍生出來的數據集是越來越龐大。那么我們如何能夠簡單、方便、快捷的展現自己輸入數據?并且能夠以我們想要的方式展現出來?報表——這一產物便應運而生,現在市面上流行的報表工具類產品也是層出不窮。
第三方報表工具是數據庫存儲,數據庫程序通常可以存放的數據量是相當大的,可以處理非常復雜的數據結構關系。報表數據交互也快捷方便,速度也非常快,可視化交互渲染。
在報表設計器中的內置函數庫并不是很小,但有時候仍然缺乏一些特定的功能。由于報表中的腳本,可以輕松實現所需的功能。但是,如果許多記錄中需要此功能呢?每次都將它添加到報表腳本中?當然不是。可以在連接到報表設計器的庫中收集所有需要的函數。需要庫與報表位于同一文件夾中,創建一個類庫項目,將在其中擁有一個測試函數。例如,將數組轉換為字符串的功能,編譯庫:
namespace ArrayToString { public static class UserDefined { public static string ArrayToString(List<string> parameters) { return String.Join(",", parameters); } } }
現在創建應用程序,將在其中打開報表生成器并使用我們的庫ArrayToString,這是一個正常的Winforms應用程序。將庫FastReport添加到項目引用:建議將庫存儲在與應用程序的可執行文件相同的目錄中,所以可以在draft中添加對它的引用。除此之外,庫將被添加到編譯中包含可執行文件的文件夾中,應用程序中只有表單和按鈕,添加按鈕單擊事件處理程序:
private void RunBtn_Click(object sender, EventArgs e) { Report report = new Report(); report.Design(); }
運行該應用程序,然后單擊按鈕,報表設計器將以空報表開頭。在報表屬性中,可以添加指向.net庫的鏈接。
創建一個簡單的報表模板——產品類別列表:
將文本對象添加到頁腳頁帶。轉到“Script”選項卡,創建一個列表,將在其中添加類別名稱。用戶庫中的函數將列表轉換為一行,在頁面的基礎中顯示該行。所以,創建一個列表:
public class ReportScript { public List<string> list = new List<string>(); }
回到報表頁面。對于Data band,創建AfterPrint事件處理程序:
private void Data1_AfterPrint(object sender, EventArgs e) { list.Add(((String)Report.GetColumnValue("Categories.CategoryName"))); }
每次顯示band“Data”時都會添加類別的名稱,現在,為Page Footer band中的文本對象添加BeforePrint事件處理程序:
private void Text1_BeforePrint(object sender, EventArgs e) { Text1.Text = ArrayToString.UserDefined.ArrayToString(list); }
為文本對象分配用戶定義函數從先前添加的dll返回的字符串。請注意,函數的路徑已滿,包含命名空間和類名。如果將ArrayToString庫添加到使用中,則可以縮短名稱。現在可以在預覽模式下運行報表,頁面頂部:
在頁面底部:
在一行中獲得了產品類別列表,可以在頁面底部的文本對象中使用以下表達式:
[ArrayToString.UserDefined.ArrayToString(list)]
相當于:
private void Text1_BeforePrint(object sender, EventArgs e) { Text1.Text = ArrayToString.UserDefined.ArrayToString(list); }
不需要創建事件處理程序,如果要在Web項目中使用自定義庫來生成報表,則需要將其放在bin文件夾中。
如果您對FastReport感興趣,可以在慧都網免費下載最新試用版,歡迎加入FastReport QQ交流群:702295239
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn