DevExpress.XtraReports.UI.XtraReport 动态报表
原文: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);
}
}
}
DevExpress.XtraReports.UI.XtraReport 动态报表的更多相关文章
- C#打印模板设计,E店宝打印模板设置,winfrom打印模板设计,DevExpress.XtraReports.UI.XRTable 表格代码生成。
一.打印效果 二.代码编辑 1 .table1 : table控件的Name: 2.label33 :label控件 实现绑定[外部平台单号]的控件: 3.label32:绑定[E店宝订单编号](S开 ...
- Devexpress Xtrareports 创建多栏报表
根据官方回答:多列或多行(取决于当前的多栏设置)呈现数据的报表 这种报表是有用的,例如,当每个明细区都只显示少量数据.并且需要在一列的右侧打印下一个明细区时,这样就能充分利用整个页面的宽度,此外,当创 ...
- 动态传递参数到DevExpress.XtraReports的小结
原文:动态传递参数到DevExpress.XtraReports的小结 前两种方法和WinForm一样,可以传递参数.数组.实体对象.DataTable等1. 采用构造函数具体用法:在Report中p ...
- DevExpress XtraReports 入门五 创建交叉表报表
原文:DevExpress XtraReports 入门五 创建交叉表报表 本文只是为了帮助初次接触或是需要DevExpress XtraReports报表的人群使用的,为了帮助更多的人不会像我这样浪 ...
- DevExpress XtraReports 入门六 控件以程序方式创建一个 交叉表 报表
原文:DevExpress XtraReports 入门六 控件以程序方式创建一个 交叉表 报表 本文只是为了帮助初次接触或是需要DevExpress XtraReports报表的人群使用的,为了帮助 ...
- [原创]Devexpress XtraReports 系列 8 创建Drill-Through报表
哎,今天公司工作忙了一天,一直没有时间写写东西.所以只能昨天晚上加班写咯.苦逼啊...... 昨天发表了Devexpress XtraReports系列第七篇[原创]Devexpress XtraRe ...
- [原创]Devexpress XtraReports 系列 1 创建静态报表
在各种管理系统中,报表是必不可少的.报表是数据最直观体现的方式之一 以前,屌丝我是微软的忠实粉丝,所以报表工具就是微软自带的RDLC... 不可否认的是RDLC的功能是非常强大的.能够满足绝大多数的要 ...
- DevExpress XtraReport - 动态加载报表布局模板
XtraReport的报表模板文件是.repx,下面的代码演示动态加载报表布局模板. XtraReport mReport = new XtraReport(); mReport.LoadLayout ...
- [原创]Devexpress XtraReports 系列 3 创建主从报表
昨天写了系列的第二篇Devexpress XtraReports 系列 2 创建表格报表 . 今天我们来继续系列 3 创建主从报表 首先我们来看看最后实现的效果.Demo最后附上. 开始吧. 第一步, ...
随机推荐
- nyoj 117 找到的倒数 【树阵】+【分离】
这个问题的解决方案是真的很不错!!! 思路:建立一个结构体包括val和id. val就是输入的数,id表示输入的顺序.然后依照val从小到大排序.假设val相等.那么就依照id排序. 假设没有逆序的话 ...
- 11gR2更换OCR和VOTE
11gR2开始,OCR和VOTE它们被存储在ASM磁盘组,因此,更换OCR有两种方法,第一是使用ASM磁盘组drop disk数据重组后,另一种方法是OCR迁移到另一个磁盘组 第一种:add disk ...
- 简单的反射 把datatable 转换成list对象
/// <summary> /// 把datatable 转换成list对象 /// </summary> /// <typeparam name="T&quo ...
- WPF 绑定
WPF里分三种Binding:Binding, PriorityBinding, MultiBinding,这三种Binding的基类都是BindingBase,而BindingBase又继承于Mar ...
- Xampp mysql无法启动的解决方案(转)
如果出现mysql 无法启动表明在安装xampp 前已经安装了mysql,造成mysql服务无法启动. [mysql] MySQL Service detected with wrong path23 ...
- 构造函数为什么不能为虚函数 & 基类的析构函数为什么要为虚函数
一.构造函数为什么不能为虚函数 1. 从存储空间角度,虚函数相应一个指向vtable虚函数表的指针,这大家都知道,但是这个指向vtable的指针事实上是存储在对象的内存空间的.问题出来了,假设构造函数 ...
- Linux下yum订购具体解释
1.描述 yum = Yellow dog Updater, Modified/删除/更新RPM包.它能自己主动解决包的倚赖性问题.类似于Ubuntu的apt.它能便于管理大量系统的更新问题. 配置文 ...
- 高榕资本宾悦:未使用的企业家Testin云测试服务类故障
高榕资本岳斌:创业者未使用Testin云測试服务属不合格 2014/10/09 · Testin · 开发人员訪谈 Testin云測与工信部等联合承办的ICT中国.2014高层论坛之移动开发人员分论坛 ...
- Android - 用Fragments实现动态UI - 和其他Fragments通信
为了重用Fragment UI组件,应该把每个都设计为它自有的模块组件并且有自己的布局和行为.一旦定义了这些可重用的Fragment,你可以把它们和一个activity关联然后和程序的逻辑一起实现上层 ...
- js中的json对象
1.JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不须要 ...