Devexpress XtraReports报表教程
来源:互联网 发布:傲剑紫霞升级数据大全 编辑:程序博客网 时间:2024/05/16 15:42
本教程描述了运用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 执行上述步骤后,可以得到如下报表。
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
钻取报表就完成了。运行打印预览表单,并查看结果。
更多教程:
- XtraReports报表创建教程:跨标签报表创建方法
- XtraReports报表创建教程:静态报表创建方法
- XtraReports报表创建教程:并排报表创建方法
- XtraReports报表创建教程:多列报表创建方法
- XtraReports报表创建教程:邮件合并报表创建方法
- XtraReports报表创建教程:穿透钻取报表创建方法
- Devexpress XtraReports报表教程
- DevExpress.XtraReports报表,动态设置报表布局
- DevExpress.XtraReports报表,动态设置报表布局
- DevExpress.XtraReports报表,动态设置报表布局
- DevExpress XtraReports报表入门教程:创建一个Master-Detail主从报表
- DevExpress.XtraReports 如何动态运行时创建报表
- DevExpress.XtraReports 如何动态运行时创建报表
- 如何使用DevExpress XtraReports创建一个表格报表
- DevExpress XtraReports控件创建主从报表的两种方法
- XtraReports报表创建教程:多列报表创建方法
- DevExpress XtraReports的使用
- XtraReports系列教程一:创建Windows Forms报表应用程序
- 使用DevExpress.XtraReports.UI.XtraReport 设计报表的时候如何格式化字符串
- XtraReports的报表编辑器
- DevExpress.XtraReports 画表格线
- XtraReports 动态报表的建立
- XtraReports 动态报表的建立
- 【网摘】XtraReports使用手册(报表创建、导出、使用教程和使用心得)
- 程序里wstring,string和CString的Buffer里到底存的是什么(菜鸟问题)
- C++知识点汇总一
- hadoop学习过程-2013.08.30.1--按照网页内容搜索出网页01--确定网页来源
- 上班八小时的习惯
- 修正信号量
- Devexpress XtraReports报表教程
- 取石子游戏(博弈类)
- 怎么恢复损坏后的undo 表空间(一)
- 使用润乾报表的心得
- Java Se 程序运用整合归纳
- createserver(oracle)
- AES加解密(java)
- poj_2155 Matrix
- 对类 和 对象 的理解