天天看点

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)

    }

}