(57)【特許請求の範囲】
【請求項１】
イベント駆動によりアプリケーションに応じた複数の処理対象項目に対する処理を行うデータ処理装置において，
前記処理対象項目対応に，前記処理対象項目に値が設定されたことを通知する入力チェックの論理イベント，前記処理対象項目の値の変更により影響を受ける他の処理対象項目に対し関連項目の値の変更を通知する派生の論理イベント，前記処理対象項目の初期化を通知する初期化の論理イベント，または前記処理対象項目にカーソルが入ったことを示すフォーカスインの論理イベントの各論理イベントに関するアプリケーションとして定義された処理を行うイベント処理プログラム群を記憶する手段と，
個々の入力指示情報に対応する物理イベントを，あらかじめ個々の物理イベントに応じて定められた前記論理イベントの一つまたは複数に変換するイベント変換制御手段と，
前記イベント変換制御手段により変換された論理イベントを受けて，該当する前記イベント処理プログラムを呼び出して起動するとともに，ある処理対象項目の値が変化した場合には，その項目に影響を受ける項目に対する派生の論理イベントにより該当する前記イベント処理プログラムを呼び出して起動する派生制御手段とを備えた
ことを特徴とするイベント駆動型処理装置。
【請求項２】
請求項１記載のイベント駆動型処理装置において，
前記イベント変換制御手段は，画面レコードの処理対象項目に値が入力されたことを示す物理イベントを受けたときに，その物理イベントを，前記入力チェックの論理イベントおよび前記派生の論理イベントに変換する手段を備え，
前記派生制御手段は，その各論理イベントによって前記値が入力された処理対象項目に該当する前記イベント処理プログラムを呼び出して起動するように構成された
ことを特徴とするイベント駆動型処理装置。
【請求項３】
請求項１記載のイベント駆動型処理装置において，
前記イベント変換制御手段は，検索の実行によりある画面レコードの処理対象項目に値が設定された場合に，前記入力チェックの論理イベントおよび前記派生の論理イベントを発生する手段を備え，
前記派生制御手段は，その各論理イベントによって前記値が設定された処理対象項目に該当する前記イベント処理プログラムを呼び出して起動するように構成された
ことを特徴とするイベント駆動型処理装置。
【請求項４】
請求項１記載のイベント駆動型処理装置において，
前記イベント変換制御手段は，前記物理イベントとして，画面レコードにおける明細行の複写を指示する物理イベントを受けたときに，その複写された個々の処理対象項目について画面から値が入力されたように，前記入力チェックの論理イベントおよび前記派生の論理イベントを発生する手段を備え，
前記派生制御手段は，その各論理イベントによって前記複写された処理対象項目に該当する前記イベント処理プログラムを呼び出して起動するように構成された
ことを特徴とするイベント駆動型処理装置。
【請求項５】
請求項１記載のイベント駆動型処理装置におけるイベント駆動制御方法において，
前記イベント変換制御手段が，個々の入力指示情報からその入力指示情報に対応して検出された物理イベントを，あらかじめ個々の物理イベントに応じて定められた，前記処理対象項目に値が設定されたことを通知する入力チェックの論理イベント，前記処理対象項目の値の変更により影響を受ける他の処理対象項目に対し関連項目の値の変更を通知する派生の論理イベント，前記処理対象項目の初期化を通知する初期化の論理イベント，または前記処理対象項目にカーソルが入ったことを示すフォーカスインの論理イベントの一つまたは複数に変換するステップと，
前記派生制御手段が，前記変換された論理イベントに基づき，前記処理対象項目対応に，前記入力チェックの論理イベント，前記派生の論理イベント，前記初期化の論理イベント，または前記フォーカスインの論理イベントの各論理イベントに関するアプリケーションとして定義された処理を行う，前記イベント処理プログラム群を記憶する手段に記憶されたイベント処理プログラムを呼び出して起動し，さらにある処理対象項目の値が変化した場合には，その項目に影響を受ける項目に対する派生の論理イベントにより該当するイベント処理プログラムを呼び出して起動するステップと，
前記呼び出されたイベント処理プログラムが，アプリケーションに応じた前記処理対象項目に対する処理を行うステップとを有する
ことを特徴とするイベント駆動制御方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は，主に事務処理分野で利用されるデータ処理装置であって，例えば表示画面やデータベースに対する入出力を，イベントで駆動されるプログラムによって処理するイベント駆動型処理装置およびイベント駆動制御方法に関する。
【０００２】
プログラムの実行制御方式として種々の方式があるが，例えば，商品の単価と個数が入力された場合に，自動的に金額を計算し表示するというようなプログラムの開発には，特定のイベントの発生や特定の条件が成立したことを契機として自動的に所望のプログラムが起動されるイベント駆動型のプログラム実行制御方式を用いるのが適している。このようなプログラムの実行制御を行う装置において，アプリケーションプログラムには，できるだけ少ない統一化されたイベントで処理できる機構が望まれる。
【０００３】
【従来技術】
従来のコンピュータを利用する事務処理分野におけるアプリケーションプログラムの開発では，スケルトンと呼ばれる標準的な制御の骨組みを用い，その上に表示画面やデータベースの処理を加えて，実際に必要な処理動作を行うアプリケーションプログラムを作る方法が用いられていた。スケルトンによる制御が行われる場合において，実際のアプリケーションプログラムの処理部分は，サブルーチン呼出しという形で実現されている。
【０００４】
また，オブジェクト指向を導入して，サブルーチン形式で実現されていたアプリケーションの処理部分をイベント（メッセージ）ドリブンで動かされるメソッドという形で実現するアプリケーションプログラムがある。
【０００５】
【発明が解決しようとする課題】
企業活動に伴う大量の事務処理の多くは，コンピュータのハードウェアと事務処理アプリケーションプログラムを組み合わせることで自動的に実施することができる。しかし，アプリケーションプログラムの開発作業には，多くの人手がかかることに加えて，その変更作業も頻繁に発生し煩雑であるため，省力化する必要がある。
【０００６】
スケルトンの制御部およびサブルーチン部分からなる従来のアプリケーションプログラムの開発には，次のような問題が残っており，また変更の省力化の策としてオブジェクト指向を導入しても，依然として十分な解決にはなっていなかった。
【０００７】
（１）全体をイベント駆動（イベントドリブン）にしきれず，スケルトンを基に制御部分についてもアプリケーション側で記述しなければならない。
（２）イベント駆動を実現できたとしても，イベントの抽象度が低く，数多くの個々のイベントに対する具体的な処理内容を記述しなければならない。
【０００８】
制御部は，サービスを行わずタイミングを提供しているだけである。典型的な例として，表形式の帳票等における行複写の制御が挙げられる。イベント処理において，値の正当性のチェックや値の導出をしなければならないのは，個々のアプリケーションに依存するので仕方がないことであるが，値自体の複写まで行わなければならない。さらに，値のチェックや導出が他の箇所（イベント処理）と共通化して使用できるかどうかは保証されない。
【０００９】
（３）イベント駆動を実現できたとしても，イベント間に矛盾が発生しないように機能的な制限を付けて，各イベントを処理するルーチンを記述しなければならない。
【００１０】
典型的な例として，表形式の帳票等における明細行間のカーソル移動が挙げられる。入力エミュレーション制御を制御部が行わないと，データベースからのデータの読み込みはアプリケーションプログラム自身が保証しなければならない。各項目のイベント処理ルーチンで，データベースからのデータの読み込みという処理が記述されていなければならない。
【００１１】
また，例えばデータベース等での検索実行処理においても同様に，データベース・テーブルにない項目の値を求めるという処理をどこかに記述しなければならない。
【００１２】
前述の（１）および（２）のタイプに属するものとして，特開平４−２３８５３４号に示される「項目単位型画面入出力制御方式」がある。これによると，アプリケーションプログラムを，項目単位の部品として記述することが可能であるが，依然として個々に制御を定める項目制御部品を必要としている。
【００１３】
また，前述の（２）および（３）のタイプに属するものとして，特開平４−３４９５２９号に示される「ウインドウアプリケーションの画面制御方式」がある。これによると，１つのイベントから複数の処理を呼び出す機構を提供しているが，その変換処理を，制御として個々のアプリケーションプログラムに記述しなければならない。
【００１４】
本発明は上記問題点の解決を図り，例えば入力の完了，明細行の複写，明細行の削除，明細行間のカーソル移動などというような物理イベントを，統一された少ない数の論理イベントに変換する手段を，アプリケーションプログラムに依存しない制御の骨組みとして用意することにより，個々のアプリケーションプログラムで記述しなければならないイベント処理を簡易化し，イベント処理の記述量の削減，部品化の促進による可搬性の向上，保守性の向上を可能とし，アプリケーションプログラムの開発工数の削減，開発期間の短縮を可能とすることを目的とする。
【００１５】
【課題を解決するための手段】
上記の課題を解決するために，本発明は図１に示すような以下の手段から構成される。
【００１６】
図１は，本発明の原理説明図である。図中，１はディスプレイ装置，２はディスプレイ制御手段，３はイベント制御手段，４は派生制御手段，５は応用処理手段，３１はイベント受け付け手段，３２はイベント振り分け手段，３３はイベント変換制御手段，３４は表示制御・エラー制御手段を表す。
【００１７】
ディスプレイ装置１は，ディスプレイ制御手段２を介して送られる入出力情報を表示する。
ディスプレイ制御手段２は，ディスプレイ装置１やキーボードなどの入出力装置を制御する。値の入力の完了，メニューの選択，ＰＦキーの押下などを監視し，これらを物理イベントとして扱う。物理イベントは，主にディスプレイ制御手段２が扱うことのできるイベントであり，全体として例えば４０種類ぐらいある。
【００１８】
イベント制御手段３は，ディスプレイ制御手段２からの物理イベントを論理イベントに変換するための各手段を有する。また，内部状態とタイミングによっても論理イベントを発生させる。
【００１９】
イベント受け付け手段３１は，ディスプレイ制御手段２から受け付けた物理イベントを，イベント振り分け手段３２へ送る処理手段である。
イベント振り分け手段３２は，イベント受け付け手段３１から得た物理イベントを各種のイベント変換制御手段３３へ振り分ける。
【００２０】
イベント変換制御手段３３は，イベント振り分け手段３２により得た物理イベントを１つまたは複数の論理イベントに変換し，派生制御手段４へ送る。図１中，各種のイベント変換制御手段３３の一例として，入力完了イベント制御手段３３ａ，検索実行イベント制御手段３３ｂ，明細行複写イベント制御手段３３ｃ，フォーカスイン制御手段３３ｄを示しているが，これらのイベント変換制御手段３３は物理イベントに対応して設けられる。
【００２１】
表示制御・エラー制御手段３４は，ディスプレイ装置１の表示制御とエラーの制御を行う処理手段である。。
派生制御手段４は，イベント変換制御手段３３からの論理イベントを受けて，応用処理手段５内に構成されるイベント処理手段５１を呼び出す処理手段である。例えば，ある項目の値が変わったときは，その項目の影響を受ける項目の派生に関するイベント処理手段５１を呼び出す。
【００２２】
イベント標準処理手段６は，論理イベントのうち，応用処理手段５に共通な処理を行う手段である。例えば，応用処理手段５において，初期化イベントに対するイベント処理手段５１がない項目について，未入力に設定するという処理等をイベント標準処理手段６で行う。
【００２３】
【作用】
従来の事務処理分野のアプリケーションプログラムにおいても，スケルトンと呼ばれる標準的な制御の骨組みの提供，またイベント駆動型の処理機構が用いられていた。
【００２４】
しかし，本発明は次の点が従来技術と大きく異なる。
（１）  多くの物理イベントに対して，個々の物理イベントに依存しない入力チェックイベントや派生イベントというような数少ない論理イベントに変換する制御手段を持つこと。
【００２５】
（２）  アプリケーションプログラムを構成する応用処理手段５は，サブルーチンとしてではなく，論理イベント（メッセージ）によって駆動される処理対象項目ごとのイベント処理手段５１の集合として構成されること。
【００２６】
すなわち，本発明においては，比較的定型でアプリケーションプログラムにもあまり依存しないスケルトン（制御の骨組み）とアプリケーションとの分割をさらに進めて，スケルトンは，制御ルーチンとしてアプリケーションプログラムから完全に切り離されて構成される。また，従来，スケルトンからサブルーチン呼出しという形で実現されていたアプリケーション処理部分は，オブジェクト指向の概念を取り入れ，イベント（メッセージ）駆動で動かされるメソッドのように構成する。
【００２７】
これにより，各イベント処理の抽象度を高めて，各イベント処理の共通化を図ることが可能となり，より生産性の高い事務処理装置およびその制御方法の提供が可能になる。
【００２８】
図１において，イベント制御手段３および派生制御手段４がアプリケーションプログラムにあまり依存しないスケルトンの部分に対応し，応用処理手段５におけるイベント処理手段５１がオブジェクト指向におけるメソッドに相当し，アプリケーションプログラムの開発者が作成する部分に対応する。すなわち，アプリケーションプログラムの開発者は，各処理項目対象ごとに，必要な論理イベントに対するイベント処理手段５１のルーチンを記述するだけでよい。
【００２９】
【実施例】
本発明の一実施例を図を用いて説明する。
はじめに，本発明の実施例によるイベント制御に関する全体の処理の流れを，図２および図３に示すフローチャートを用いて説明する。
【００３０】
ステップＳ１において，新しい画面等のオープン指示の有無を判定し，指示があればステップＳ２で新しい画面を開設する処理を行う。プログラムの起動時には初期画面を開設する。
【００３１】
ステップＳ３において，エラーの有無を判定し，エラーがあればステップＳ４でエラー表示処理を行い，ステップＳ８へ進む。
エラーがなければステップＳ５において，フォーカスイン処理を呼び出す。フォーカスイン処理は，新しい処理項目にカーソルが入ったときに行う処理である。
【００３２】
ステップＳ６において，フォーカスイン処理においてスキップ（強制的なフォーカスアウト）の指定の有無を判定し，スキップの指定があれば，図３のステップＳ１７以降の処理を行い，スキップの指定がなければ，ステップＳ７の処理を行う。
【００３３】
ステップＳ７においてプロンプトを表示し，ステップＳ８で更新された画面の内容を表示し，ステップＳ９で画面からの入力を待つ。
ステップＳ１０において，終了指示があれば，ステップＳ１１の終了処理を行い，プログラムの実行を終了する。終了指示がなければ，ステップＳ１２以降の各物理イベントに対応した処理を行う。
【００３４】
ステップＳ１２において，画面クリア指示の有無を判定し，指示があればステップＳ１３の画面クリア処理を行い，なければ次のステップＳ１４へ進む。
ステップＳ１４において，検索指示の有無を判定し，指示があればステップＳ１５の検索処理を行い，なければ次の処理へ進む。
【００３５】
ステップＳ１６では，例えばステップＳ１３の画面クリア処理，ステップＳ１５の検索処理等と同様に，予め設定された各種処理に関する物理イベントの判定とそれに対するイベント処理制御の呼出しを行う。
【００３６】
ステップＳ１７では，値の変更の有無を判定する。例えば，図２のステップＳ９で画面から値が入力されたとすると，入力完了イベントの物理イベントにより値の変更があったと判定され，ステップＳ１８の処理へ進む。値の変更とは，既存の値が変更されたことだけでなく，未入力項目に対して値が入力されたことなども含む。
【００３７】
ステップＳ１８において，値の変更をアプリケーションプログラムに通知し，値のチェックを可能にするために，値の変更があった処理項目について入力チェックイベントを発生させ，予め定義されている入力チェックセクションを呼び出す。この入力チェックセクションは，図１に示すイベント処理手段５１の１つに対応する。
【００３８】
ステップＳ１９において，値の変更があった処理項目に関連して影響を受ける処理項目に予め派生セクションがアプリケーションプログラムとして定義されていれば，その派生セクションを呼び出す。
【００３９】
ステップＳ２０からステップＳ２４では，その他の各種物理イベントの種類を判定し，それらに対応して予め設定された各種処理を行う。例えばステップＳ２０で登録指示の物理イベントが検出されたならば，ステップＳ２１による登録処理を，ステップＳ２２で削除指示の物理イベントが検出されたならば，ステップＳ２３による削除処理を行う。
【００４０】
ステップＳ２５およびステップＳ２６において，次の入力項目へカーソルを移動し，図２中のステップＳ１の処理へ戻る。
上記の各ステップ（Ｓ１〜Ｓ２６）を繰り返すことにより，アプリケーションプログラムとして記述された入力チェックセクション，派生セクション等の論理イベントに関する処理ルーチンを動作させる。
【００４１】
次に，図４に示すような仕入れ伝票を例にして，本発明による具体的な処理の例を説明する。図４は処理対象の仕入れ伝票１０を表示したディスプレイ装置１の表示画面を示しており，図中の１１は得意先名項目，１２は税区分項目，１３は商品名項目，１４は単価項目，１５は数量項目，１６は金額項目，１７は合計金額項目を表す。
【００４２】
得意先名項目１１および税区分項目１２をヘッダ，商品名項目１３，単価項目１４，数量項目１５，金額項目１６のそれぞれの行を明細行，合計金額項目１７をテールとする。仕入れ伝票１０は，予めイベント処理手段に関する定義，画面のレイアウト定義が行われているものとする。画面のレイアウト定義等の画面定義体の作成方法については，周知の技術を用いることができるので，ここでの詳細な説明は省略する。
【００４３】
図５は，仕入れ伝票１０の処理におけるイベント処理手段の定義例である。
（Ａ）は得意先名項目１１に定義されたイベント処理手段５１Ａを表し，「ＣＨＥＣＫ  ＳＥＣＴＩＯＮ」は，得意先名項目１１に値が入力された場合に起動される入力チェックセクションの宣言文である。この「ＣＨＥＣＫ  ＳＥＣＴＩＯＮ」では，得意先名項目１１に入力された値に対応するレコードをデータベースから読み，税区分をマスタから税区分項目１２へ転記することを，例えばＣＯＢＯＬ等のプログラム言語により記述している。
【００４４】
（Ｂ）は商品名項目１３に定義されたイベント処理手段５１Ｂを表し，「ＣＨＥＣＫ  ＳＥＣＴＩＯＮ」は，商品名項目１３に値が入力された場合に起動される入力チェックセクションの宣言文である。この「ＣＨＥＣＫ  ＳＥＣＴＩＯＮ」では，商品名項目１３に入力された値に対応するレコードをデータベースから読み，単価をマスタから単価項目１４へ転記することを記述している。
【００４５】
（Ｃ）は金額項目１６に定義されたイベント処理手段５１Ｃを表し，「ＤＥＲＩＶＥＤ  ＳＥＣＴＩＯＮ」は，派生元項目の値が変更された場合に起動される派生セクションの宣言文である。＃（  ）は，派生元の項目を示し，ここでは，単価項目１４と数量項目１５が派生元の項目として定義されている。この派生セクションでは，単価項目１４と数量項目１５の両方とも設定されていれば，単価×数量を金額とし，金額項目１６へ転記することを記述している。
【００４６】
（Ｄ）は合計金額項目１７に定義されたイベント処理手段５１Ｄを表し，「ＤＥＲＩＶＥＤ  ＳＥＣＴＩＯＮ」は，派生元項目の値が変更された場合に起動される派生セクションの宣言文である。＃（  ）は，派生元の項目を示し，ここでは，派生元である金額項目１６の値に変更がある場合に，税区分が「消費税なし」であれば，金額の合計を合計金額とし，そうでなければ，金額の合計に消費税を掛けた金額を合計金額とし，合計金額項目１７へ転記することを記述している。
【００４７】
この例では，各項目に１つのセクションしか定義されていないが，複数のセクションが定義される場合もある。本実施例では，入力チェックセクション，派生セクションの外に初期化セクション，フォーカスインセクションなどがある。
【００４８】
以下，代表的な物理イベントに対する論理イベントの処理のいくつかを例示し，その制御について説明する。特に，入力，明細行の複写および削除については，図４に示す仕入れ伝票１０をもとに説明する。
【００４９】
（ａ）入力処理について
図４の得意先名項目１１に，画面から「○×商会」と入力されると（図２ステップＳ９），値の変更があったと判定し（図３ステップＳ１７），図５（Ａ）に示す「ＣＨＥＣＫ  ＳＥＣＴＩＯＮ」を呼び出す（図３ステップＳ１８）。このイベント処理手段５１Ａにより，対応するレコードがデータベースから読み出され，その税区分がマスタから転記される。
【００５０】
続く図３に示すステップＳ１９の派生処理は，得意先名に対応する派生セクションの定義がないので，スキップされる。ステップＳ２５では入力により「カーソル移動あり」と判定され，ステップＳ２６では，次の入力項目へのカーソル移動処理が行われる。ここでは，商品名項目１３が次の入力項目となる。その後，図２の先頭にループが戻り，ステップＳ８における画面の内容の表示で，得意先名と税区分が表示される。もし，データベースにおいて「○×商会」のレコードにおける税区分が「消費税なし」と定義されていれば，画面上の税区分項目１２には，図４に示すように「消費税なし」が表示されることになる。
【００５１】
次に，図２のステップＳ９において，画面から商品名項目１３に「ボールペン」と入力されると，同様に値の変更があったと判定し（図３ステップＳ１７），図５（Ｂ）に示す「ＣＨＥＣＫ  ＳＥＣＴＩＯＮ」を呼び出す（図３ステップＳ１８）。イベント処理手段５１Ｂでは，対応するレコードをデータベースから読み，単価をマスタから転記する。図３のステップＳ１９の派生処理は，派生セクションの定義がなく，商品名により影響を受ける項目がないのでスキップされ，図３のステップＳ２５，Ｓ２６によるカーソル移動処理により，数量項目１５が次の入力項目となる。その後，図２の先頭にループが戻り，ステップＳ８における画面の内容の表示で，商品名とデータベースから読み出された単価（この例では５００）が表示される。
【００５２】
続くステップＳ９において，数量項目１５に画面から例えば「２０」と入力されると，図３のステップＳ１７では値の変化があったと判定される。しかし，この数量項目１５には，入力チェックセクションが定義されていないので，ステップＳ１８はスキップする。一方，ステップＳ１９では，図５（Ｃ）に示す「ＤＥＲＩＶＥＤ  ＳＥＣＴＩＯＮ」において数量を派生元とする派生セクションが定義されているので，それを呼び出す派生処理を行う。単価項目１４の値と数量項目１５の値が設定されているので，「単価×数量」を金額として，金額項目１６の値を「１０，０００」と設定する。
【００５３】
金額項目１６の値が変更されたことにより，続いて金額を派生元とする派生セクションが探し出される。そして，図５（Ｄ）に示す「ＤＥＲＩＶＥＤ  ＳＥＣＴＩＯＮ」おいてその派生セクションが定義されているので，それを呼び出す。ここでは，税区分が「消費税なし」であるので，金額の合計を合計金額に「１０，０００」と転記する処理が行われる。その後，図３のステップＳ２５，Ｓ２６によるカーソル移動処理により，次の行の商品名項目１３が次の入力項目となる。図２の先頭にループが戻り，ステップＳ８における画面の内容の表示で，数量と金額と合計金額が表示される。
【００５４】
仕入れ伝票１０の明細行における２行目の「万年筆」についても同様の処理を行い，単価項目１４に「３，０００」と表示し，数量項目１５に「５」と入力されると，図５（Ｃ）に示す「ＤＥＲＩＶＥＤ  ＳＥＣＴＩＯＮ」を呼び出し，金額項目１６に「１５，０００」と転記し，これにより，再び金額項目１６の値が変更されたと判定し，図５（Ｄ）に示す「ＤＥＲＩＶＥＤ  ＳＥＣＴＩＯＮ」を呼び出し，合計金額項目１７の値に「２５，０００」と転記する。
【００５５】
以上の繰り返しによって，アプリケーションプログラムとして記述された図５に示すイベント処理手段５１Ａ〜５１Ｄの実行制御が行われる。アプリケーションプログラムとしては，単に各項目ごとに，入力チェックイベントまたは派生イベントに対する処理を，入力チェックセクション，派生セクションとして記述するだけでよく，その制御の骨組みに対する記述は不要である。
【００５６】
（ｂ）明細行の複写について
明細行の複写の問題は，単純に明細行だけに注目すると，合計金額の値が正しくなくなるという点である。この問題は，本発明では例えば次のように解決される。
【００５７】
明細行の複写処理は，イベント変換制御手段３３内の明細行複写イベント制御手段３３ｃがサポートするが，明細行複写イベント制御手段３３ｃは，複写された明細行の個々の項目を入力エミュレーションする。つまり，明細行複写イベント制御手段３３ｃは，複写元の項目の値を複写先の項目が画面から入力されたようにイベントを発生させ，値のチェック，派生した項目の再計算，データベースからの再読み込みなどを行う。
【００５８】
図６は，本発明による明細行の複写の場合の処理フローを示す。図２中ステップＳ９において，明細行の複写指示が入力されると，図２に示すステップＳ１６中で，図６に示す処理が行われる。
【００５９】
図６のステップＳ６０により，行複写の物理イベントがあったかどうかを判定する。行複写の物理イベントは，メニューやＰＦキーによる行複写の指示により，図１に示すディスプレイ制御手段２から通知される。行複写の指示があった場合，ステップ６１以降の処理を行う。
【００６０】
以下の説明では，図４の仕入れ伝票１０において，すでに明細行２行が入力されている状態で，１行目を複写する指示があったとする。この指示は，図２に示すステップＳ９において，オペレータがカーソルを移動して１行目に合わせ，メニューかＰＦキーで行複写を指示することにより行われる。
【００６１】
ステップＳ６１の挿入処理により，すでに入力されている２行目以降を移動し，２行目を空行にする。
ステップＳ６２において，処理対象に含まれる項目は１行目で入力された商品名項目１３の「ボールペン」と数量項目１５の「２０」である。まず，行の先頭にある商品名項目１３からステップＳ６３〜Ｓ６５の処理を行う。
【００６２】
ステップＳ６３において，複写元の「ボールペン」という値を，２行目の空行に複写する。
ステップＳ６４において，入力チェック処理，すなわち入力チェックセクションを呼び出す。ここでは，図５（Ｂ）の「ＣＨＥＣＫ  ＳＥＣＴＩＯＮ」が呼び出され，単価が転記される。
【００６３】
次に，ステップＳ６５において，派生処理を行うが，商品名項目１３が派生元になるような派生セクションは定義されていないのでスキップし，ステップＳ６２へ戻る。
【００６４】
ステップＳ６２において，次の項目の数量項目１５に対する処理に移る。
ステップＳ６３において，複写元の「２０」という値を，２行目の空行に複写する。
【００６５】
ステップＳ６４において，入力チェック処理を行うが，数量項目１５には，入力チェックセクションが定義されていないのでスキップし，ステップＳ６５へ進む。
【００６６】
ステップＳ６５において，派生処理，すなわち派生セクションを呼び出す。数量を派生元とする派生セクションが，金額項目１６に対して図５（Ｃ）に示すように定義されているので，その「ＤＥＲＩＶＥＤ  ＳＥＣＴＩＯＮ」を呼び出す。これにより，金額が計算されて金額項目１６へ転記される。続いて，金額項目１６の値に変更が発生したので，金額を派生元とする図５（Ｄ）に示す合計金額の「ＤＥＲＩＶＥＤ  ＳＥＣＴＩＯＮ」を呼び出す。これにより，合計金額が計算され，結果として，明細行３行文の合計が合計金額項目１７が転記される。その後，ステップＳ６２へ戻る。
【００６７】
ステップＳ６２において，処理すべき項目がないので，行複写の処理を抜ける。この行複写では，新たな値の変更やカーソル移動がないので，図２の先頭にループが戻り，図２のステップＳ８で複写された行と変更された合計金額を表示する。その後，ステップＳ９で，新たな入力を待つ。
【００６８】
（ｃ）明細行の削除について
明細行の削除の問題は，複写と同様，単純に明細行だけに注目すると，合計金額の値が正しくなくなるという点である。
【００６９】
図７は，本発明による明細行の削除の場合の処理フローを示す。なお，図７に示すステップＳ７０〜Ｓ７６の処理は，図２に示すステップＳ１６において行われる処理である。
【００７０】
以下の説明では，図４の仕入れ伝票１０において，すでに明細行２行が入力されているものとする。図２中ステップＳ９において，オペレータは，１行目を削除するために，カーソルを移動して１行目に合わせ，メニューかＰＦキーにより明細行の削除指示を行ったとする。この行削除指示は，図１に示すディスプレイ制御手段２からの物理イベントとして通知される。
【００７１】
ステップＳ７０では，行削除指示の判定がＹＥＳとなる。
ステップＳ７１において，処理対象となる項目は現在の明細行の全項目であり，全項目についての処理が終了するまで，以下のステップＳ７２〜Ｓ７６を繰り返す。最初は，１行目の先頭にある商品名項目１３が処理対象となる。
【００７２】
ステップＳ７２において，初期化セクションまたは派生セクションの有無を判定する。初期化セクションは，各項目ごとの処理を記述するアプリケーションプログラムにおいて「ＩＮＩＴ  ＳＥＣＴＩＯＮ」の宣言文によって定義される。この例では，商品名項目１３には，初期化セクション（ＩＮＩＴ  ＳＥＣＴＩＯＮ）と派生セクション（ＤＥＲＩＶＥＤ  ＳＥＣＴＩＯＮ）のどちらもないので，ステップＳ７３へ進む。
【００７３】
ステップＳ７３において，商品名項目１３を未入力状態に設定し，ステップＳ７１へ戻る。
ステップＳ７１において，次の単価項目１４を処理対象とする。
【００７４】
ステップＳ７２の判定では，単価を派生元とする派生セクションが，図５（Ｃ）に示すＤＥＲＩＶＥＤ  ＳＥＣＴＩＯＮに定義されているので，ステップＳ７４へ進む。
【００７５】
ステップＳ７４において，単価項目１４には初期化セクションが定義されていないので，単価を未入力にする。なお，この値を未入力にする処理は，図１に示すイベント標準処理手段６により行われる。
【００７６】
ステップＳ７５において，単価を派生元とする金額項目１６の派生セクションを呼び出すが，単価が未入力なので，何も行わない。さらに金額を派生元とする合計金額項目１７の派生セクションを読み出す。ここでは，金額が不当な状態なので，合計金額も不当な状態のままとなる。
【００７７】
ステップＳ７１において，次の数量項目１５へ処理が移る。
数量項目１５に対して，結果的に単価項目１４と同様な処理がなされる。数量項目１５には，初期化セクションが定義されていないので，数量を未入力にし，さらに数量を派生元とする金額項目１６の派生セクションを呼び出す。しかし，ここでは数量が未入力となっているので，何も行われない。さらに金額を派生元とする合計金額項目１７の派生セクションが呼び出されるが，金額が不当な状態のままであるので，合計金額も不当な状態のままである。
【００７８】
次のループにおけるステップ７１では，金額項目１６へ処理を移し，ステップＳ７２の判定により，金額項目１６に派生セクションがあるので，ステップＳ７４へ進む。
【００７９】
ステップＳ７４において，初期化セクションが定義されていないので，金額を未入力にし，ステップＳ７５へ進む。
ステップＳ７５において，金額を派生元とする合計金額項目１７の派生セクションを呼び出す。ここでは，処理対象となっている１行目の金額が未入力になったので，合計金額は正しい値が計算される。
【００８０】
次のループにおけるステップＳ７１では，対応する項目に対する処理が終了し，処理すべき項目がないので，ステップＳ７６へ進む。
ステップＳ７６において，全項目が未入力となった１行目を削除し，それ以降の行を順次移動して，行削除の処理を抜ける。この行削除でも，行複写の場合と同様に新たな値の変更やカーソル移動がないので，図２の先頭にループを戻し，図２のステップＳ８で削除された結果と変更された合計金額を表示する。その後，ステップＳ９で，新たな入力を待つ。
【００８１】
以上の明細行の複写，明細行の削除の例から明らかなように，アプリケーション側では行複写，行削除等の物理イベントを意識することなく，入力チェックイベント，派生イベントに対する処理のみを記述するだけでよい。
【００８２】
次に，他の物理イベントについて，論理イベントである入力チェックイベントや派生イベントに変換する制御の例を説明する。
（ｄ）検索実行について
検索を実行すると，アプリケーションプログラムは，データベースからレコードを読み込んで，画面レコードに値を設定する。データベースから読み込まれるレコードには，通常，キーとなる項目だけが入力されていて，他のデータベースを読み込んで決まる値や，単純な計算で求まるような値は入力されない。しかし，画面レコードにはそのような項目もあるので，単純にデータベースのレコードから画面レコードへ複写しただけでは，十分ではない。
【００８３】
本発明の実施例では，キーとなる項目があたかも画面から入力されたように，論理イベントを発生させる。アプリケーションプログラムはこうして発生された論理イベントである入力チェックイベント，派生イベントにより，画面から入力データが与えられたとみなし，データに対応する値を，他のデータベースから読み込んで求めたり，計算して求めたりすることができる。イベント制御手段３は，アプリケーションプログラムが求めた値を画面レコードとして扱い，画面に表示する。
【００８４】
図８は，検索指示の物理イベントに対応する処理フローを示す。
図８に示すステップＳ８０は，図２に示すステップＳ１４に対応し，以下のスステップＳ８１〜Ｓ８８は，図２に示すステップＳ１５に対応する。
【００８５】
ステップＳ８０では，図２のステップＳ９における入力で，検索指示の物理イベントがあったどうかを判定する。検索指示でない場合，以下の処理をスキップする。
【００８６】
ステップＳ８１において，検索指示であった場合，現在検索中であれば，ステップＳ８２で所定の検索終了処理を呼び出し，検索終了の処理を行う。そうでなければ，ステップＳ８３へ進む。
【００８７】
ステップＳ８３において，検索実行処理を呼び出し，データベースの検索処理を行う。
ステップＳ８４において，すべての項目をクリアする。
【００８８】
ステップＳ８５において，検索結果表示処理を呼び出し，検索結果の表示処理を行う。
ステップＳ８６では，すべての項目に対して，以下の処理を行う。
【００８９】
ステップＳ８７において，検索により値が設定された項目に対して，入力チェックセクションが定義されていれば，その入力チェックセクションを呼び出し，その項目に対するアプリケーションの処理を行う。
【００９０】
ステップＳ８８において，値が設定された項目を派生元とする派生セクションが定義されていれば，その派生セクションを呼び出し，その項目に影響を受ける項目に対するアプリケーションの処理を行う。
【００９１】
次にステップＳ８６へ戻り，同様に処理を繰り返し，該当する項目が残っていなければ，検索実行イベントの処理を終了する。
（ｅ）明細行入力後のヘッダの項目の入力・訂正処理について
前出の仕入れ伝票１０の例のように，ヘッダ，明細行，テール部分からなる帳票の形式では，一般的に，明細行の項目やテール部分の項目は，ヘッダの項目の値により影響されることがある。仕入れ伝票１０の場合には，税区分項目１２の値によって，合計金額項目１７の値が変化する。ヘッダの項目を追加入力あるいは修正した場合に，明細行とテールにある項目は，再度，値を求め直す必要がある。
【００９２】
イベント変換制御手段３３は，明細行に値が入力された後，ヘッダの項目に戻ってその項目の値が入力・修正された場合に，修正された項目の後の項目について，入力エミュレーションを行う。各項目ごとに，値が画面から入力されたように，論理イベントを発生させ，アプリケーションプログラムとして記述された入力チェックセクションによる値のチェック，派生セクションによる派生した項目の再計算，データベースの再読み込みなどを行う。
【００９３】
図９は，明細行入力後のヘッダ項目の入力・修正の処理フローを示す。
ステップＳ９０では，入力完了の物理イベントがあったかどうか，すなわち値が入力されたかどうかを判定し，あれば，以下のステップＳ９１〜Ｓ９５を実行する。なければこの処理を終了する。
【００９４】
ステップＳ９１では，入力された項目がヘッダであるかどうかを判定し，ヘッダであれば，ステップＳ９２へ進み，そうでなければ，この処理を終了する。
ステップＳ９２において，明細行にも入力があるかどうかを判定し，既に入力があれば，処理を続け，そうでなければ，この処理を終了する。
【００９５】
ステップＳ９３では，入力がある明細行の各項目に対して，以下の処理を行う。
ステップＳ９４において，入力があった明細行の項目に対する入力チェックセクションがあれば，それを呼び出し，その項目に対するアプリケーションの処理を行う。
【００９６】
ステップＳ９５において，その項目を派生元とする派生セクションがあれば，その派生セクションを呼び出し，アプリケーションの処理を行う。
次にステップＳ９３へ戻り，同様に処理を繰り返し，該当する項目が残っていなければ，この処理を終了する。
【００９７】
（ｆ）明細行間のカーソルの移動処理
明細行の先頭の方にある項目で，データベースを読み込んでいるような場合，その後ろの項目は，読み込まれたデータベースのレコードの値に影響される。このような帳票の場合，明細行間をカーソル移動して値を修正したときには，データベースの読み込みをしなおす必要がある。
【００９８】
イベント変換制御手段３３は，カーソルが移動されて，値が入力された場合に，その項目に対して入力チェックイベントを発生して入力チェックセクションにその値を評価させる前に，明細行の先頭項目から順に入力エミュレーションを行う。つまり，項目ごとに画面から入力されたようにイベントを発生させ，入力チェックセクションによる値のチェック，派生セクションによる派生した項目の再計算，データベースの再読み込みなどを行い，これらのエミュレーションが終了した後に，実際に入力された値をその項目のイベント処理手段（アプリケーションプログラム）に渡す。
【００９９】
図１０は，明細行間のカーソル移動処理のフローを示す図である。
ステップＳ１００では，値の入力があったかどうかを判定し，あれば，以下のステップＳ１０１〜Ｓ１０７を実行する。なければこの処理を終了する。
【０１００】
ステップＳ１０１において，今回入力があった行番号と前回入力があった行番号とを比較し，今回入力された項目の明細行が，前回入力された項目の明細行より前にあれば，ステップＳ１０５の処理へ進み，後ろであれば，ステップＳ１０２へ進む。
【０１０１】
ステップＳ１０２において，現在の行の現在の項目より前の各項目に対して，ステップＳ１０３の処理およびステップＳ１０４の処理を行う。
ステップＳ１０３において，その項目に対して定義された入力チェックセクションを呼び出し，アプリケーションの処理を行う。
【０１０２】
ステップＳ１０４において，その項目を派生元とする派生セクションがあれば，その派生セクションを呼び出し，影響を受ける項目に対するアプリケーションの処理を行う。
【０１０３】
ステップＳ１０２の判定により，現在の行の現在の項目の前までのすべての項目について同様にステップＳ１０３，Ｓ１０４を繰り返し，終了したならば，ステップＳ１０５へ進む。
【０１０４】
ステップＳ１０５において，派生により現在の項目の値が書き換わっていると困るので，現在の項目に値を設定しなおす。
ステップＳ１０６において，現在の項目に対して定義されている入力チェックセクションを呼び出し，その項目に対するアプリケーションの処理を行う。
【０１０５】
ステップＳ１０７において，その項目を派生元とする派生セクションが定義されていれば，その派生セクションを呼び出し，アプリケーションの処理を行う。その後，この処理を終了する。
【０１０６】
（ｇ）フォーカスインでのスキップ
本実施例では，入力チェックセクションや派生セクションの他に，フォーカスインセクションをイベント処理手段５１の一つとして記述することができ，カーソルが対象項目に入ってきたときに，フォーカスインイベントという論理イベントにより，フォーカスインセクションを呼び出す制御が行われる。
【０１０７】
項目にフォーカスインというイベントがある場合，すでにフォーカスインのタイミングで値が決まっていて，オペレータが入力する必要がない場合がある。この場合，フォーカスインのイベントの処理として値を設定して，かつ入力スキップ（強制的にフォーカスアウト）を指定した場合，イベント変換制御手段３３は，アプリケーションプログラムが設定した値を，実際に画面から入力された値としてイベントを発生させ，入力チェックセクションによる値のチェック，派生セクションによる派生した項目の再計算，データベースの再読み込みなどを行う。すなわち，フォーカスインセクションでは，例えば値の自動設定やカーソルを強制的に移動させるための入力スキップの指定を記述することができる。
【０１０８】
エラーがある場合には，強制的なフォーカスアウトは無効になる。エラーがない場合にはフォーカスは次の項目へ移る。
図２に示したステップＳ３，Ｓ５がこの処理を行う部分である。
【０１０９】
（ｈ）一度に複数の項目の値を変更する処理
この場合にも，入力エミュレーションによって制御する。応答速度向上のため，オペレータは，一度に複数の項目を入力することができる。
【０１１０】
アプリケーションプログラムには，あたかも一度に１つの項目が入力されたかのようにイベントを発生させる。実際に入力のあったすべての項目について，このような入力エミュレーションを行う。
【０１１１】
図１１は，一度に複数の項目の値を変更する処理フローを示す図である。
ステップＳ１１１において，画面に対して複数項目の入力が行われる。
ステップＳ１１２において，入力されたすべての項目の値に対して，ステップＳ１１３からステップＳ１１６の処理を行うための判定をする。
【０１１２】
ステップＳ１１３において，項目に入力された値を設定する。
ステップＳ１１４において，入力された値に対する入力チェックセクションを呼び出し，その項目に対するアプリケーションの処理を行う。
【０１１３】
ステップＳ１１５において，その項目を派生元とする派生セクションが定義されていれば，その派生セクションを呼び出し，アプリケーションプログラムによる派生処理を行う。
【０１１４】
ステップＳ１１６において，処理対象を次の項目に進める。
ステップＳ１１２に戻り，該当する項目がなければ，この処理を終了する。
次に，ある物理イベントを初期化という論理イベントに変換する制御について説明する。アプリケーションプログラムでは，各項目ごとに必要に応じて「ＩＮＩＴ  ＳＥＣＴＩＯＮ」という宣言文を用いて初期化セクションを記述しておくことにより，初期化が必要なときに初期化イベントによって制御を得ることができる。初期化には，未入力状態にするという場合と，初期値を設定する場合の２つが考えられるがここでは区別せずに初期化にまとめる。
【０１１５】
（ｉ）画面オープン処理
画面オープンの物理イベントがあった場合，すべての項目に対して，初期化するようにする。初期化イベントのイベント処理手段がある項目，すなわち初期化セクションが定義されている項目に対しては，イベント変換制御手段３３は，その初期化セクションを呼び出し，定義されていない項目に対しては，イベント標準処理手段６により，その項目を未入力にする。初期値が入力された場合には，イベント変換制御手段３３および派生制御手段４がその派生も行うように制御する。ただし，明細行については全部未入力にする。
【０１１６】
（ｊ）画面クリア指示後の再表示処理
オペレータからの画面クリア指示があった場合，すべての項目に対して初期化するようにする。そのため，初期化イベントを発生させ，イベント処理手段（初期化セクション）５１を呼び出す。初期化セクションがない項目に対しては，イベント標準処理手段６により，その項目を未入力にする。初期値が入力された場合には，イベント変換制御手段３３および派生制御手段４がその派生も行うように制御する。ただし，明細行については全部未入力にする。
【０１１７】
（ｋ）グループ（サブ画面，明細行やテール等）クリア指示後の再表示処理
オペレータからのグループクリア指示に対し，現在注目している明細行（カーソルを含む行）のすべての項目に対して初期化するようにする。初期化イベントを発生させ，イベント処理手段（初期化セクション）５１を呼び出す。初期化セクションがない項目に対しては，イベント標準処理手段６により未入力にする。初期値が入力された場合には，イベント変換制御手段３３および派生制御手段４がその派生も行うように制御する。
【０１１８】
（ｌ）項目クリア指示後の再表示処理
オペレータから項目クリア指示があった場合，現在注目している項目に対して初期化するようにする。初期化イベントを発生させ，イベント処理手段（初期化セクション）５１を呼び出す。初期化セクションがない項目に対しては，イベント標準処理手段６により未入力にする。初期値が入力された場合には，イベント変換制御手段３３および派生制御手段４がその派生も行うように制御する。
【０１１９】
図１２は，上記（ｉ）から（ｌ）の各処理における，画面再表示処理フローを示す図である。これら処理のうち，（ｊ）の画面クリア指示後の再表示を例に，説明する。
【０１２０】
ステップＳ１２１において，対応する各項目に対して，ステップＳ１２２からステップＳ１２５の処理を行うための判定をする。該当する項目がなければ，この処理を終了する。
【０１２１】
ステップＳ１２２において，その項目に対して初期化セクションがない場合，またはその項目が明細行の項目であれば，ステップＳ１２３へ進み，そうでなければステップＳ１２４へ進む。
【０１２２】
ステップＳ１２３において，項目に未入力（ＮＵＬＬ）を設定し，ステップＳ１２１へ戻る。
ステップＳ１２４において，その項目に対して定義されている初期化セクションを呼び出し，アプリケーションで必要な初期化処理を行う。
【０１２３】
ステップＳ１２５において，その項目を派生元とする派生セクションが定義されていれば，その派生セクションを呼び出して実行した後，ステップＳ１２１へ戻る。
【０１２４】
（ｍ）未入力の明細行への新たなカーソル移動
明細行の場合には，カーソルが新しい明細行に移動するタイミングで，明細行を初期化する。明細行のすべての項目に対して初期化するようにする。すなわち，すべての項目に対して初期化イベントを発生させ，イベント処理手段（初期化セクション）５１を呼び出す。初期化セクションがない項目に対しては，イベント標準処理手段６により未入力にする。初期値が入力された場合には，イベント変換制御手段３３および派生制御手段４がその派生も行うように制御する。
【０１２５】
図１３は，未入力の明細行への新たなカーソル移動処理フローを示す。
この処理は，図３に示すステップＳ２６において行われる。
まず，ステップＳ１３１において，現在の行が未入力明細行であるかどうか判定し，未入力明細行であれば，ステップＳ１３２へ進む。ステップＳ１３２からＳ１３６の各ステップは，図１２に示すステップＳ１２１からステップＳ１２５と同様であるので説明を省略する。
【０１２６】
（ｎ）エラー発生後のカーソル移動
ある項目で何らかの理由でエラーが発生した後で，カーソルを移動しようとした場合，エラーを残さないようにするために，イベント制御手段３は，その項目を初期化する。つまり，初期化イベントのイベント処理手段（初期化セクション）５１があれば，初期化イベントを発生させ，初期化セクションを呼び出す。初期化セクションがない項目に対しては，イベント標準処理手段６が未入力にする。初期値が入力された場合には，イベント変換制御手段３３および派生制御手段４がその派生も行うように制御する。エラーは，例えばアプリケーションプログラムのイベント処理手段（入力チェックセクション等）５１から，特定のフラグなどによりイベント制御手段３に通知される。
【０１２７】
図１４は，エラー発生後のカーソル移動処理フローを示す。
この処理は，図２に示すステップＳ４において行われる。
ステップＳ１４１において，エラーの有無を判断し，エラーがあればステップＳ１４２へ進み，なければステップＳ１４６へ進む。
【０１２８】
ステップＳ１４２において，その項目の初期化セクションの有無を判定し，あればステップＳ１４３へ進み，なければステップＳ１４５へ進む。
ステップＳ１４３において，初期化セクションを呼び出す。
【０１２９】
ステップＳ１４４において，その項目を派生元とする派生セクションがあれば，その派生セクションを呼び出す。その後，ステップＳ１４６へ進む。
ステップＳ１４５において，初期化セクションがない場合，項目にＮＵＬＬを設定し，未入力とする。
【０１３０】
ステップＳ１４６において，カーソルを次の項目へ移動する。
以上の説明から明らかなように，本実施例では，各種の物理イベントをイベント変換制御手段３３により，初期化イベント，入力チェックイベント，派生イベント，フォーカスインイベントという４つの論理イベントに変換し，イベント処理手段５１のイベント駆動を行う。すなわち，アプリケーションプログラムとしてのイベント処理手段５１では，初期化イベント，入力チェックイベント，派生イベント，フォーカスインイベントという論理イベントの発生時に各項目に対して必要な処理を，それぞれ初期化セクション，入力チェックセクション，派生セクションまたはフォーカスインセクションとして記述するだけでよく，まったく制御機構を意識することなく，数少ない論理イベントに対応する処理を記述するだけで，事務処理等に必要なすべての処理を実現することができる。
【０１３１】
【発明の効果】
本発明によれば，次の効果により，アプリケーションプログラムの生産性を大幅に向上させることが可能となる。
【０１３２】
（イ）１つのアプリケーションプログラムにおいて，記述するイベント処理手段は，抽象度が高く，多くの物理イベントに対応している。このため従来では，何度も記述する必要があった処理の記述を一度で済ませることができる。イベントは互いに独立しているので，イベントが異なれば同じ処理を記述する必要はほとんどなくなる。
【０１３３】
（ロ）制御を記述する必要がない。制御機構は，記述するべきアプリケーションプログラムとは独立している。
（ハ）記述するイベント処理手段の抽象度が高いため，部品化することが可能である。本発明の制御方式により制御される項目部品は，カプセル化されているので，汎用性が非常に高く，他のアプリケーションプログラムにも利用することが可能である。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】本発明の一実施例における全体処理フローを示す図である。
【図３】本発明の一実施例における全体処理フローを示す図である。
【図４】本発明の一実施例における表示画面を示す図である。
【図５】本発明の一実施例におけるイベント処理手段の定義例を示す図である。
【図６】本発明の一実施例における明細行の複写処理フローを示す図である。
【図７】本発明の一実施例における明細行の削除処理フローを示す図である。
【図８】本発明の一実施例における検索指示の物理イベントに対応する処理フローを示す図である。
【図９】本発明の一実施例における明細行入力後のヘッダ項目の入力・修正処理フローを示す図である。
【図１０】本発明の一実施例における明細行間のカーソル移動処理フローを示す図である。
【図１１】本発明の一実施例における一度に複数の項目の値の変更処理フローを示す図である。
【図１２】本発明の一実施例における画面クリア指示後等の再表示処理フローを示す図である。
【図１３】本発明の一実施例における未入力の明細行への新たなカーソル移動処理フローを示す図である。
【図１４】本発明の一実施例におけるエラー発生後のカーソル移動処理フローを示す図である。
【符号の説明】
１      ディスプレイ装置
２      ディスプレイ制御手段
３      イベント制御手段
３１    イベント受け付け手段
３２    イベント振り分け手段
３３    イベント変換制御手段
３３ａ  入力完了イベント制御手段
３３ｂ  検索実行イベント制御手段
３３ｃ  明細行複写イベント制御手段
３３ｄ  フォーカスイン制御手段
３４    表示制御・エラー制御手段
４      派生制御手段
５      応用処理手段
５１    イベント処理手段
【図１】
0003560253.tif 000002
【図２】
0003560253.tif 000003
【図３】
0003560253.tif 000004
【図４】
0003560253.tif 000005
【図５】
0003560253.tif 000006
【図６】
0003560253.tif 000007
【図７】
0003560253.tif 000008
【図８】
0003560253.tif 000009
【図９】
0003560253.tif 000010
【図１０】
0003560253.tif 000011
【図１１】
0003560253.tif 000012
【図１２】
0003560253.tif 000013
【図１３】
0003560253.tif 000014
【図１４】
0003560253.tif 000015