999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C#、Grid++ Report的自定義通用報表模塊的設計與實現(xiàn)

2022-04-28 08:28:00
大眾科技 2022年2期
關鍵詞:界面用戶設計

唐 毅

基于C#、Grid++ Report的自定義通用報表模塊的設計與實現(xiàn)

唐 毅

(廣西師范大學出版社集團有限公司,廣西 桂林 541004)

隨著現(xiàn)代信息技術的不斷發(fā)展,企業(yè)信息化管理系統(tǒng)已經(jīng)成為一種重要應用,其中的報表統(tǒng)計模塊已成為企業(yè)決策的重要模塊。然而,一些傳統(tǒng)的報表模塊,存在維護困難、靈活性差等問題。文章闡述了一種運用C#語言,結(jié)合Grid++ Report報表設計器、支持自定義、個性化配置的報表模塊的設計與實現(xiàn)方法。

C#;Grid++ Report;通用報表;管理信息系統(tǒng)

引言

隨著現(xiàn)代信息技術的不斷發(fā)展,世界已跨入了“互聯(lián)網(wǎng)+”大數(shù)據(jù)時代,各行各業(yè)也都需要管理信息系統(tǒng)來支撐業(yè)務運行。管理信息系統(tǒng)會收集和產(chǎn)生大量的數(shù)據(jù)。這些系統(tǒng)在設計初期一般不會提供完備的數(shù)據(jù)分析報表[1]。隨著時間的推移,產(chǎn)生的數(shù)據(jù)越來越多,需要的分析報表也越來越多,統(tǒng)計方式也層出不窮,相應的問題也隨之出現(xiàn)。以筆者所在的企業(yè)所使用的信息系統(tǒng)為例,當需要增加一個報表,甚至一個簡單的查詢條件時,即使企業(yè)擁有管理信息部門,往往也要找更為專業(yè)的系統(tǒng)開發(fā)公司人員進行重新評估和開發(fā),這樣會產(chǎn)生非常多的溝通成本、人力成本、時間成本。而對于開發(fā)人員來說,理解需求,編寫代碼,到最后編譯、測試、發(fā)布、更新,整個流程周期比較長。這使得企業(yè)的管理效率、決策效率大打折扣。因此,如何幫助企業(yè)能夠靈活生成常用報表、降低設計報表人員專業(yè)技術要求、建立一個支持可視化靈活的通用報表模塊變得極其重要。

1 需求分析

1.1 功能性需求

可自定義通用報表跟普通報表的開發(fā)方式相比,要足夠簡單,降低設計報表人員的專業(yè)要求,設計報表時支持可視化拖拽、參數(shù)、事件、權限的定義。同時,用戶在查詢報表時,查詢條件可以自定義組合,結(jié)果展示頁面支持導出、打印、自定義排序等功能[2]。

該報表模塊的用戶主要包括報表設計者和報表使用者兩大類。報表設計者可以在線或離線設計報表界面后上傳,然后進行相關參數(shù)配置后生成報表。報表使用者提交查詢條件至報表服務器,報表服務器返回數(shù)據(jù)結(jié)果并呈現(xiàn)報表,讓報表使用者利用數(shù)據(jù)信息,形成決策。

通過上述的需求分析,筆者設計出該模塊的用例圖。本用例圖是從自定義通用報表模塊設計的實體對象及主要行為的角度出發(fā)對系統(tǒng)的抽象表示。由報表設計人員和使用人員發(fā)起用例,如圖1所示。

圖1 用例圖

1.2 非功能性需求

該模塊的非功能性需求包括適用性要求、可靠性要求、性能要求、可擴展性要求。

1.2.1適用性要求

(1)報表的設計要易上手、易學習,界面設計能支持可視化拖拽,對于非信息技術企業(yè)的信息管理人員也能在一周時間內(nèi)掌握;

(2)報表的參數(shù)、查詢條件、權限可以隨時修改,不需要代碼編譯和發(fā)版。

1.2.2可靠性要求

(1)當功能出現(xiàn)故障時,應有相關的錯誤日志,并能快速定位問題;用戶的查詢也應記錄相應的損耗時間、查詢條件、查詢次數(shù)的記錄,便于企業(yè)信息管理人員進行用戶行為數(shù)據(jù)分析;

(2)避免出現(xiàn)信息安全問題,比如防范常見的SQL注入、敏感字段需加密等。

1.2.3性能要求

(1)應能支持300個以上用戶同時在線使用;

(2)一般常規(guī)操作響應速度應在5 s內(nèi),對于復雜的操作,響應速度應在10 s以內(nèi)。

