黃筑斌, 吳 雋
(貴州省農(nóng)業(yè)科技信息研究所, 貴州 貴陽 550006)
農(nóng)產(chǎn)品價格信息是農(nóng)產(chǎn)品市場供求關(guān)系的直接體現(xiàn),因而是進行農(nóng)產(chǎn)品市場分析的重要基礎[1]。隨著信息技術(shù)的發(fā)展,特別是數(shù)據(jù)庫技術(shù)與互聯(lián)網(wǎng)傳播技術(shù)的融合愈發(fā)成熟,以數(shù)據(jù)庫為支撐的農(nóng)產(chǎn)品市場價格信息發(fā)布、查詢與復雜分析能夠更好地實現(xiàn),價格信息的服務對象能夠依托互聯(lián)網(wǎng)便捷地獲取所需的數(shù)據(jù),甚至可直接利用相關(guān)的價格信息系統(tǒng)分析數(shù)據(jù),而無需額外的其他工具[2-5]。此類信息系統(tǒng)的技術(shù)實現(xiàn)手段在滿足服務對象多樣化信息需求的過程中日益成熟,但其自身的專業(yè)性和復雜程度也在提升,普遍需要運用計算機程序開發(fā)語言或網(wǎng)絡技術(shù)架構(gòu),進而提高了設計開發(fā)此類信息系統(tǒng)的技術(shù)門檻和成本。即使是基礎的信息發(fā)布和查詢,對于不具備一定編程知識和技能的人群,通過編寫計算機程序從零開始開發(fā)此類信息系統(tǒng)仍然具有較大難度。因此,一些無需編程實現(xiàn)數(shù)據(jù)信息檢索、查詢和分析的軟件應運而生,如tableau[6]、Power BI[7]、水晶報表[8],為具有相應信息需求而又缺乏編程能力的人員提供了極大的便利。
SQL Server Reporting Services(SSRS)是常用數(shù)據(jù)庫系統(tǒng)Microsoft SQL Server的一個服務和功能組件,與Microsoft SQL Server深度整合。其以數(shù)據(jù)報表為核心,提供設計、發(fā)布、管理數(shù)據(jù)報表的各項功能,可建立面向Web和移動終端的數(shù)據(jù)資源門戶[9]。同時,實現(xiàn)各功能的操作可視化程度較高,雖然需掌握基礎的數(shù)據(jù)庫表知識,但學習成本仍比掌握計算機程序開發(fā)語言低。因此,基于SSRS,以設計開發(fā)一套簡易的火龍果市場價格數(shù)據(jù)查詢系統(tǒng)為例,為開發(fā)農(nóng)產(chǎn)品價格信息查詢系統(tǒng)提供一種比計算機編程方式相對簡易的技術(shù)實現(xiàn)方法提供借鑒。
在系統(tǒng)使用者未進行特定檢索條件下的查詢時,始終自動呈現(xiàn)當前最新的火龍果市場價格信息,且數(shù)據(jù)的更新周期可控。
能夠按地區(qū)、品種類別(具體品種)、市場范圍、交易時間和價格類別等查詢條件查詢火龍果產(chǎn)品的市場價格。
能夠按地區(qū)、品種類別、市場范圍和時間進行火龍果產(chǎn)品價格數(shù)據(jù)統(tǒng)計,實現(xiàn)基礎的統(tǒng)計分析功能,并以數(shù)字或簡單的圖形(如折線圖)進行呈現(xiàn),以描述價格走勢。
SSRS的具體軟件硬件要求可參見文獻[10],且可在部署SQL Server時或之后隨時進行安裝,本例中使用已部署SQL Server的專業(yè)服務器安裝SSRS。ReportBuilder是SSRS中數(shù)據(jù)報表的設計工具,可不依賴于SSRS和網(wǎng)絡進行使用,其是實現(xiàn)數(shù)據(jù)呈現(xiàn)的核心工具,可在Microsoft公司官網(wǎng)下載。
數(shù)據(jù)源是系統(tǒng)自動發(fā)布和可供檢索的價格數(shù)據(jù)來源,是構(gòu)建系統(tǒng)的前提。除可指定已有的數(shù)據(jù)源,如合法提供給系統(tǒng)進行合規(guī)使用的數(shù)據(jù)庫,也可自建數(shù)據(jù)源。在數(shù)據(jù)傳遞方式上,數(shù)據(jù)源可與SSRS不在同一運行環(huán)境或相同硬件載體上,這也為數(shù)據(jù)源的建立和獲取提供了較大的便利,也帶來管理上的靈活性。
雖然數(shù)據(jù)源的載體并不都是數(shù)據(jù)庫,但從數(shù)據(jù)管理的角度考慮,采用數(shù)據(jù)庫是較好的選擇。因此,首先建立火龍果市場價格數(shù)據(jù)庫,作為系統(tǒng)的數(shù)據(jù)源,其數(shù)據(jù)表設計見表1。完整的市場價格信息表,除具體的價格數(shù)值外,地區(qū)、市場、價格類型等字段的值提取自相關(guān)表的各ID值,實現(xiàn)完全的編碼化,以提高數(shù)據(jù)處理的靈活性,也可用于其他類型信息系統(tǒng)的二次開發(fā)。

