原文:DevExpress.XtraReports.UI.XtraReport
动态报表
using System;
using System.Collections.Generic;
using
System.ComponentModel;
using System.Data;
using System.Drawing;
using
System.Linq;
using System.Text;
using System.Windows.Forms;
using
DevExpress.XtraTab;
using DevExpress.XtraPrinting.Control;
using
DevExpress.XtraReports.UI;
namespace WindowsFormsApplication6
{
public partial
class Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
private List<XtraTabPage>
tabpage = new
List<XtraTabPage>();
private
List<PrintControl> printcon = new
List<PrintControl>();
private List<XtraReport> report = new
List<XtraReport>();
private
string path = string.Empty;
private void Form1_Load(object sender, EventArgs
e)
{
path =
AppDomain.CurrentDomain.BaseDirectory;
// TODO:
这行代码将数据加载到表“dataSet1.Orders1”中。您可以根据需要移动或删除它。
this.orders1TableAdapter.Fill(this.dataSet1.Orders1);
// TODO:
这行代码将数据加载到表“dataSet1.Orders”中。您可以根据需要移动或删除它。
this.ordersTableAdapter.Fill(this.dataSet1.Orders);
dataSet1.Tables["DataTable1"].Rows.Add("page0", "Orders",
"XtraReport.repx");
dataSet1.Tables["DataTable1"].Rows.Add("page1", "Orders1",
"XtraReport2.repx");
dataSet1.Tables["DataTable1"].Rows.Add("page2", "Orders",
"XtraReport.repx");
dataSet1.Tables["DataTable1"].Rows.Add("page3", "Orders1",
"XtraReport2.repx");
dataSet1.Tables["DataTable1"].Rows.Add("page4", "Orders1",
"XtraReport2.repx");
foreach (DataRow dr in
dataSet1.Tables["DataTable1"].Rows)
{
XtraTabPage page = new
XtraTabPage();
XtraReport2 xrepot = new
XtraReport2();
string pa = path + "\\" +
dr["DataColumn3"].ToString();
xrepot.LoadLayout(pa);
xrepot.Name =
dr["DataColumn1"].ToString();
page.Name =
dr["DataColumn1"].ToString();
page.Text =
dr["DataColumn1"].ToString();
page.TabPageWidth =
100;
PrintControl print = new
PrintControl();
print.Name =
dr["DataColumn1"].ToString();
print.Dock =
System.Windows.Forms.DockStyle.Fill;
print.PrintingSystem =
xrepot.PrintingSystem;
xrepot.DataSource =
dataSet1.Tables[dr["DataColumn2"].ToString()];
xrepot.CreateDocument();
report.Add(xrepot);
printcon.Add(print);
page.Controls.Add(print);
tabpage.Add(page);
xtraTabControl1.TabPages.Add(page);
}
//dataSet1.Tables["DataTable1"].Rows.Add("page0",
"Orders");
}
private void
xtraTabControl1_SelectedPageChanged(object sender, TabPageChangedEventArgs
e)
{
string
selpage =
xtraTabControl1.SelectedTabPage.Text.ToString();
foreach (XtraReport rp in
report)
{
if (rp.Name ==
selpage)
{
/*
string dc =
string.Empty;
foreach (DataRow r in
dataSet1.Tables["DataTable1"].Rows)
{
if (r["DataColumn1"].ToString() ==
selpage)
dc =
r["DataColumn2"].ToString();
}
rp.DataSource =
dataSet1.Tables[dc];*/
rp.CreateDocument();
}
}
foreach
(PrintControl prc in
printcon)
{
if (prc.Name ==
selpage)
printBarManager1.PrintControl =
prc;
}
}
private void
barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs
e)
{
dataSet1.Tables["Orders1"].Rows.Clear();
dataSet1.Tables["Orders"].Rows.Clear();
/*
foreach
(XtraReport rp2 in
report)
{
rp2.CreateDocument();
}*/
}
private void
barButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs
e)
{
this.orders1TableAdapter.Fill(this.dataSet1.Orders1);
// TODO:
这行代码将数据加载到表“dataSet1.Orders”中。您可以根据需要移动或删除它。
this.ordersTableAdapter.Fill(this.dataSet1.Orders);
}
}
}