康曉龍 白秀平 布日古德
摘 要:KKS標(biāo)識(shí)系統(tǒng)是電廠管理信息系統(tǒng)的基礎(chǔ)。編碼的質(zhì)量好壞直接影響整個(gè)信息管理中各個(gè)環(huán)節(jié)的應(yīng)用。KKS碼數(shù)量大、工作繁重,人工編制過(guò)程中經(jīng)常紕漏,不規(guī)范的情況。本文介紹通過(guò)利用EXCEL中宏的強(qiáng)大功能來(lái)實(shí)現(xiàn)對(duì)功能位置KKS的智能編碼,詳細(xì)說(shuō)明了本設(shè)計(jì)的具體功能、實(shí)現(xiàn)原理及效果展示。利用些小程序解決了人工手動(dòng)編碼的一些弊端,層級(jí)結(jié)構(gòu)清晰,方便易用,在保證編碼正確率的前提下,大大提高了編碼效率。
關(guān)鍵詞:功能位置;KKS;智能編碼;EXCEL宏;VBA
DOI:10.16640/j.cnki.37-1222/t.2019.09.130
1 軟件設(shè)計(jì)概述
1.1 軟件使用概述
根據(jù)XX集團(tuán)《發(fā)電企業(yè)設(shè)備功能位置(KKS)編碼導(dǎo)則》標(biāo)準(zhǔn)要求,編碼采用樹(shù)形結(jié)構(gòu),將KKS分為5級(jí)編碼,依次為:機(jī)組編碼,系統(tǒng)級(jí)編碼,子系統(tǒng)編碼,設(shè)備碼及部件碼。中文描述應(yīng)按照從機(jī)組級(jí)、系統(tǒng)級(jí)一直到設(shè)備級(jí)的原則,若是設(shè)備的部件,則為機(jī)組級(jí)、系統(tǒng)級(jí)、設(shè)備級(jí)、部件級(jí)。
如:
根據(jù)標(biāo)準(zhǔn)編碼規(guī)則,本軟件通過(guò)在EXCEL表格中給每級(jí)單獨(dú)編碼,編碼時(shí)只需要填入本級(jí)的編碼,如設(shè)備級(jí)編碼為AN001,只需在設(shè)備級(jí)對(duì)應(yīng)的單元格中填入AN001,機(jī)組級(jí)系統(tǒng)級(jí)和子系統(tǒng)編碼會(huì)自動(dòng)根據(jù)其上一級(jí)的編碼自動(dòng)生成KKS碼及其描述。表格中包括KKS 5級(jí)編碼,每級(jí)編碼描述,最后生成的KKS碼,功能位置描述,上一級(jí)KKS碼,上一級(jí)功能位置描述共10列。
1.2 功能概述
分級(jí)自動(dòng)生成編碼:能夠按照標(biāo)準(zhǔn)要求分層級(jí),只對(duì)一級(jí)進(jìn)行編碼就能夠連同上級(jí)編碼一同自動(dòng)生成KKS碼、功能位置描述及上級(jí)KKS和描述,大大提高了編碼速度。
編碼輸入提示:在給每級(jí)進(jìn)行編碼時(shí),所選單元格處會(huì)有輸入提示從而減少錯(cuò)誤率。
編碼格式錯(cuò)誤檢測(cè):能夠自動(dòng)識(shí)別編碼時(shí)輸入的格式是否符合要求,當(dāng)不符合要求時(shí)會(huì)自動(dòng)報(bào)錯(cuò)停止并顯示錯(cuò)誤信息要求重新輸入。
KKS查重:每生成一個(gè)KKS編碼,軟件都會(huì)自動(dòng)檢查是否有重復(fù)的KKS,當(dāng)有相同的KKS編碼時(shí),會(huì)將重復(fù)的數(shù)據(jù)突出顯示。
2 軟件設(shè)計(jì)原理
2.1 KKS編碼及其功能位置描述自動(dòng)生成原理
利用EXCEL中 Worksheet_Change事件驅(qū)動(dòng)代碼執(zhí)行。
KKS=(上一級(jí)KKS)&(當(dāng)前所選單元格編碼)
功能位置描述 =(上一級(jí)功能位置描述)&(當(dāng)前編碼描述)
上一級(jí)KKS:利用一個(gè)循環(huán),從機(jī)組編碼列到所選單元格所在列,然后向上查找所選單元格前一列對(duì)應(yīng)的不為空的值,每個(gè)循環(huán)所查找的值進(jìn)行邏輯運(yùn)算相與就得到上級(jí)KKS編碼。
上一級(jí)功能位置描述:原理和kks生成方法一樣。
實(shí)現(xiàn)代碼如圖1。
2.2 編碼輸入提示、編碼格式錯(cuò)誤檢測(cè)實(shí)現(xiàn)方法
利用數(shù)據(jù)有效性即可實(shí)現(xiàn)單元格數(shù)據(jù)輸入提示、格式限制、出錯(cuò)停止并提示錯(cuò)誤信息。分別對(duì)輸入的每一列進(jìn)行數(shù)據(jù)有效性設(shè)置,有效性條件:允許設(shè)置為自定義,然后輸入每一列的條件限制公式;輸入信息:標(biāo)題設(shè)置為“請(qǐng)輸入xx編碼”輸入信息設(shè)置為“每列的輸入條件提示”,如設(shè)備碼列:“ AANNNA (N) ”,A為大寫(xiě)英文字母,N為阿拉伯?dāng)?shù)字;出錯(cuò)警告:樣式為停止,標(biāo)題設(shè)為“輸入錯(cuò)誤請(qǐng)重新輸入”,錯(cuò)誤信息設(shè)為“輸入的設(shè)備編碼不符合標(biāo)準(zhǔn)要求”。
2.3 KKS碼查重
對(duì)KKS碼列進(jìn)行:條件格式設(shè)定>突出顯示單元格規(guī)則>重復(fù)值。
2.4 效果展示
3 結(jié)束語(yǔ)
本設(shè)計(jì)充分利用了EXCEL中宏的強(qiáng)大功能及VB語(yǔ)言和數(shù)據(jù)有效性,很好的解決了人工編碼時(shí)易出錯(cuò)、重復(fù)、編碼混亂、不易整理等缺點(diǎn),大大提高了工作效率。
參考文獻(xiàn):
[1]林卓然.VB語(yǔ)言程序設(shè)計(jì)(第4版)[M].北京:電子工業(yè)出版社,2016(08).
[2]蒲括,邵朋.精通Excel數(shù)據(jù)統(tǒng)計(jì)與分析[M].北京:人民郵電出版社,2014(06).
[3]ExcelHome.Excel2013函數(shù)與公式應(yīng)用大全[M].北京:北京大學(xué)出版社,2016(05).
[4]尚品科技.Excel VBA 編程實(shí)戰(zhàn)寶典[M].北京:清華大學(xué)出版社,2018(07).
作者簡(jiǎn)介:康曉龍(1993-),男,山西人,本科,工程師,從事信息化工作。