OEA 框架中集成的 RDLC 报表介绍

之前 OEA 一直用着一个 Delphi 开发的报表,所以两年来我一直就想在 OEA 中构建一个纯 .NET 的报表模块,但是一想到要开发复杂的报表引擎和设计器就觉得麻烦。所以这事一直拖着。最近开始研究一些成熟的报表引擎,经过对比,还是发现微软的 RLDC 报表已经能满足我大多数需求。其中包括表格、矩阵、图表 等复杂控件,同时同样的报表格式在 B/S 模式下也可以直接使用,最新的 Tablix 控件非常灵活,能实现大多数表格样式。所以我决定不再费时费力去造一个轮子,而是直接把微软的 RDLC 报表集成进来。最终集成到 OEA 中,只花了不到一周的时间。虽然现在还处在第一版,没有给客户使用的设计器。不过就目前的开发效率来看,开发人员开发一个报表,速度已经比较快了。

 

接下来,我就基于之前已经发布的进销存示例项目(JXC),来演示一下,基于 OEA 框架,是如何开发一个报表模块的。

 

报表开发示例


 

第一步,我们需要开发一个一般的列表模块。

这样,可以在使用报表前把后台数据相关的实体、数据层代码都开发完成,并检验数据是否正确。这一部分的内容与报表无关,我就直接使用 JXC 之前的单据查询模块中采购入库单界面:

image

把这个页签的代码拷贝成一个新的页签,

image

红线中代码是直接拷贝上一行并修改了显示名称,此时效果如下:

image

此时,就算已经完成了一个全新的列表查询结果界面的开发。那么,我们如何把这个传统的列表界面转换为报表显示界面呢?

 

 

第二步,在聚合块申明中,这个界面块申明为报表界面块,代码如下:

new SurrounderBlock(typeof(OrderStorageInBill), QueryObjectView.ResultSurrounderType)
{KeyLabel = "采购入库单 - 报表",BlockType = BlockType.Report
},

然后为 OrderStorageInBill 类对应的这个视图配置中,申明需要使用的报表名称(该名称在系统所有报表名称中必须是唯一的)。如下:

