因為引入FastReport中的控件時報錯,在網上又搜不到相應的解決辦法
所以在這里動態添加
首先在創建的項目中引入FastReport.dll
//創建一個空的報表
Report report = new Report(); designerControl1.Report = report;
//恢復設計布局 designerControl1.RefreshLayout(); panel2.Controls.Add(designerControl1); designerControl1.Dock = DockStyle.Fill; designerControl1.UIStateChanged += designerControl1_UIStateChanged;
// 設計器ui改變事件
private void designerControl1_UIStateChanged(object sender, EventArgs e) { // btnSave.Enabled = designerControl1.cmdSave.Enabled; // btnUndo.Enabled = designerControl1.cmdUndo.Enabled; // btnRedo.Enabled = designerControl1.cmdRedo.Enabled; }
另一種方法 ,通過 report.Design(); 方法來調用設計器
Report report = new Report(); DataSet ds = new DataSet(); DataTable dt = new DataTable(); dt= DbHelperOra.Query(txt_Sql.Text).Tables[0]; dt.TableName = "測試"; DataTable dt1 = new DataTable("測試2"); dt1.Columns.Add("時間"); dt1.Columns.Add("打印人"); dt1.Rows.Add("2020-01-01", "管理員"); dt1.Rows.Add("2020-02-02", "管理"); ds.Tables.Add(dt.Copy()); ds.Tables.Add(dt1.Copy()); report.RegisterData(ds); //動態添加參數 report.SetParameterValue("測試參數名", "測試值"); //獲取指定名稱的數據源 report.GetDataSource("測試").Enabled = true; report.GetDataSource("測試2").Enabled = true; //調出設計器 report.Design(); //顯示預覽窗口 report.Show(); report.Dispose();
打開報表不綁定數據是無法預覽的
Report report = new Report();
OpenFileDialog openDlg = new OpenFileDialog(); openDlg.Filter = "報表文件|*.frx"; if (openDlg.ShowDialog() == DialogResult.OK) { report.Load(openDlg.FileName); report.Design(); report.Dispose(); }