FastReport VCL程序員手冊:通過代碼創(chuàng)建報告表單
FastReport VCL是用于Delphi,C ++ Builder,RAD Studio和Lazarus的報告和文檔創(chuàng)建VCL庫。它提供了可視化模板設(shè)計器,可以訪問為30多種格式,并可以部署到云,網(wǎng)站,電子郵件和打印中。
近日,F(xiàn)astReport VCL更新至v6.9,在新版本中,在PDF更新中增加了對以下對象的并行表單支持:文本,替換和圖片。能夠通過InteractiveFormsFont子集屬性將所需的字形僅包含在相互形式中。同時修復了多個Bug問題。歡迎下載體驗。(單擊下方按鈕下載)
通常,您將使用手動創(chuàng)建報告。
要手動創(chuàng)建報告,應按順序執(zhí)行以下步驟:
- 清除報告組件
- 添加數(shù)據(jù)源
- 添加“數(shù)據(jù)”頁面
- 添加報告頁面
- 在頁面上添加樂隊
- 設(shè)置初始的屬性,然后將其連接到數(shù)據(jù)
- 在每個雙人上添加對象
- 設(shè)置對象的屬性,然后將它們連接到數(shù)據(jù)
帕斯卡爾:
變種 數(shù)據(jù)頁:TfrxDataPage; 頁面:TfrxReportPage; 頻段:TfrxBand; DataBand:TfrxMasterData; 備注:TfrxMemoView; {清除報告} frxReport1.Clear; {將資料集加入報表可存取的資料集} frxReport1.DataSets.Add(frxDBDataSet1); {添加“數(shù)據(jù)”頁面} DataPage:= TfrxDataPage.Create(frxReport1); {添加頁面} 頁面:= TfrxReportPage.Create(frxReport1); {創(chuàng)建一個唯一的名稱} Page.CreateUniqueName; {默認設(shè)置字段,紙張和方向的大小} Page.SetDefaults; {修改紙張的方向} 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);讓我們解釋一些細節(jié)。
必須在報告中使用的所有數(shù)據(jù)源都必須添加到數(shù)據(jù)源列表中。在我們的情況下,這是使用
frxReport1.DataSets.Add(frxDBDataSet1)line,否則,報告將不起作用。
對于將內(nèi)部數(shù)據(jù)集插入TfrxADOTable到報表中,“數(shù)據(jù)”頁面是必需的。此類數(shù)據(jù)集只能放置在“數(shù)據(jù)”頁面上。
Page.SetDefaults不需要調(diào)用,因為在這種情況下頁面將具有А4格式,頁邊距為0毫米。SetDefaults設(shè)置10mm頁邊距,并采用打印機默認具有的頁面尺寸和對齊方式。
在頁面上添加帶區(qū)時,應確保它們不會相互重疊。為此,只需設(shè)置?Top?和?Height?坐標即可。修改?Left?和?Width?坐標毫無用處,因為帶始終具有其所在頁面的寬度(如果是垂直帶,則不正確–您應設(shè)置Left和Width屬性,并不在乎頂部和高度)。應該注意的是,樂隊在頁面上的位置順序非常重要。始終以與設(shè)計者相同的方式定位樂隊。
對象的坐標和大小以像素為單位設(shè)置。因為Left,Top,Width,和Height所有對象的屬性有?擴展?類型,你可以指出非整數(shù)值。定義了以下常量,用于將像素轉(zhuǎn)換為厘米和英寸:
fr01cm = 3.77953; fr1cm = 37.7953; fr01in = 9.6; fr1in = 96;例如,可以將帶子的高度設(shè)置為等于5毫米,如下所示:
Band.Height := fr01cm * 5; 帶高度:= fr1cm * 0.5;
還想要更多嗎?您可以點擊閱讀【FastReport報表2020最新資源盤點】,查找需要的教程資源。讓人興奮的是FastReport .NET正在慧都網(wǎng)火熱銷售中!>>查看價格詳情