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.pswp.cn/news/274620.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274620.shtml
英文地址,請注明出處:http://en.pswp.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余篇源碼文章。歷史面試系列。…

linux中用戶忘記root的密碼--ubuntu版本

基于ubuntu操作系統的情況&#xff0c;當用戶忘記root密碼后&#xff0c; 在普通用戶登陸后 輸入sudu su root 之后系統要求輸入當前用戶的密碼&#xff0c;用戶輸入密碼后&#xff0c;就可以進入root的模式了 就可以操作任何任務。轉載于:https://www.cnblogs.com/zhengyn/arc…

馬上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…

(轉)android技巧01:Preferencescreen中利用intent跳轉activity

原文連接&#xff1a;http://blog.csdn.net/xianming01/article/details/7543464 設置中的Preferencescreen不僅可以作為設置界面顯示&#xff0c;而且還能夠啟動activity&#xff0c;下面主要是對啟動activity的介紹1. Preferencescreen中啟動activity 例如wireless_setting.x…

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…

Tyvj 1921 Freda的煩惱

我就不說是CF hot days 原題了&#xff0c;我會告訴你使用Math庫是因為一開始偷懶不想寫Min函數么- 1 Uses math;2 Var n,m,i,t,tt,x,cost,ans,tmp:qword;3 Function min(x,y:qword):qword;4 Begin5 if x>y then exit(y);6 exit(x);7 end;8 Begin9 readln(n,m);10 …

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 和…

Server.Transfer方法在頁面間傳值

a.aspx頁面代碼&#xff1a; protected void Button5_Click(object sender, EventArgs e){Server.Transfer("b.aspx");}public string name{get{return this.TextBox1.Text;}} b.aspx頁面代碼&#xff1a; private void TheFour(){a newWebContext.Handler as a;//創…

極端原理_為極端而設計

極端原理*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余篇源碼文章。歷史面試系列。…

centos利用tar包安裝phpmyadmin

我的網站根目錄地址為/var/www/html&#xff0c;phpmyadmin安裝包在/tmp下。 注意&#xff1a;php版本低于5.1的建議安裝phpmyadmin2.11&#xff0c;因為phpmyadmin3.3對php版本的最低要求是php5.2 1 [rootCentOS ~]# tar -zxvf /tmp/phpMyAdmin-2.11.9-all-languages.tar.gz …

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;但根據新的輸出想到了新的…