文|汕頭市城市建設檔案館 鄭育能
一直以來,汕頭城建檔案館都是以手工排架,手工排架操作分三步進行:第一步:首先要確定最后一個工程項目排架的終點位置。第二步:對已整理好的將要排架的工程檔案按順序擺放成一排,從起點開始用尺先量出一組城建檔案,將上次排架最后位置開始編排,把該層排滿并編碼,然后依次分組量取案卷長度80公分(層寬度)檔案長度并相應編碼,直至排完為止。第三步:將分成各組的所有檔案排架編碼“庫”“列”“節”“層”信息錄入建設工程檔案管理系統。

手工排架存在幾個問題:一、容易出現錯誤。手工排架將要上架已裝檔案盒的工程檔案項目順序整齊擺放,分組累加或用尺子測量已裝盒檔案,對應于檔案柜各層位置,登記檔案庫列節層排架號,操作過程經常會出現以下錯誤:多人操作出現混亂,排列位置出錯,檔案盒厚度累加數字心算出現漏算或多算,尺子丈量空隙過大或差錯。二、手工排架不觸及已進主庫的案卷級檔案脊寬數據,如果脊寬錄入錯誤在排架過程中得不到有效地校對和改正。三、手工排架需要的空間場地較大,操作費時費力。四、手工排架最后還要將“庫”“列”“節”“層”編碼數據錄入到系統中完善入庫。
尋找使用先進的操作方式代替手工排架是我們的研究課題。我們注意到,在工程項目將要排架之前,工程項目的項目級、案卷級和文件級的有關數據已被著錄入汕頭市城市建設檔案管理系統。如果我們能將案卷級的案卷脊寬和有關數據提取出來,按手工排架操作的規則,可通過編程,運用計算機運算來確定各案卷的“庫”“列”“節”“層”編碼,并將編碼批量送入主庫,再從主庫調用數據打印案卷脊背,以實現城建工程檔案排架工作自動化。
為實現運用算機代替人工自動排架,我們觀察手工排架步驟,應先確定建設工程檔案上架的排架初值。實際上這個值就是前一個已上架的某工程項目的終點位置。本人用visual foxpro 數據庫編寫出汕頭市城建檔案自動排架程序,在主庫中計算出上次排架的終點位置值,確定出將要排架的工程項目排架初始值。
電腦自動排架初始值計算程序源代碼:

*以上為賦值語句。將文本框庫列節層賦值給kk1,ll1,jj1,cc1。
select zdjh,dh,jk,kk,ll,jj,cc,ajys from anjk1 into dbf pjcz where kk=kk1.and. ll=ll1 .and. jj=jj1 .and. cc=cc1
以上語句把主庫中庫列節層等于kk1,ll1,jj1,cc1的記錄挑選出來,將總登記號zdjh,檔號dh,脊寬jk,庫kk,列ll,節jj,層cc,案卷頁數ajys共8個字段數據復制并存入“pjcz”工作表中。
SELECT pjcz*選擇pjcz工作表
GO top*指向第一條記錄
Jk1=0 *脊寬初值先設定為0

以上為循環語句,如果檢測到總登記號(zdjh)不為0并且記錄還不到末尾,脊寬作累加計算
GO top*指針指向pjcz工作表的第一條記錄
UPDATE pjcz SET ajys=0*設置ajys的值為0
REPLACE ajys WITH jk1*用該層脊寬累加值jk1代換ajys的數據,此時ajys的值就是初始值
電腦自動排架程序界面設計。首先將要排架的工程項目數據從主庫中選擇復制出來。程序界面的上部分是條件檢索操作功能。如在選擇條件文本框中選擇“檔號”,在運算操作選擇文本框中選擇“包含”,在檢索內容文本框中填入要排架的項目號,將能從主庫中提取該項目自動排架所需要數據。定位排架起點屬性,分別用5個文本框“庫”、“列”、“節”、“層”、“初始值”表征;檔案柜存放檔案及分組排列,分別用3個文本框“每列節數”、“每節層數”、“每層寬度”表征,如下圖所示。
程序原代碼簡述:
select zdjh,dh,jk,ajys,kk,ll,jj,cc from anjk1 into dbf v_t where &yyyy1
以上語句意義:設選擇條件參數為yyyy1(如“檔號”包含I1.3-0323的條件),將符合條件的所有記錄的“總登記號”、“檔號”、“脊寬”、“庫”、“列”、“節”、“層”、“案卷頁數”數據復制出來,存于數據表v_t.dbf中,數據表v_t.dbf中引入“案卷頁數”字段只是借用其位置作為 “脊寬”運算過程所用。

以上語句意義:用循環語句將ajys字段的所有數據都改寫為0。
GO bottom
*將指針指向最后一條記錄
Max=RECNO()

*數據表v_t.dbf記錄總數用Max表示,記錄號測試函數RECNO()測出總記錄數的值。

以上語句意義:為庫中提取出來排架記錄編寫序號,用循環語句將“總登記號”字段按記錄數按順序改寫序號,“總登記號”字段也是借用字段。

以上語句意義:從數據表v_t.dbf挑選出有填寫檔案盒脊寬的記錄的所有數據存放于從數據表v_t2.dbf中,一盒裝幾卷檔案,脊寬只編在第一卷。

以上語句意義:用Max1表示總記錄數,檢測出數據表v_t2.dbf的記錄總數。

以上語句意義:由于數據表v_t2.dbf中,沒有填寫脊寬的記錄已被刪除,表示序列號字段為zdjh,后一記錄的zdjh減前一記錄的zdjh正好是前一記錄裝盒卷數。用循環語句將所有每盒裝卷數存放字段ajys中。
REPLACE ajys WITH zdjh2
*最后一條記錄的盒裝卷數存放字段ajys。


以上語句意義:用循環語句從數據表v_t2.dbf中,取字段ajys的所有數據(用中間變量t表示),寫入數據表v_t.dbf中,相對應記錄序號用中間變量a表示。至此完成自動排架所有需要的數據收集工作,數據存放在數據表v_t.dbf。以下是自動排架的核心程序。
sele v_t
*選取數據表v_t.dbf

以上語句從首記錄提取“庫”“列”“節”“層”數據分別用kk1、ll1、jj1、cc1表示。

以上語句從程序界面文本框中選取列節數、節層數、和層寬度數據分別由lljs、jjcs、cckd表示;排架初值由pjcz1表示。
Jk1=pjcz1
*脊寬變量jk1初定為排架初值。
jk1=jk1+jk
*脊度初值加上要排架的每一個檔案盒脊背寬度




以上語句意義:用列嵌套節,節嵌套層,三個循環程序,運算自動編碼,我們的檔案柜層寬80公分,留空2公分,實取78公分,我們的檔案柜是6層。
BROWSE
*在界面顯示排架結果
thisform.command2.Enabled= .T.
*架號另存按鈕
點擊“入庫”按鈕事件原代碼如下:

以上語句意義:從數據表v_t.dbf中,取“庫”“列”“節”“層”的編碼著錄入主庫對應的“庫”“列”“節”“層”編碼的位置上,完成入庫工作。
該程序我館已使用了兩年多,應用效果良好。