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

    文檔首頁>>FastReport.Net教程2020(持續(xù)更新中)>>如何通過用戶應(yīng)用程序代碼在報(bào)表中設(shè)置圖片

    如何通過用戶應(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í),才可能這樣做。

    如何通過用戶應(yīng)用程序代碼在報(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) | 在線客服

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();