JP3820615B2 - ファイル更新装置 - Google Patents
ファイル更新装置 Download PDFInfo
- Publication number
- JP3820615B2 JP3820615B2 JP4263196A JP4263196A JP3820615B2 JP 3820615 B2 JP3820615 B2 JP 3820615B2 JP 4263196 A JP4263196 A JP 4263196A JP 4263196 A JP4263196 A JP 4263196A JP 3820615 B2 JP3820615 B2 JP 3820615B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- record
- cumulative
- time series
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Description
【発明の属する技術分野】
本発明は、時系列に累計されるレコードを累計更新するファイル更新装置に関する
【0002】
【従来の技術】
従来より、例えばデータベースに格納されているマスタファイルを、新たに発生する変動ファイル(または、変動レコード)の内容に基づいて更新するファイル更新処理がある。
【0003】
図8は、このような従来のファイル更新処理を示す図である。
同図において、変動レコード70は、例えば各社員の個人端末装置に格納されている個人別の売上ファイル(変動ファイル)の1レコードであり、“得意先cd”、“年月度ym”、“売上金額”の各データ項目(フィールド)から構成されている。
【0004】
集計ファイル80は、例えばデータベースに格納されているマスタファイルであり、各得意先別に月毎の全売上金額を“月度売上金額”のフィールドに集計している。また、得意先別に、各月までに発生する売掛金額を“月初売掛金額”のフィールドに累計している。例えば、図8に示す集計ファイル80においては、94年4月までに発生する売掛金額(月初売掛金額)は、その前月(3月)の月初売掛金額(10,000)に、同じく前月(3月)の月度売上金額(15,000)を加算した値(25,000)になる。よって、図8の集計ファイル80におけるプライマリキーが「“0002”, “94/04 ”」のレコードの“月初売掛金額”は、(25,000)となっている。94年5月の月初売掛金額についても同様に、その前月(4月)の月初売掛金額と月度売上金額との合計値となっている。
【0005】
このように、集計ファイル80は、同一グループ内(得意先cdが同一)のレコードに対して、“年月度ym”の昇順に各レコードの月初売掛金額を累計しているファイルであり、一種の時系列ファイルとなっている。また、この時系列ファイル内において、時系列順に格納されるレコードを時系列レコードと呼ぶことにする。
【0006】
この時系列ファイルである集計ファイル80を、変動レコード70により更新する処理は、従来は以下に述べる方法により行われていた。
すなわち、まず集計処理対象のレコードを特定するためのプライマリキーとして、“得意先cd”及び“年月度ym”を用い、変動レコード70のプライマリキーと一致するレコードを、集計ファイル80から読み出す。図8では、プライマリキー(「“得意先cd”, “年月度ym”」)が「“0002”, “94/03 ”」のレコードを集計ファイル80から読み出して、このレコードの月度売上金額(15,000)に変動レコード70の売上金額(15,000)を加算する集計処理が行われる。この集計処理によって、図8に示すように更新後の集計ファイル81の集計対象レコードの月度売上金額は、“30,000”に更新される。
【0007】
このように、プライマリキーにより集計対象のレコードを検索して集計処理を行うアプリケーション・ソフトウェアは、従来はユーザの注文に応じて作成されるカスタム・ソフトとして提供されていた。また、集計ファイル80は時系列ファイルであるので、更に、上記した月初売掛金額を累計していく処理も必要となる。この処理も、従来では、上記カスタム・ソフトによりユーザに提供されていた。すなわち、従来は、上記のような時系列に累計するための累計処理システムは、プログラマがユーザの注文に応じて制御ロジックを作成するアプリケーション・ソフトウェアにより構築されていた。
【0008】
更にまた、上記時系列ファイルの更新処理を行う際、図9に示すような“歯抜け”が生じる場合があった。
図9は、従来のファイル更新処理において発生する、時系列ファイルである集計ファイル82の“歯抜け”状態を示す図である。
【0009】
同図に示すように、変動レコード90のプライマリキー「“0002”, “94/07 ”」と一致するレコードが、集計ファイル82内に存在しない場合には、変動レコード90から集計ファイル82の新規レコード83を生成し、これを集計ファイル82に挿入することになる。このとき、同図に示すように、新規レコードとその前のレコードとが時系列的に不連続となる場合は(年月度ymが“94/05 ”と“94/07 ”とでは、時系列的に不連続)、“歯抜け”のレコード(プライマリキーが「“0002”, “94/06 ”」のレコード)が生じてしまうことになる。このような“歯抜け”のレコードが生じた場合、従来では、時系列に累計される他のレコードの累計値に影響を与えることなく“歯抜け”を埋めるレコードを自動生成するための手法が明確でないため、事実上対応することができなかった。或いは、対応が困難であった。
【0010】
【発明が解決しようとする課題】
従来では、上述したように時系列レコードに対する累計処理を行う市販のアプリケーション・ソフトウェアがない為、ユーザは仕様を提出する等して、上記累計処理を行うアプリケーション・ソフトウェアを特別に注文して、プログラマに作成してもらっていた。この為、プログラマの熟練度やセンス、又は実現仕様などにより、制御ロジックが様々であり、新規設計、保守、機能強化等を行う際、多大な労力と費用が費やされるという問題が発生していた。
【0011】
また、図9に示すような“歯抜け”状態が生じた場合には、事実上対応できないという問題があった。
本発明の課題は、時系列ファイルの累計更新処理に対して、ユーザ自身が時系列ファイルに対する累計処理を容易に行えるようにすることである。また、“歯抜け”レコードに対するレコードの追加も、ユーザ自身で容易に行えるようにすることである。
【0012】
【課題を解決するための手段】
本発明による第一のファイル更新装置は、以下の手段を備える。
ファイル記憶手段は、時系列的に連続する時系列レコードより構成される時系列ファイルを格納する。
【0013】
パラメータ記憶手段は、上記ファイル記憶手段に格納されている各時系列ファイルのデータ構造に応じて設定されるパラメータを記憶する。
パラメータ解釈手段は、上記時系列ファイルの更新時に、上記パラメータ記憶手段に記憶されたパラメータのなかから更新対象の時系列ファイルに対応するパラメータを読み出して、該パラメータを解釈する。
【0014】
累計処理手段は、上記パラメータ解釈手段によるパラメータ解釈結果に基づいて、上記更新対象の時系列ファイル内の累計処理対象となる時系列レコードに対して時系列的に累計処理を実行する。
【0015】
上記パラメータは、例えば、上記累計処理対象となる時系列レコードのグループを示す累計グループのフィールドと、上記時系列的に累計処理を実行する対象となる累計フィールドと、累計フィールドへの累計処理において累計値を算出する為の被演算子として用いられる累計対象のフィールドとが、上記時系列ファイルのデータ構造に応じて指定されるものである。
【0016】
また、上記累計処理手段は、例えば、上記パラメータ解釈手段によるパラメータ解釈結果に基づいて、累計グループのフィールドにより指定されるグループの各時系列レコードの累計フィールドの値を、累計対象のフィールドの被演算子を用いて算出する累計値によって更新することにより、上記累計処理を実行する。
【0017】
上記構成の第一のファイル更新装置では、予め各時系列ファイルのデータ構造に応じて各種パラメータを設定して、パラメータ記憶手段に記憶しておく。
上記時系列ファイルの更新時に、パラメータ解釈手段が、更新対象の時系列ファイルに対応するパラメータをパラメータ記憶手段より読み出して、このパラメータを解釈する。そして、このパラメータの解釈結果に基づいて、累計処理手段が、時系列ファイル内の累計処理対象となる時系列レコードに対して、時系列的に累計処理を実行することができる。
【0018】
このように、第一のファイル更新装置では、簡単なパラメータを設定することで、更新対象の時系列ファイルに対する累計更新処理が行えるので、誰でも簡単に時系列ファイルの累計更新処理が行える。また、各時系列ファイルのデータ構造が異なる場合でも、各データ構造に応じた各パラメータを設定することで対応できるので、プログラマが逐一制御プログラムを作成する必要はなくなる。更に新規設計を行う場合にも、新たなパラメータを追加設定することで対応できる。
【0019】
本発明による第二のファイル更新装置は、以下の手段を備える。
ファイル記憶手段は、時系列的に連続する時系列レコードより構成される時系列ファイルを格納する。
【0020】
パラメータ記憶手段は、上記ファイル記憶手段に格納される時系列ファイルの時系列レコードが時系列的に不連続となる場合に該不連続を解消する追加レコードを生成する為のパラメータを記憶する。
【0021】
レコード追加手段は、上記パラメータ記憶手段に記憶されているパラメータに基づいて、上記時系列的に不連続となる時系列レコードを時系列的に連続にする為の追加レコードを生成して、時系列ファイルに追加する。
【0022】
上記レコード追加処理手段は、例えば、上記時系列ファイル内に新規レコードを追加挿入した際に該新規レコードと該新規レコードの前のレコード又は後のレコードとが時系列的に不連続となった場合に、上記レコード追加処理を実行する。
【0023】
上記構成の第二のファイル更新装置では、時系列ファイルの時系列レコードが時系列的に非連続となる場合にも、予め追加レコードを生成する為のパラメータをパラメータ記憶手段に記憶しておくことで、このパラメータに基づいて、上記時系列的に不連続となった時系列ファイルのレコードを時系列的に連続にする為の追加レコードを自動生成して追加することができる。
【0024】
【発明の実施の形態】
以下、本発明の一実施例について、図面を参照しながら詳述する。
図1は、本発明の一実施例であるファイル更新装置10のシステム構成を示すブロック図である。
【0025】
同図において、CPU11は、ファイル更新装置10全体を制御する中央処理装置である。
パラメータ解釈部12は、CPU11よりパラメータのロード指示を受けると、対応するパラメータをパラメータファイル14からパラメータメモリ13上にロードする。そして、ロード後、パラメータの解釈を行い、その解釈結果をCPU11に通知する。パラメータファイル14は、更新対象となる各ファイルのデータ構造に応じて予め作成された各パラメータを、格納しておくファイルである。パラメータメモリ13は、ファイル更新時に、更新対象のファイルに対応するパラメータファイル14内のパラメータを、一時的に記憶するメモリである。
【0026】
CPU11は、上記パラメータ解釈部12より受け取るパラメータの解釈結果に基づいて、I/O 制御部15を制御して集計ファイル16より集計更新対象となる集計ファイルを読み出す。また、特に図示してはいないが、I/O 制御部15には、例えば外部の端末装置が接続されており、この端末装置に格納されているファイルが集計元のファイル(変動ファイル)として読み出される。
【0027】
また、CPU11は、パラメータの解釈結果に基づいて、集計処理部17、累計処理部18及び追加処理部19に対して、それぞれ上記読み出した集計ファイルの集計処理、累計処理及び追加処理を指示する。
【0028】
集計メモリ20は、集計処理部17及び累計処理部18の処理結果である集計値及び累計値を一時記憶しておくためのメモリである。
上記したパラメータの解釈結果に基づく集計ファイルの集計、累計、追加処理については、以下に先ず図2、図3に示すパラメータの一例、集計ファイルの一例を説明し、続いて、図6、図7に示すフローチャートにより処理動作を詳細に説明することにする。
【0029】
図2は、パラメータファイル14に格納されているパラメータ30のデータ形式(データ構造)の一例を示す図である。
図2は、オペレータ等がパラメータ30を設定するための入力画面を示している。入力画面の左側は、パラメータ30の各項目名を表示する表示領域301となっており、右側は、オペレータ等がパラメータ30の各項目に対して、ファイル名、フィールド名等を入力するための入力領域302となっている。
【0030】
パラメータ30は、出力ファイル31、累計グループ32、累計フィールド33、累計対象34及びレコード追加35の5項目から成っている。これらの各項目名は、入力画面の初期画面の表示領域301に表示される。オペレータは、表示された各項目に対して、対象ファイル名、及びこの対象ファイルのフィールド名等を、入力画面の右側に示す入力領域302に入力していくことで、パラメータ30の設定を行うことができる。
【0031】
出力ファイル31は、累計更新対象となる時系列ファイル名(対象ファイル名)を指定するパラメータ項目であり、図2には、オペレータ等が、対象ファイル名として「集計ファイル」を入力した例を示している。
【0032】
累計グループ32は、累計処理の対象となる時系列レコードの範囲を指定するパラメータ項目であり、上記指定した対象ファイル内の累計対象となる時系列レコードのグループ(同一累計グループ)を示すフィールド名を指定するものである。
【0033】
累計フィールド33は、累計更新を行う対象となるフィールド名を指定するパラメータ項目である。
累計対象34は、累計フィールド33に累計更新を行う際の累計値を算出する式中で被演算子として用いられるフィールド名を指定するパラメータ項目である。
【0034】
レコード追加35は、“歯抜け”状態となっている上記指定した対象ファイルに対してレコードを追加する場合の、レコード追加の条件となるフィールド名を指定するパラメータ項目である。
【0035】
また、情報表示画面36は、オペレータ等が出力ファイル31の項目に対して対象ファイル名を入力すると、この対象ファイルのデータ構造を示す情報を表示する画面であり、オペレータ等の入力作業を補助するための情報を表示するものである。
【0036】
図3は、上記出力ファイル31として指定される集計ファイルの一例を示す図である。同図に示す集計ファイル40の1レコードは、「得意先cd」、「年月度ym」、「月初売掛金額」、「月度売上金額」等の各フィールドからなる。図2には、出力ファイル31として「集計ファイル」を指定した場合の情報表示画面36の表示状態が示されている。すなわち、対象フィールドとして「得意先CD」、「年月度」等が表示され、出力項目として「得意先cd」、「年月度ym」等が表示されている。
【0037】
そして、オペレータは、情報表示画面36に表示された内容を参照して、入力画面内の入力領域302に各パラメータ項目に対応するフィールド名を入力していく。図2に示す例では、累計グループ32として「得意先cd」を、累計フィールド33として「月初売掛金額」を、累計対象34として「月度売上金額」を、レコード追加35として「年月度ym」を、それぞれ入力している。
【0038】
このように、オペレータは、対象ファイルのデータ構造を意識する必要はなく、データ構造を知らなくても、情報表示画面36に表示されるフィールド名等の情報を参照しながら簡単にパラメータを設定することができる。
【0039】
尚、累計フィールド33と累計対象34は対で指示するものであり、また複数記述することもできる。累計対象34に対するパラメータには、通常、データ項目名(フィールド名)を入力するが、式(演算子による式、関数等)を記述しても良い。
【0040】
上記のようにして図2の入力画面から入力・設定されたパラメータ30は、図1のパラメータファイル14に格納される。パラメータ30は、累計更新処理対象となる各ファイルのデータ構造に応じて複数種類設定されるものであって良い。そして、累計更新処理時に、CPU11の指示により、パラメータ解釈部12が対応するパラメータをパラメータメモリ13上に読み出して、このパラメータを解釈して、その解釈結果をCPU11に通知することで、パラメータに基づく集計ファイルの累計更新処理が実行される。
【0041】
このとき、パラメータ解釈部12が図2に示すパラメータ30を解釈・実行した場合、図3に示すように「累計グループ」として“得意先cd”のフィールドが指定される。また「累計フィールド」として“月初売掛金額”のフィールドが指定される。更に「累計対象」として“月度売上金額”のフィールドが指定される。ここで、“得意先cd”の値が同一であるレコード(例えば“0002”)は、同一の累計グループであるものとされる。累計更新処理は、同一累計グループ内の時系列レコード群に対して行われる。
【0042】
図4は、図3の集計ファイル40の累計更新処理を示す図である。
図4(a)は、変動レコード50によって上記集計ファイル40を集計更新する処理を示す。まず、“得意先cd”と“年月度ym”をプライマリキーとして、集計対象となるレコードを検索し、読み出す。同図では、変動レコード50のプライマリキー「“0002”,“94/03 ”」と一致するプライマリキーを有するレコード(集計対象レコード)を、集計対象ファイル40から読み出す。
【0043】
次に、変動レコード50の「売上金額」を、集計対象レコードの「累計対象」に集計する。このとき、パラメータ30により、「累計対象」として「月度売上金額」のフィールドが指定されているので、集計ファイル40内のプライマリキーが「“0002”,“94/03 ”」であるレコードの月度売上金額(15,000)と変動レコード50の売上金額(15,000)とを加算して集計する。集計結果は、上記プライマリキーが「“0002”,“94/03 ”」であるレコードの「月度売上金額」のフィールドにリライト(再書込み)されて、図4(a)に示すように“30,000”となる。この結果、図3の集計ファイル40は、図4(a)に示す集計ファイル41に更新される。
【0044】
続いて、この集計結果に応じて、図4(b)に示すように、図4(a)の集計ファイル41における集計対象レコードの次以降の時系列レコードの累計フィールドに対し、同一累計グループの範囲内で時系列に順次累計していく処理を行う。
【0045】
すなわち、まず、上記集計対象レコードの次のレコード(プライマリキーが「“0002”, “94/04 ”」のレコード)を指定し、このレコードの累計フィールドを累計更新する処理を行う。このとき、パラメータ30により、「累計フィールド」として「月初売掛金額」のフィールドが指定されているので、次レコード(プライマリキーが「“0002”, “94/04 ”」のレコード)の月初売掛金額のフィールドの累計更新を行うことになる。
【0046】
この累計更新処理は、例えば、現在指定されているレコード(ここでは上記次レコードが指定されているので、プライマリキーが「“0002”, “94/04 ”」のレコード)の前のレコード(ここでは、プライマリキーが「“0002”, “94/03”」のレコード)の累計フィールド(10,000)と累計対象(30,000)とを加算する式を用いて更新値を算出して、上記現在指定されているレコード(次レコード)の累計フィールド(月初売掛金額)にリライトするものである。あるいは、変動レコード50の「売上金額」を、現在指定されているレコードの累計フィールドに、直接累計するようにしても良い。この結果、上記次レコード(プライマリキーが「“0002”, “94/04 ”」のレコード)の累計フィールド(月初売掛金額)の更新値は、図4(b)に示すように“40,000”となる。
【0047】
この累計更新処理は、集計対象レコードと同一の累計グループ(得意先cdが同一)のレコードに対し、“年月度ym”の昇順に順次行っていく。つまり、現在指定されているレコード(プライマリキーが「“0002”, “94/04 ”」のレコード)の次のレコード(プライマリキーが「“0002”, “94/05 ”」のレコード)を指定して、指定されたレコードの累計フィールドに対して累計更新処理を行う。レコードの指定は、同一累計グループ内のレコードに対し、上記集計対象レコードから“年月度ym”の昇順に順次行っていく。そして、指定した次のレコードが、同一累計グループのレコードではない場合(同図では、プライマリキーが「“0003”, “94/01 ”」のレコードが指定されたとき)、変動レコード50による集計ファイル40の累計更新処理を終了する。この結果、図4(a)の集計ファイル41は、図4(b)に示す集計ファイル42に更新される。
【0048】
変動ファイルに変動レコードが複数ある場合は、続いて、次の変動レコードを読み出す。この次の変動レコードが、例えば、図5(a)の変動レコード60であった場合、“歯抜け”のレコードを埋める為のレコード追加処理を行うことになる。
【0049】
図5は、図4(b)の集計ファイル42の更新時に“歯抜け”レコードが生じた場合のレコード追加処理を説明する図である。
図5(a)において、変動レコード60とプライマリキーが一致するレコードを検索すると、集計ファイル42には一致するレコードが存在しないので、変動レコード60を基にして新規レコードを生成し、この新規レコードを集計ファイル42に挿入することになる。
【0050】
すなわち、変動レコード60の“得意先cd”と“年月度ym”をプライマリキーとし、更に、その“売上金額”を月度売上金額とし、月初売掛金額を“0”に設定した新規レコード45を生成し、集計ファイル42に挿入する。
【0051】
このとき、挿入した新規レコード45の年月度ym“94/07 ”と、その前のレコード44の年月度ym“94/05 ”とが時系列的に不連続なものとなっている。この為、“歯抜け”のレコードが生じることになる。この様な場合、“歯抜け”のレコードを補充するための追加レコード46を生成・追加する処理を行う。
【0052】
この追加レコード46は、図5(b)の更新後の集計ファイル43に示すように、累計グループ(得意先cd)は、新規レコード45と同一の累計グループであるので、“0002”となる。また、パラメータ30で設定したレコード追加のためのパラメータ項目である“年月度ym”は、上記前のレコード44の年月度ym“94/05”に“1”を加算して生成することで、“95/06 ”となる。
【0053】
更に、累計対象(月度売上金額)には“0”を設定する。そして、累計フィールド(月初売掛金額)には、上記前のレコード44の累計フィールド(72,000)と累計対象(3,000 )とを加算した値(75,000)を設定する。
【0054】
このようにして、図5(b)に示すように追加レコード46を生成して、これを図5(a)の集計ファイル42に自動追加することで、集計ファイル42の“歯抜け”を補充することができ、追加レコード46と同一の累計グループ内の時系列レコード群を、時系列的に連続するレコード群にすることができる。
【0055】
そして、最後に、新規レコード45の累計フィールド(月初売掛金額)を累計更新して処理を終了する。
尚、図5の場合では、“歯抜け”レコードは1つであるが、複数存在する場合には、上記追加レコードを生成追加後、更に時系列的に次のレコードとなる追加レコードを、順次、生成していく。また、図5の場合には、挿入した新規レコード45の前に“歯抜け”が生じていたが、挿入した新規レコードの後に“歯抜け”が生じる場合もある。この場合は、新規レコードの“年月度ym”に“1”の倍数を加算した値が“年月度ym”となる追加レコードを、必要数だけ生成する。
【0056】
次に、図6及び図7のフローチャートを参照して、CPU11の制御によりファイル更新装置10が実行する累計更新処理の動作を説明する。
図6及び図7は、上記累計更新処理を説明するフローチャート(その1)、(その2)である。
【0057】
図6及び図7のフローチャートに示す処理は、例えばCPU11が、不図示のメモリに格納されているプログラムを実行することによって行われる。以下の説明では、図2のパラメータ30をロードして上記プログラムを実行するものとして説明する。
【0058】
まず、図6において、CPU11は、パラメータ解釈部12に対し、パラメータロードの指示を出す(ステップS1)。これより、パラメータ解釈部12は、パラメータメモリ13上にパラメータ30をロードし、そのパラメータ30の解釈結果をCPU11に通知する。
【0059】
次に、CPU11は、その通知された解釈結果に基づき、I/O 制御部15に対し、当該入力ファイル及び当該出力ファイルの読み出しを指示し、それらの入力ファイルと出力ファイルをオープンする(ステップS2)。このとき、ロードされたパラメータ30により「出力ファイル」として指定されている「集計ファイル」をオープンする。また、オープンする入力ファイルは、例えば図4、5に示す変動レコード50、60より構成される変動ファイルである。尚、入力ファイル名は、オペレータにより適時指定されるものであっても良い。
【0060】
続いて、入力ファイルより最初の1レコード(以下、入力レコードという)をリードする(ステップS3)。この時、リードする入力レコードが無い場合(ステップS4、NO)は、累計更新処理を終了する。入力レコードがある場合は(ステップS4、YES)、得意先cdと年月度ymとをプライマリキーとして、出力ファイル(集計ファイル)のレコードの中で、同一のプライマリキーであるレコード(集計対象レコード)を検索する(ステップS5)。
【0061】
入力レコードと同一のプライマリキーの集計対象レコードが無い場合は(ステップS6、NO)、図7に示すレコード追加処理に移る。レコード追加処理は、図1の追加処理部19がCPU11からの指示に応じて実行するものであり、この処理についての詳細な説明は、後述する。
【0062】
同一のプライマリキーの集計対象レコードがある場合は(ステップS6、YES)、入力レコードの売上金額を集計対象レコードの「累計対象」に集計する処理を行う(ステップS7)。このとき、パラメータ30により、「累計対象」として「月度売上金額」が設定されているので、集計対象レコードの「月度売上金額」のフィールドに売上金額を集計する処理を行うことになる。尚、この集計処理は、図1の集計処理部17がCPU11からの指示に応じて行うものである。集計値は、集計メモリ20に一時格納されて、累計更新処理に用いられる。
【0063】
次に、現在指定されているレコード(このときは集計対象レコード)の次のレコードを指定し(ステップS8)、次レコードが集計対象レコードと同一の「累計グループ」であるか否かを判定する(ステップS9)。このとき、パラメータ30より、「累計グループ」として「得意先cd」が設定されているので、集計対象レコードの「得意先cd」のフィールドの値と次レコードの「得意先cd」のフィールドの値とが一致するか否かを判定することになる。
【0064】
一致しない場合は(ステップS9、NO)、次レコードは同一の累計グループではなく累計更新の対象ではないので、当該入力レコードに対する累計更新処理を終了し、ステップS3に戻る。そして、入力ファイルより、次の入力レコードをリードして、リードする入力レコードがなくなるまで、上記と同様の処理を繰り返す。
【0065】
一致する場合は(ステップS9、YES)、次レコードの累計フィールドの更新処理を実行する(ステップS10)。この更新処理は、現在指定されているレコード(この場合はステップS8で指定された次レコード)の累計フィールドに対して、現在指定されているレコードの前のレコード(この場合は集計対象レコード)における累計フィールドの値と累計対象の値(集計メモリ20に保持されている値)とを加算した値を更新値とする処理である。このとき、パラメータ30より、「累計フィールド」として「月初売掛金額」が設定され、「累計対象」として「月度売上金額」が設定されているので、上記更新処理は、次レコードの「月初売掛金額」の値を更新する処理となる。この更新処理の更新値は、集計対象レコードの「月初売掛金額」の値と集計メモリ20に保持されている「月度売上金額」の値とを加算した値となる。
【0066】
上記次レコードの累計フィールドに対する累計更新処理が終了すると、ステップS8に戻り、現在指定されているレコード(この場合は次レコード)の次のレコードを指定し、この指定したレコードが同一累計グループに属さないものと判別するまで(ステップS9、NO)、上記ステップS8〜ステップS10の処理を繰り返す。
【0067】
上述したように、本発明の一実施例のファイル更新装置では、時系列レコードに対する累計処理において、各種時系列ファイルのデータ構造に応じたパラメータを設定することにより、従来のように各種ファイルのデータ構造に応じてプログラマが逐一制御プログラムを作成する必要はなくなる。
【0068】
よって、新規設計を行う場合にも、新たなパラメータを追加設定することで対応でき、誰でも簡単に時系列ファイルの累計更新処理が行える。また、画面に表示されるデータ項目の中から選択してパラメータ30を設定できるので、データ構造に関する知識がない初心者であっても簡単にパラメータ30の設定が行える。
【0069】
次に、図7を参照して、上記図6のステップS6において同一のプライマリキーがないと判定された場合のレコード追加処理について説明する。
同図において、まず、上記入力レコードに基づいて、累計フィールドの値が“0”である新規レコードを生成する(ステップS11)。この新規レコードは、出力ファイル(集計ファイル)中の時系列レコード(論理的にプライマリキーの昇順に並んだレコード)の中で、そのプライマリキーが該当する時系列位置に挿入する(ステップS12)。例えば、図5(a)に示すような入力レコード60に基づいて、新規レコード45を生成し、この新規レコード45を集計ファイル42の中の時系列的に該当する位置に挿入する。
【0070】
次に、挿入した新規レコード45のプライマリキーを基に、この新規レコード45に対し時系列的に前となるレコードを読み出す(ステップS13)。そして、この前レコードが、新規レコードと同一の累計グループであるか否かを判定する(ステップS14)。すなわち、「得意先cd」が一致するか否かを判定する。そして、同一の累計グループではない場合(ステップS14、NO)には、ステップS8の処理に移る。
【0071】
一方、上記前レコードが同一の累計グループである場合は(ステップS14、YES)、続いて、新規レコードのプライマリキーと前レコードのプライマリキーとが時系列的に不連続であるか否かを判定する(ステップS15)。
【0072】
不連続ではない場合は(ステップS15、NO)、新規レコードの累計フィールドの値(ステップS11で“0”にしてある)を更新する(ステップS22)。この更新処理は、前レコードにおける累計フィールド(月初売掛金額)の値と累計対象(月度売上金額)の値とを加算した値を、新規レコードの累計フィールド(月初売掛金額)の更新値とする処理である。この更新処理後、ステップS8の処理に移る。
【0073】
不連続である場合は(ステップS15、YES)、図5(a)に示すような“歯抜け”が存在することになる。すなわち、図5(a)に示すように、新規レコード45のプライマリキーが「“0002”, “94/07 ”」であり、その前レコード44のプライマリキーが「“0002”, “94/05 ”」である場合は、集計ファイル42において“歯抜け”が存在することになる。
【0074】
この場合、まず最初に、“歯抜け”レコード数を意味する変数nを“1”とする(ステップS16)。次に、“歯抜け”を埋めるために新たに追加する追加レコードのプライマリキーを生成する(ステップS17)。ここで、図2のパラメータで「レコード追加」の項目に対して設定された“年月度ym”が、追加レコード生成に用いられる。すなわち、前レコード44の“年月度ym”の値をキー値として、このキー値に変数n(初期値は“1”)を加算することで、追加レコードのプライマリキーを生成する。図5に示す例では、前レコード44のキー値“94/05 ”に“1”を加算して“94/06 ”とし、更に累計グループは新規レコードと同一とすることで、追加レコードのプライマリキー「“0002”, “94/06 ”」を生成する。
【0075】
そして、この追加レコードのプライマリキーと新規レコードのプライマリキーとが一致するか否かを判定する(ステップS18)。この判定は、“歯抜け”レコードが複数存在する場合も想定した処理であり、一致するものと判定された(ステップS18、YES)時点で、“歯抜け”レコードが存在しなくなったものと判別して、新規レコードの累計フィールドの更新を行い(ステップS22)、その後ステップS8の処理に移る。
【0076】
一致しないものと判定された場合は(ステップS18、NO)、上記ステップS17で生成したプライマリキーの追加レコードを生成する(ステップS19)。このとき生成する追加レコードの累計対象、累計フィールドは、共に“0”に設定しておく。次に、生成した追加レコードの累計フィールドの更新を行う(ステップS20)。この更新処理は、前レコードにおける累計フィールド(月初売掛金額)の値と累計対象(月度売上金額)の値とを加算した値を、追加レコードの累計フィールド(月初売掛金額)の更新値とする処理である。
【0077】
以上述べたステップS16〜ステップS20の処理によって、図5(b)に示す例では、プライマリキーが「“0002”, “94/06 ”」、累計フィールド(月初売掛金額)の値が“75,000”、累計対象(月度売上金額)の値が“0”の追加レコード46が自動追加される。これより、図5(b)に示す例では、集計ファイル43に“歯抜け”レコードが無くなることになる。
【0078】
続いて、上記変数“n”の値に“1”を加えて(ステップS21)、ステップS17に戻る。ステップS17において、今度は、前レコードのキー値に“2”を加算してプライマリキーを生成する処理を行うことになる。すなわち、上記生成した追加レコードから昇順に次となるレコードのプライマリキーを生成する。そして、次のステップS18において、生成したプライマリキーが新規レコードのプライマリキーと一致した場合は、新規レコードの累計フィールドの更新を行う(ステップS22)。一致しない場合は、新規レコード挿入時に“歯抜け”レコードが2つ以上あった場合であり、全ての“歯抜け”レコードに対して追加レコードが生成されるまで、上記ステップS17〜ステップS21の処理を繰り返す。
【0079】
上記したレコード追加処理を行うことで、時系列レコードが時系列順に格納されている時系列ファイル(例えば集計ファイル)内に、入力ファイル(変動ファイル)に基づく新規のレコードを挿入した際に、該新規レコードが時系列的に前のレコードと不連続となり、上記時系列ファイルに歯抜けが生じた場合であっても、時系列的に連続させるように追加レコードを自動生成して、該追加レコードを上記時系列ファイルに追加することで、上記時系列ファイルに格納されるレコードの時系列的な連続性を保つことができる。
【0080】
尚、上記実施例では、変動ファイルのレコードにより集計ファイルを更新するものとしたが、これに限るものではない。例えば、マスタファイルのレコードにより集計ファイルを更新するものであっても良い。
【0081】
また、上記実施例では、「レコード追加」の条件として“年月度ym”のフィールドを指定するようにしていたが、これに限るものではなく、複数のフィールドを指定できるものであっても良い。また、「レコード追加」の条件の指定は、数値フィールドであっても文字フィールドであっても良い。さらに、「レコード追加」の条件を指示する際、追加レコード生成時の生成条件を付加するようにしてもよく、この場合、外部から、その条件を指定できるようにしても良い。
【0082】
更に、追加レコードとして“年月度ym”に順次“1”を加算するようにしていたが、これに限るものではなく、例えば偶数月のレコードが時系列的に連続するファイルでは順次“2”を加算するようにしても良く、プライマリキーの増分値は、ファイルの構成に応じて任意であっても良い。
【0083】
【発明の効果】
以上詳細に説明したように、本発明によれば、簡単なパラメータを設定するだけで、各種時系列ファイルに対する累計更新処理が行える。
【0084】
また、時系列ファイル内にいわゆる“歯抜け”レコードが生じた場合にも、その“歯抜け”を補充するレコードを自動的に生成して、時系列ファイルに追加できるので、時系列ファイル内においてレコードが時系列的に不連続となることを防止できる。このため、例えば時系列ファイルを印刷して管理帳表を作成する場合にも、その管理帳票を同一フォーマットで出力することができる。
【図面の簡単な説明】
【図1】一実施例のファイル更新装置の構成図である
【図2】パラメータファイルに格納されているパラメータの一例を示す図である。
【図3】パラメータで指定される集計ファイルの一例を示す図である。
【図4】図3の集計ファイルの累計更新処理を示す図である。
【図5】図4の更新後の集計ファイルに対するレコード追加処理を示す図である。
【図6】ファイル更新処理を説明するフローチャート(その1)である。
【図7】ファイル更新処理を説明するフローチャート(その2)である。
【図8】従来のファイル更新処理を示す図である。
【図9】従来のファイル更新処理における“歯抜け”を示す図である。
【符号の説明】
10 ファイル更新装置
11 CPU
12 パラメータ解釈部
13 パラメータメモリ
14 パラメータファイル
15 I/O 制御部
16 集計ファイルデータベース
17 集計処理部
18 累計処理部
19 追加処理部
20 集計メモリ
30 パラメータ
36 情報表示画面
40 集計ファイル
41 集計ファイル(集計後)
42 集計ファイル(累計更新後)
43 集計ファイル(レコード追加後)
44 前レコード
45 新規レコード
46 追加レコード
50 変動レコード
60 変動レコード
70 変動レコード
80 集計ファイル
81 集計ファイル(集計後)
81 集計ファイル(集計後)
90 変動レコード
301 パラメータ設定画面の表示領域
302 パラメータ設定画面の入力領域
Claims (5)
- 時系列的に連続する時系列レコードより構成される時系列ファイルを格納するファイル記憶手段と、
該ファイル記憶手段に格納されている各時系列ファイルのデータ構造に応じて設定されるパラメータを記憶するパラメータ記憶手段と、
前記時系列ファイルの更新時に、前記パラメータ記憶手段に記憶されたパラメータのなかから更新対象の時系列ファイルに対応するパラメータを読み出して、該パラメータを解釈するパラメータ解釈手段と、
該パラメータ解釈手段によるパラメータ解釈結果に基づいて前記更新対象の時系列ファイル内の累計処理対象となる時系列レコードに対して時系列的に累計処理を実行する累計処理手段と、
を有することを特徴とするファイル更新装置。 - 前記パラメータは、前記累計処理対象となる時系列レコードのグループを示す累計グループのフィールドと、前記時系列的に累計処理を実行する対象となる累計フィールドと、該累計フィールドへの累計処理において累計値を算出する為の被演算子として用いられる累計対象のフィールドとが、前記時系列ファイルのデータ構造に応じて指定されるものであることを特徴とする請求項1記載のファイル更新装置。
- 前記累計処理手段は、前記パラメータ解釈手段によるパラメータ解釈結果に基づいて、前記累計グループのフィールドにより指定されるグループの各時系列レコードの前記累計フィールドの値を、前記累計対象のフィールドの被演算子を用いて算出する累計値によって更新することにより、前記累計処理を実行することを特徴とする請求項2記載のファイル更新装置。
- 時系列的に連続する時系列レコードより構成される時系列ファイルを格納するファイル記憶手段と、
該ファイル記憶手段に格納される前記時系列ファイルの時系列レコードが時系列的に不連続となる場合に該不連続を解消する追加レコードを生成する為のパラメータを記憶するパラメータ記憶手段と、
該パラメータ記憶手段に記憶されている前記パラメータに基づいて、前記時系列的に不連続となる時系列レコードを時系列的に連続にする為の追加レコードを生成して前記時系列ファイルに追加するレコード追加処理手段と、
を有することを特徴とするファイル更新装置。 - 前記レコード追加処理手段は、前記時系列ファイル内に新規レコードを追加挿入した際に該新規レコードと該新規レコードの前のレコード又は後のレコードとが時系列的に不連続となった場合に、前記レコード追加処理を実行することを特徴とする請求項4記載のファイル更新装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4263196A JP3820615B2 (ja) | 1996-02-29 | 1996-02-29 | ファイル更新装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4263196A JP3820615B2 (ja) | 1996-02-29 | 1996-02-29 | ファイル更新装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09237210A JPH09237210A (ja) | 1997-09-09 |
JP3820615B2 true JP3820615B2 (ja) | 2006-09-13 |
Family
ID=12641372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4263196A Expired - Lifetime JP3820615B2 (ja) | 1996-02-29 | 1996-02-29 | ファイル更新装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3820615B2 (ja) |
-
1996
- 1996-02-29 JP JP4263196A patent/JP3820615B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH09237210A (ja) | 1997-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7805284B2 (en) | Simulation model defining system for generating a simulation program for a simulator simulating a behavior of economy or society regarded as a system of phenomena and events | |
KR940002481B1 (ko) | 데이터 처리장치 및 방법 | |
JP3820615B2 (ja) | ファイル更新装置 | |
JPH03152693A (ja) | 割引処理機構を有する売買データ処理装置 | |
JP2848349B2 (ja) | 原価積み上げシミュレーションシステム | |
JP2903825B2 (ja) | 誤順処理防止方法 | |
JPH08241353A (ja) | 在庫計画策定支援装置 | |
JP2001312412A (ja) | ジョブスケジューリングシステム及びジョブスケジューリング方法 | |
JPS6336491A (ja) | 販売デ−タ処理装置 | |
JP3123400B2 (ja) | 資産修正履歴自動生成システム | |
JPH1115904A (ja) | 仕訳データ記録方法,仕訳データを記録した記録媒体,仕訳データの自動連動修正方法,仕訳データの自動連動修正プログラムを記録した記録媒体 | |
JPH11212775A (ja) | 情報処理システム | |
JP2844460B2 (ja) | データ処理装置 | |
JP3639965B2 (ja) | モデル賃金出力装置 | |
JPH1139199A (ja) | 業務管理データトランザクションシステム | |
JP4301431B2 (ja) | バッチ処理装置、バッチ処理方法、及びバッチ処理プログラム、並びにバッチ処理システム | |
JP3663633B2 (ja) | 伝票処理装置 | |
JPH08129595A (ja) | 給与管理装置及び給与管理方法 | |
JPH09297647A (ja) | 項目データ入力装置 | |
JP2023131455A (ja) | 在庫管理装置、在庫管理方法、及び、在庫管理プログラム | |
JP3042510U (ja) | Pos用コンピュータ装置 | |
JPH07262165A (ja) | 2次元データの集計方法 | |
JPS6316342A (ja) | Osの複数モデル共通化開発におけるテスト進捗報告システム | |
JPH03179558A (ja) | データの集約方法 | |
JPH0488471A (ja) | 平均残高算出方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060530 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060612 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090630 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100630 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110630 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110630 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120630 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120630 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130630 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term |