1.2.4可擴展性要求

(1)該模塊的數(shù)據(jù)結(jié)構(gòu)設計應盡量獨立并留有相關的API接口,以便輕松融入其它系統(tǒng);

(2)該模塊應當有一定的發(fā)展能力和容納能力,以便出現(xiàn)新的功能需求時,快速納入。

2 模塊設計

2.1 模塊技術架構(gòu)

該模塊采用 B/S(瀏覽器/服務器)的軟件架構(gòu),B/S 是 C/S (客戶端/服務器)模式在 Internet 上基于 web 應用的一種實現(xiàn)方式。B/S 模式簡化了客戶端的安裝、擁有易于升級和維護等優(yōu)勢,是目前軟件開發(fā)架構(gòu)的首選,因此采用 B/S 模式進行開發(fā)。

另外,模塊采用了界面層、業(yè)務邏輯層、數(shù)據(jù)訪問層的三層設計理念。這使得代碼模塊之間更加“高內(nèi)聚、低耦合”,可維護性、可擴展性更好,維護成本降低[3]。

界面層(PL):主要利用Grid++ Report技術工具實現(xiàn),負責報表的可視化設計。Grid++ Report是一款報表開發(fā)工具。能給報表設計者用來開發(fā)軟件中的報表、打印、圖表與數(shù)據(jù)導出等子系統(tǒng)。支持可視化界面設計,支持分組匯總、表頭排序、常規(guī)票據(jù)打印、套打等。支持嵌入到web環(huán)境下,非常適合本通用報表模塊的界面層,報表設計界面如圖2所示。另外,報表的查詢界面與其他參數(shù)配置界面應用是通過在web環(huán)境下被廣泛使用的、較為靈活html語言來實現(xiàn)的。

圖2 報表設計頁面

業(yè)務邏輯層(BLL):主要利用C#語言來實現(xiàn),業(yè)務邏輯層是在數(shù)據(jù)訪問層和表示層之間進行數(shù)據(jù)交換的橋梁,如查詢條件的處理、用戶權限的判斷、特殊報表參數(shù)的處理等業(yè)務邏輯均放在此層中。

數(shù)據(jù)訪問層(DAL):主要利用SQL語言來實現(xiàn),數(shù)據(jù)訪問層只是單純的對數(shù)據(jù)進行增、刪、改、查(由 SQL 語句來提供),不應該有“事務”存在。簡單三層架構(gòu)的邏輯圖如圖3所示。

圖3 簡單三層架構(gòu)的邏輯圖

2.2 系統(tǒng)功能架構(gòu)

根據(jù)需求分析,本系統(tǒng)分為兩類用戶角色:報表設計者、報表使用者。根據(jù)用戶角色的模塊劃分方式,不同用戶角色模塊擁有不同的功能。其架構(gòu)圖如圖4所示。

圖4 系統(tǒng)模塊及功能

2.2.1報表設計者功能詳細設計

報表設計者一般為企業(yè)的信息管理部門人員,負責收集業(yè)務部門人員的報表需求,進行報表的設計。主要功能包括報表的樣式設計、配置查詢語句、查詢字段、用戶權限以及額外的參數(shù)、事件。

(1)報表的樣式設計。設計人員在可視化的情況下對報表的樣式進行設計,包括頁眉、表頭、明細網(wǎng)格、表尾、頁腳、頁眉、水印等。

(2)配置查詢語句。設計人員配置用于檢索報表數(shù)據(jù)的SQL查詢語句。

(3)配置查詢字段。設計人員可配置查詢報表時所需要的條件字段,包括字段名、字段所需的控件呈現(xiàn)類型等。

(4)配置權限。設計人員可對每個報表配置用戶權限,即某報表是否完全公開,或者哪些用戶、角色才能查看該報表。

(5)配置額外參數(shù)或事件。設計人員可對每個報表單獨設置相應的事件,如報表加載完成事件、雙擊明細事件等。同時,為了適應不同的信息系統(tǒng),設計人員還可以配置不同的字典參數(shù),來適應不同的信息系統(tǒng)。

2.2.2報表使用者功能詳細設計

(1)自定義查詢條件。用戶輸入查詢條件有兩種方式,一種是傳統(tǒng)的基本條件按字段模糊搜索,另一種是在基本條件輸入的基礎上,增加了括號和邏輯運算的功能。提供的邏輯符有“并且”和“或者”,用戶可根據(jù)自己的需要設計查詢條件之間的邏輯關系,其中,使用括號括起來的查詢條件優(yōu)先級最高。

