Пример #1
0
        public void ExecutePreview()
        {
            this.Hide();

            DataSet ds = new DataSet();

            ds.Tables.Add(new bllUser().GetUsers().Copy());//取报表数据

            _report = new TfrxReportClass();
            _report.OnBeforePrint += new IfrxReportEventDispatcher_OnBeforePrintEventHandler(Report_OnBeforePrint);
            _report.OnAfterPrint  += new IfrxReportEventDispatcher_OnAfterPrintEventHandler(Report_OnAfterPrint);

            ds.Tables[0].TableName = "User";                        //设置表名,与FastReport报表内名称定义一致
            dtSummary = new FrxDataTable(ds.Tables[0]);             //创建报表代理数据

            _report.MainWindowHandle = (int)this.Handle;            //设置报表窗体的主窗体
            _report.LoadReportFromFile(GetReportFile("users.fr3")); //加载报表文件
            _report.ClearDatasets();                                //先清空报表数据

            dtSummary.AssignToReport(true, _report);                //设置报表的主数据源
            dtSummary.AssignToDataBand("MasterData1", _report);     //绑定主表的报表数据

            frmPrintViewerFR.ExecutePreview(this, _report);         //显示打印预览窗体

            this.Close();                                           //预览或打印完成关闭本窗体
        }
Пример #2
0
        //准备报表数据
        private void PrepareReport()
        {
            //取报表数据
            DataSet ds = new bllSO().GetReportData(txtNoFrom.Text, txtNoTo.Text, txtDateFrom.DateTime, txtDateTo.DateTime);

            //报表实例
            _report = new TfrxReportClass();
            _report.OnBeforePrint += new IfrxReportEventDispatcher_OnBeforePrintEventHandler(Report_OnBeforePrint);
            _report.OnAfterPrint  += new IfrxReportEventDispatcher_OnAfterPrintEventHandler(Report_OnAfterPrint);

            ds.Tables[0].TableName = "M";                      //Master 主表
            ds.Tables[1].TableName = "D";                      //Detail 明细
            dtSummary    = new FrxDataTable(ds.Tables[0]);     //创建主表的报表代理数据
            dtDetailView = new FrxDataView(ds.Tables[1], "D"); //创建明细表的报表代理数据

            //主从表数据需要绑定3个事件, 取主表的主键用于过滤明细数据
            dtSummary.FrxEventOnFirst += new FrxOnFirst(OnGetValueHandler); //对应Delphi的DataSet.First
            dtSummary.FrxEventOnNext  += new FrxOnNext(OnGetValueHandler);  //对应Delphi的DataSet.Next
            dtSummary.FrxEventOnPrior += new FrxOnPrior(OnGetValueHandler); //对应Delphi的DataSet.Prior

            _report.MainWindowHandle = (int)this.Handle;
            _report.LoadReportFromFile(GetReportFile("SO.fr3")); //从文件加载报表
            _report.ClearDatasets();

            dtSummary.AssignToReport(true, _report);               //绑定报表数据集
            dtDetailView.AssignToReport(true, _report);            //绑定报表数据集

            dtSummary.AssignToDataBand("MasterData1", _report);    //绑定主表Band
            dtDetailView.AssignToDataBand("DetailData1", _report); //绑定明细表Bank
        }
Пример #3
0
 public void BindToReport(TfrxReportClass report)
 {
     foreach (DataTable tbl in Tables)
     {
         FrxDataTable local_table = new FrxDataTable(tbl);
         frx_tables_array.Add(local_table);
         local_table.AssignToReport(true, report);
     }
 }