开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 7031|回复: 10

一款封装好的动态自动绘制报表类-转贴

[复制链接]

0

精华

6

贡献

225

赞扬

帖子
71
软币
1999
在线时间
134 小时
注册时间
2013-6-9
发表于 2013-6-11 22:11:00 | 显示全部楼层 |阅读模式
针对需要大量报表的项目来说,一个个绘制报表是一件非常痛苦的事情,而因为项目的更换表格的部分信息变化又要重新绘制更是痛苦不堪,有没有方法让XtraReports动态自动生成报表,形成便于维护的报表模板呢?大家请看
(转自:http://www.cnblogs.com/pains/archive/2012/06/14/2549228.html
来看看报表显示结果


来看看报表的定义文件      
       /// <summary>
        ///
报表布局数组
        
/// </summary>
        private void
makeLayoutString()
        {
            
// 报表主要布局   
            ReportLayout = new string
[][][]
            {
               
// 报表头标题布局
                new string
[][]
                {
                    
// 报表标题
                    new string[] { "××至××西线高速公路","房建工程清单支付报表"
},
                    
// 报表其它头标题
                    new string[] { "1", "承包单位", "4"
},
                    
new string[] { "2", "合同段", "2"
},
                    
new string[] { "3", "填报日期", "2"
},
                    
new string[] { "4", "监理单位", "4"
},
                    
new string[] { "5", "期号", "2"
} ,
                    
new string[] { "6", "截止日期","2"
}
                },               
               
// 报表明细布局
                new string
[][]
                {
                    
new string[] { "1", "项目编号", "89" ,"22"
},
                    
new string[] { "2", "项目名称", "200","6"
},
                    
new string[] { "3", "c单位", "20"
},
                    
new string[] { "4", "r合同数量", "100"
},
                    
new string[] { "5", "r单价", "30"
},
                    
new string[] { "6", "r变更后数量", "100"
},
                    
new string[] { "7", "r本期末完成数量", "100"
},
                    
new string[] { "8", "r本期末完成金额","100"
},
                    
new string[] { "9", "r上期末完成数量", "100"
},
                    
new string[] { "10", "r上期末完成金额", "100"
},
                    
new string[] { "11", "r本期完成数量", "70"
},
                    
new string[] { "12", "r本期完成金额", "80"
},
                },
               
new string
[][]
                {
                    
new string[]{"1","承包人","1"
},
                    
new string[]{"2","监理处专业工程师","1"
},
                    
new string[]{"3","监理处计量工程师","1"
},
                    
new string[]{"4","高级驻地","1"
},
                    
new string[]{"5","计划部专业工程师","1"
},
                    
new string[]{"6","合约部计量工程师","1"
}
                }
            };
            
// 报表统计布局(未用)
            mTotalLayout = new string
[][]
            {
               
new string[]{"小计","289"
},
               
new string[]{"","20"
},
               
new string[]{"","100"
},
               
new string[]{"","30"
},
               
new string[]{"","100"
},
               
new string[]{"","100"
},
               
new string[]{"8","100"
,DevExpress.XtraReports.UI.SummaryFunc.Sum.ToString()},
               
new string[]{"","100"
},
               
new string[]{"10","100"
,DevExpress.XtraReports.UI.SummaryFunc.Sum.ToString()},
               
new string[]{"","70"
},
               
new string[]{"12","80"
,DevExpress.XtraReports.UI.SummaryFunc.Sum.ToString()},
            };

            
// 报表分组布局
            mGroupLayout = new string
[]
            {
               
"1","dfasdf"

            };

            
//报表明细列头布局
            mdetailHeadLayout = new string
[][]
                {
                    
new string[] { "项目编号", "89"
},
                    
new string[] { "项目名称", "200"
},
                    
new string[] { "单位", "20"
},
                    
new string[] { "合同数量", "230"
},
                    
new string[] { "到本期末完成", "200"
},
                    
new string[] { "到上期末完成", "200"
},
                    
new string[] { "本期完成", "150"
},
                                       
                    
new string[] { "", "89"
},
                    
new string[] { "", "200"
},
                    
new string[] { "", "20"
},
                    
new string[] { "原合同数量", "100"
},
                    
new string[] { "单价", "30"
},
                    
new string[] { "变更后数量", "100"
},
                    
new string[] { "数量", "100"
},
                    
new string[] { "金额(元)","100"
},
                    
new string[] { "数量", "100"
},
                    
new string[] { "金额(元)", "100"
},
                    
new string[] { "数量", "70"
},
                    
new string[] { "金额(元)", "80"
}
                };
        }


这样就形成了模板文件,对于移植更改维护相当的方便。那么对于不规则类的表格可不可以做呢?大家请看


对于项目中一次打印审批数量非常的表格,也可以加上条形码,配上扫描设备就便于查找审批了

评分

参与人数 2软币 +10 赞扬 +1 收起 理由
jiongge + 1 Thanks
羽叶 + 10

查看全部评分

回复

使用道具 举报

0

精华

5295

贡献

6059

赞扬

管理员

帖子
1176
软币
22629
在线时间
4467 小时
注册时间
2013-6-7

黄马甲

发表于 2013-6-11 22:31:37 | 显示全部楼层
不错不错,感谢楼主分享
回复

使用道具 举报

0

精华

940

贡献

167

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
237
软币
2692
在线时间
264 小时
注册时间
2013-6-17
发表于 2013-6-18 10:54:57 | 显示全部楼层
不错,不过我还是用APOSE CELL来做,因为国产报表实在画起来累,让客户做好模板,我就填数据了
回复

使用道具 举报

0

精华

135

贡献

111

赞扬

管理员

帖子
155
软币
3622
在线时间
419 小时
注册时间
2013-6-7

黄马甲胡吹海聊

发表于 2013-6-18 21:41:53 | 显示全部楼层
回复,很给力,学习一下
回复

使用道具 举报

0

精华

99

贡献

36

赞扬

帖子
79
软币
769
在线时间
66 小时
注册时间
2013-6-19
发表于 2013-6-20 20:46:42 | 显示全部楼层
好像是需要购买的
回复

使用道具 举报

0

精华

921

贡献

108

赞扬

赞助者组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
66
软币
3597
在线时间
351 小时
注册时间
2013-6-20
发表于 2013-6-21 15:46:53 | 显示全部楼层
做个系统正需要这个表格,不错,支持!
回复

使用道具 举报

0

精华

941

贡献

1114

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
227
软币
8306
在线时间
1119 小时
注册时间
2013-6-8
发表于 2013-6-21 22:35:35 | 显示全部楼层
没下载啊好像是收费的
回复

使用道具 举报

0

精华

218

贡献

110

赞扬

实习版主

帖子
68
软币
2043
在线时间
132 小时
注册时间
2013-6-9
发表于 2013-6-21 23:43:21 | 显示全部楼层
拯救了人类啊。。。
回复

使用道具 举报

0

精华

218

贡献

110

赞扬

实习版主

帖子
68
软币
2043
在线时间
132 小时
注册时间
2013-6-9
发表于 2013-6-21 23:48:21 | 显示全部楼层
tanqimin 发表于 2013-6-21 23:43
拯救了人类啊。。。

可惜了,是要收费的,唉……
回复

使用道具 举报

0

精华

6

贡献

225

赞扬

帖子
71
软币
1999
在线时间
134 小时
注册时间
2013-6-9
 楼主| 发表于 2013-6-26 22:28:47 | 显示全部楼层
我现在用Grid++Report,等卖软件赚了钱就跟他买正式版,毕竟是国货。完全免费。呵呵,我是不是有广告嫌疑呀。先声明,不是广告哦。
回复

使用道具 举报

0

精华

275

贡献

2392

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
214
软币
7430
在线时间
653 小时
注册时间
2013-12-13
发表于 2013-12-14 12:29:14 | 显示全部楼层
大哥你这也叫动态啊。。。 我觉得真真的办法是把模板和表格分离。 这样一个查询表格的数据源可以对应多个报表模板,那么无论客户需求怎么变只需要稍稍修改下数据源或者模板就可以了。
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-23 20:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表