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