彩票走势图

XtraReports报表使用心得之最终用户篇(一)

原创|其它|编辑:郝浩|2012-09-06 15:16:07.000|阅读 6588 次

概述:使用xtraReport进行报表部分的开发,由于网上的资料比较少,而且大部分示例是xtraReport集成到程序中,目前需求要使用独立设计的报表文件.repx,数据使用IList,这样涉及到在设计报表时,如何给报表文件中字段赋值,尤其是分组时指定字段,这里根据官方文档和自己的测试,得到了一个方法,这里做具体说明。

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

XtraReports报表使用心得之最终用户篇(二)

使用背景:DevExpress控件,版本v10.2,开发环境vs2010;报表单独进行设计,即单独的repx文件(使用report desinger设计,dev的demo里有),使用时动态载入并显示,数据源使用List<>;使用xtraReport进行报表部分的开发,由于网上的资料比较少,而且大部分示例是xtraReport集成到程序中,目前需求要使用独立设计的报表文件.repx,数据使用IList,这样涉及到在设计报表时,如何给报表文件中字段赋值,尤其是分组时指定字段(原来在版本v8时,可以在没有数据源的情况下输入分组的字段,在v10.2版本中已经行不通,必须指定数据源的字段才行,晕死)只好自己结合官方文档和帮助加自己的测试,得到以下的方法,如果哪些同学有更好的方法,我们可以共同探讨:

下面我只写个简单的示例,基本思想都一样。

一、创建winform程序,放置一个按钮控件,一个dev组件中的printcontrol控件,记得项目引用

DevExpress.XtraEditors;

DevExpress.XtraReports;

主要代码:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//定义报表
XtraReport xr = new XtraReport();

//定义测试数据model
public class testdata
{
public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public int Age {get;set;}
}
//显示报表
private void button1_Click(object sender, EventArgs e)
{
//得到list数据 下面是测试用,实际中需要通过函数得到
List<testdata> Items = new List<testdata>();
testdata item;
for (int i = 1; i <= 5; i++)
{
item = new testdata();
item.Id = i;
item.Name = "Name"+i.ToString();
item.Address = "第" + i.ToString() + "区";
item.Age = 10+i;
Items.Add(item);
}
for (int i = 1; i <= 5; i++)
{
item = new testdata();
item.Id = i;
item.Name = "Name-" + i.ToString();
item.Address = "第-" + i.ToString() + "区";
item.Age = 20+i;
Items.Add(item);
}

//动态载入报表文件
xr.LoadLayout(Application.StartupPath + "\\newtest.repx");
xr.DataSource = Items;
XRControl xc; //报表上的组件
xc = xr.FindControl("lbl_Unit", true);
if (xc != null)
{ (xc as XRLabel).Text = "使用部门名称"; } //动态指定报表某个显示的名称,当然你
也可以在报表中写好
xc = xr.FindControl("GroupHeader1", true);
if (xc != null) //动态指定分组的列,因为在v10.2报表设计器中,已经不能输入,必须
指定数据源的字段
{
(xc as DevExpress.XtraReports.UI.GroupHeaderBand).GroupFields.Add(new
GroupField("Id"));
}
//分组绑定合计并指定格式,不加不行
xc = xr.FindControl("tableCellSumAge", true);
if (xc != null)
{
(xc as XRTableCell).DataBindings.Add("Text", xr.DataSource, "Age",
"{0:N2}");
}
this.printControl1.PrintingSystem = xr.PrintingSystem; //将报表的打印系统赋给
窗体上的打印控件
xr.CreateDocument();
}
}

二、使用dev的报表设计器 report Designer 创建一个报表,增加reportHeader、details、
groupHeader、groupFooter等需要的band及table和label,并在相应位置放置 XRTable或xrLabel以显示数据,具体怎么个布局就不说了,看需求了;其中XRTableCell主要来显示List的数据,放在detail区域中,只要直接指定其Text属性即可 如 [Name],对于金额字段 还要指定其summary的formatString属性{0:N2},对应上面的年龄合计字段 tableCellSumAge,设置其summary的running为group(组合计,report:整个报表的合计,none当然就不合计)。

先写这里,东西不多,但研究却花了不少时间,希望对用到的同学有所帮助。


标签:

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

文章转载自:转自snowman2010 CSDN

为你推荐

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

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

DevExpress Universal Subscription

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

DevExpress WinForms Subscription

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

DevExpress DXperience Subscription

高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!

DevExpress ASP.NET Controls

多款重量级ASP.NET用户界面组件套包,让您快速开发出完美、强大的应用程序!

title
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP