FastReport注册数据源

using Smart.Controls;

一、注册参数 

        public override void InitReport(FastReport.Report report)
        {
            base.InitReport(report);
            report.SetParameterValue("欄目1", myDm.Header1);
            report.SetParameterValue("欄目2", myDm.Header2);
            report.SetParameterValue("欄目3", myDm.Header3);
            report.SetParameterValue("欄目4", myDm.Header4);
            report.SetParameterValue("欄目5", myDm.Header5);
            report.SetParameterValue("欄目6", myDm.Header6);
        }

注意:
经使用发现这种方法注册参数有一个致命的缺点,就是参数只能在报表首次建立时传入,如果报表设计好想再加参数似乎不可能。考虑到后期维护问题建议不要用这种方法,可以用下面的注册数据源方法来达到相同效果。

二、注册数据源

        public override void InitReport(FastReport.Report report)
        {
            base.InitReport(report);

            // 报表参数 (其实就是只有一行记录的DataTable)  
            var param = new DataTable();
            param.Columns.Add("截止年度", typeof(int));
            param.Columns.Add("截止月份", typeof(int));
            //加一行记录
            var paramRow = param.Rows.Add();
            paramRow.SetField("截止年度", myDm.SelectedDate.Year);
            paramRow.SetField("截止月份", myDm.SelectedDate.Month);
            //註冊  
            report.RegisterData(param, "报表参数");


            //注冊:貨車客戶的打印信息
            var customer = DataAgent.GetPubTruckCustomerPrintInfo(myDm.CustomerNo);   
            report.RegisterData(customer.Table, "客戶信息");


            //注冊:公司的打印信息
            var company = DataAgent.GetPubCompanyPrintInfo(myDm.CompanyNo);
            report.RegisterData(company.Table, "公司信息");
        }

你可能感兴趣的:(FastReport注册数据源)