图1是表示办公室计算机之类的总体布置的方框图。
输入单元1包括,用来以键输入各种数据和指令的
键输入装置及作为指向装置的鼠标。当原始账的记录单
据的输入被从此输入单元1指定,输入处理器2按照此
指令被驱动并执行从输入单元1输入的原始账记录单据
的输入处理。
原始账记录单据将在下面叙述。图2到4分别表示
详细的原始账记录单据。图2表示用于转移作业表文件
的原始账记录单据,图3表示用于销售作业表文件的原
始账记录单据,图4表示用于会计作业表文件的原始账
记录单据。在此实施例中,X、Y、和Z文件3、4和
5等为诸如转移作业表文件、销售作业表文件、和会计
作业表文件的各种数据文件而准备的。原始账记录单据
3-1、4-1、5-1、……对应于这些文件而被存
储和管理。各个单据的单据格式彼此基本上是一样的。
示于图2和3的每个原始账记录单据的基本配置组
成了一个在和数据文件记录的记录配置相应的各项目名
称与用作更新此数据文件的记录的处理目标的至少一个
单据的各项目名称之间的一致性单据。示于图4的原始
账记录单据的基本配置组成了一个为建立和数据文件记
录配置相应的各项目名称与用作更新此数据文件的记录
的处理目标的至少一个处理目标文件记录配置相应的各
项目名称之间一致性的一致性单据。
首先,参照图2,水平地写在原始账记录单据框外
面的字母A、B、C、…代表由有行和栏的表格格式组
成的记录单据的栏项目位置。竖直地写在框外面的数字
1、2、3…代表行项目位置。预设于记录单据输入处
理器2中的单据格式里包括组成一个表格框子的界线和
标题(例如,原始账名称、项目名称、属性、……,输
入原始账名称、业务名称、……)以及单元框。把此单
据格式输出在显示屏上的状态内,在输入单元1指定任
何项目位置时,数据被顺序地输入。
更具体地,转移作业表文件的文件名称“转移作业
表”对应于单据格式标题为“原始账名称”被输入。项
目名称(交易日期、单据类别、单据号、……交易日期、
发货公司(issuing enterprise)
cd、………)对应于转移作业表文件的记录配置被一
一地输入。注意,“cd”表示一个代码,而“单据号”
代表单据的流水号。预定的项目对应于各项目名称被一
一地输入到“属性”、“数字数目”、“表格名称”、
及“定义”的各栏内。其中,“属性”表示有关项目的
属性。例如,“R”表示向右对齐(right ju
stification),而“N”表示一个数值。
“数字数目”表示有关项目的数字位置的数目。“表格
名称”表示在产生一个相关项目数据时的索引表的名称。
例如,“借方银行cd”表示了由对应的表格名称“银
行cd”表示的索引表来执行将代码变换成文字,从而
生成相应的项目数据。“定义”表示根据需要参照索引
表等产生对应项目的数据的产生条件。例如,对应于“
记录日期”的定义“#指定日”是指文件被登录的当前
日期应被规定为记录日期。
注意,在转移作业表文件作为账/单据被输出时,
“属性”、“数字数目”、“表格名称”、和“定义”
的表达内容被涉及,这些项目中,当下面将要描述的单
据项目被产生时,当下面将要描述的单据项目被产生时
“定义”栏也被涉及。
另一方面,在示于图2的原始账记录单据中,各单
据名称“转移单据”、“旅费及车费工作单”对应于标
题“输入原始账名称”被输入。此单据是用作为在更新
转移作业表文件的记录中的处理目标的一张单据。当具
有相同的单据名称的多个单据出现时,为了区别这些有
相同单据名称的单据,用于各单据的作为较低级概念上
的单据名称对应于标题“业务名称”被输入。即,“业
管名称”是一用来设定较低级概念上的单据名称的栏。
这使可以在“输入原始名称”栏内输入相同的名称。
当处理目标是一个单据或文件时,“功能名称”项
被设定以确定是否需一个特殊的处理(一个分项处理及
一个部分扩展(paots expansion)处
理,此二者下面都将要描述)。如果处理目标是一个单
据,在“功能名称”栏内输入“单据”。如果需要一个
特殊的处理,则在“功能名称”栏内输入“分项”或“
部分扩展”。“更新类别”表示在更新转移作业表文
件的记录时的更新类别。例如,对各单据可从记录总计、
记录追加、记录追加/总计等中选择任一个更新类别。
在所举的例子中,表示记录追加的“追加”被输入作为
“转移单据”及“旅费和车费工作单”的更新类别。
对应于数据文件的记录项目名称组成一个单据的单
据项目名称被一一输入。更具体地,对应于转移作业表
文件的记录项目名称,转移单据的各项目名称(分割(
division)(日期1,6)、“62”、单据
号、日期、发货公司、………)被输入。类似地,对于
旅费和车费工作单,对应于与该旅费和车费工作单的单
据相应的转移作业表文件3的记录项目名称。单据的项
目名称“#分割(日期1,6)、#63”、单据号、
结算日期、本地公司……“被输入。
单据项目名称”#分割(日期1,6)“表示分开
地提取8位的日期数据的第一数字位置到第六数字位置
的年份和月份数据。单据项目名称“62”、“63”、
等指本征值(单据类列)。“单据项目”作为标题分别
被输入到原始账记录单据3-1第五列的第G和第H栏
中,以表明输入到同一栏的各行的数据是单据项目名称。
当单据项目名称的栏是空白,且在对应项目位置处
“定义”栏内又记述有记录生成条件时,即当项目以数
据文件记录项目出现而不是以单据项目出现时,特别是,
这些项目数据将被产生时,则单据项目数据将按照“定
义”记述的内容被产生。
图2中的原始账记录单据的行项目位置“28”的
内容表示被要求用于输出转移作业表文件3的内容作为
账/单据的项目。其配置以图2水平双线为界和转移作
业表文件的记录配置分开,且所需的项目被输入到“项
目名称”、“属性”、“表格名称”、和“定义”各栏
内。“定义”栏中的“#索引(发货公司cd、公司名
称)”表示使用“发货公司代码“来检索发货公司表,
从此表中读出公司名称,并生成其。
对应于销售作业表文件的原始账记录单据中,如图
3所示,数据文件的记录项目名称使和每种单据的项目
名称相应,如在图2的原始账记录单据中那样。在此情
况下,数据文件是一销售作业表文件,目标单据是“销
售单据”、“购货单据”、“仓库间转移单据”、和“
贷方单据”。销售作业表文件的记录根据此四种型式的
单据来更新。
如图4所示,对应于会计作业表文件的原始账记录
单据使得两个数据文件的记录项目名称互相一致。在更
新会计作业表文件的记录中用作处理目标的数据文件的
是转移作业表文件或销售作业表文件。在此情况下,会
计作业表文件的记录项目名称和转移及销售作业表文件
的记录项目名称一致。对销售作业表文件的记录“借方”
和“贷方”二侧的项目名称被输入。
此情况下,“分项”在原始账记录单据中被设定为
销售作业表文件的“功能名称”。这个“分项”表示项
目数据被参照示于图5的一张分项表,对于一些项目被
产生,这些项目是例如,在原始账记录单据里设定的单
据项目名称中的附加有“$”的“$贷方账目”及附加
有“@”的“@总价”。即,即使一个项目没有出现于
在原始账记录单据里被设定为输入原始账的数据文件中,
对应项目的数据能根据分项表被自动地产生,将“$”
或“@”附加到此项目名称上来提供,并建立于原始账
记录单据中。
分项表将参照图5来详细描述。图5表示一张销售
单据分项表。如图4所示,当“分项”设定于原始账记
录单据的功能名称内时,销售单据分项表对应这张原始
账记录单据而形成。注意,生成表5-2相应于图1中
Z文件5的原始账记录单据5-1而被输入及产生。此
生成表并不限于分项表,也可以是下面要描述的扩展表。
在图5所示的分项表中,水平方向列于表格框外面
的字母A、B、C、……表示行-栏格式中的栏项目位
置。竖直方向列在表格框外面的数字1、2、3……表
示整个表格的行项目位置。表格框,单元框、粗线、双
线,和标题(例如,分项表名称、输入原始账、输出原
始账、输入状态、生成项目、及流水号,所有这些都用
粗体字表示)构成了分项表5-2的表格格式。在表格
格式输出到显示屏的状态中,当在输入单元1指定任一
项目位置时顺序输入需要的数据。此时,图5所示的分
项表以双线为界被分成三块。对每一块所需项目的数据
被顺序输入。注意到“流水号”表示构成各块的数据行
的顺序数。标题,如“输入原始账”和“输出原始账”
经将图4的原始账记录单据的内容读出就被自动地输入。
构成图5所示分项表各块的记述内容将在下面说明。
项目名,如“交易类别”、“交易分割”、和“客
户cd(代码)”,即任意地选自列于图3所示的原始
账记录单据中的项目名称的构成销售作业表文件的记录
中的项目,将设定于第一栏的,即,对应于与标题“输
入状态”相对应的流水号“01”至“10”的栏的输
入状态填充栏中。从在图4的原始账记录单据中设定为
输入的原始账的销售作业表文件的项目名称中任意选出
的项目名,如“$借方账目cd”、“$贷方账目cd”
、“@总价”对应于标题“生成项目”被设定。项目内
容(状态值)对应于与流水号“01”至“10”相对
应的各行的数据填充栏中的输入状态项目而被输入,而
项目内容则对应于其中的生成项目而被输入。
假设一个记录从销售作业表文件读出,此文件是作
为输入原始账设定在原始账记录单据(图4)中,而此
单据是和分项表(图5)相对应的。在此情况下,对应
于选自该记录中各项目,并作为“输入状态”被设定于
分项表中的状态项的一个记录项目值和设定在分项表中
同一行中所有的状态项目值一致时,那么,对应于设定
在同一行里的各生成项的设定内容的数值被从分项表中
读出,从而产生对应于各生成项的项目数据。
对应于生成项“@总价”的“交易总价*(-1)”
的说明是一个用来将交易总价转换为一个负值的计算公
式。对其他生成项也可以建立某个计算公式。当对应于
每一个生成项建立了一计算公式,经执行此计算公式而
得到的项目数据可以用作为相应生成项的项目数据。由
流水号“09”和“10”表示的输入状态各栏并不分
成单元框。流水号“09”的行中记载了状态项目值,
而由流水号“10”表示的行中则略去了状态项目值。
这表明流水号“10”的状态项目值和流水号“09”
的一样。即,在流水号“09”和“10”中相同的状
态下,使双记录生成项彼此一致。这表明双记录生成项
应在同样的输入状态下产生。在同样的输入状态下用于
产生多个记录的生成项的分项被称做为“多重分项”。
在分项表(图5)的第二块中,例如由粗线和双线
分成的中间块,输入状态项目和生成项目之间的一致性
被和在第一块中一栏被设立。此时,在生成项目的记述
内容中的“#索引(仓库tb、仓库cd、会计单位(
accounting unit))”表明仓库表被
用“仓库代码”的项目来检索,会计单位从此表被读出,
且会计单位被生成作为一个生成项目。
当从销售作业表文件中读出的一个记录中的项目数
据有和在第一块中设立的以及在下一块中设立的输入状
态一致的输入状态时,即,当一个记录具有满足多个块
的输入状态的项目时,各块的项目数据也根据与输入状
态一致的生成项目被产生。分别对应于多种输入状态产
生的项目数据作为组合在一个记录中的项目数据。这种
分项以后称为“混合分项”。
在分项表(图5)最后一块中,即,双线以下的块,
和第一及中间的块中不同,输入状态不是构成销售作业
表文件的记录的项目数据。最后一块的输入状态是中间
块的生成项。就是说,最后块的输入状态是要决定作为
中间块的生成项目的“$借方会计cd”和“$贷方会
计cd”是否互相一致。在图5中,“!=$贷方会计
cd”表明“$借方会计cd”和“$贷方会计cd”
间不一致性。而“$贷方会计cd”表明一致性。利用
在一指定块中产生的生成项作为下一块的输入状态的分
项以下被称为“转移分项”。
在流水号“15”中叙述了输入状态,但在流水号
“16”中没有叙述输入状态。此时,第一块的流水号
“09”和“10”之间的一和关系被建立。这表明了
“多重分项”,其中多个记录的生成项在相同的输入状
态下是一致的。
在图5中所示的分项表中,“$借方会计单位”、
“$贷方会计单位”、“$借方账户”、和“$贷方账
户”被设为最后块的生成项的项目名称。对应于这些项
目名称所产生的生成内容是在中间块中产生的生成项“
$借方会计cd”和“贷方会计cd”,及在一第一块
中产生的生成项“$借方账目cd”和“$贷方账目c
d”和本征值“4600”。
此外,在分项表中所述的各种代码有以下意义。例
如,“交易类别”是“10:转移单据”,“20:销
售单据”,“30:购货单据”,和“40:移动(m
ovement)单据。“交易分割”是“1:销售”,
“2:商品货物的返回”,“3:购货折扣”,“6:
直接交货销售”和“7:有缺陷产品的退货”。“账目
标题”是“1161:可收到的账目”,5111:产
品销售”,“5161:销售折扣”,“5171:销
售退回”,和“5222:服务性销售”。
输入状态的说明中的“*”表明数值不被规定。注
意到在中间块中的“8*”表明第三个数字是“8”,
而在第一和第二数字位的数字未被规定。
扩展表作为另一个生成表将在下面进行说明。
图6示出一详细的扩展表。当“部分扩展”被设立
图7中原始账记录单据的功能名称中时,该扩展表对应
于这个原始账记录单据被记录下来。参阅图7,在原始
账记录单据的头部范围中,“产品构成文件”,作为原
始账名称被设立,“产品文件”作为输入原始账名称被
设立,扩展表名称“表”作为业务名称被设立,“部分
扩展”(parts expansion)作为功能
名称被设立“追加”作为更新类别被设立。如前面所说
的各原始账记录单据中,在图7所示的原始账记录单据
中,在产品文件的项目和项目名称之间的一致性对应于
产品构成文件的记录配置而被设立。如在上面所述的分
项表中,分别附加有“@”和“$”的项目名称是生成
项目。
扩展表的表格格式基本上和分项表的表格格式一样。
这是说,扩展表的标题是“输入原始账”、“输出原始
账、“部分名称(parts name)”、“输
入校验关键字(key)”、“输入状态”、及“生成
项目”。这些标题的“输入状态”的栏在图6所示的扩
展表中没有使用。随意地从输入单元1输入的数据文件
名称被设立在“部分名称”填充栏内。在图6的例子里,
“部分文件”的名称被设入此填充栏中。构成输入原始
账(产品文件)的一个记录的任意一个项目作为一个状
态项目被设定。在图6的例子中,“母层名称”被设定
在此状态项目中。上述部分文件使用此状态项目作为一
关键字被检索。
图8表示了一种作为输入原始账的产品文件的配置。
此记录具有项目名称“母层名称”和“预定的数目”的
项目数据。此产品文件有两-记录文件配置。注意到对
产品文件的“母层名称”是其产品的名称,而“预定的
数目”是产品的预定的数目。母层名称为“A”的产品
的预定的数目是“1”,而母层名称为“B”的产品的
预定的数目是“1”。
图9表示了一种部分文件的布置。此部分文件是对
应于产品文件的一种概念性文件。此部分文件是用于储
存在各个部分单位中的记录的数据文件,该记录表示对
应于在产品文件中定义为母层名称的每一个产品的部分
的专门名称、其数量和其单价。构成部分文件的这些记
录具有表示母子关系的分层结构。构成部分文件的记录
的项目是“母层名称”、“子层名称”、“使用数目”、
和“单价”。
图10表示树形结构,分别代表了此部分文件的母
子关系。更详细地,作为根的母层A有其下第一层的子
层a、b、c。作为根的母层A有下第二层的子层i、
ii、iii、iv和v。作为根的母层B有下第一层
的子层d、e和f。作为根的母层B有下第二层的子层
vi、vii、viii、ix和x。在图9中所示的
部分文件中,第一到第三个记录是用于母层“A”的子
层“a”、“b”、“c”的记录,而第四到第六个记
录是用于母层“a”的子层“i”、“ii”、“ii
i”的记录。有子层的母层“a”或“c”的单价可以
通过计算这些子层的单们之和能被获得。母层“a”或
“c”的单价被设为“0”。
“生成项目”的填充栏有二级配置。在上一级中,
设立了各生成项目的项目名称。在下一级中,设立此生
成项目的项目内容。更详细地,在设定于图7所示原始
账记录单据中的输入原始账的所有项目名称中,项目名
称“$母层代码”、“$子层代码”、“@预定的数目”
、“@单价”、和“@总价”被设立于“生成项目”的
填充栏的上一级内。构成部分文件的记录项目名称作为
生成项目的项目内容被设定在“生成项目”的填充栏的
下一级内。带有“:”的名称表示部分文件的记录项目
名称。在示于图6的扩展表中,“母层名称”作为相应
于生成项目名称“$母层代码”的项目内容被设立,“
子层名称”作为相应于“$子层代码”的项目内容被设
立,以及“单价”作为相应于“@单价”的项目内容被
设立。当部分文件的记录项目名称被直接设立时,这些
项目内容就被获得。此外,“使用的数目*预定的数目”
被记述为相应于另一个生成项目名称“@预定的数目”
的项目内容。这是一个将部分文件的项目数据“使用的
数目”乘以产品文件的项目数据“预定的数目”的计算
公式。通过此计算公式得到的数值被定义为生成项目“
@预定的数目”。进而,“单价*预定的数目”被记述
为相应于生成项目名称“@单价”的项目内容。这是一
个将生成项目“@单价”乘以生成项目“预定的数目”
的计算公式。通过此计算公式得到的数值被定义为生成
项目“@总价”。
在图6所示的扩展表中,所述的在框外上面的“表”
表示唯一地指定给此扩展表的名称。
另一方面,当一转移单据或一单据记录如车费及旅
费工作单被从输入单元1输入时,单据输入处理器6接
收并处理此数据。被处理的数据被写进一单据记录存储
器7。一个单据项目名称存储器8按时间顺序预先储存
了对应于单据记录的单据名称和这些单据项目名称。单
据输入处理器6读出单据记录存储器7的内容以及对应
于单据记录的单据项目名称。读出的数据被提供到构成
一读文件处理器9的记录处理器10。
除了记录处理器10外,文件处理器9还包括原始
账记录单据分析器11,文件生成处理器12,分项处
理器13,工作文件14,和部分扩展处理器15。原
始账记录单据分析器11接收相应于指定为更新目标的
数据文件的原始账记录单据并在更新数据文件的记录中
分析该组内容。分析结果被送到记录处理器10。此时,
当设定于原始账记录单据中的数据文件未存在于系统中
时,原始账记录单据分析器11驱动文件生成处理器1
2。文件生成处理器12根据数据文件的文件名及设定
在原始账记录单据中的记录项目名称,以项目名称的配
置次序产生一个新的、具有记录配置的文件,并对应于
原始账记录单据设立该新产生的数据文件。
记录处理器10根据原始账记录单据分析器11对
转移作业表文件、销售作业表文件、或会计作业表文件
的记录更新作的分析结果产生记录,并将所生成的记录
储存在工作文件14中。当在更新的数据文件的记录中
的处理目标是一单据,记录处理器10按照设定于原始
账记录单据中的单据项目名称的次序,以在单据记录存
储器7中的配置次序生成记录。在重新配置这些记录的
项目中,记录处理器10提出单据项目名称存储器8的
内容,检查设定在原始账记录单据中的单据项目名称的
项目位置,并提取和重新配置该项目数据。当处理目标
是一个文件,例如转移作业表文件或销售作业表文件,
记录处理器10提取设定在原始账记录单据中处理目标
文件的记录项目的数据,并产生记录,该记录的项目数
据被重新配置构成处理目标文件,例如转移作业表文件
或销售作业表文件。所产生的记录然后被储存于工作文
件14中。
当在原始账记录单据中“定义”的记述内容表示了,
例如,项目数据应当参考一张索引表来产生,像在E栏
和第23行的“#索引(客户tb,客户cd,客户名)
”,那么记录处理器10就提出预设在系统中的各种索
引表中相应的一个来产生项目数据。项目数据被设定在
工作文件14中的对应的项目位置上。当“#单据流水
号”和“#指定日期”被记述于原始账记录单据的“定
义”栏里时,单据流水号和日期信息被设定于工作文件
14中的对应项目位置上。
当“分项”被设定于原始账记录单据的“功能名称”
栏内时,分项处理器13提出生成表5-2中的分项表
以产生所需的项目(即在原始账记录单据中附加有“$”
和“@”的项目)的数据,并实行将所产生的数据设定
于工作文件14的相应项目位置上的分项。此时,分项
处理器13按照分项表上表述的内容执行“多重分项”、
“混合分项”或“转移分项”。
当“部分扩展”被设定于原始账记录单据的“功能
名称”栏内时,部分扩展处理器15提出在原始账记录
单据5-2中的扩展表以产生所需的项目(即在原始账
记录单据中附加有“$”和“@”的项目)。所产生的
数据被设定在工作文件14的相应位置上,并执行部分
扩展处理。
更详细地,当“$”和“@”加到一些项目上,这
些项目并不存于作为输入原始账而设定在原始账记录单
据中的数据文件中时,分项处理和部分扩展处理是用于
按照对应于此原始账记录单据的分项和扩展表来产生所
需的项目的数据的项目数据生成处理。
文件处理器9收到工作文件14的内容并对作为“
原始账名称”被设定在原始账记录单据中的数据文件(
例如,X、Y和Z文件3、4和5)之一的记录进行更
新。此时,文件处理器9检查设定在原始账记录单据中
的“更新类别”,按照“更新类别”更新数据文件的记
录,并进行总计和追加记录。
账/单据输出处理器16根据原始账记录单据输出
一个账/单据记录。此对应于指定的数据文件和在X、
Y和Z文件中记录为转移作业表文件、销售作业表文件、
和会计作业表文件的各种数据文件中的一个,该数据文
件被任意地指定作为输出目标。以一预定格式的账/单
据由打印单元17或显示单元18输出。此时,根据在
原始账记录单据中“属性”、“数字数目”、“表格名
称”、和“定义”参照各种表格可输出或表示对应于代
码的名称。替代地,如果需要,账/单据输出处理器1
6将这些记录进行总计。
本实施例的操作将参照图11到17的流程图来描
述。
图11是表示输入及建立一原始账记录单据并将其
记录在数据处理装置内的操作的流程图。同时,如果需
要,分项表和扩展表作为生成表被输入。
原始账记录单据被确定在输入单元1中建立,输入
处理器2显示及输出原始账记录单据的一预设单据格式
(步骤A1)。此情形下,终端的使用者能了解各个作
为日常工作中管理项目的专用项目,并在原始账记录单
据的各预定栏内记入所需的项目以便和他自己的业务内
容相适配。
更具体地,管理人员之类的人员按照上述单据格式
对应于标题“原始账名称”输入数据文件的文件名(步
骤A2)同时,他对应于设定在“原始账名称”中数据
文件的各个项目名称输入“属性”、“数字数目”、“
表格名称”、和“定义”(步骤A3)。如图2-4所
示,对应于输出一张账单据所需的项目,所需的项目被
输入于水平双线以下,如图4所示。
对应于“输入原始账名称”用作为处理目标的单据
或文件名称被输入到单据或文件的单元中。所需的项目
被顺序地输入到对应于标题为“业务名称”、“功能名
称”、及“更新类别”的填充栏中(步骤A4)。
当存在多个“输入的原始账名称”时,所有的名称
都被输入。
输入处理器2指定第一个输入原始账名称(步骤A
5)并检查是否作为对应的功能名称的“分项”和“扩
展”被设定了(步骤A6)。如果指定执行这些专门处
理的设定没有做,流程前进到步骤A11以对应于输入
的原始账顺序地输入文件记录的单据名称或项目名称。
对于一个输入原始账的所有输入完成以后,输入处
理器2指定原始账记录单据的下一个输入原始账名(步
骤A12),检查下一个输入原始账是否存在(步骤A
13)。若另一个输入原始账是存在的,流程回到步骤
A6。当“分项”如图4所示被设立于原始账记录单据
时,流程前进到步骤A7执行分项输入处理(将参照图
12的流程图在下面说明)。接着,输入处理器2将与
设定在原始账记录单据中“业务名称”同样的名称加给
分项表当作其题目名称并记录此分项表(步骤A8)。
这样,在分项表被建立和记录之后,对应于所指定的输
入原始账,项目名称被顺序输入(步骤A11)。
另一方面,如果“部分扩展”作为功能名称被设定
于示于图6的原始记录单据中,这在步骤A6中被检测,
流程前进到步骤A9以执行扩展表输入处理(下面参照
图13的流程图来说明)。接着,与设定在原始账记录
单据中的“业务名称”相同的名称被加到扩展表中当作
其题目名称来记录此扩展表(步骤A10)。这样,在
扩展表被建立及记录之后,对应于所指定的输入原始账,
项目名称被顺序输入(步骤A11)。
当重复以上的操作去完成对全部输入原始账处理时,
流程前进至步骤A14,将与原始账名同样的名称加到
原始账记录单据作为其题目名,从而记录原始账记录单
据。
上面讲到的分项表输入处理将参照图12的流程图
进行详细说明。示于图5的分项表将根据示于图4的原
始账记录单据被输入及建立。
分项表的表格格式被显示及输出(步骤B1)。同
时,原始账名及输入原始账名从示于图4的原始账记录
单据读出。文件名“销售作业表文件”作为输入原始账
被自动输入示于图5的分项表中,而文件名“会计作业
表文件”作为输出原始账被自动输入(步骤B2)。构
成分项表各块中的第一块被指定为输入目标(步骤B3)
。
在上述初始化完成之后,从输入单元1对应于第一
块的“输入状态”顺序地输入项目名称(步骤B4)。
在此情形下,在示于图3原始账记录单据中作为原始账
名称被设定的销售作业表文件的项目名称在屏幕上列出
及显示出来。当任一个项目名“交易类别”、“交易分
割”、或“客户cd”被选择作为输入状态,所选择的
项目名称被设定为第一块的输入状态项目。第一块的生
成项目然后被输入(步骤B5)。此情况下,作为输入
原始账名被设定于图4所示原始账记录单据中的销售作
业表文件的项目名称被列出及显示在屏幕上。任一个项
目名称“$借方账目cd”、“货方账目cd”、或“
@总价”被选择作为生成的项目。由该生成项目选择的
项目名称被设定为第一块的生成项目。此外,对应于输
入状态的项目,状态值被输入(步骤B6),且对应于
该状态值在同一行上输入生成项目值和生成状态计算公
式(步骤B7)。此时,“多重分项”能依据记述输入
状态的方法而被定义。更具体地,图5的分项表中流水
号“09”及“10”的说明表示了这样的“多重分项”
。多个记录的生成项目在同样的状态下被使得彼此对应。
当对第一块的全部输入完全进入后,流程前进至步
骤B8去检查是否从输入单元1指定了输入至下一块。
如是,组成分项表的下一块被指定(步骤B9)。在所
指定的块存在的条件下(步骤B10),执行该指定块
的输入处理(步骤B4到B7)。此时,中间块被指定,
并以上面所述的同样方式输入输入状态的项目名称(步
骤B4)。在示于图5的分项表的中间块中,中间块的
生成项是根据中间块的输入状态而产生的项目,同时也
是设定为表示下一块,例如,最后块的输入状态的状态
项目的那些项目。此操作表示先前叙述的“转移分项”。
这些项目的名称直接从输入单元1被输入(步骤B5)。
输入状态项目和生成项目的内容对应于中间块的各行被
输入(步骤B6及B7)。
分项表的最后一块被指定(步骤B9)。对于最后
一块的输入处理被执行(步骤B4到B7)。此情形下,
关于输入状态的项目名称,自中间块的生成项被任意指
定的项目名称被设定为输入状态的项目名称(步骤B4)
。在图5所示的分项表中,“$借方账目cd”被设定
为输入状态项目。注意到如上面所述的在最后一块中那
样,从显示的目录中选出所需的项目名称来输入一个生
成项目。对应于最后一块的各个行,输入状态项目及生
成项目的内容被输入(步骤B6和B7)。此时,分项
表的流水号为“15”和“16”的输入状态表示为“
多重分项”。
上面所述的扩展表输入处理将参照图13的流程图
进行详细说明。假设图6中的扩展表根据示于图7的原
始账记录单据而被输入和建立。
扩展表的表格格式被显示和输出(步骤C1)。同
时,原始账名称和输入的原始账名称被从示于图7的原
始账记录单据中读出。文件名“产品文件”作为输入原
始账被自动地输入示于图6的扩展表。文件名称“产品
构成文件”作为输出的原始账被自动地输入(步骤C2)
。接着,“部分名称”和“输入校验关键字”从输入单
元1输入作为扩展表的另一个题目信息(步骤C3)。
如在图6中所示,名称“部分文件”被输入并设定为部
分名称。构成示于图8的产品文件的记录的任一项目名
称“母层名称”被输入并设定为输入校验关键字。
对应于各生成项目,一项目名称被输入(步骤C4)
。对应于此生成项目,各生成项的内容被输入(步骤C
5)。在此情形下,作为输入原始账被设定于图7的原
始账记录单据中的产品文件中的项目名称在窗口屏幕上
被列出及显示。在全部显示的项目名称中,任一个项目
名称“$母层代码”、“$子层代码”、“@预定的数
目cd”、“@单价”、或“@总价”可被选择为生成
项目。所选择的项目名称在扩展表中被设为生成项目名
称。在组成示于图9的部分文件的全部项目中,任一个
项目名称从输入单元1被输入,同时,每个生成项目的
内容也被输入。此情形下,对应于生成项目名称“@预
定的数目”及“@总价”的项目内容是一些使用由各自
项目名称所表示的项目数据作为其变量的乘法计算公式。
所需项目的内容也可以用记述这些计算公式设定。
如上所述的那样被输入及产生的原始账记录单据和
生成的表(分项及扩展表),对应于数据文件例如示于
图1中的X、Y和Z文件3、4和5而被记录下来。此
情形下,文件处理器9按照原始账记录单据和生成表5
-2执行文件处理。
图14是表示执行此文件处理的流程图。在本实施
例中,有三个文件处理驱动方法可用,即“程序组驱动
(batch activation)”、“单业务
驱动”、和“扩展表驱动”。任何一个驱动方法都可以
被任意指定。
更具体地,“程序组驱动”是一种驱动作为处理目
标的全部设定在原始账记录单据中的多个输入原始账名
称的方法。例如,在示于图4的原始账记录单据中,“
转移作业表文件”、和“销售作业表文件”用作为处理
目标。“单业务驱动”是一种驱动方法,它在当有多个
输入原始账名称被设定于原始账记录单据中时只对对应
于任一指定的业务名称的作为处理目标的输入原始账进
行驱动。例如,在示于图4的原始账记录单据中,当“
转移作业表配置(posting)”被指定为业务名
称时,只把对应于此业务名称的用作为输入原始账的转
移作业表文件当作处理目标。“扩展表驱动:是一种驱
动方法,它在当扩展表的名称(例如,表)被作为输入
原始账的业务名称设定在登记有图6所示的扩展表的情
况下的原始账记录单据(见图7)中时,把对应于业务
名称的、设定在原始账记录单据中作为处理目标的输入
原始账名称的文件来进行驱动。在示于图7的原始账记
录单据中,产品文件用作为处理目标。
在程序组驱动的模式中,当设定在原始账记录单据
中的“原始账名称”从输入单元1输入时,对应的原始
账记录单据被指定(步骤D1)。在单业务驱动模式中,
当除“原始账名称”外还从输入单元1输入“业务名称”
时,对应于该原始账名称的原始账记录单据被指定(步
骤D2)。在扩展表驱动模式中,当从输入单元1输入
扩展表名称时,对应的扩展表被指定(步骤D3)。在
此情况下,将输出原始账名称从所指定的扩展表读取,
且具有读出名称的作为原始账名称的原始账记录单据被
指定(步骤D4)。
当原始账记录单据如上所述那样被指定时,在文件
处理器9中的原始账记录单据分析器11分析所指定的
原始账记录单据(步骤D5)。原始账记录单据分析器
11根据原始账记录单据检查是否设定为“原始账名称”
的数据文件实际存在于系统中(步骤D6)。若在步骤
D6为NO,原始账记录单据分析器11驱动文件生成
处理器12。
文件生成处理器12按照原始账记录单据分析器1
1的分析结果读出对应于“原始账记录单据”的文件名
称及其项目名称、属性、和数字数目,并产生数据文件,
该数据文件有一记录配置,该记录配置由以一种配置次
序的有规定数字数目的项目组成,并对应于原始账记录
单据将该数据文件进行记录(步骤D7)。这样,对应
于原始账记录单据的数据文件能根据本实施例的该原始
账记录单据以新的方式建立。注意到数据文件已经存在,
此文件生成处理未被执行。
文件处理器9然后检查事先在文件执行中被指定的
驱动方法(步骤D8)。若指定的是程序组驱动模式,
就指定设定在原始账记录单据中的第一个“输入原始账
名称”(步骤D9)。当指定的是单业务驱动模式,就
指定对应于相应的业务名称的原始账记录单据中的“输
入原始账名称”(步骤D10)。若指定的是扩展表驱
动模式,就指定和扩展表名称相符的且设定为业务名称
的原始账记录单据的“输入原始账名称”(步骤11)。
当作为处理目标的输入原始账按照给定的驱动方法被确
定下来时,流程前进至步骤D12。在此步骤中,原始
账记录单据分析器11检查是否“部分扩展”被设定为
原始账记录单据的功能名称。若在步骤D12中为NO,
文件处理器9驱动记录处理器10。
记录处理器10根据驱动方法在指为处理目标的输
入原始账名称的基础上从X、Y和Z文件3、4、和5
指定一对应的数据文件。记录处理器10然后从指定的
文件中提取单记录的数据(步骤D13)。若指定为处
理目标的输入原始账名称是一个单据,记录处理器10
就读出单据记录存储器7和单据项目名称存储器8的内
容,并接收单据记录存储器7的内容作为提取的记录。
在记录并未终结的条件下(步骤D14),流程前进至
步骤D15以使原始账记录单据分析器11分析原始账
记录单据并检查是否“分项”被设定在其功能名称中。
假设分项没有设定,记录处理器10产生一个记录作为
输出记录,该记录是通过重新配置所提取记录的项目数
据而得到的,此提取的记录是以对应于输入原始账名称
而设定在原始账记录单据中的项目名称的配置次序而被
重复配置的。记录处理器10然后将输出记录设定于工
作文件14中(步骤D16)。此情形下,若输入原始
账是一个单据,记录处理器10就从开始顺序地读取设
定在原始账记录单据中的单据项目名称,并且重新配置
项目数据,同时检查所提取记录中对应项目数据的专门
项目位置,因为单据项目名称存储器8的内容和设定在
原始账记录单据中的单据项目名称在项目数、配置次序、
和项目名称上是不同的。
当记录处理器10产生通过按照原始账记录单据的
记述内容重新配置输入原始账的单记录数据而获得的记
录时,原始账记录单据分析器11提出原始账记录单据
的定义栏(示于图4的原始账记录单据中第E栏的各行)
的内容,按照定义栏的记述内容产生所需项目的数据,
并将所产生的数据设定在设定于工作文件14中的输出
记录内的相应的项目位置上(步骤D17)。此时,定
义栏具有用来定义将被产生的项目数据的生成条件,该
项目数据在作为原始账名被设定于原始账记录单据中的
数据文件的记录中是存在的,但在输入的原始始账中不
存在。如需要,记录处理器10参照一索引表示产生项
目数据。
原始账记录单据分析器11然后提出设定于原始账
记录单据中的“更新类别”。记录处理器10按照“更
新类别”更新数据文件的记录。此情况下,如果“追加”
被设定为更新类别,记录处理器10将在工作文件14
中的输出记录加到在原始账记录单据中设定为“原始账
名称”的数据文件中(步骤D18)。若“总计”被设
定为更新类别,在工作文件14中的输出记录在数据文
件中被总计。
当单记录更新处理完成时,流程前进至步骤D19。
原始账记录单据分析器11分析原始账记录单据,指定
同一业务名称的下一栏,并检查是否有一个项目名称被
记述于此指定的栏内(步骤D20)。在示于图4的原
始账记录单据中,假设输入的原始账“转移作业表文件”
被指定作为处理目标。如果按照第一栏的记述内容“借
方”,下一栏在所执行的处理的末尾被指定,在第二栏
中记述的项目名称“贷方”在步骤D20中被检索到,
流程就回到步骤D16。对于此指定的栏执行上面所述
的同样的处理(步骤D16到D18)。当检测出下一
栏不存在时,流程回到步骤D13。下一个单记录数据
被从输入的原始账中提取出来。步骤D16到D20的
操作对所有输入原始账记录的每一个记录重复进行。
当全部记录被完全处理完时,文件处理器9再检查
驱动方法(步骤D21)。若设定了程序组驱动方法,
原始账记录单据分析器11分析原始账记录单据以检查
是否下一个输入原始账名被设定了(步骤D22)。若
在步骤D22中为YES,原始账记录单据分析器11
指定下一个输入原始账名(步骤D23),此输入原始
账用作为相继处理中的处理目标。流程然后回到步骤D
12。当指定了程序组驱动模式,设定于原始账记录单
据中的全部输入原始账用作为处理目标。以上操作被重
复直到步骤D22检测出对全部输入原始账的处理结束。
另一方面,当原始账记录单据分析器11检测出“
分项”已被设定为原始账记录单据的“功能名称”的分
析结果(步骤D15),分项处理器13按照示于图1
5的流程图被驱动以执行分项处理(步骤D24)(在
后将被描述)。此分项过程处理输入原始账的单记录数
据。当单记录分项处理完成,流程回到步骤D13。下
一个记录被从输入原始账读出,然后分项处理对每一个
记录重复进行。
当原始账记录单据分析器11检测出在原始账记录
单据的功能名称中设定了“部分扩展”(步骤D12),
部分扩展处理器15被驱动以执行部分扩展处理(步骤
D25),此处理将在下面参阅图16和17来说明。
此部分扩展处理作为一个单位对此输入原始账进行处理。
当所有组成输入原始账的记录完全被处理毕后,原始账
记录单据分析器11检查是否下一输入原始账名称被设
定于原始账记录单据中(步骤D26)。若下一个输入
原始账名称被设定,它被指定为下一个处理目标(步骤
D27)。流程然后回到步骤D12。若下一输入原始
账的功能名称也是“部分扩展”,部分扩展处理(步骤
D25)被执行。然而,当下一个输入原始账的功能名
称是“分项”,分项处理(步骤D24)被执行。
分项处理将在下面参照图15的流程图进行说明。
此分项处理将参照图18到20详细说明。
假设于图5的分项处理对应于示于图4的原始账记
录单据被记录。图18表示用作为输入原始账的部分销
售作业表文件。图18中只表示了对分项处理所需要的
记录项目值。图19表示了根据示于图18的输入原始
账的分项表和记录的项目值所产生的生成项目的内容。
图20表示了当根据在分项表的基础上产生的记录的项
目值作为输出原始账被设定于分项表中的会计作业表文
件被更新时,对应于生成项目的记录内容。此情形下,
图20的左边表示输入原始账的记录号;表示条件的行
的流水号,其条件和组成分项表的每一块的输入条件相
符;以及对每个记录在更新文件时的输出及产生的记录
的输出时间。图20表示对于更新会计作业表文件的记
录的特殊条件。
原始账记录单据分析器11检测作为构成分项表的
水平界线的双线和粗线,并将全部区域划分成块,每一
块是由双线及粗线围成的(步骤E1)。然后记录处理
器10对应于设定在分项表中的全部输入状态读出项目
名“交易类别”、……“合伙人(仓库cd”并提取和
这些输入状态项目相对应的输入记录的项目数据(步骤
E2)。此情况下,示于图18的有记录号“1”的项
目数据被提取出作为对应于全部输入状态的项目。分项
表的第一块被指定(步骤E3)。
从输入记录中提取的记录项目值和指定块中的状态
项目值作比较(步骤E4)。记录项目值是:交易类别
是“20”,交易分割是“3”,客户cd是“700
2145”并且不等于第一状态行中的那些值(步骤E
5)。由此原因,状态行被更新。直到一致性被确定(
步骤E5),或者在所指定块的范围内状态行的结束被
检测(步骤E6),记录项目值就依次地和状态项目值
作比较(步骤E4)。
由于第一块流水号“03”的状态项目值和记录项
目值一致,生成项目值,即,设定在分项表同一行上的
$借方账目cd“5221”和$贷方账目cd“11
61”被读出。同时,得到@总价“-1200”(步
骤E7)。因为所指定的块不是最后的块(步骤E8),
下一个块被指定(步骤E9)。此情形下,由于指定的
是中间块,此块被检测出是一个没有被双线划分开的块
(步骤E10)。流程回到步骤E4,随后将中间块的
状态项目值和记录项目值作为比较。此情形下,相应于
中间块的流水号为“11”的状态项目值和记录项目值
的交易公司cd“600”相符(步骤E4),生成项
目值,即,设定在分项表同一行中的$借方账目cd“
30”和$贷方账目cd“30”被读出而得到相应的
生成项目值。
在此情况下,由于在步骤E8中被确定为NO,就
指定下一块(步骤E9)。因为此指定的块是由双线划
分的块(步骤E10),当前的生成项目被设定为由双
线划分的块的输入状态(步骤E11)。流程然后回到
步骤E4。被定义为中间块生成项目的$借方会计cd
和$贷方会计cd的值各为“30”。当此生成项目值
被用作为输入状态并且和分项表输入状态相比较,生成
项目值和最后一块流水号“17”的输入状态相符。由
此,$借方会计cd“30”被产生成为用作这块的生
成项的$借方会计单位,$借方账目cd“5221”
及$贷方账目cd“1161”分别被生成为$借方账
目及$贷方账目(步骤E7)。
对应于示于图18的记录号“1”而产生的生成项
给出如图19所示。此时,全部生成项目为对应的记录
而准备。
由于在步骤E8检测到最后的块,流程前进至步骤
E12以产生输出记录。设定于图4所示的原始账记录
单据之中的输入原始账(销售作业表文件)的所有项目
名称,对应于不加“$”和“@”的项目名称的项目数
据被从输入的记录提取出来。根据所提取的项目数据及
对应于在原始账记录单据中加有“$”和“@”的项目
名称所产生的项目数据产生出输出记录。此情形下,输
出记录被产生及设定于工作文件14。其项目数据按照
设定在原始账记录单据的销售作业表文件的项目名的配
置次序被重新配置。由于项目名称对应于图4所示的原
始账记录单据中“借方”和“贷方”而被记述,第一个
输出记录是一个“借方”记录。
所需的项目的数据按照原始账记录单据的“定义”
的表述内容而被产生并设定在工作文件14中对应的项
目位置上(步骤E13)。此情况下,由于如图4所示
的原始账记录单据在第E栏的第23和30行上定义了
项目数据应参照索引表来产生,从索引表读出的项目数
据(客户名)被设定在工作文件14内。
如上所述,产生了单记录“借方”输出记录。此时,
根据分项表产生的输出记录的生成项目是$贷方账目c
d“5221”,$贷方会计单位“30”,和$借方
账目“30”。此情况下,“$贷方账目cd”是一个
在对一个块的输入状态下产生的项目,而“$贷方会计
单位”,“$借方会计单位”,和“$借方账目”是一
些通过在多个块的输入状态下的“混合分项”所产生的
项目并同时是一些通过在最后的块的输入状态下的“转
移分项”所产生出来的项目,该最后的块是从中间块的
生成项目中导出的。
记录处理器10从工作文件14读出输出记录并按
照设定在原始账记录单据中的“更新类别”来更新该会
计作业表文件(步骤E14)。此时,当会计作业表文
件在根据分项表所产生的、并且选自图20所示的“输
出01”的记录项目的生成项目值的基础上被更新,对
应于这些生成项目的第一记录的内容被示于图20。
在原始账记录单据中同样业务名称的下一栏被指定
(步骤E15)来检查是否下一栏是存在的(步骤E1
6)。由于对“贷方”的各项目名称被设定在下一栏内,
流程回到步骤E12,然后产生“贷方”输出记录(步
骤E12及E13)。在此情况下,根据分项表产生的
输出记录中的生成项目是$借方账目cd“5221”,
$借方会计单位“30”,$贷方会计单位“30”,
和$贷方账目“1161”。
当会计作业表文件根据此输出记录“输出02”被
更新(步骤E14)时,会计作业表文件的第二记录的
内容被示于图20。
流程然后前进到步骤E15。此时,由于下一个栏
不存在,流程前进至步骤E17的检查是否数据被记述
于下一个状态行中或者状态行被终结。由于最后块的最
后行保持着指定状态,“YES”在步骤E17中被决
定下来,并且指定紧接在前面的块(步骤E18)以检
查是否存在一个块(步骤E19)。在此情况下,因为
指定的是中间块,流程回到步骤E17以检查中间块的
下一个状态行,即,流水号“12”的状态行。此时,
在此状态行中记述了一个输入状态,故进一步指定紧接
的前面的块(步骤E18)。通过此操作,指定了第一
块,且第一块的下一个状态行,即,流水号“04”的
状态行被检测到。在此行中也记述了一个输入状态,流
程前进至步骤E18。此时,检测到不存在在先的块,
图15中的分项处理结束。
在先的块依次地被指定,同时重复步骤E17到E
19的操作来检查每个指定的块的下一状态行,因为要
检查是否需要“多重分项处理”。
第二个记录被从输入原始账读出并且第二个记录的
分项处理(图15)开始。对应于图19中所示的记录
号“乙”产生的生成项目被示于图19中,由这些生成
项目所更新的会计作业表文件的内容被示于图20。
更具体地,当指定了第一个块时(步骤E3),输
入记录的项目值和流水号“09”的状态行的内容相符,
故按照同样的行的生成项目产生项目数据(步骤E7)。
然后指定中间块(步骤E9)。中间块的记录项目值和
流水号“12”的状态行的内容相符,故产生了同一行
的生成项目(步骤E7)。指定最后的块(步骤E9)。
在此情况下,中间块的生成项用作输入状态(步骤E1
1)。若$借方会计cd,$贷方会计cd,然后输入
记录的项目值和最后的块的流水号“15”的状态行相
符,因此产生了同一行的生成项目(步骤E7)。
“借方”输出记录“输出03”由使用这些生成项
目来产生,从而更新了会计作业表文件。接着,“贷方”
输出记录“输出04”被产生以更新会计作业表文件(
步骤E12到E16)。
流程然后前进至步骤E17。没有数据被记述于下
一个状态行(流水号“16”)中,流程就前进至步骤
E20。和前一行的状态值一样的状态值被设为该行的
状态值,流程回到步骤E4。在此情况下,由于在步骤
E5中检测得一致性,对应于设定在和流水号“16”
的状态行相同的行上的生成项目,项目数据被产生。通
过使用这些生成项目,“借方”和“贷方”输出记录“
输出05”和“输出06”被顺序地产生以更新会计作
业表文件。由于在步骤E17检出在下一状态行上存在
数据,紧接在前面的块,即,中间块被指定(步骤E1
8)。由于中间块的下一状态行(流水号“13”)中
存在数据,紧接的前面的块,即,第一个块被指定。此
情况下,没有数据被表述于第一个块的下一个状态行(
流水号“10”)中,因此流程就再进至步骤E20。
前面的行的状态值被设为该行的状态值,流程回到步骤
E4。此情况下,在步骤E5检出一致性,因此对应于
设定在和流水号“10”的状态行相同的行中的生成项
目而产生了项目数据。通过使用这些生成项目,“借方”
和“贷方”输出记录“输出07”和“输出08”被依
次地产生以更新会计作业表文件。
因为在步骤E17检到了状态行终结,紧接的前面
的块被指定。此情况下,任何其他前面的块是不存在的
(步骤E19)。此时,图15中的分项处理结束。对
应于输入原始账“记录号2”产生如“借方”和“贷方”
记录总共八个记录,且会计作业表文件根据这些记录被
更新。更详细地,分项表的流水号“10”和“16”
的行表示用于在设定在先前行的的相同输入状态下产生
生成项目的“多重分项”,因此对流水号“10”和“
16”的行产生了双记录生成项目。使用产生总共八个
记录,即,四个“借方”记录和四个“贷方”记录的数
据文件而完成了更新。
部分扩展处理将参照图16和17的流程图来说明。
假设图6所示扩展表是对应于图7所示的原始帐记录单
据而被记录的。
对应于设定在扩展表中的生成项目名称“$母层代
码”……“@单价”的项目被指定给工作文件14中的
中间文件以产生一中间文件(步骤F1)。图21表示
了该中间文件。这是一个在部分扩展处理中所需的文件
并用作为一个工作文件,该文件被建立以储存和保持按
照设定在图6所示的扩展表中的各生成项目的表述内容
而产生出来的项目数据。注意到“$级(Level)”
项目被加进中间文件中成为除了图6所示扩展表中所定
义的生成项目以外的项目。
在原始账记录单据中被设为输入原始账的产品文件
进行取数以读出单记录数据(步骤F2)及检查文件的
末尾(步骤F3)。此时,因为起始记录被读出,流程
前进至步骤F4。如在图8中所示,起始数据有母层名
称“A”及预定数“1”。母层名称“A”被设定于中
间文件项目“$子层代码”中,同时预定数“1”被设
定于中间文件项目“@预定数”内。此外,级“0”设
定于“$级”项中(见图21中第一个记录)。此情况
下,项目“$级”是一个表示如图10所示的母子关系
的分层级。级“0”表明是最高的级(根级)。
如上所述,作为根的产品文件的记录项目被设定于
中间文件的起始记录中,所需项目的数据参照扩展表生
成项目栏来产生,并且执行中间文件扩展处理(步骤F
5)。图17是表示此扩展处理的流程图。
设为输入原始账的产品文件被进入扩展表。在产品
文件的全部记录项目中,在扩展表中设定为输入校验关
键字的项目内容被用来检索部分文件(步骤G1)。此
时产品文件的记录项目“母层名称”被用作为一关键字
以在记录单位中的部分文件取出具有与产品文件相同的
母层名称的记录。(步骤G1到G3)。
一个其母层名称和产品文件的母层名称一样的记录
被检索到(步骤G3),用于参照图6所示扩展表的生
成项目的填充栏产生所需的项目的数据的处理被执行(
步骤G4)。更详细地,所检索记录的“母层名称”和
“子层名称”的项目内容被设定于中间文件的“$母层
代码”和“$子层代码”项内。同时,对应于中间文件
的其他项目“$级”,“@预定数”,“@单价”,和
“@总价”的项目数据被产生并设定于对应的项目位置
上。现在检索部分文件的起始记录。“A”和“a”分
别被设定为中间文件的第二记录的“$母层代码”,和
“$子层代码”。在设于中间文件的母层级上加“1”
所得到的值被设置于“$级”内。对于下第一层的子层
“a”之母层是“A”。“1”被加到“A”的级“0”
使“a”的级设置为“1”。按照图6所示生成项目的
记述内容通过将母层的“预定数”乘以被检索的记录的
“使用数”得到的值“1×1=1”被设定于“@预定
数”内。被检索记录本身的单价“0”直接被设置于“
@单价”内。此外通过将“@单价”乘以“@预定数”
得到的值“1×0=0”被设置于“@总价”内。这样,
所需项目的数据参照设置在扩展表中的生成项目填充栏
而被产生。
流程回到步骤G1。检索母层名为“A”的部分文
件,部分文件的第二记录,即,母层“A”的子层名“
b”的记录被检索到,并执行步骤G4的操作。然后产
生了中间文件的第三记录。中间文件的第三记录有$母
层代码“A”,$子层代码“b”,$级“1”,@预
定数“1”,@单价“10”,以及@总价“10”(
图21)。接着,产品文件的第三记录(母层“A”的
子层“C”的记录)被检索。因此,产生了中间文件的
第四记录,如图21所示。
当所有的其母层名和母层名“A”一样的记录如上
所述地从部分文件被检索,在步骤G2检查到文件的末
尾。然后流程前进到步骤G5的检查在部分文件中是否
已建立一致性。由于在部分文件中第一到第三记录的母
层名称和产品文件的母层名称一致,流程前进至步骤G
6以使用和母层名一致的子层名作为一个新的母层名去
执行部分扩展(循环程序)。就是,步骤G6循环地执
行步骤G1到G4。和母层名“A”相符的子层各“a”
被用作为一个新的母层名,且步骤G1到G4的操作被
重复。部分文件的第四到第六记录顺序地逐个地被检索,
部分文件的第五到第七记录的内容示于图21。
除了和母层名“A”相符的子层名“a”的记录外,
记录“b”和“c”也存在于中间文件中。下一个子层
名的存在在步骤G7中被检查到,步骤G6中的操作被
再执行。此情况下,在部分文件中不存在有母层名为“
b”的记录,步骤G6就直接结束。由于下一个子层名
“c”存在,流程再进至步骤G6。因为在部分文件中
存在以“c”为母层名的记录,第七和第八记录依次从
部分文件被检索。结果,根据所检索的子层“c”的记
录执行至中间文件的扩展,使得第八和第九记录的内容
被示于图21。
当用“c”为一个新的母层名扩展至中间文件完成
之时,在中间文件里没有下一个子层名为用作根的母层
“A”的记录存在。流程就前进至步骤G8。“总价”
数据从扩展至中间文件的全部记录内有同样母层名的子
层名记录中被提取出来。计算总价之和,再把合计总价
设置为中间文件中母层的总价,更详细地,子层“IV”
和“V”有母层“c”,所以值“90,80”作为记
录中价“40,40”和“50,40”之和被设置为
子层名为“c”的记录的总价。相似地,子层名“I”、
“II”、和“III”的记录有母层“a”,所以值“60”
作为记录的总价“10”,“20”和“30”之和被
设置为子层名“a”的记录的部价。此外,子层名“a”
、“b”和“c”的记录有母层“A”,因此值“16
0,80”作为记录的总价“60”、各“A”从产品
文件的第一记录中被读出,而中间文件的第一记录的项
目数据被顺序地读出以产生一输出记录。此时,在图7
所示的原始账记录单据中,其数值必需要圆整到最接近
整数的定义项在项目名称“@单价”、和“@总价”的
填充栏内给出,对这些值所作的算术运算也被完成。当
文件根据此输出文件被更新时,第二记录从中间文件被
读出。接着,到中间文件的第九记录为止的文件更新以
上面所讲的同样方式被执行。
在基于产品文件的第一记录的操作完成时,流程回
到图16的步骤F2。第二记录(母层名“B”的记录)
从产品文件被读出,重复以上所述的同样操作。在图2
2中所示的中间文件中,第十到第十八记录是基于产品
文件的第二记录而产生的且对应于作为根的母层“B”
的经分类的内容。对产品构成文件的更新根据中间文件
和产品文件的第二记录的内容而被执行,此二者的内容
都是对应于母层“B”的。此后,当在步骤F3中检查
出文件的末尾时,部分扩展处理被结束。
如上所述,根据此实施例,当预定的各项目由管理
人员填好在原始账记录单据中以便和其本身的业务内容
相适配时,想要的文件处理就可以按照这些表述的内容
来执行。
更详细地,在对应于一个数据文件的记录配置的各
项目和在更新该数据文件的记录中被作为处理目标的处
理目标文件的各项目之间的一致性在原始账记录单据中
事先已被设定。假如管理人员在经验上了解在执行日常
工作中对一个文件所需的项目,则在数据文件和处理目
标文件之间的一致性被记述在原始账记录单据中以便适
配于他自己的业务内容,该文件处理就能按照此记述的
内容来执行。
在此情形下,当生表(分项表和扩展表)对应于原
始账记录单据被记录时,所需项目的数据就能按照这些
生成表的记述内容而被产生。更具体地,当构成处理目
标文件的任一项目和利用任一项目作为状态项目产生的
生成项目被设置在分项和扩展表中时,分项和部分扩展
处理就被执行,在处理目标文件的记录中所没有的项目
也能被产生出来。对应于数据文件的记录配置的记录根
据处理目标文件的生成项目和记录项目而被产生,数据
文件能根据所生成的记录而被更新。
在分项表中,“混合分项”、“多重分项”、或“
转移分项”可以依据记述的方法来执行。更详细地,分
项处理基本上是这样一个处理;对应于设定于分项表中
的状态项目从一个处理目标文件读出的一个记录中提取
项目数据;对应于此状态项目从分项表检索一生成项目;
以及根据此生成项目产生单记录项目数据。当分项表分
成多个块时,及这些状态项目和块单位中的生成项目相
对应时,对应于各自块的状态项目的生成项目从分项表
中检索到,这些块从处理目标文件读出的记录中得到。
这些生成项被合并在一个记录中,从而执行“混合分项”
。当对于相同的状态项目的多个记录的生成项目被设定
于分项表中时,执行“多重分项”,其中多个记录的项
目数据从自处理目标文件读出的单记录中产生。此外,
当设定为一给定的块的生成项的项目被设置为与所给的
块不同的块的状态项目时,执行“转移分项”,其中生
成的项目被用作为状态项目以检索分项表中的数据,从
而产生项目数据。
在扩展表中,组成处理目标文件的一个记录中的一
个任意的项目被定义为状态项目,一个在此状态项目基
础上检索到的参考文件的记录被设置为扩展表中的一生
成项目。一状态项目从自处理目标文件读出的记录中被
提取出来,根据此状态项目在参考文件中实行检索以产
生对应于多个记录的生成项的项目数据。此情况下,如
果参考文件的每个记录有表示为母子关系的分层结构,
就可以产生有母子关系的多个记录的项目数据。
在此实施例中,在根据处理目标文件的内容对数据
文件的更新中,可任选并执行程序组驱动、单业务驱动、
或扩展表驱动。
在上面的实施例中,分项表分成三个块。然而,块
的数目可以任意设定。在“混合分项”中,根据三个或
更多的块的生成项产生的项目记录可以被合并在一个记
录中。在“转移分项”中,处理目标的数目可以是三个
或更多的块,由给定的块所产生的生成项目可分层地及
顺序地作为下一个块的状态项目被处理。在以上实施例
中,二个记录的生成项目被使对应于相同的状态项目。
然而,三个或更多的记录的生成项目也可被使对应于相
同的状态项目。
在上面的实施例中分项表和扩展表被举例为生成表。
然而,其他生成表也可以被使用。文件驱动方法也不限
于程序组驱动、单业务驱动、及扩展表驱动。
原始账记录单据和作为生成表的分项及扩展表的格
式并不限于上述实施例中的那样。如果它在易读性和相
容性方面是杰出的话,任何格式都可以用。
在以上实施例中,设定为输入原始账名的单据名或
文件名被设置于不同的原始账记录单据中。然而,单据
名和文件名也可以作为输入的原始账名被设置在一原始
账记录单据中。“10”,和“90,80”之和被设
置为用作为根的第一记录的总价。
用各母层的预定数去除母层的总价得到的值设定为
各母层的单价。此情况下,示于图21的中间文件的第
一、第二、和第四记录用作为有子层的母层。当母层的
总价被各母层的预定数去除时,各个母层的单价就可以
得到。如果在单价计算中出现的是分数时,小数部分就
舍去。
当根据产品文件的第一记录执行部分文件中的检索、
对应于扩展表的生成项目产生项目数据、以及将项目数
据扩展至中间文件的处理被完成时,流程前进至图16
中的步骤F6。中间文件的内容对应于在图10中母子
关系(1)的分层结构进行分类。图22表示了中间文
件的内容,此内容以此方式经过重新配置。中间文件的
第一到第九记录是经分类的内容。
根据用作输入原始账的产品文件的内容(第一记录)
和中间文件的内容(图22的第一到第九记录)执行对
作为输出原始账的产品构成文件的更新(步骤F6)。
就是,相应的项目数据被以在图7所示的原始账记录单
据中被设置为输入原始账的产品文件的项目名称的配置
次序从顺序地产品文件及中间文件中被读出以产生一输
出记录。产品构成文件根据此输出记录被更新。此情况
下,母层记录单据中。