zoukankan      html  css  js  c++  java
  • Devexpress Xtrareport 并排报表

    什么是并排报表呢?

      

    按照我个人理解:并排报表是把两张或者两张以上的报表,放在一个报表页面。

    注:为了方便,本示例使用同一个数据源,但是您可以使用相同的方法,而在一个报表文档中显示两个完全不同的 (使用不同数据源的) 报表。

    依照惯例,我们先来看看我们最后实现的效果,如图:

      

    第一步:窗体布局。

    新建一个WinForm窗体,,拉入第三方控件SimpleButton,DocumentViewer,SplitContainerControl,LabelControl,TextEdit,GroupControl,无非就是设置空间Dock属性,还有字体Text属性等,简单布局我就不多阐述了。可以参考系列第一篇。

    第二步:创建两个个Devexpress XtraReport报表文件。一个是明细报表DetailSideBySideRpt(用于绑定到最后显示的并排报表MasterSideBySideRpt),一个是最后显示的并排报表MasterSideBySideRpt  如图:

       

      然后新建一个MasterSideBySideRpt,如图:

        

    那如何把我们新建的DetailSideBySideRpt报表,并排显示到MasterSideBySideRpt呢?

    方法一:添加控件XrSubreport 如图:

      

    也可以手动添加代码

    this.xrSubreport1.ReportSource = new 创建并排报表.DetailSideBySideRpt();

    this.xrSubreport2.ReportSource = new 创建并排报表.DetailSideBySideRpt();//这里我并排的两张报表都使用了同一个DetailSideBySideRpt,可以使用不同的

    Form代码

      

     1       /// <summary>
     2         /// 获取数据集
     3         /// </summary>
     4         /// <returns>返回数据集</returns>
     5         private DataSet Getdataset()
     6         {
     7             DataSet ds = new DataSet();
     8             string cstr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString.ToString();
     9             SqlConnection mycon = new SqlConnection(cstr);
    10             try
    11             {
    12                 mycon.Open();
    13                 SqlCommand mycom = new SqlCommand("select * from jiaochainfo", mycon);
    14                 SqlDataAdapter dpt = new SqlDataAdapter(mycom);
    15                 dpt.Fill(ds, "jiaochainfo");
    16                 mycon.Close();
    17             }
    18             catch (Exception ex)
    19             {
    20 
    21                 MessageBox.Show(ex.Message);
    22             }
    23 
    24             return ds;
    25         }
    26         //点击事件
    27         private void simpleButton1_Click(object sender, EventArgs e)
    28         {
    29             DataSet ds = Getdataset();
    30             XtraReport1 report = new XtraReport1(ds);
    31             report.Landscape = true;
    32             MianXtrareport rpt = new MianXtrareport(ds);
    33             rpt.Landscape = true;
    34             documentViewer1.DocumentSource = rpt;
    35             //显示主报表的文档
    36             rpt.CreateDocument();
    37         }
    38 
    39     }

    详细报表代码

      

     1       
     2         //构造数据参数绑定字段
     3         public XtraReport1(DataSet ds)
     4         {
     5             InitializeComponent();
     6             this.DataSource = ds;
     7             this.DataMember = "jiaochainfo";
     8             this.xrLabel1.DataBindings.Add("Text",ds,"name");
     9             this.xrLabel2.DataBindings.Add("Text",ds,"sex");
    10             this.xrLabel3.DataBindings.Add("Text",ds,"older");
    11         }

    主报表代码

      

     1        //主报表构造函数
     2         public MianXtrareport( DataSet ds)
     3         {
     4             InitializeComponent();
     5             //关键的一步,xrsubreport 控件的报表源等于 xtrareport
     6             this.xrSubreport1.ReportSource = new 并排报表.XtraReport1(ds);
     7             this.xrSubreport2.ReportSource = new 并排报表.XtraReport1(ds);
     8 
     9         }
    10 
    11         //在显示之前的事件,利用FilterString属性过滤数据源
    12 
    13         private void xrSubreport1_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
    14         {
    15             //jtype为数据库库的字段
    16             ((XRSubreport)sender).ReportSource.FilterString = "jtype =='体育明星'";
    17         }
    18         //利用FilterString属性过滤数据源
    19 
    20         private void xrSubreport2_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
    21         {
    22             ((XRSubreport)sender).ReportSource.FilterString = "jtype =='影视明星'";
    23         }
  • 相关阅读:
    每天学习算法二
    每天学习算法 一
    数据量基础
    SQL server数据库创建代码,filegroup文件组修改,
    SQL学习笔记之 数据库基础(一)
    Oracle的查询-条件表达式
    Oracle的查询-单行查询
    Oracle 的查询-scott用户介绍
    Oracle的基本操作-序列的使用
    Oracle的基本操作-修改表结构、数据的增删改查
  • 原文地址:https://www.cnblogs.com/xiaowie/p/8990562.html
Copyright © 2011-2022 走看看