计算机自动完成城建档案排架编码研究成果
2015-09-04汕头市城市建设档案馆郑育能
文|汕头市城市建设档案馆 郑育能
一直以来,汕头城建档案馆都是以手工排架,手工排架操作分三步进行:第一步:首先要确定最后一个工程项目排架的终点位置。第二步:对已整理好的将要排架的工程档案按顺序摆放成一排,从起点开始用尺先量出一组城建档案,将上次排架最后位置开始编排,把该层排满并编码,然后依次分组量取案卷长度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中,取“库”“列”“节”“层”的编码著录入主库对应的“库”“列”“节”“层”编码的位置上,完成入库工作。
该程序我馆已使用了两年多,应用效果良好。