表1 火龍果市場價格數(shù)據(jù)庫各表的字段設計
該數(shù)據(jù)庫的數(shù)據(jù)可通過實地采集方式獲取,也可通過火龍果產(chǎn)業(yè)信息服務站(點)采集火龍果產(chǎn)業(yè)市場信息,還可通過互聯(lián)網(wǎng),利用其他現(xiàn)有的市場信息資源,如貴州農(nóng)經(jīng)網(wǎng)等權(quán)威網(wǎng)絡媒體發(fā)布的市場信息,搜集火龍果市場價格數(shù)據(jù)。本例中使用貴州農(nóng)經(jīng)網(wǎng)發(fā)布的貴州省火龍果市場價格數(shù)據(jù)。
數(shù)據(jù)集是實際可呈現(xiàn)給系統(tǒng)服務對象的數(shù)據(jù)集合。可按需求設置一定的規(guī)則對數(shù)據(jù)源中的所有數(shù)據(jù)進行組織,形成一個或多個數(shù)據(jù)集。為提供多維度的數(shù)據(jù)檢索條件,更好地實現(xiàn)數(shù)據(jù)的查詢功能,將上述各數(shù)據(jù)表中的數(shù)據(jù)分別建立數(shù)據(jù)集。具體設置以Area(地區(qū))數(shù)據(jù)集為例(圖1),其他數(shù)據(jù)集類似。可使用查詢設計器或在“字段”選項卡中指定數(shù)據(jù)集包含的數(shù)據(jù)對象,本例中直接使用用專門處理數(shù)據(jù)庫數(shù)據(jù)的SQL(結(jié)構(gòu)化查詢語言)代碼實現(xiàn),各數(shù)據(jù)集的SQL查詢代碼分別如下。

圖1 Area(地區(qū))數(shù)據(jù)集的屬性設置
地區(qū)數(shù)據(jù)集:
SELECT
DISTINCT([AreaCode]),[AreaName]
FROM [CAPPriceDB].[dbo].[pitayamarket]
市場數(shù)據(jù)集:
SELECT
[MarketID],[AreaCode],[AreaName],
[MarketName]
FROM [CAPPriceDB].[dbo].[pitayamarket]
WHERE [AreaCode]IN(@AreaCode)
產(chǎn)品名稱數(shù)據(jù)集:
SELECT DISTINCT([ProductName])
FROM [CAPPriceDB].[dbo].[price]
價格類型數(shù)據(jù)集:
SELECT
DISTINCT([PriceTypeName])
FROM [CAPPriceDB].[dbo].[price]
價格數(shù)據(jù)集:
SELECT
[MarketName],
[ProductName],
[Price],
[UnitName],
[TradeDate],
[MarketID]
FROM CAPPriceDB.dbo.price
WHERE [MarketID] IN (@Market)
AND [TradeDate] BETWEEN (@StartDate)
AND (@EndDate)
AND [ProductName]=(@ProductName)
AND [PriceTypeName] IN (@PriceType)
ORDER BY [TradeDate] DESC
查詢參數(shù)是供系統(tǒng)使用者查詢數(shù)據(jù)的檢索條件。在ReportBuilder中分別建立并配置查詢參數(shù),其賦值來源于各數(shù)據(jù)集,基本屬性可直接參考其對應表的字段設計進行設置。具體設置以Area(地區(qū))參數(shù)為例(圖2),其他參數(shù)類似。另外,為將交易時間列入檢索條件,建立StartDate(交易開始時間)和EndDate“交易結(jié)束時間”2個與數(shù)據(jù)集無關(guān)的時間維度參數(shù)。

圖2 Area(地區(qū))參數(shù)的屬性設置
使用ReportBuilder以全可視化的方式進行系統(tǒng)界面的功能按鈕、配圖、文字、表格樣式等元素的設計,其中,價格分析圖通過圖表向?qū)Р迦耄鐖D3所示。由此即完成了以往此類系統(tǒng)數(shù)據(jù)呈現(xiàn)所需的前端頁面開發(fā)。
使用ReportBuilder直接進行系統(tǒng)測試,可根據(jù)出錯提示對錯誤的數(shù)據(jù)源、數(shù)據(jù)集或參數(shù)配置進行改正。正確運行的系統(tǒng),其查詢結(jié)果如圖4所示。
系統(tǒng)的發(fā)布以報表為載體,可在部署SSRS的終端設備通過其配置管理器,設置報表管理系統(tǒng)的網(wǎng)絡訪問地址,通過網(wǎng)頁端的報表管理系統(tǒng)對ReportBuilder設計完成的報表文件進行發(fā)布[11],并且可設置報表訪問者的各項權(quán)限,如限定可查詢的數(shù)據(jù)范圍等。另外,對于具有數(shù)據(jù)訪問或進一步開發(fā)利用權(quán)限的系統(tǒng)使用者,可根據(jù)實際情況向其提供報表文件副本,后者安裝ReportBuilder后即可在任何能夠連接到數(shù)據(jù)源的終端設備上查詢所需數(shù)據(jù)。
利用SSRS設計實現(xiàn)了具備信息發(fā)布、查詢和基礎統(tǒng)計分析功能的火龍果市場價格信息查詢系統(tǒng)。與常規(guī)的程序開發(fā)方式相比,該技術(shù)方法的實現(xiàn)難度較低,學習成本也不高,可作為設計開發(fā)類似系統(tǒng)的方法借鑒。SSRS是一套基于報表的完整數(shù)據(jù)服務,研究只是以一個相對簡單的實例介紹其應用方式,對所有技術(shù)細節(jié)未作全面闡述,可參考SSRS的官方文檔庫[9]或相關(guān)專著[12]進行更深入的了解。同時,在數(shù)據(jù)分析方面,研究也未設計更多更復雜的圖表呈現(xiàn)形式,事實上,隨著Microsoft公司在持續(xù)推進SSRS與同樣由其開發(fā)的Power BI進行融合,前者在數(shù)據(jù)分析和數(shù)據(jù)可視化中的應用已得到進一步增強。在大數(shù)據(jù)技術(shù)日益發(fā)展的今天,數(shù)據(jù)分析的手段已得到長足發(fā)展,也使數(shù)據(jù)分析日益成為一項重要的技能,與SSRS和Power BI類似的可視化數(shù)據(jù)處理和分析工具,如四方偉業(yè)公司的SDC UE[13],將會給更多有相關(guān)需求的群體提供更多的選擇。另外,近年來,隨著“Low Code”(低代碼)這一將降低各領域業(yè)務系統(tǒng)對計算機程序開發(fā)的過度依賴、提高業(yè)務應用開發(fā)成本和效率作為主要目標的技術(shù)浪潮興起[14],較少需要計算機程序開發(fā)知識與技能的數(shù)據(jù)處理與開發(fā)工具或許會迎來新發(fā)展機遇。但計算機程序開發(fā)語言自身也在隨著行業(yè)需求的變化不斷發(fā)展,在信息系統(tǒng)開發(fā)中的地位不會被上述的可視化或低代碼特征的工具所全面替代。因此,對于類似系統(tǒng)的設計與開發(fā),實現(xiàn)的技術(shù)手段應結(jié)合實際條件和需求靈活選擇。