DevExpress.XtraReports.UI.XtraReport 动态报表

简介: 原文:DevExpress.XtraReports.UI.XtraReport 动态报表using System;using System.Collections.Generic;using System.
原文: 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);
        }
    }
}

目录
相关文章
|
小程序 Java 数据安全/隐私保护
教学过程管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
教学过程管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
198 1
|
存储 容器
科普:如果电容器阻断直流电,为什么还要在直流电路中使用电容器?
如果电容器阻止直流,那么为什么它用于直流电路?问题不应该是为什么,而是如何!电容器在直流电路中有许多应用,如旁路、滤波、耦合和去耦。因此,利用这种阻隔直流和通过交流的特性,电容器可用于不同的应用。这取决于它连接到电路的方式、电容值、信号频率、电压和其他几个因素。
2003 0
科普:如果电容器阻断直流电,为什么还要在直流电路中使用电容器?
|
缓存 JavaScript 小程序
在HbuilderX中实现微信小程序下蓝牙连接打印机完整实战案例
在HbuilderX中实现微信小程序下蓝牙连接打印机完整实战案例
在HbuilderX中实现微信小程序下蓝牙连接打印机完整实战案例
|
前端开发 测试技术 对象存储
Grafana Loki查询加速:如何在不添加资源的前提下提升查询速度
Grafana Loki查询加速:如何在不添加资源的前提下提升查询速度
413 59
|
数据采集 缓存 IDE
Go中遇到http code 206和302的获取数据的解决方案
文章提供了解决Go语言中处理HTTP状态码206(部分内容)和302(重定向)的方案,包括如何获取部分数据和真实请求地址的方法,以便程序员能快速完成工作,享受七夕时光。
798 0
Go中遇到http code 206和302的获取数据的解决方案
|
存储 算法 安全
深入剖析操作系统的内存管理机制
在数字世界的构建中,操作系统扮演着至关重要的角色。本文将探讨操作系统中的内存管理机制,揭示其背后的技术原理和设计哲学。从内存分配策略到虚拟内存的实现,再到内存保护和回收机制,我们将一探究竟,解析操作系统如何高效、安全地管理宝贵的内存资源。
450 35
|
11月前
|
存储 关系型数据库 MySQL
深度剖析:MySQL聚合函数 count(expr) 如何工作?如何选择?
本文详细探讨了MySQL中count(expr)函数的不同形式及其执行效率,包括count(*)、count(1)、count(主键)、count(非主键)等。通过对InnoDB和MyISAM引擎的对比分析,解释了它们在不同场景下的实现原理及性能差异。文章还通过实例演示了事务隔离级别对统计结果的影响,并提供了源码分析和总结建议。适合希望深入了解MySQL统计函数的开发者阅读。
151 0
Intellij idea 报错:Error : java 不支持发行版本5
Intellij idea 报错:Error : java 不支持发行版本5
161 0
|
机器学习/深度学习 数据采集 算法
用Pytorch搭建一个房价预测模型
用Pytorch搭建一个房价预测模型
949 0
|
计算机视觉 Python
OpenCV实现视频的暂停播放和继续播放功能实战(附Python源码)
OpenCV实现视频的暂停播放和继续播放功能实战(附Python源码)
622 0