原創|其它|編輯:郝浩|2012-08-31 15:39:49.000|閱讀 598 次
概述:學習報表設計前應當首先弄清楚VBMS系統與FastReport報表設計之間的關系。報表設計的目的是將VBMS數據庫(Firebird1.5)中的數據按照需要的視圖方式顯示、統計出來,并且可以打印、導出。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在VBMS中使用FastReport設計報表應該掌握以下知識:
1、 熟悉SQL語言,為設計報表準備數據源。
2、 掌握VBMS的數據結構,可參考相關資料。
3、 掌握FastReport報表的設計使用方法。
體系結構
學習報表設計前應當首先弄清楚VBMS系統與FastReport報表設計之間的關系。報表設計的目的是將VBMS數據庫(Firebird1.5)中的數據按照需要的視圖方式顯示、統計出來,并且可以打印、導出。
VBMS數據庫與VBMS管理系統以及FastReport報表設計之間的關系是:
Firebird數據庫系統是報表的數據源,它存儲著客戶的業務數據。但該數據的存儲方式并不一定是客戶希望直接看到的。
VBMS管理系統是中間層,它負責連接Firebird數據庫和FastReport報表系統,將數據庫信息(例如數據庫的位置)傳入到報表系統中供設計報表時使用。
FastReport報表系統是報表設計的主體,它負責接收或創建數據源,通過設計報表完成需要的功能。因此在VBMS管理系統的打印模塊中存在兩種數據源:一種是VBMS系統數據源,即在各模塊中將設計好的數據源傳入到打印模塊中。優點是無須用戶干預使用方便,缺點是不夠靈活,更改數據源需要升級程序。例如各類單據的打印報表采用的就是系統數據源。另一種是自行設計數據源,功能強大但對用戶的要求較高。例如報表中心中的各類報表。
設計步驟
完成一張報表的設計主要包括以下幾個步驟:
1、確定報表的需求,查閱VBMS關于數據庫結構的文檔,確認該需求的所有內容在VBMS中均有數據字段記錄(即VBMS必須記錄了相關數據,否則報表設計無從談起)。
2、根據報表的需求,確定報表應該顯示的模式。例如:是簡單報表、主從報表或是分組報表等等。因為這涉及的自定義數據源時SQL語言的構成方式。
3、利用數據庫工具(例如:IBExpert),使用SQL語言嘗試獲取報表希望的數據集。這里有可能不能通過SQL語言一步到位獲取到希望的結果,但你仍可能通過FastReport報表系統對數據集進行二次加工。
4、在FastReport報表中自定義數據源(通過上步獲取的SQL語句),利用報表系統中提供的各種控件構造出希望的報表格式。
5、 對于設計好的報表進行測試。
基本概念及操作
基本概念
最主要的概念是FastReport報表的組成方式和控件主要用途,它一般包括以下方面:
*頁面(Page) --- 默認為Page1
與我們現實中使用的紙張相似。但它不僅僅指的是一張紙,而是用于我們設計報表的容器。打印出來可以是一張紙也可以是多張。頁面(Page)可以有多個(你可以新增頁面New Page),即可以有多個報表容器。利用這一點,你可以設計出復合報表(Composite Report)。
利用頁面設置可以定義大小、方向、邊界、打印方式、分欄等參數。這里不再詳述,只特別強調分欄的作用。你可以將頁面分成多欄,這樣打印時數據將按照從上到下,再從左往右的方式顯示。這就是我們通常說的分欄報表(Splite Report)。
*區域(Band)
FastReport將整個頁面劃分成若干個區域。而每個區域有著各自不同的功能,這些功能由FastReport自動加載。一個頁面中可以沒有區域,也可以只有其中的某些區域,這根據報表的需求而定。放置在頁面中的區域有范圍,落入區域范圍內的控件(例如:TextObject)才具有區域的功能。
重要的區域包括:
#報表抬頭(ReportTitle)
僅在第一頁顯示在紙張的上部。一般用于打印報表的標題等信息。
#報表合計(ReprotSummary)
僅顯示在所有數據的最后末尾。一般用于打印統計信息等。
#頁首(PageHeader)
顯示在每頁的最上部。通過設置你可以讓它置于報表抬頭之上或者之下。一般用于打印頁眉信息等。
#頁腳(PageFooter)
顯示在每頁的最底部。一般用于打印頁序等信息。
#主數據(MasterData)
用于顯示數據源的數據,是最重要的區域。在該區域中可以定義連接哪一個數據源,那么該數據源的數據將會按順序依次將記錄打印出。
數據區域還有明細數據(DetailData)等,一共支持6階數據。利用明細數據可以設計出主從報表、主-細-子細報表等。例如:各類單據的打印報表就是由單據頭(主數據)和單據體(明細數據)共同完成的。
在打印時,明細一級的數據是受上一級主數據的控制,因此需要進行相關設置。
#頭(Header)
顯示在所有數據源的最上部,僅打印一次。一般用于顯示相關摘要信息。
#尾(Footer)
顯示在所有數據源的最下部,僅打印一次。一般用于顯示所有數據的合計信息。
#欄首(ColumnHeader)
顯示在每頁數據源的上部,它在每頁均顯示。因此一般用于打印數據源字段的欄目信息。
#欄尾(ColumnHeader)
顯示在每頁數據源的下部,它在每頁均顯示。一般可用于統計顯示每頁數據的頁合計信息。
#群組首(GroupHeader)
用于顯示分組數據,在每一個分組開始顯示。一般可用于顯示分組索引數據。例如:將商品檔案按商品分類分組顯示,在群組首你可以顯示商品分類名稱。利用群組首可以設計出分組報表,關鍵是數據源必須按分組索引的字段排序才能達到分組的效果。群組首可以有多個,即可以嵌套使用。
另外,可以設置讓分組索引數據在報表預覽時顯示在左側的樹型列表框(OutLine)中。
#群組尾(GroupFooter)
與群組首一一對應。一般用于顯示分組數據的統計信息。
#子(Child)
是一個獨立的區域。你可以設置子區域隸屬于上述區域中的任何一個。在打印時,打印完父區域后,子區域將會跟隨打印。一般可用于打印裝飾線、調整高度或者打印子報表(SubReport)。
#重疊(overlay)
該區域內包含的內容將從頁的開始位置計算打印,而不受其他功能區域的影響。一般用于無法在其他功能區域打印的內容的顯示。
*對話框(DialogPage)
你可以通過設計對話框完成對數據源進行動態控制的目的,這也是設計復雜報表的重要手段。
對話框主要通過各種輸入數據控件來接受客戶的查詢請求,因此可以學習幾種主要的控件。
#標簽(Label Control) --- 用于顯示文字信息。使用Caption屬性修改文字信息。
#文本編輯框(Edit Control) --- 用于接收用戶錄入的文字信息。使用Text屬性修改文字信息。
#按鈕(Button Control) --- 一般用于確定和取消。使用Caption屬性修改文字信息。
#多選框(CheckBox Control) --- 用于用戶對條件的選擇。使用Checked屬性確定是否。
#單選框(RadioButton Control) --- 用于用戶對條件的單一選擇。使用Checked屬性確定是否。
#下拉框(ComboBox Control) --- 用于用戶對多個數據列表的選擇。使用Text屬性修改當前文字信息,使用Items屬性填充列表信息。
#時間框(DateEdit Control) --- 用于用戶對時間的選擇。利用Date屬性改變時間。
*文本對象(Text Object)
這是FastReport報表中使用最頻繁的控件。可用它完成如下主要功能:
1. 顯示一般文字信息 --- 直接錄入即可。
2. 顯示數據字段信息 --- 一般格式:[數據源."字段名稱"]。
3. 顯示變量內容 --- 一般格式:[<變量名>]。
4. 顯示裝飾線等。
文本對象可以進行文字對齊、格式轉化、文本著色、字體改變、畫邊框線等許多功能,這與MicrosoftWord中的操作有諸多相同特征。因此這里不再一一贅述。
《在文本對象中引用數據字段或者變量需要用中括號包含,而且引用變量名時還需要用尖括號包含,這樣系統就知道這是一個變量名稱而不是其他什么。》
*子報表(Subreport Object)
放置子報表后,系統會自動增加一個頁面,你可以在此頁面上設計需要的報表。系統在打印處理時,先按主報表打印,當碰到子報表時會自動轉入子報表的頁面進行打印處理,完成后繼續執行主報表打印的工作,所以我們又稱之為嵌套報表。
設計子報表與主報表基本上相同,唯一的區別是有些功能區域不能在子報表中實現,例如:報表抬頭、群組。
*交叉報表(DB cross-tab)
又稱動態報表,即可以實現橫向和縱向都不能確定時的報表。該報表的實現需要數據源按一定規格組織數據方能實現。
*數據感知控件(FIB Query)
利用該控件進行數據源的設計,可以完成設計SQL語句、測試結果、字段別名等工作。
《在FIBQuery控件的SQL屬性對話框中有一個QueryBuilder工具。利用該工具你可以查看到目前數據庫中所有的數據表以及數據字段信息。并且可以在工具中利用向導功能(Model)可以更好的完成SQL語句的編制工作,并可以測試結果(Result)。不過這里列出的僅是數據表(Table),還有視圖(View)沒有列出。如果需要使用視圖或存儲過程(Procedure)可以查閱相關資料,FIBQuery同樣支持視圖和過程。
在FieldAlias屬性中,你還可以將所有數據字段名稱修改成中文名稱。
在Master屬性中,你可以定義本數據源隸屬于另外哪一個數據源(即受哪一個數據源控制)。
如果你在數據源的SQL語句中定義了變量,那么在Params屬性中,你可以設置這些變量的類型和值。》
FastReport報表系統中還包含了一些其他控件,這些控件大部分是用于裝飾報表的,比較容易理解,使用起來也比較簡單,這里也不再說明了。
基本操作
FastReport中的操作與MicrosoftWord中的操作非常相似,不再詳述。下面僅對一些常用功能及操作技巧進行提示。
*熱鍵
Arrow --- 在Object之間移動
Del --- 刪除一個Object
Enter --- 調出選擇的Object的編輯器
Shift+Arrow --- 改變Object的尺寸大小
Ctrl+Arrow --- 移動Object的位置
Alt+Arrow --- 移動選擇的Object到相鄰的Object的旁邊并且對齊
*鼠標
Left button --- 選擇、移動一個Object,對于多選的一組Object,可以拖動右下角的紅點同時改變所選的Object的尺寸大小
Right button --- 調出右鍵菜單
Shift+left button --- 多選Object
Ctrl+left button --- 按住Ctrl鍵不放用鼠標左鍵可以拖出一個虛線矩形框,釋放鼠標按鈕可以將該矩形框內所有Object選中,然后使用left button將選中的Object移動到所需位置
Alt+left button --- 如果針對Text Object使用,將可以直接編輯內容,無需彈出編輯窗
汽車業務管理系統(VBMS)使用FastReport設計報表(二)
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:網絡轉載