如何通過用戶應(yīng)用程序代碼在報(bào)表中設(shè)置圖片
通常,需要根據(jù)任何條件或輸入?yún)?shù)來設(shè)置報(bào)表中的各種圖像。List & Label報(bào)表生成器的用戶遇到了此問題:
有沒有辦法以編程方式從.net代碼將內(nèi)嵌圖像插入List & Label文檔中?
但是,用戶找不到解決方案:
不幸的是,無法從.NET代碼插入圖像。僅當(dāng)在List & Label設(shè)計(jì)器中使用報(bào)表時(shí),才可能這樣做。
接下來,我想展示如何在FastReport.Net報(bào)表生成器中實(shí)現(xiàn)這一點(diǎn)。
在創(chuàng)建報(bào)表時(shí),我們直接使用其所有對(duì)象——?jiǎng)?chuàng)建它們,將它們添加到報(bào)表頁面,設(shè)置屬性??紤]一個(gè)簡(jiǎn)單的示例,該示例根據(jù)帶有圖片的用戶應(yīng)用程序的代碼創(chuàng)建報(bào)表
//Create instance of class Report Report report = new Report(); //Add report page ReportPage page = new ReportPage(); report.Pages.Add(page); page.CreateUniqueName(); //App data band DataBand data = new DataBand(); //Add data band to page page.Bands.Add(data); data.CreateUniqueName(); data.Height = Units.Centimeters * 1; //Set band height //Create picture object PictureObject pic = new PictureObject(); pic.Bounds = new RectangleF(0, 0, Units.Centimeters * 5, Units.Centimeters * 5); //Set object bounds pic.Image = new Bitmap("../../App_Data/snow_flake.ico"); //Set picture pic.Parent = data; //Set picture parent object pic.CreateUniqueName(); report.Prepare(); //Build report report.Show(); //Show report
這是一個(gè)只有一個(gè)“data”band的報(bào)表的非常簡(jiǎn)單的示例。由于此報(bào)表完全由程序代碼創(chuàng)建,因此使用圖片創(chuàng)建對(duì)象并將其放入報(bào)表中沒有問題。根據(jù)代碼的邏輯,根據(jù)代碼創(chuàng)建報(bào)表可以根據(jù)需要進(jìn)行任意更改。
考慮另一種情況。假設(shè)您已經(jīng)在設(shè)計(jì)器中創(chuàng)建了報(bào)表模板。您要根據(jù)程序的邏輯更改報(bào)表中的圖片。在這種情況下,報(bào)表模板應(yīng)該已經(jīng)有一個(gè)Picture對(duì)象,您只需從用戶應(yīng)用程序代碼中替換圖片本身即可。這是程序中的代碼:
//Create report object Report report = new Report(); //Load report template into the report obj report.Load("../../App_Data/Picture.frx"); //Get picture object from the report template PictureObject pic = report.FindObject("Picture1") as PictureObject; //Set object bounds pic.Bounds = new RectangleF(0, 0, Units.Centimeters * 5, Units.Centimeters * 5); //Set the image pic.Image = new Bitmap("../../App_Data/snow_flake.ico"); //Build report report.Prepare(); //Show report report.Show();
在這里,我們?cè)趫?bào)表模板中找到一個(gè)帶有圖片的對(duì)象,并根據(jù)需要更改其屬性。
最后,Picture對(duì)象的第三個(gè)版本來自內(nèi)置的報(bào)表腳本。報(bào)表腳本允許您根據(jù)需要更改報(bào)表中的模式和數(shù)據(jù)。您可以將Picture對(duì)象預(yù)先添加到模板中,也可以將其直接添加到報(bào)表腳本中。確實(shí),無限的靈活性。無需使用自定義應(yīng)用程序來管理報(bào)表的內(nèi)容。對(duì)我來說,這是一個(gè)很大的好處,因?yàn)闊o需編輯應(yīng)用程序代碼。在報(bào)表腳本中設(shè)置圖像的示例非常簡(jiǎn)單:
Picture1.Image = new Bitmap("C:/Users/Dimon/source/repos/PictureSetting/PictureSetting/App_Data/snow_flake.ico");
您只需要確定要更改圖片的事件,例如,可以將Picture對(duì)象用于BeforePrint事件。
產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動(dòng) | 在線客服