C#調用FastReport報表打印時的傳參形式


 

C#調用FastReport報表打印時的傳參形式

方式一

調用SetParameterValue方法

FastReport.Report report = new FastReport.Report();

report.SetParameterValue(參數名稱, 參數值);

需要在報表模板文件xx.frx中的<Dictionary>標簽中添加對應的參數

 

在報表設計器中調用參數的方法如下

 

方式二

調用RegisterData注冊數據

report.RegisterData(數據集, 數據集名稱);

需要在報表模板文件xx.frx的<Dictionary>標簽中添加表格數據源、定義數據列及類型

 

在報表設計器中調用數據集的方法如下

 

調用實例

 

1.直接傳參數

FastReport.Report report = new FastReport.Report();

report.Load("ReportFile\\1.直接傳參數.frx");//加載模板

report.PrintSettings.Printer = Printer;//設置打印機

string Username = "直接傳遞參數";

report.SetParameterValue("prams1", Username);//傳參

report.Show();//預覽

效果:

 

2.DataSet傳參

FastReport.Report report = new FastReport.Report();

            report.Load("ReportFile\\2.DateSet傳參.frx");

            report.PrintSettings.Printer = Printer;

            //組織數據

            DataSet dt = new DataSet();

            DataTable tb = new DataTable();

            tb.TableName = "成績表";

            tb.Columns.Add(new DataColumn("語文", Type.GetType("System.Int32")));

            tb.Columns.Add(new DataColumn("數學", Type.GetType("System.Int32")));

            tb.Columns.Add(new DataColumn("英語", Type.GetType("System.Int32")));

            for (int i = 0; i < 10; i++)

            {

                DataRow dr = tb.NewRow();

                dr["語文"] = 36;

                dr["數學"] = 89;

                dr["英語"] = 82;

                tb.Rows.Add(dr);

            }

            dt.Tables.Add(tb);

            //數據注冊

            report.RegisterData(dt, "Data");

            report.Show();

效果:

 

3.圖片傳輸

FastReport.Report report = new FastReport.Report();

            report.PrintSettings.Printer = Printer;

            report.Load("ReportFile\\3.圖片傳輸.frx");

            //直接傳圖

            Image image = Image.FromFile("test.jpg");

            FastReport.PictureObject imgobj = report.FindObject("Picture1") as FastReport.PictureObject;

            imgobj.Width = 120;

            imgobj.Height = 120;

            imgobj.Image = image;

            //DateSet傳圖

            byte[] img = ImageToByte(image);

            DataSet dt = new DataSet();

            DataTable tb = new DataTable();

            tb.TableName = "圖片表";

            tb.Columns.Add(new DataColumn("圖片1", Type.GetType("System.Byte[]")));

            DataRow dr = tb.NewRow();

            dr["圖片1"] = img;

            tb.Rows.Add(dr);

            dt.Tables.Add(tb);

            report.RegisterData(dt, "Data");

            report.Show();

 效果:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM