发布一快速开发报表的类库,让报表的开发具有前所未有的方便和快速

简介: 原文:发布一快速开发报表的类库,让报表的开发具有前所未有的方便和快速  因大量博友的索要,现与朋友合作封装了使用前文介绍的动态设置DevExpress Report的组件,这篇文章用来介绍这个ReportCommon自绘报表组件并一些截图,如果需要请进行购买,邮件中写上您的邮箱。
原文: 发布一快速开发报表的类库,让报表的开发具有前所未有的方便和快速

  因大量博友的索要,现与朋友合作封装了使用前文介绍的动态设置DevExpress Report的组件,这篇文章用来介绍这个ReportCommon自绘报表组件并一些截图,如果需要请进行购买,邮件中写上您的邮箱。

声明:本类库使用DevExpress控件,但不包含DevExpress控件,因此使用者需要另行购买DevExpress控件,如果使用者因盗版DevExpress控件引起的一切法律纠纷,由使用者自行承担,本人及相关开发人员盖不负责。

 装配清单

RptDLL  
├  ReportCommon.dll 关键DLL
├  ReportCommon.xml 注释
├  Util.dll  
├  FrmReportView 多组报表显示窗体组件
└  ReportsView 多组报表显示可视化组件
ReportCommon自绘报表控件说明.doc 帮助文档
test Demo项目

使用条件

  1. 本组件基于DevExpress报表控件开发,因此确定您拥有并使用DevExpress这套控件,需要的DevExpress DLL在帮助文档中有说明
  2. 本组件兼容DevExpress9.0及以后的版本,对应8.0及以前的版本可能需要我们修改部分代码。

功能说明

  1. 中式报表应该基本能做,有分组统计功能,可以设置各列字体和大小,可以定义页边距,可以设定表格数据对齐方式,显示关闭打印预览线,可以定义页眉页脚,可以添加公司标识等60余项参数定制;
  2. 各种报表获取方法:

ShowPreview() 在单独的窗体显示报表
ShowPreviewDialog() 在单独的对话框显示报表
returnPages() 获取报表所有Pages
ShowInThisFormPrintsystem()在指定的PrintSystem中显示报表
GetReport() 获取绘制完的报表

Demo项目使用的DevExpress DLL

DevExpress.Charts.v11.1.Core.dll
DevExpress.Data.v11.1.dll
DevExpress.PivotGrid.v11.1.Core.dll
DevExpress.Printing.v11.1.Core.dll
DevExpress.Reports.v11.1.Designer.dll
DevExpress.Utils.v11.1.dll
DevExpress.XtraBars.v11.1.dll
DevExpress.XtraCharts.v11.1.dll
DevExpress.XtraEditors.v11.1.dll
DevExpress.XtraPivotGrid.v11.1.dll
DevExpress.XtraPrinting.v11.1.dll
DevExpress.XtraReports.v11.1.dll
DevExpress.XtraReports.v11.1.Extensions.dll
DevExpress.XtraTreeList.v11.1.dll

来看看简单报表是怎么定义的

 

        /// <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" }
                };
        }

 

 

 再来看看Demo中的显示效果

 

 附上其他报表的显示效果

 条形码支持

目录
相关文章
|
23天前
|
数据库 对象存储
2025年 | 9月云大使推广奖励规则
云大使推广返利活动,云大使9月规则,企业新用户下单返佣加码5%,推广最高返佣45%,新老用户都可参与返利活动。
|
安全 网络协议 Linux
安卓Termux搭建web服务器【公网远程手机Android服务器】
安卓Termux搭建web服务器【公网远程手机Android服务器】
|
缓存 安全 Nacos
nacos常见问题之服务一直在报token expired!如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
1098 0
|
Ubuntu 关系型数据库 MySQL
如何在 Ubuntu 20.04 上安装 MySQL
MySQL是最流行的开源关系数据库管理系统。它速度快,容易使用,容易扩展,并且流行的LAMP和LEMP的一部分。 这篇指南讲解了如何在 Ubuntu 20.04上安装和保护 MySQL。 一、前提条件 确保你以 sudo 用户身份登录 二、在 Ubuntu 上安装 MySQL 在写作这篇文章的时候,Ubuntu 源仓库中最新的 MySQL 版本号是 MySQL 8.0。
57523 4
如何在 Ubuntu 20.04 上安装 MySQL
|
监控 应用服务中间件
Nagios 服务器 Nrpe 配置
Nagios服务器需安装NRPE并定义监控命令于`command.cfg`中。示例配置如下:`check_nrpe -H $HOSTADDRESS$ -c $ARG1$`。客户端配置文件如`192.168.149.128.cfg`可引用NRPE配置的命令,如`check_nrpe!check_load`以监控负载。监控HTTP关键词使用`check_http`命令加参数,如`-I`指定IP,`-u`指定URL,`-s`指定关键词,可在`command.cfg`中定义如`check_http_word`命令,并在主机配置文件中引用。
131 13
|
SQL 存储 监控
MySQL数据库安全性考虑:预防SQL注入漏洞
随着互联网的快速发展,数据库成为了现代应用程序中的重要组成部分。而在数据库的使用过程中,安全性一直是一个重要的关注点。SQL注入漏洞(SQL Injection)是一种常见的数据库安全漏洞,攻击者可以通过在应用程序的用户输入参数中注入恶意的SQL代码,从而获得对数据库的未授权访问权限。为了保护MySQL数据库免受SQL注入漏洞的威胁,以下是一些预防SQL注入漏洞的安全性考虑。
|
关系型数据库 MySQL 数据安全/隐私保护
在华为鲲鹏OpenEuler20.03系统上安装MySQL8
在华为鲲鹏OpenEuler20.03系统上安装MySQL8
1390 0
|
7天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1165 3
|
6天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
841 12
|
16天前
|
人工智能 运维 安全