彩票走势图

XtraReports报表创建教程:钻取报表创建方法

原创|其它|编辑:郝浩|2012-09-18 11:43:12.000|阅读 649 次

概述:本教程描述了创建drill-down report钻取报表的步骤。在这个例子中,我们将用到使用Detail Report bands细节报表区域创建的master-detail report主从报表,每个类别的细节部分可以通过点击一个适当的链接展开/折叠。附上图片和代码说明。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

本教程描述了运用DevExpress XtraReports创建drill-down report钻取报表的步骤。在这个例子中,我们将用到使用Detail Report bands细节报表区域创建的master-detail report主从报表,每个类别的细节部分可以通过点击一个适当的链接展开/折叠。

步骤如下:

1 使用Detail Report区域创建一个master-detail report主从复合结构报表。

2 创建一个显示/隐藏细节报表的链接,将标签拖放到报表的Detail细节区域上。

设置XRControl.Text的文本为Show Detail, XRControl.Name名称为lblShowHide,并设置 (DataBindings)Tag.Binding属性为CategoryID数据字段.

3 执行上述步骤后,可以得到如下报表。

如何运用DevExpress XtraReport创建向下钻取报表

4然后以如下的编程方式处理标签的BeforePrint,PreviewClick,PreviewMouseMove事件和DetailReport的BeforePrint事件:

C#

using System.Collections;

using System.Windows.Forms;

using System.Drawing.Printing;

using DevExpress.XtraReports.UI;

// ... 

 

// Declare two string constants, to store the label's Text value. 

const string sShowDetail = "Show Detail";

const string sHideDetail = "Hide Detail";

 

// Create ;an array containing IDs of the categories being expanded. 

ArrayList expandedValues = new ArrayList();

 

// This function returns a value indicating whether a certain  

// category's details should be expanded. 

bool ShouldShowDetail(int catID) {

    return expandedValues.Contains(catID);

}

 

private void lbShowHide_BeforePrint(object sender, PrintEventArgs e) {

    XRLabel label = (XRLabel)sender;

 

    // Choose the label's text. 

    if(ShouldShowDetail((int)label.Tag)) {

        label.Text = sHideDetail;

    }

    else {

        label.Text = sShowDetail;

    }

}

 

private void DetailReport_BeforePrint(object sender, PrintEventArgs e) {

    // Cancel the Detail Report band's printing if necessary. 

 ;   e.Cancel = !ShouldShowDetail((int)GetCurrentColumnValue("CategoryID"));

}

 

private void lbShowHide_PreviewClick(object sender, PreviewMouseEventArgs e) {

    // Obtain the category's ID stored ;in the label's Tag property. 

    int index = (int)e.Brick.Value;

 

    // Determine whether the current category's details are shown. 

    bool showDetail = ShouldShowDetail(index);

 

    // Toggle the visibility of the category's details. 

    if(showDetail) {

    ;    expandedValues.Remove(index);

    }

    else {

        expandedValues.Add(index);

    }

 

  ;  // Re-create a document to apply the changes. 

    CreateDocument();

}

 

// The following ;code changes the cursor to "hand" when it hovers the label,  

// so that it behaves as a common link. 

private void lbShowHide_PreviewMouseMove(object sender, PreviewMouseEventArgs e) {

    Cursor.Current = Cursors.Hand;

}

 

VB

Imports System.Collections

Imports System.Windows.Forms

Imports System.Drawing.Printing

Imports DevExpress.XtraReports.UI

' ... 

 

' Declare two string constants, to store the label's Text value. 

Private Const sShowDetail As String = "Show Detail" 

Private Const sHideDetail As String = "Hide Detail" 

 

' Create an array containing IDs of the categories being expanded. 

Private expandedValues As New ArrayList()

 

' This function returns a value indicating whether a certain ; 

' category's details should be expanded. 

Private Function ShouldShowDetail(ByVal catID As Integer) As Boolean 

    Return expandedValues.Contains(catID)

End Function 

 

Private Sub lbShowHide_BeforePrint(ByVal sender As Object, ByVal e _ 

As PrintEventArgs) Handles lbShowHide.BeforePrint

    Dim label As XRLabel = CType(sender, ;XRLabel)

 

    ' Choose the label's text. 

    If ShouldShowDetail(CInt(Fix(label.Tag))) Then 

        label.Text = sHideDetail

    Else 

        label.Text = sShowDetail

    End If 

End Sub 

 

Private Sub DetailReport_BeforePrint(ByVal sender As Object, ByVal e _ 

As PrintEventArgs) Handles DetailReport.BeforePrint

    ' Cancel the Detail Report band's printing if necessary. 

    e.Cancel = Not ShouldShowDetail(CInt(Fix(GetCurrentColumnValue("CategoryID"))))

End Sub 

 

Private Sub lbShowHide_PreviewClick(ByVal sender As Object, ByVal e _ 

As PreviewMouseEventArgs) Handles lbShowHide.PreviewClick

    ' Obtain the category's ID stored in the label's Tag property. 

    Dim index As Integer = CInt(Fix(e.Brick.Value))

    ' Determine whether the current category's details are shown. 

    Dim showDetail As Boolean = ShouldShowDetail(index)

 

    ' Toggle the visibility of the category's details. 

    If showDetail Then 

        expandedValues.Remove(index)

    Else 

        expandedValues.Add(index)

    End If 

 

    ' Re-create a document to apply the changes. 

    CreateDocument()

End Sub 

 

' The following code changes the cursor to "hand" when it hovers the label,  ;

' so that it behaves as a common link. 

Private Sub ;lbShowHide_PreviewMouseMove(ByVal sender As Object, ByVal e _ 

As PreviewMouseEventArgs) Handles lbShowHide.PreviewMouseMove

    Cursor.Current = Cursors.Hand

End Sub 

钻取报表就完成了。运行打印预览表单,并查看结果。

如何运用DevExpress XtraReport创建向下钻取报表


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:外文翻译

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
XtraReports Suite

针对Windows Forms、ASP.NET、ASP.NET MVC、WPF,Silverlight和LightSwitch开发者的下一代跨平台报表方案

DevExpress Universal Subscription

行业领先的界面控件开发包,帮助企业构建卓越应用!

DevExpress WPF Subscription

高效MVVM开发模式,WPF界面解决方案首选工具,帮助企业实现酷炫动效界面。

DevExpress Silverlight Controls

高性价比高实用性的Silverlight用户界面控件套包,拥有大量的示例和帮助文档,开发者能够快速上手!

DevExpress WinForms Subscription

为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。

title
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP