秦 偉
(山西省廣播電視局228臺(tái),山西 太原 030001)
?
一種用于廣播電視發(fā)射臺(tái)站的維護(hù)管理系統(tǒng)的實(shí)現(xiàn)
秦 偉
(山西省廣播電視局228臺(tái),山西 太原 030001)
隨著互聯(lián)網(wǎng)的迅猛發(fā)展,信息的交互變的越來越重要,于是管理信息系統(tǒng)(MIS)在各行業(yè)也得到了普及。而對(duì)于廣播電視發(fā)射臺(tái)來說,一款簡單易用的維護(hù)管理軟件不但能使維護(hù)工作變得高效可靠,更能更好的確保安全播出。本文主要介紹了如何利用VC++6.0軟件結(jié)合廣播電視發(fā)射臺(tái)站的一些特點(diǎn)開發(fā)實(shí)現(xiàn)一種發(fā)射機(jī)維護(hù)管理系統(tǒng)。
數(shù)據(jù)庫;成員變量;窗口;SQL語句
近年來,隨著互聯(lián)網(wǎng)的迅猛發(fā)展,信息通信的方式五花八門,信息的交互變的越來越重要,于是管理信息系統(tǒng)(MIS)在各行各業(yè)得到了快速的普及與發(fā)展。
對(duì)于廣播電視發(fā)射臺(tái)來說,一款簡單易用的維護(hù)管理軟件不但能使維護(hù)工作變得高效可靠,更能更好的確保安全播出。根據(jù)廣播電視發(fā)射臺(tái)站的特點(diǎn),其維護(hù)管理系統(tǒng)主要由發(fā)射機(jī)或微波設(shè)備信息的錄入、設(shè)備故障和維護(hù)信息的記錄和查詢組成。開發(fā)實(shí)現(xiàn)的系統(tǒng)應(yīng)使維護(hù)管理人員很好的掌握發(fā)射機(jī)等設(shè)備的基本信息,并能隨時(shí)隨地查詢發(fā)射機(jī)曾出現(xiàn)的故障及處理過程,并能對(duì)設(shè)備信息進(jìn)行及時(shí)錄入與修改。
Visual C++提供了多種多樣的數(shù)據(jù)庫訪問技術(shù)——ODBC API、MFC ODBC、DAO、ADO等[1]。本系統(tǒng)使用了MFC(Microsoft Foundation Classes) ODBC(Open DataBase Connectivity)數(shù)據(jù)庫訪問技術(shù)。該技術(shù)具有簡單性、可擴(kuò)展性、訪問速度快、數(shù)據(jù)源友好等特點(diǎn)。利用該技術(shù)可以開發(fā)出功能強(qiáng)、速度快、應(yīng)用廣且占用系統(tǒng)資源少的應(yīng)用程序[1]。
2.1 系統(tǒng)設(shè)計(jì)
根據(jù)廣播電視發(fā)射臺(tái)站的主要工作內(nèi)容,可將系統(tǒng)分成三個(gè)功能模塊:發(fā)射機(jī)等設(shè)備的基本信息錄入、發(fā)射機(jī)等設(shè)備維護(hù)記錄和基本信息及維護(hù)信息的查詢和修改。為了方便系統(tǒng)管理人員進(jìn)行維護(hù)操作,應(yīng)盡量將系統(tǒng)的界面設(shè)置的簡單,且易于操作。所以可對(duì)設(shè)備進(jìn)行編號(hào),用編號(hào)進(jìn)行查詢和修改,省去了輸入漢字的麻煩。系統(tǒng)的數(shù)據(jù)流程圖如圖1。
圖1 發(fā)射機(jī)維護(hù)管理系統(tǒng)數(shù)據(jù)流程圖
2.2 數(shù)據(jù)庫設(shè)計(jì)
根據(jù)廣播電視臺(tái)站自身的實(shí)際需求出發(fā),需要用到下面的一些數(shù)據(jù)項(xiàng)和結(jié)構(gòu):發(fā)射機(jī)等設(shè)備的基本信息包括名稱、編號(hào)、是發(fā)射設(shè)備還是微波設(shè)備、播出或傳輸?shù)墓?jié)目內(nèi)容、是主用還是備用設(shè)備、設(shè)備的維修電話以及其詳細(xì)信息,例如功放的型號(hào)及個(gè)數(shù)等,維護(hù)信息包括日常維護(hù)還是故障維修、具體的維護(hù)操作,故障現(xiàn)象,解決辦法等。
在本系統(tǒng)中用到了VC++的MFC類庫定義的以下幾個(gè)數(shù)據(jù)庫:CDatabase(數(shù)據(jù)庫類)、CRecordSet(記錄集類)和CRecordView(可視記錄集類),其中CDatabase類對(duì)象提供了對(duì)數(shù)據(jù)源的連接,CRecordView類對(duì)象以控制的形式顯示數(shù)據(jù)庫記錄,CRecordSet類對(duì)象提供了從數(shù)據(jù)源中提取出的記錄集[2]。由于設(shè)計(jì)的管理系統(tǒng)數(shù)據(jù)量不是太大,故采用Access設(shè)計(jì)。利用Access中的設(shè)計(jì)器創(chuàng)建兩個(gè)表,一個(gè)表將發(fā)射機(jī)等設(shè)備的基本信息包含進(jìn)去,它包括設(shè)備的編號(hào)、主用還是備用、名稱等一系列設(shè)備的詳細(xì)信息;另一個(gè)表涵蓋了對(duì)發(fā)射機(jī)的維護(hù)信息,如維護(hù)的時(shí)間、故障現(xiàn)象等。因在添加設(shè)備時(shí),便于在對(duì)話框中輸入,再創(chuàng)建兩個(gè)表,對(duì)話框分別對(duì)應(yīng)播出或傳輸節(jié)目的內(nèi)容以及是主用還是備用。由于需要對(duì)發(fā)射機(jī)進(jìn)行編號(hào)及維護(hù)記錄編號(hào),因此還需要建立一個(gè)表,用于計(jì)數(shù)。表創(chuàng)建完成后,還應(yīng)對(duì)表中具體的數(shù)據(jù)類型的細(xì)節(jié)根據(jù)具體字段分別設(shè)置,如字段名稱為NAME,字段大小為10,說明為設(shè)備的名稱,數(shù)據(jù)類型為文本,在選擇文本時(shí)出現(xiàn)的選項(xiàng)中必填字段選是,允許空字段為否,輸入法模式為關(guān)閉,其它為默認(rèn)。
2.3 功能模塊設(shè)計(jì)
系統(tǒng)的主要功能模塊有三個(gè),分別是設(shè)備的基本信息錄入模塊、設(shè)備維護(hù)信息的錄入模塊、設(shè)備基本信息及維護(hù)信息的查詢模塊。根據(jù)系統(tǒng)的特點(diǎn),可采用VC++6.0中不支持文檔/視圖體系的多文檔界面(MDI)的結(jié)構(gòu)設(shè)計(jì)。在本系統(tǒng)中MDI結(jié)構(gòu)包括一個(gè)主架窗口和三個(gè)子架窗口,可以方便的在各個(gè)子窗口間進(jìn)行切換。數(shù)據(jù)庫的操作是通過MFC的ODBC(開放式數(shù)據(jù)庫連接)類實(shí)現(xiàn)的,所以需要在頭文件stdafx.h中加入#include afxdb.h一行,并且本程序只連接一個(gè)數(shù)據(jù)庫,所以定義一個(gè)CDatabase型的全局變量db,方便一次打開和關(guān)閉數(shù)據(jù)庫。
程序的框架由AppWizard生成。主體框架菜單使用VC++6.0中的菜單編輯器創(chuàng)建,第一級(jí)菜單的名稱為系統(tǒng)、設(shè)備管理、窗口和幫助,系統(tǒng)下拉菜單為連接、斷開和退出,設(shè)備管理下拉菜單為增加新設(shè)備、設(shè)備維護(hù)和設(shè)備維護(hù)查詢及修改,窗口下拉菜單為重疊排列、水平平鋪、垂直平鋪等。各個(gè)子窗口資源均由CFormView類繼承的類來封裝,并通過Class Wizard為所需控件加入成員變量。
對(duì)話框中各成員變量與數(shù)據(jù)庫表中字段的名稱一一對(duì)應(yīng)。將發(fā)射機(jī)的基本信息和維護(hù)信息錄入數(shù)據(jù)庫是通過SQL語句完成的,其過程為:先由一個(gè)布爾型變量blogin判斷是否連接到數(shù)據(jù)庫,如果返回True(真),則開放設(shè)備維護(hù)中的三個(gè)下拉菜單選項(xiàng),三個(gè)子窗口與數(shù)據(jù)庫的連接則建立完成。如當(dāng)選擇增加發(fā)射機(jī)窗口時(shí),系統(tǒng)先將成員變量進(jìn)行初始化,當(dāng)對(duì)新增發(fā)射機(jī)的各個(gè)數(shù)據(jù)填寫完成,點(diǎn)擊增加按鈕時(shí),通過SQL語句:insert into 數(shù)據(jù)庫中表的名稱(表中字段的名稱)values(’"+變量名稱+"’,’");db.ExecuteSQL(strSQL);完成對(duì)數(shù)據(jù)庫的更新,且利用語句:counter++;
(counter為變量用于計(jì)數(shù))自動(dòng)為發(fā)射機(jī)進(jìn)行編號(hào),并重新初始化窗口。對(duì)于發(fā)射機(jī)維護(hù)信息的錄入及修改基本信息時(shí)和它類似,當(dāng)選擇查詢修改窗口,在設(shè)備編號(hào)編輯框中,輸入發(fā)射機(jī)編號(hào)時(shí),通過語句:rs.GetFieldValue(“表中字段名稱”,變量名)得到發(fā)射機(jī)的基本及維護(hù)信息。如果布爾型變量blogin返回False(假),則不開放下拉菜單及其功能。
最后完成界面的美觀等一些設(shè)計(jì)就完成了該系統(tǒng)的設(shè)計(jì)工作。
2.4 系統(tǒng)的實(shí)現(xiàn)
利用VC6.0自帶的InstallShield工具將本系統(tǒng)打包,生成一個(gè)本系統(tǒng)的安裝程序。在計(jì)算機(jī)上將此安裝文件運(yùn)行安裝完成后,若未注冊(cè)相應(yīng)的數(shù)據(jù)源,還需在控制面板中管理工具里的數(shù)據(jù)源中將數(shù)據(jù)庫文件(*.mdb)添加進(jìn)去。這時(shí)從WINDOWS操作系統(tǒng)的開始菜單中,選擇本程序,運(yùn)行,在系統(tǒng)菜單的下拉菜單點(diǎn)擊“連接”選項(xiàng),并點(diǎn)開三個(gè)子窗口,選擇水平平鋪,并在設(shè)備信息查詢及修改對(duì)話框的設(shè)備號(hào)中輸入發(fā)射機(jī)編號(hào),效果如圖2所示。
圖2 發(fā)射機(jī)維護(hù)管理系統(tǒng)效果圖
廣播電視發(fā)射臺(tái)站的維護(hù)人員可以將發(fā)射機(jī)等設(shè)備的有關(guān)信息錄入本系統(tǒng),給設(shè)備建立檔案,里面有發(fā)射機(jī)曾出現(xiàn)的各種故障及其解決辦法,便于設(shè)備的維護(hù)及維修。在接下來還可以將系統(tǒng)進(jìn)行完善,把各個(gè)發(fā)射臺(tái)站的數(shù)據(jù)通過互聯(lián)網(wǎng)連接起來,實(shí)現(xiàn)信息共享,更好的完成安全播出的任務(wù)。
[1] 李閩溟,吳繼剛,周學(xué)明.Visual C++ 6.0數(shù)據(jù)庫系統(tǒng)開發(fā)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2002.
[2] 鄭阿奇.Visual C++教程[M].北京:機(jī)械工業(yè)出版社,2004.
Implementation of a Maintenance Management System for Broadcast Television Transmitting Stations
Qin Wei
(228Station,RadioandTelevisionBureauofShanxiProvince,TaiyuanShanxi030001,China)
With the rapid development of internet,the information interaction becomes more and more important,so the management information system (MIS) is popular in various fields.For radio and television transmitters,a simple and easy to be used maintenance management software can not only make maintenance with high efficiency and reliable but also ensure the safety broadcast.This article mainly introduces how to use vc + + 6.0 software combining with some characteristics of radio and television stations to design and realize a maintenance management system of transmitter.
database; member variables; the window; the SQL statement
2016-06-14
秦 偉(1980-),男,山西隰縣人,工程師,大學(xué)本科,主要從事調(diào)頻電視發(fā)射,微波傳輸。
1674-4578(2016)05-0082-02
TP315
A