伏立霞 李曰穎
山東職業(yè)學(xué)院 山東 濟(jì)南250104
訂單篩選工作是圖書館采購(gòu)圖書的第一環(huán)節(jié),是保證圖書采訪質(zhì)量的重要工作。本文以山東職業(yè)學(xué)院圖書館為例,分析了圖書訂單篩選中出現(xiàn)的各種問(wèn)題,利用VBA(VisualBasicforApplications)設(shè)計(jì)了一套快速有效的圖書訂單篩選算法,以期提高圖書采訪質(zhì)量。
目前,圖書采購(gòu)訂單通過(guò)采集器或系統(tǒng)查重后,反饋回來(lái)的訂單仍存在很多問(wèn)題,需采訪人員篩選后再進(jìn)行訂購(gòu)。從書商反饋回來(lái)的訂單Excel格式,包含國(guó)際標(biāo)準(zhǔn)書號(hào)(InternationalStandardBookNumber,簡(jiǎn)稱ISBN)、題名、出版社、出版日期、定價(jià)等字段。每個(gè)圖書館的篩選原則大同小異,盡管側(cè)重點(diǎn)不一樣,但篩選處理方法基本相同。
1.篩選空格,完善數(shù)據(jù)
從書商反饋回來(lái)的訂單數(shù)據(jù)會(huì)出現(xiàn)信息不全的數(shù)據(jù)記錄,如缺少題名、出版社等字段。
2.篩選本館禁止類圖書
對(duì)于高校(除幼兒師范)圖書館而言,少兒類圖書是禁止購(gòu)買的。本科院校不購(gòu)買高職高專類圖書,高職院校圖書館無(wú)需采購(gòu)考博、考研類用書。
3.篩選復(fù)本設(shè)定
圖書館對(duì)不同大類、不同價(jià)格的圖書,復(fù)本要求會(huì)不一樣,低價(jià)和高價(jià)圖書的復(fù)本也不一樣。
4.篩選出版日期要求
很多圖書館對(duì)于出版日期的篩選有限定要求。傾向于訂購(gòu)新書甚至只要當(dāng)年出版的圖書館,需篩掉某出版日期之前的圖書。
1.空格數(shù)據(jù)處理模塊
本模塊主要功能是篩選出訂單數(shù)據(jù)中含有空格的記錄,并把這些記錄整理形成單獨(dú)的空格記錄表格,以O(shè)utlook郵件的方式直接發(fā)送給書商。
2.字符篩選處理模塊
本模塊的功能是篩選本館禁止購(gòu)買的圖書,鑒于每個(gè)圖書館的要求不一樣,本模塊在設(shè)計(jì)時(shí)增加了自由添加篩選條件的功能。
3.復(fù)本設(shè)定模塊
本模塊共分兩大部分:一是按照價(jià)格設(shè)定,高價(jià)圖書與低價(jià)圖書復(fù)本分別設(shè)定;二是按照《中國(guó)圖書館分類法》分類設(shè)定復(fù)本。
4.出版日期篩選模塊
本模塊主要功能是過(guò)濾某一出版日期之前的數(shù)據(jù)記錄,具體日期根據(jù)各館要求自由輸入。
從書商返回的訂單都是Excel格式文件,此格式文件易操作處理,采用基于VBA的開發(fā)方式最為合適。本算法設(shè)計(jì)分為兩大模塊,模塊一為空格數(shù)據(jù)篩選處理,模塊二將字符篩選處理、復(fù)本設(shè)定、出版日期篩選合為一體。從書商處返回的Excel格式文件中,P列為訂購(gòu)冊(cè)數(shù)設(shè)定,其中P2為小于或等于100元訂3冊(cè),P3為100至200元訂2冊(cè),P4為大于或等于200元訂1冊(cè),P6—P9為中圖法分類設(shè)定訂購(gòu)冊(cè)數(shù),Q列為篩選日期設(shè)定,Q2為2014年1月1日之前不訂,O列為篩選字符設(shè)定。各館根據(jù)自身實(shí)際需求隨意設(shè)定。以下以偽代碼方式介紹,//后為注釋。
1.模塊一算法與設(shè)計(jì)
功能:將“原始書單”中含空單元格數(shù)據(jù)剪切到“刪除書單”。
偽代碼如下:
Ifi=6Then結(jié)束本次循環(huán) //第六列(訂數(shù))除外,此時(shí)為空
//大于最后一行說(shuō)明本列無(wú)空白單元格,直接進(jìn)入下一循環(huán)
Ifi列第一個(gè)空單元格所在行數(shù)<=Sheet1的數(shù)據(jù)最后一行
Then//含空單元格的數(shù)據(jù)行排到表的后面
以i列進(jìn)行排序
將每列含空單元格的數(shù)據(jù)行剪切到sheet3中
r=sheet3的最后一行
End If
2.模塊二算法與設(shè)計(jì)
功能:首先,將篩選字符寫入字典,提取P2、P3、P4單元格的價(jià)格和冊(cè)數(shù),將P6—P9的字符寫入HashTable,提取Q2單元格內(nèi)的日期。其次,篩選Q2單元格日期以前的圖書。再次,篩選包含O列字符的圖書。最后,按P列給出的訂購(gòu)要求確定訂購(gòu)冊(cè)數(shù)。
偽代碼如下:
IfP6-P9單元格為空
Then //按單價(jià)確定冊(cè)數(shù)
Else //按中國(guó)圖書館分類法確定冊(cè)數(shù)
IfP4單元格不為空
Then //有單價(jià)要求,提取參數(shù)
m2=P4單元格中的金額
m3=Q2單元格中的日期
n3=是P4單元格中的冊(cè)數(shù)
Else //無(wú)單價(jià)要求,只提取日期
m3=Q2單元格中的日期
EndIf
EndIf
經(jīng)過(guò)嚴(yán)格測(cè)試,該算法在圖書采訪過(guò)程中發(fā)揮了較大作用,提高了圖書采訪的效率和準(zhǔn)確率。