亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2022-04-28 08:28:00
        大眾科技 2022年2期
        關(guān)鍵詞:設計者報表語句

        唐 毅

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

        唐 毅

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

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

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

        引言

        隨著現(xiàn)代信息技術(shù)的不斷發(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è)技術(shù)要求、建立一個支持可視化靈活的通用報表模塊變得極其重要。

        1 需求分析

        1.1 功能性需求

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

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

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

        圖1 用例圖

        1.2 非功能性需求

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

        1.2.1適用性要求

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

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

        1.2.2可靠性要求

        (1)當功能出現(xiàn)故障時,應有相關(guā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)設計應盡量獨立并留有相關(guān)的API接口,以便輕松融入其它系統(tǒng);

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

        2 模塊設計

        2.1 模塊技術(shù)架構(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技術(shù)工具實現(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ù)交換的橋梁,如查詢條件的處理、用戶權(quán)限的判斷、特殊報表參數(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è)務部門人員的報表需求,進行報表的設計。主要功能包括報表的樣式設計、配置查詢語句、查詢字段、用戶權(quán)限以及額外的參數(shù)、事件。

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

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

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

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

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

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

        (1)自定義查詢條件。用戶輸入查詢條件有兩種方式,一種是傳統(tǒng)的基本條件按字段模糊搜索,另一種是在基本條件輸入的基礎(chǔ)上,增加了括號和邏輯運算的功能。提供的邏輯符有“并且”和“或者”,用戶可根據(jù)自己的需要設計查詢條件之間的邏輯關(guān)系,其中,使用括號括起來的查詢條件優(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ā)技術(shù)概述

        系統(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 技術(shù)提供接口服務,無論是理論上還是實現(xiàn)技術(shù)上都具有一定的先進性。

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

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

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

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

        圖6 部分配置界面

        當完成“SQL語句”字段填寫后,報表設計者可以自動獲取所有相關(guān)的查詢字段名稱,亦可手動填寫所需要的查詢字段名稱?!白侄蚊Q”表示該字段在數(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)配置靈活。報表的相關(guān)事件、參數(shù)可靈活配置,即時生效,無需重新編譯發(fā)版。輕松添加報表查詢條件,快速便捷完成查詢設置。

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

        (4)擴展性強。該模塊獨立性較強,且留有相關(guān)的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-),男,廣西桂林人,廣西師范大學出版社集團有限公司信息部技術(shù)主管,從事企業(yè)信息化系統(tǒng)的建設、維護與研發(fā)。

        猜你喜歡
        設計者報表語句
        重點:語句銜接
        2020德國iF設計獎
        2019德國IF設計大獎
        LabWindows/CVI中Excel報表技術(shù)研究
        精彩語句
        從三大報表讀懂養(yǎng)豬人的成績單
        楊敬:深水區(qū)醫(yī)改設計者
        深水區(qū)醫(yī)改設計者
        如何搞定語句銜接題
        語文知識(2014年4期)2014-02-28 21:59:52
        作文語句實錄
        丰满熟妇乱又伦精品| 国产日产亚洲系列av| 日本在线观看一区二区三区视频 | 国产激情з∠视频一区二区| 欧美在线观看www| 亚洲综合久久精品少妇av| 久久精品国产亚洲av麻豆色欲| 久久综合久久鬼色| 色系免费一区二区三区| 青青操视频手机在线免费观看| 丰满少妇弄高潮了www| 理论片87福利理论电影| 天天射色综合| 日本一区二区不卡在线| 亚洲精品乱码久久久久久中文字幕 | 国产毛片av最新视频| 天码人妻一区二区三区| 日韩秘 无码一区二区三区| 精品日本免费观看一区二区三区 | 国产91中文| 日本精品一区二区三区在线播放 | 国产免费一区二区av| 日本一区二区三区亚洲| 国产精品无码一区二区在线看| 国产污污视频| 美女被搞在线观看一区二区三区 | 胳膊肘上有白色的小疙瘩| 中文字幕亚洲精品在线| 小蜜被两老头吸奶头在线观看| 欧美一级人与嘼视频免费播放| 漂亮人妻被强中文字幕乱码| 国产精品无码一区二区三区在| 蜜桃成人无码区免费视频网站| 亚洲av中文无码乱人伦在线咪咕| a黄片在线视频免费播放| 亚洲午夜福利在线视频| 国产91色在线|亚洲| 亚洲一区二区三区四区精品| 丰满少妇a级毛片| 亚洲人成电影在线无码| 中文亚洲第一av一区二区|