• <menu id="w2i4a"></menu>
  • logo FastReport.Net教程2020(持續(xù)更新中)

    文檔首頁>>FastReport.Net教程2020(持續(xù)更新中)>>如何使用不同的標(biāo)題制作相同的報表頁面

    如何使用不同的標(biāo)題制作相同的報表頁面


    有時,您的工作需要一份相同的報表,但有一些更改。例如,不同部門的標(biāo)題不同。例如,ActiveReports報表生成器的用戶想要創(chuàng)建這樣的報表:

    例如,用戶選擇客戶和管理部門的副本。

    該應(yīng)用程序創(chuàng)建相同的報表,但是每個報表的標(biāo)題中都有一個標(biāo)簽,其中顯示了“Copy for the customer”為客戶復(fù)制、“Copy for the administration department”為管理部門復(fù)制之類的內(nèi)容。

    之后,應(yīng)用程序必須在表單查看器中顯示兩個頁面。

    如何使用不同的標(biāo)題制作相同的報表頁面

    讓我們在FastReport.Net中實現(xiàn)這樣的報表。您可以生成相同的報表,并為標(biāo)頭傳遞不同的參數(shù)。但是,如果您希望在一個報表中收到標(biāo)題不同的類似報表,則可以執(zhí)行其他操作。我們可以復(fù)制原始報表的頁面,然后在這些頁面中修改標(biāo)題。最簡單的方法是在報表上顯示一頁。

    該報表將具有一個參數(shù),該參數(shù)列出您要通過逗號顯示在該報表中的標(biāo)題的數(shù)量。在報表腳本中,我們根據(jù)設(shè)置中的值數(shù)來復(fù)制頁面,然后將新頁面標(biāo)題中的文本替換為所需的文本。

    通過這種方式,我們可以根據(jù)所傳送的號碼形成具有不同標(biāo)題的頁面。但是,有一個困難。您必須手動計算要在其中替換文本的文本對象的數(shù)量。例如,我的報表中有9個文本對象。首先是標(biāo)題。因此,第十個也是標(biāo)題,但在新頁面上。如果您再添加9到10,我們將在第三頁上獲得標(biāo)題編號,依此類推。

    當(dāng)您編寫腳本代碼時,它將變得更加清晰:

    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ì)看看這個腳本。我們在Report對象上使用了StartReport事件。在事件處理程序中,我們將處理報表頁面。該報表已經(jīng)開發(fā)了一頁——實際上,它是一個現(xiàn)成的“combat”戰(zhàn)斗報表,在此基礎(chǔ)上,我們想制作幾篇,但標(biāo)題不同。

    首先,我們解析一個報表參數(shù)。如前所述,參數(shù)以我們要顯示的序列標(biāo)識符模式傳遞。標(biāo)識符以逗號分隔。接下來,迭代從報表中獲得的循環(huán)參數(shù)ID。對于它們中的每一個,都基于帶有標(biāo)題的現(xiàn)有文本對象創(chuàng)建一個頁面。根據(jù)文本對象的標(biāo)題模板設(shè)置標(biāo)識符。一旦我們建立了一個“pack”包裝所需的頁面,請刪除示例的第一頁。

    結(jié)果,我們在一個報表中獲得了多個報表。這些報表頁面的受控數(shù)量可能會傳入報表參數(shù)值——所需的標(biāo)識符或標(biāo)頭組合。

    如何使用不同的標(biāo)題制作相同的報表頁面

     

     

    產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動 | 在線客服

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();