FastReport 如何透過程式碼建立報告表單
FastReport VCL是用於Delphi,C ++ Builder,RAD Studio和Lazarus的報告和文件建立VCL庫。它提供了視覺化模板設計器,可以訪問最受歡迎的資料來源,報告引擎,預覽,將過濾器匯出為30多種格式,並可以部署到雲,Web,電子郵件和列印中。
近日,FastReport VCL更新至v6.9,在新版本中,在PDF匯出中增加了對以下物件的互動式表單支援:文字,核取方塊和圖片。能夠透過InteractiveFormsFontSubset屬性將所需的字形僅包含在互動式形式中。同時修復了多個Bug問題。歡迎下載體驗。(點選下方按鈕下載)
【慧都網】下載FastReport VCL v6.9最新版
如果您對該圖表控制元件感興趣,可以在慧都網免費下載最新試用版,歡迎加入圖表控制元件QQ交流群:740060302
通常,您將使用設計器建立大多數報告。但是,在某些情況下(例如,當報告的表單未知時),有必要透過程式碼手動建立報告。
要手動建立報告,應按順序執行以下步驟:
- 清除報告元件
- 新增資料來源
- 新增“資料”頁面
- 新增報告頁面
- 在頁面上新增樂隊
- 設定頻段的屬性,然後將其連線到資料
- 在每個頻段上新增物件
- 設定物件的屬性,然後將它們連線到資料
讓我們檢查一下“列表”型別的簡單報告的建立。假定我們具有以下元件:frxReport1:TfrxReport和frxDBDataSet1:TfrxDBDataSet(最後一個連線到DBDEMOS的資料,«Customer.db»表)。我們的報告將包含一頁帶有“報告標題”和“主資料”帶的頁面。在“報告標題”區域中,將出現一個帶有“ Hello FastReport!”的物件。文字,而“主資料”將包含一個物件,該物件具有指向“ CustNo”欄位的連結。
Pascal:
var DataPage: TfrxDataPage; Page: TfrxReportPage; Band: TfrxBand; DataBand: TfrxMasterData; Memo: TfrxMemoView; { clear a report } frxReport1.Clear; { add a dataset to the list of ones accessible for a report } frxReport1.DataSets.Add(frxDBDataSet1); { add the "Data" page } DataPage := TfrxDataPage.Create(frxReport1); { add a page } Page := TfrxReportPage.Create(frxReport1); { create a unique name } Page.CreateUniqueName; { set sizes of fields, paper and orientation by default } Page.SetDefaults; { modify paper’s orientation } Page.Orientation := poLandscape; { add a report title band} Band := TfrxReportTitle.Create(Page); Band.CreateUniqueName; { it is sufficient to set the «Top» coordinate and height for a band } { both coordinates are in pixels } Band.Top := 0; Band.Height := 20; { add an object to the report title band } Memo := TfrxMemoView.Create(Band); Memo.CreateUniqueName; Memo.Text := 'Hello FastReport!'; Memo.Height := 20; { this object will be stretched according to band’s width } Memo.Align := baWidth; { add the masterdata band } DataBand := TfrxMasterData.Create(Page); DataBand.CreateUniqueName; DataBand.DataSet := frxDBDataSet1; { the Top coordinate should be greater than the previously added band’s top + height} DataBand.Top := 100; DataBand.Height := 20; { add an object on master data } Memo := TfrxMemoView.Create(DataBand); Memo.CreateUniqueName; { connect to data } Memo.DataSet := frxDBDataSet1; Memo.DataField := 'CustNo'; Memo.SetBounds(0, 0, 100, 20); { adjust the text to the right object’s margin } Memo.HAlign := haRight; { show the report } frxReport1.ShowReport;
C ++:
TfrxDataPage * DataPage; TfrxReportPage * Page; TfrxBand * Band; TfrxMasterData * DataBand; TfrxMemoView * Memo; // clear a report frxReport1->Clear(); // add a dataset to the list of ones accessible for a report frxReport1->DataSets->Add(frxDBDataset1); // add the "Data" page DataPage = new TfrxDataPage(frxReport1); // add a page Page = new TfrxReportPage(frxReport1); // create a unique name Page->CreateUniqueName(); // set sizes of fields, paper and orientation by default Page->SetDefaults(); // modify paper’s orientation Page->Orientation = poLandscape; // add a report title band Band = new TfrxReportTitle(Page); Band->CreateUniqueName(); // it is sufficient to set the «Top» coordinate and height for a band // both coordinates are in pixels Band->Top = 0; Band->Height = 20; // add an object to the report title band Memo = new TfrxMemoView(Band); Memo->CreateUniqueName(); Memo->Text = "Hello FastReport!"; Memo->Height = 20; // this object will be stretched according to band’s width Memo->Align = baWidth; // add the masterdata band DataBand = new TfrxMasterData(Page); DataBand->CreateUniqueName(); DataBand->DataSet = frxDBDataset1; // the Top coordinate should be greater than the previously added band’s top + height DataBand->Top = 100; DataBand->Height = 20; // add an object on master data Memo = new TfrxMemoView(DataBand); Memo->CreateUniqueName(); // connect to data Memo->DataSet = frxDBDataset1; Memo->DataField = "CustNo"; Memo->SetBounds(0, 0, 100, 20); // adjust the text to the right object’s margin Memo->HAlign = haRight; // show the report frxReport1->ShowReport(true);
讓我們解釋一些細節。
必須在報告中使用的所有資料來源都必須新增到資料來源列表中。在我們的情況下,這是使用
frxReport1.DataSets.Add(frxDBDataSet1)
line,否則,報告將不起作用。
對於將內部資料集插入TfrxADOTable到報表中,“資料”頁面是必需的。此類資料集只能放置在“資料”頁面上。
Page.SetDefaults不需要呼叫,因為在這種情況下頁面將具有А4格式,頁邊距為0毫米。SetDefaults設定10mm頁邊距,並採用印表機預設具有的頁面尺寸和對齊方式。
在頁面上新增帶區時,應確保它們不會相互重疊。為此,只需設定«Top»和«Height»座標即可。修改«Left»和«Width»座標毫無用處,因為帶始終具有其所在頁面的寬度(如果是垂直帶,則不正確–您應設定Left和Width屬性,並不在乎頂部和高度)。應該注意的是,樂隊在頁面上的位置順序非常重要。始終以與設計者相同的方式定位樂隊。
物件的座標和大小以畫素為單位設定。因為Left,Top,Width,和Height所有物件的屬性有«擴充套件»型別,你可以指出非整數值。定義了以下常量,用於將畫素轉換為釐米和英寸:
fr01cm = 3.77953; fr1cm = 37.7953; fr01in = 9.6; fr1in = 96;
例如,可以將帶子的高度設定為等於5毫米,如下所示:
Band.Height := fr01cm * 5; Band.Height := fr1cm * 0.5;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69995027/viewspace-2771187/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- FastReport VCL如何從程式碼訪問報告物件AST物件
- 使用FastReport.net在使用者的應用程式中建立報表AST
- 如何透過報表單元格右鍵控制報表跳轉到不同連結地址
- fastreport .net列印普通報表AST
- Oracle透過job定時建立表Oracle
- 透過shell指令碼定位效能sql和生成報告指令碼SQL
- 如何配置報表生成器FastReport.Net環境AST
- 如何將報表與Lazarus中FastReport的資料連線?AST
- FastReport報表生成器有關COM / ActiveX快速報告常見問題AST
- FastReport VCL程式設計師手冊:互動式報表AST程式設計師
- 報表如何透過引數控制資料許可權
- 透過shell指令碼抓取awr報告中的問題sql指令碼SQL
- FastReport資訊:Blazor中的報告和PDF文件ASTBlazor
- 報表生成器FastReport .Net程式設計師手冊:WCF服務的簡單例子AST程式設計師單例
- 透過shell指令碼生成資料統計資訊的報表指令碼
- FastReport報表控制元件使用技巧總結AST控制元件
- 如何使用FastReport.Service.dll建立Web服務ASTWeb
- 如何透過前端表格控制元件實現自動化報表?前端控制元件
- 詳解Dart中如何透過註解生成程式碼Dart
- 如何透過靜態分析提高iOS程式碼質量iOS
- 如何透過Python程式碼旋轉PDF頁面Python
- 透過sql語句建立表時指定表空間的語法SQL
- 透過程式碼例項簡單瞭解Python sys模組Python
- 填報表中如何新增 html 程式碼HTML
- Laravel 透過遷移指令碼建立MySQL檢視Laravel指令碼MySql
- 如何透過程式碼接入手機在網狀態 APIAPI
- 在FastReport .Net應用程式中建立和輸出ITF-14條形碼AST
- 如何透過babel去操作ast, 並生成對應的程式碼。BabelAST
- 滲透測試報告測試報告
- 全表複製過程建立指令碼指令碼
- OceanBase學習之路46|如何透過 SQL 語句或 OCP 建立資源單元?SQL
- 如何對 ABAP 資料庫表透過 ABAP 程式碼進行更新和刪除操作試讀版資料庫
- SAP RETAIL 通過分配表建立UB STO單據AI
- 目錄伺服器如何設定才能透過程式取得密碼?伺服器密碼
- 自動化單元工具EvoSuie的程式碼覆蓋報告UI
- jQuery表單操作程式碼jQuery
- EBS 單個報表(非報表集)根據報表名稱獲取報表源程式
- FastReport VCL報表控制元件教程:元件編輯器寫作AST控制元件