(2)瀏覽報表。使用人員可以在線瀏覽報表,可對結(jié)果進行排序、向上或向下鉆取數(shù)據(jù)。

(3)導出、打印報表。使用人員也可以導出或打印報表結(jié)果,從而進行數(shù)據(jù)分析,形成決策。

2.3 數(shù)據(jù)庫詳細設計

數(shù)據(jù)庫詳細設計,如表1所示。

表1 部分核心功能數(shù)據(jù)庫設計

在此設計中,部分核心功能的E-R圖如圖5所示。

圖5 部分核心功能E-R圖

3 模塊實現(xiàn)

3.1 模塊開發(fā)技術概述

系統(tǒng)采用的開發(fā)平臺是Windows Server 2019 + IIS 10 + ASP.NET Core 3.1,后臺數(shù)據(jù)庫采用的是SQL Server 2012,ASP.NET Core的前端開發(fā)工具是Visual Studio 2019,報表設計器采用Grid++ Report 5.8,同時采用基于 Restful 協(xié)議的 WebAPI 技術提供接口服務,無論是理論上還是實現(xiàn)技術上都具有一定的先進性。

3.2 模塊部分功能模塊實現(xiàn)

以介紹自定義查詢條件的實現(xiàn)為例。

現(xiàn)在很多信息系統(tǒng)的報表模塊查詢條件固定,只是簡單的多條件“且”關系的模糊查詢。一旦需求變更,需要新增查詢條件字段時,就需要用開發(fā)工具打開相應位置的源代碼,然后修改、編譯、測試、發(fā)布。整個過程非常繁瑣,且過分依賴系統(tǒng)開發(fā)方,浪費了很多溝通成本、時間成本。該模塊的最大特點是可以通過簡單的后臺配置,結(jié)合一些基礎的數(shù)據(jù)庫知識,就可以讓企業(yè)信息化管理人員上手,且查詢條件的配置靈活多變。

報表設計者在完成報表基本信息的填寫和報表界面的設計后,即可定義用于報表查詢的SQL語句和查詢字段。如圖6所示,在“SQL語句”字段文本框中,報表設計者需填寫用于檢索報表數(shù)據(jù)的SQL查詢語句。系統(tǒng)默認用“{where}”特殊符表示查詢條件所拼湊成的where語句要替換的位置。為了更加靈活地適配各個系統(tǒng),該模塊還支持特殊符參數(shù)的字典定義,如可以另行設置特殊符“{bmbh}”為代表業(yè)務系統(tǒng)中用戶所擁有查詢權的部門,又或者用“{userid}”表示查詢報表的當前用戶ID。如使用以下SQL語句:“SELECT * FROM 銷售表 WHERE {where} AND (銷售表.開單人 = '{userid}' ) ORDER BY id”,來表示從銷售表中查詢出開單人為當前用戶的銷售數(shù)據(jù)。

圖6 部分配置界面

當完成“SQL語句”字段填寫后,報表設計者可以自動獲取所有相關的查詢字段名稱,亦可手動填寫所需要的查詢字段名稱。“字段名稱”表示該字段在數(shù)據(jù)庫表中的字段名,“字段中文名”用來友好展示給報表使用者,“字段類型”用于指定該字段控件的呈現(xiàn)方式,包括:(1)字符串類型,用普通文本輸入框呈現(xiàn);(2)日期類型,用下拉日歷的控件呈現(xiàn);(3)數(shù)字類型,用數(shù)字文本輸入框呈現(xiàn);(4)其他類型,報表設計者可通過字典參數(shù)配置額外的類型,如客戶多選下拉框、部門多選下拉框等。配置完成后,報表查詢者在高級查詢條件界面將會看到如圖7所示的界面。輸入查詢條件,點擊“確定”按鈕,將看到如圖8的查詢結(jié)果。

圖7 高級查詢條件界面

圖8 查詢結(jié)果界面

4 結(jié)論

相比于一些傳統(tǒng)信息系統(tǒng)中維護困難、靈活性差的報表模塊,本文提出了一種自定義通用報表模塊的設計和實現(xiàn)方案,并已在筆者所在企業(yè)進行應用,具有以下特點。

(1)對報表設計者友好。報表設計者可直接來自企業(yè)內(nèi)部信息化管理人員,只需簡單掌握企業(yè)內(nèi)部信息系統(tǒng)的數(shù)據(jù)業(yè)務結(jié)構(gòu)。設計界面支持可視化操作,無需太多編碼知識,拖拽制表,大大降低了設計者的專業(yè)門檻。

