滕曼葛
(昆明船舶設備試驗研究中心人力資源處,云南昆明 650051)
隨著科技的信息化、智能化,如何提高檔案由紙質模式向信息化模式轉變對檔案利用和檢索效率尤為重要[1]。
很多單位現階段的存儲方式為紙質存儲,并將一年的所有檔案的文件名稱、文號、文件所在的卷號和件號按照其主管機關分類整理在不同的工作表內,每年的文件目錄形成一個Excel文件,在檔案利用時通過Excel電子目錄查詢檔案文件名中的關鍵字或檔案中文件的文號,得到該文件所在的卷號和件號,從而得到所查詢文件的具體位置。
因此,檢索軟件需具備以下幾個特點[2]:(1)不確定年份檢索。要求軟件在檢索過程中既可對某一特定年份進行檢索,同時也可在某一具體年份范圍內檢索,甚至在所有年份中遍歷檢索。(2)多種檢索條件結合進行檢索。軟件使用時,可根據輸入的多個檢索條件綜合檢索,快速準確確定所需文件。(3)輸出檔案文件的詳細信息,便于使用者對檔案進行查找。(4)軟件需有較強的可拓展性。隨著檔案目錄的增加,軟件仍可有效地進行檢索,且略經修改后,還可應用于其他類似的檢索過程。
根據上述軟件的需求分析,提出以下幾種檢索方法[3]:
(1)已知檔案所收錄的年份。1)按照確定的文號檢索。2)按照模糊的文號檢索。3)按照模糊的題名關鍵字檢索。4)按照責任者 +題名關鍵字檢索。5)按照準確題名關鍵字進行檢索。
(2)已知檔案收錄的年份范圍,按照如(1)所述組合進行檢索。
(3)未知檔案收錄的年份和年份范圍,按照如(1)所述方法組合進行檢索。具體檢索方式如圖1所示。
圖1 檢索軟件檢索方法流程圖
(1)VBA的內部開發(fā)。所謂內部開發(fā)是指使用Excel內嵌的VBA[4]進行開發(fā)??梢詫?VBA看作是VB的一個子集,二者在數據定義、結構設計、語法使用上均一致。
(2)COM(Component Object Model)插件開發(fā)。COM插件也叫COM加載項,實際上是一個動態(tài)鏈接庫,可開發(fā)程序作為一個鏈接庫鏈接到一些程序中從而擴展其功能。
(3)自動化服務開發(fā)。自動化使應用程序能對另一個應用程序中實現的對象進行操作或是將對象公開以便可對其進行操作。
在對檔案電子目錄檢索軟件進行開發(fā)時,本文選用VBA內部開發(fā)Excel,因VBA是一種面向對象的編程語言,Excel中的每一項均可被認為是一個對象,VBA在對象操作上語法結構具有簡潔明了的特點,且其程序調試直觀方便,是編制檔案電子目錄檢索軟件理想的語言。
檢索軟件編制的基本元素即為Excel中的對象,通過對Excel中的對象的各類操作來完成檢索軟件的編制。Excel對象包括以下幾個方面[5]:
(1)Application對象:Application對象代表整個Microsoft Excel應用程序本身,所有打開的工作薄都屬于一個Excel應用程序本身,即一個Application對象。
(2)Workbook/Workbooks對象:代表一個Excel工作薄/Excel應用程序中當前打開的所有Workbook對象的集合,是Application對象的下一個層次。
(3)Worksheet/Worksheets對象:代表一個 Excel工作表/Excel應用程序中當前打開的所有Worksheet對象的集合,是 Workbook/Workbooks對象的下一個層次。
本文就未知檔案所在的年份與年份范圍一例,對軟件的實現流程予以說明,流程圖如圖2所示。
2.3.1 提高檢索效率
在以責任者+題名關鍵字這種方式進行檢索時,作者采用以下方式提高檢索效率,將工作薄中責任者相同的電子目錄儲存在同一個工作表內,將工作表命名為責任者的名稱,在該條件檢索時,程序首先判斷工作表的名稱是否包含輸入的責任者的名稱,若工作表的名稱與輸入的責任者吻合,那就在該工作表內進行下一步搜索[6]。其核心代碼如下:
圖2 未知年份與年份范圍時軟件檢索過程流程圖
但若檢索時并未輸入責任者信息,軟件按照上述代碼運行勢必會出現無法檢索的情況。因此,本文在進行電子目錄的制作時,首先將該年份的所有目錄集中在一個工作表中,并將此工作表命名為“總的歸檔目錄”,在檢索開始時,程序首先判斷是否輸入了“責任者”這一檢索條件,若未輸入,則所有檢索工作都在“總的歸檔目錄”的工作表內進行。核心代碼如下所示,其中 searchword6、searchword3、searchword4 分別為題名關鍵字、責任者、文號所對應的檢索輸入項。
以上方法的實施提高了檢索軟件的檢索效率,避免重復檢索。
2.3.2 跨年份搜索
從上文中可以看出,無論是已知年份范圍的檔案檢索還是未知年份和范圍地檢索,跨年份搜索是一個必須要解決的關鍵問題,在技術上體現為必須準確快速地打開幾個或所有工作薄,并對其中某一檢索條件在打開的工作薄中實現遍歷檢索。
本文所采取的方法為將本單位所產生的所有年份電子目錄的工作薄統(tǒng)一命名為“XXXX年歸檔文件目錄.xlsx”并存儲在一個文件夾內,在檢索開始之前,程序自動打開該文件夾[7]。
在已知年份范圍時,將年份范圍的上極限所在的工作薄作為循環(huán)初值,隨著循環(huán)次數的增多,依次打開各年份范圍內的文件進行查找,其核心代碼如下,其中searchword2代表輸入的年份范圍例“2000~2004”。
當未知年份和年份范圍時,需要對所有年份的工作薄進行遍歷搜索,所以需要將目標文件夾內所有年份的工作薄都存儲在一個字符型數組中,每個工作薄的文件名稱即為數組中的一個元素。其核心代碼如下
針對電子目錄檢索的兩種方法對跨年份檢索采取了針對性的做法,事實證明,這兩種方法的使用可以大幅提高軟件的檢索效率。
2.3.3 全部年份檢索時分組檢索
通過前期調查可知,這種情況下檢索出的結果一般均聚集在近幾年,本文采用以每5年為一組進行檢索,近5年的一組檢索完成后,使用者通過軟件顯示區(qū)內容判斷是否進行前一個5年的檢索,這一檢索過程中的難點和關鍵點在于如何實現人機互動。
在解決這一問題時,本文將目標文件夾中所有電子目錄工作薄的數目整除5,得到一個整數,代表這個整數循環(huán)變量的初值z設置為1,則每個工作薄在目標文件夾中的地址就變?yōu)閕=(5×(z-1)+1)To(5×z),z值的增加即代表組數的增加,當第z組檢索完成時,需要由使用者判斷是否進行前一個5年的檢索[8],其核心代碼如下
在運用上述方式解決問題時,便會出現一個現象,若使用者選擇不再進行下一組檢索,但當其了解顯示區(qū)的內容后,發(fā)現并沒有符合條件的輸出選項,使用者便需再次進行檢索,但按照上述代碼可知,程序自動從第一組進行檢索,這種情況大幅降低了軟件的智能性。因此,在程序編制時,每一組檢索完成后,將此時程序中的組號(即z值)賦值給一個中間變量h,并在程序界面上設置一個“繼續(xù)檢索”按鈕,使用者遇到上述情況時,點擊“繼續(xù)檢索”,此時組號z=h+1,將此組號帶入循環(huán)繼續(xù)檢索,則此時軟件便不會重復檢索,其核心代碼如下
2.3.4 軟件的可拓展性
隨著年份的增加,檔案的電子目錄也在不斷增加,并要求檢索軟件在進行小范圍的修改后,可準確有效地應用于其他電子目錄的檢索過程。因此,軟件需要具有較強的可拓展性,在編制該軟件時,需盡量使程序中的變量在目標文件夾中獲取工作薄和工作表的具體信息[9];程序中盡量弱化電子目錄本身的特征,電子目錄需運算的內容盡量賦值給中間變量,這樣可保證該軟件應用于其他形式的電子表格時,只需修改程序中的少部分內容。
為了使用便利,該軟件還包括軟件使用說明區(qū)域、保存檢索結果功能等其他部分[10],軟件界面如圖3所示。
圖3 檔案電子目錄檢索軟件界面圖
在充分考慮需求分析的基礎上,確定了檢索軟件的檢索流程,并在比較分析Excel開發(fā)方法的基礎上,選用VBA語言對檢索軟件進行開發(fā),在開發(fā)過程中解決了多檢索條件同時檢索、跨年份檢索、全部年份檢索時的人機互動、軟件可拓展性等關鍵問題。此外,還完成了檔案電子目錄檢索軟件的編制。該目錄檢索軟件提高了檔案電子目錄檢索效率,減少了人工操作的步驟和時間,多重檢索條件同時檢索提高了檢索的準確率,并可將某一項目在一定時間范圍內的所有文件名稱羅列在同一顯示區(qū)上,有利于分析各項目的進行情況和時間節(jié)點,為檔案的管理與利用提供了便利。但本軟件仍有需要改進之處,例如在保密形式嚴峻的情況下軟件的安全性問題等,是需要進一步研究的問題。
[1]涂志蘭.企業(yè)檔案工作發(fā)展的前景[J].貴州電力技術,2011,14(4):90.
[2]蒙繼承.電子檔案利用與紙質檔案利用的需求比較探討[J].職業(yè)圈,2007(8):188 -189.
[3]周楓.論檔案檢索語言在電子檔案管理中的應用[J].卷宗,2013(6):16-17.
[4]布倫格林.Excel專業(yè)開發(fā)[M].北京:電子工業(yè)出版社,2007.
[5]羅剛君.Excel VBA程序開發(fā)自學寶典[M].北京:電子工業(yè)出版社,2009.
[6]陳維.基于VBA的庫存管理系統(tǒng)的設計與實現[J].廣東農工商職業(yè)技術學院學報,2010,26(2):83-85.
[7]張江,李佩.基于VBA的數據查詢優(yōu)化方案[J].數據庫與信息管理,2012(16):63-65.
[8]韓小良.最新Excel VBA使用范例大辭典[M].北京:中國鐵道出版社,2012.
[9]顧士學.基于Excel2003VBA成績分析模板的設計與實現[J].白城師范學院學報,2011,25(3):51 -53.
[10]神龍工作室.Excel高效辦公-VBA范例應用[M].北京:人民郵電出版社,2006.