提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2012-09-06 15:16:07.000|阅读 6588 次
概述:使用xtraReport进行报表部分的开发,由于网上的资料比较少,而且大部分示例是xtraReport集成到程序中,目前需求要使用独立设计的报表文件.repx,数据使用IList,这样涉及到在设计报表时,如何给报表文件中字段赋值,尤其是分组时指定字段,这里根据官方文档和自己的测试,得到了一个方法,这里做具体说明。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
使用背景: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针对Windows Forms、ASP.NET、ASP.NET MVC、WPF,Silverlight和LightSwitch开发者的下一代跨平台报表方案
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
针对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用户界面组件套包,让您快速开发出完美、强大的应用程序!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