(2)配置靈活。報表的相關事件、參數(shù)可靈活配置,即時生效,無需重新編譯發(fā)版。輕松添加報表查詢條件,快速便捷完成查詢設置。

(3)靈活的交互體驗。提供多樣化條件輔助錄入功能,方便報表使用者快速準確輸入。讓查詢更加靈活,滿足不同的查詢需求。每個報表展示結(jié)果都包含排序、打印、導出、數(shù)據(jù)鉆取功能。

(4)擴展性強。該模塊獨立性較強,且留有相關的API接口,可與其他系統(tǒng)輕松對接、集成。

[1]閔喬. 基于JasperReports的通用報表系統(tǒng)研究與實現(xiàn)[D]. 南京: 南京師范大學,2016.

[2]馬驃. 智能報表平臺的設計和應用[J]. 電子制作,2020 (6): 102-104.

[3]梁桐銘. 深入淺出ASP.NET Core[M]. 北京: 人民郵電出版社,2020.

Design and Implementation of Custom General Report Module Based on C#, Grid++ Report

With the continuous development of modern information technology, enterprise information management system has become an important application, in which the report statistics module has become an important module for enterprise decision-making. However, some traditional report modules have some problems, such as difficult maintenance and poor flexibility. This paper describes the design and implementation of a report module that uses the c# language and combins Grid+Report designer with support for custom and personalized configuration.

C#; Grid++ Report; general report; management information systems

TP311.11

A

1008-1151(2022)02-0013-04

2021-12-09

唐毅(1990-),男,廣西桂林人,廣西師范大學出版社集團有限公司信息部技術主管,從事企業(yè)信息化系統(tǒng)的建設、維護與研發(fā)。

猜你喜歡
界面用戶設計
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
基于FANUC PICTURE的虛擬軸坐標顯示界面開發(fā)方法研究
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
人機交互界面發(fā)展趨勢研究
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
手機界面中圖形符號的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 日韩欧美中文字幕在线精品| 日本午夜视频在线观看| 青青网在线国产| 国产午夜一级毛片| 亚洲无线视频| 成年人久久黄色网站| 亚洲成a人片77777在线播放| 97青草最新免费精品视频| 日韩高清一区 | 制服丝袜无码每日更新| 一级毛片在线播放免费| 日韩a级毛片| 亚洲国产成人超福利久久精品| 99热这里只有免费国产精品 | AV网站中文| 一本大道香蕉中文日本不卡高清二区 | 亚洲精品va| 色综合天天视频在线观看| 国产成人高清在线精品| 高清免费毛片| 国产精品区视频中文字幕| 亚洲日韩精品无码专区97| 国产欧美性爱网| 国产成年女人特黄特色毛片免| 成色7777精品在线| 精品成人免费自拍视频| 在线播放精品一区二区啪视频| 操操操综合网| 午夜精品区| 狠狠色婷婷丁香综合久久韩国| 色亚洲成人| 婷婷综合色| 国产网站黄| 久草性视频| 国内精品视频| 青青草原偷拍视频| 欧美日本在线| 一本色道久久88综合日韩精品| 伊人久久久久久久| 日韩国产综合精选| 波多野结衣的av一区二区三区| 欧亚日韩Av| 久夜色精品国产噜噜| 日本高清成本人视频一区| 欧美自拍另类欧美综合图区| 国产精品va| 国产青青操| 国产精品成人AⅤ在线一二三四| 日韩国产无码一区| 国产欧美日韩综合在线第一| 日韩不卡高清视频| 国产情侣一区| 欧美日韩中文国产| 国产精品人莉莉成在线播放| 99国产在线视频| 久久香蕉国产线看观看亚洲片| 在线视频亚洲欧美| 日本精品一在线观看视频| 91成人在线观看| 激情无码视频在线看| 一区二区偷拍美女撒尿视频| 无码综合天天久久综合网| 午夜a视频| 国产交换配偶在线视频| 日韩天堂视频| 国产丝袜第一页| 国产微拍精品| 亚洲国产91人成在线| 亚洲精品动漫| 在线高清亚洲精品二区| 色综合热无码热国产| 91成人精品视频| 91在线国内在线播放老师 | 欧美综合中文字幕久久| 四虎永久在线| 欧美成人免费| 在线中文字幕日韩| 国产精品手机视频| 黄色污网站在线观看| 亚洲第一香蕉视频| 四虎AV麻豆| 在线日韩日本国产亚洲|