internal class OrderStorageInBillConfig : EntityConfig<OrderStorageInBill>
{protected override void ConfigView(){View.UseReport("采购入库单报表统计.rdlc");

再次打开界面,我们会发现该页签对应的界面块,已经变成了一个报表界面,并同时带上了报表界面的两个重要功能:“刷新 RDLC 字段”及“报表数据”。

image

到此,所有的代码已经完成,接下来的过程也不再需要关闭程序或者重新编译。

 

第三步,可以开始设计报表了。

注意到,由于到现在还没有建立并设计 RDLC 报表文件,所以上图中的报表显示控件所有按钮都是不可用的。点击“刷新 RDLC 字段”按钮,弹出以下界面:

image

点击确定后,框架自动生成相关的 RDLC 文件到指定目录(该目录可在配置文件中进行配置),刷新报表显示控件,并弹出如下提示:

image

点击确定,可把该路径拷贝到剪贴板中。

注意到,此时报表控件的按钮已经可用,说明相应的 RDLC 文件已经生成:

image

所以我们需要使用设计器对其进行设计,由于目前还没有开发单独的 RDLC 设计器,所以暂时用 VS2012 进行设计。在 VS 中直接打开该文件(路径已经在剪贴板中了),VS 将启动对应的报表设计界面:

image

框架在生成此文件时,已经自动生成了相关的数据源节点(本示例中只有一个简单的实体数据源,更多的数据源可以使用代码设置),而且这些字段的名称已经带上了界面显示的中文名称,方便报表设计。

所以我们接下来只需要对这些数据进行报表设计即可,如何设计 RDLC 报表的内容,网上有较多内容,这是我最后设计出来的报表:

image

刚才说到在设计过程中是不需要关闭程序的,在对 RDLC 文件进行任何修改并保存后,可以点击报表控件上的刷新按钮,即可直接预览当前效果。这是最终生成的报表界面:

image

另外,设计过程中,也可以点击“报表数据”按钮查看当前报表背后显示的列表数据,方便理解后台数据。

 


 

在以后的时间里,我可能还需要想办法搞一个 RDLC 的设计器方便客户使用。这也是个麻烦事……

不过集成报表这个心结有两年时间了,现在总算是大致解决,可以在 OEA 中比较快地开发报表了,可喜可贺!  微笑

 

 

附:RDLC 数据绑定类型定义图

image

 

补充:没有安装 VS2012 的电脑,需要安装 http://www.microsoft.com/en-us/download/details.aspx?id=27230
 ReportViewer 控件后才能查看报表,直接拷贝 dll 到 Debug 目录下不行,谁知道原因?

 

转载于:https://www.cnblogs.com/zgynhqf/archive/2012/09/07/2675221.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

昆虫繁殖_“专为昆虫而生” –好奇!

昆虫繁殖重点 (Top highlight)The industry is changing towards a more agile approach and jacks of one trade can go extinct sooner than we think.该 行业正在发生变化 朝着更加灵活的方法和一个贸易的插Kong可以去灭绝快于我们的想法。 I’ve read a quote in a book r…

ECMAScript 2022 正式发布,有哪些新特性?

大家好&#xff0c;我是若川。持续组织了近一年的源码共读活动&#xff0c;感兴趣的可以 点此加我微信ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。…

字母框如何影响UI内容的理解

What is your earliest memory of reading? Mine’s reading comics. I preferred films over books, I still do, but I seemed to have a fascination for comics. The experience of reading a comic, to me, was somewhere between watching a film and reading a novel, …

Vue2.7 本周发布?支持组合式 API、setup、css v-bind

大家好&#xff0c;我是若川。持续组织了近一年的源码共读活动&#xff0c;感兴趣的可以 点此加我微信ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。…

马上7月,诚邀新老朋友参加近5000人的源码共读活动!

大家好&#xff0c;我是若川。最近有不少新朋友关注我。诚邀各位新老读者朋友参加源码共读活动。活动介绍可以点击文末的阅读原文。https://juejin.cn/post/7079706017579139102很多人关注我的公众号是因为我写了一系列源码文章&#xff0c;想参与源码共读活动。虽然现在有近50…

hashmap 从头到尾_如何从头到尾设计一个简单的复古徽标

hashmap 从头到尾在纸上素描粗糙的概念 (Sketch rough concepts on paper) Start by sketching out a few ideas for your logo on paper. These don’t have to be detailed drawings. Instead, it’s about getting your ideas out quickly. In this early stage, you can ex…

Vue 2.7 正式发布,代号为 Naruto

大家好&#xff0c;我是若川。持续组织了近一年的源码共读活动&#xff0c;感兴趣的可以 点此加我微信ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。…

js设置css色相旋转_色相旋转颜色方案是否保留了对色盲友好的能力?

js设置css色相旋转Hue rotation is often an easy way to change the appearance of a plot or figure without the need to create a new colour bar. However, when dealing with colourblindness, it is important to ensure that the spacing between colours is sufficien…

ux设计中的各种地图_在UX设计中使用阿拉伯语

ux设计中的各种地图Last year I got to work on an app that was ultimately going to be deployed globally in every market and every language including RTL (Right-to-Left) languages — with a specific focus on Arabic.去年&#xff0c;我开始致力于开发一个应用程序…

如何为前端项目一键自动添加eslint和prettier的支持

本文来自读者那个曾经的少年回来了 写的源码共读35期笔记文章&#xff0c;授权投稿&#xff0c;写的真好。本文参加了由公众号若川视野 发起的每周源码共读活动&#xff0c;点此加我微信 ruochuan12 了解详情一起参与。本文属于源码共读第35期 | 为 vite 项目自动添加 eslint 和…

极端原理_为极端而设计

极端原理*You can also read this article in German here.*您也可以 在此处 阅读 德语文章 。 In this article I’m going to draw on the Design thinking concept of designing for extreme users and I will argue that designing for extreme users can be considered a…

当CV工程师碰到了拷贝粘贴的需求——useClipboard的使用及源码解析

大家好&#xff0c;我是若川。持续组织了近一年的源码共读活动&#xff0c;感兴趣的可以 点此加我微信ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。…

ux和ui_从UI切换到UX设计

ux和uiI still remember those days, when I was a soon-to-be graphic design graduate who started to question what my future will be. At that time, I realized that I loved graphic design, but I wasn’t sure if I enjoyed doing it. Creating logos, posters, broc…

春季招聘后前端工程师的就业指南

尽管疫情反复&#xff0c;大厂裁员&#xff0c;招聘季仍是在困难中有条不紊地落下了尾声。回顾今年的春季招聘&#xff0c;北京青年报记者发现&#xff0c;互联网“大厂”依然对“研发岗”需求最为旺盛。但许多企业最近都在围绕“降本提效”来进行业务调整&#xff0c;这对技术…

探索式测试的思维模型

上一章介绍了探索式测试的定义。在实际项目的测试执行过程中&#xff0c;读者是否曾遇到如下的几个现象&#xff1a; 测试人员按照一个测试用例来执行测试&#xff0c;得到的程序输出与预期输出不一致。 测试人员判断程序的行为并不是缺陷&#xff0c;但根据新的输出想到了新的…

图解Git分支和命令

大家好&#xff0c;我是若川。持续组织了近一年的源码共读活动&#xff0c;感兴趣的可以 点此加我微信ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。…

vsco_VSCO重新设计:更直观,更简化的界面

vscoAmong the many photo-editing apps, VSCO has definitely become a popular favorite among both experienced photographers as well as “aesthetic” Instagram users. However, my interaction with the app starts and ends with using a few key filters and (maybe…

浅谈前端埋点监控

大家好&#xff0c;我是若川。持续组织了近一年的源码共读活动&#xff0c;感兴趣的可以 加我微信lxchuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外&…

css版式_第2部分:使版式具有响应能力,并为以后的版本奠定基础

css版式The feedback I’ve received over the past week has been amazing, and matches my own excitement about this project. I’ve spent a lot of time researching, writing, and teaching about creating better typography for reading on digital devices over the …

BBS项目--登录

BBS阶段性测试总要求 django登录报错 Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。 原因分析&#xff1a;出现这种情况在Windows中很常见&#xff0c;就是端口被占用 解决措施&#xff1a;这时我们只需改一下端口便可以了 登录前端页面(HTML…