原創(chuàng)|使用教程|編輯:鄭恭琳|2020-01-16 11:45:20.980|閱讀 249 次
概述:有時(shí),您的工作需要一份相同的報(bào)表,但有一些更改。例如,不同部門的標(biāo)題不同。本文就讓我們在FastReport.Net中實(shí)現(xiàn)這樣的報(bào)表。您可以生成相同的報(bào)表,并為標(biāo)頭傳遞不同的參數(shù)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
有時(shí),您的工作需要一份相同的報(bào)表,但有一些更改。例如,不同部門的標(biāo)題不同。例如,ActiveReports報(bào)表生成器的用戶想要創(chuàng)建這樣的報(bào)表:
例如,用戶選擇客戶和管理部門的副本。
該應(yīng)用程序創(chuàng)建相同的報(bào)表,但是每個(gè)報(bào)表的標(biāo)題中都有一個(gè)標(biāo)簽,其中顯示了“Copy for the customer”為客戶復(fù)制、“Copy for the administration department”為管理部門復(fù)制之類的內(nèi)容。
之后,應(yīng)用程序必須在表單查看器中顯示兩個(gè)頁面。
讓我們在FastReport.Net中實(shí)現(xiàn)這樣的報(bào)表。您可以生成相同的報(bào)表,并為標(biāo)頭傳遞不同的參數(shù)。但是,如果您希望在一個(gè)報(bào)表中收到標(biāo)題不同的類似報(bào)表,則可以執(zhí)行其他操作。我們可以復(fù)制原始報(bào)表的頁面,然后在這些頁面中修改標(biāo)題。最簡單的方法是在報(bào)表上顯示一頁。
該報(bào)表將具有一個(gè)參數(shù),該參數(shù)列出您要通過逗號顯示在該報(bào)表中的標(biāo)題的數(shù)量。在報(bào)表腳本中,我們根據(jù)設(shè)置中的值數(shù)來復(fù)制頁面,然后將新頁面標(biāo)題中的文本替換為所需的文本。
通過這種方式,我們可以根據(jù)所傳送的號碼形成具有不同標(biāo)題的頁面。但是,有一個(gè)困難。您必須手動計(jì)算要在其中替換文本的文本對象的數(shù)量。例如,我的報(bào)表中有9個(gè)文本對象。首先是標(biāo)題。因此,第十個(gè)也是標(biāo)題,但在新頁面上。如果您再添加9到10,我們將在第三頁上獲得標(biāo)題編號,依此類推。
當(dāng)您編寫腳本代碼時(shí),它將變得更加清晰:
private void _StartReport(object sender, EventArgs e) { //Parse parameter string parameter = (string)Report.GetParameterValue("Parameter"); string[] arr = parameter.Split(','); //Number of text obj that is header int step = 10; foreach (string item in arr) { ReportPage newPage = new ReportPage(); newPage.AssignAll(Page1); Report.Pages.Add(newPage); newPage.CreateUniqueName(); foreach (object obj in newPage.AllObjects) { if (obj is Base) { (obj as Base).CreateUniqueName(); } } TextObject txt = Report.FindObject("Text"+ step.ToString()) as TextObject; switch (item) { case "1": txt.Text = "Header 1"; break; case "2": txt.Text = "Header 2"; break; case "3": txt.Text = "Header 3"; break; } step = step + 9; } Report.Pages.Remove(Page1); }
讓我們仔細(xì)看看這個(gè)腳本。我們在Report對象上使用了StartReport事件。在事件處理程序中,我們將處理報(bào)表頁面。該報(bào)表已經(jīng)開發(fā)了一頁——實(shí)際上,它是一個(gè)現(xiàn)成的“combat”戰(zhàn)斗報(bào)表,在此基礎(chǔ)上,我們想制作幾篇,但標(biāo)題不同。
首先,我們解析一個(gè)報(bào)表參數(shù)。如前所述,參數(shù)以我們要顯示的序列標(biāo)識符模式傳遞。標(biāo)識符以逗號分隔。接下來,迭代從報(bào)表中獲得的循環(huán)參數(shù)ID。對于它們中的每一個(gè),都基于帶有標(biāo)題的現(xiàn)有文本對象創(chuàng)建一個(gè)頁面。根據(jù)文本對象的標(biāo)題模板設(shè)置標(biāo)識符。一旦我們建立了一個(gè)“pack”包裝所需的頁面,請刪除示例的第一頁。
結(jié)果,我們在一個(gè)報(bào)表中獲得了多個(gè)報(bào)表。這些報(bào)表頁面的受控?cái)?shù)量可能會傳入報(bào)表參數(shù)值——所需的標(biāo)識符或標(biāo)頭組合。
產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動 |
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn