JPH10232768A - グラフィカル ユーザー インタフェース システム及び方法 - Google Patents

グラフィカル ユーザー インタフェース システム及び方法

Info

Publication number
JPH10232768A
JPH10232768A JP33341897A JP33341897A JPH10232768A JP H10232768 A JPH10232768 A JP H10232768A JP 33341897 A JP33341897 A JP 33341897A JP 33341897 A JP33341897 A JP 33341897A JP H10232768 A JPH10232768 A JP H10232768A
Authority
JP
Japan
Prior art keywords
block
screen
executed
interface
inquiry
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.)
Pending
Application number
JP33341897A
Other languages
English (en)
Inventor
Samuel Joseph Wagner
ジョセフ ワグナー サムエル
Gary Ray Young
レイヤング ガリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NCR International Inc
Original Assignee
NCR International Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NCR International Inc filed Critical NCR International Inc
Publication of JPH10232768A publication Critical patent/JPH10232768A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/962Operator interface for marketing or sales
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/965Operator interface with visual structure or function dictated by intended use for process control and configuration
    • Y10S715/966Computer process, e.g. operation of computer
    • Y10S715/967Visual or iconic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Digital Computer Display Output (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

(57)【要約】 【課題】 NICEダイナキー(商標)POS外部イン
ターフェースを生成するための一般的なシステムおよび
方法を提供し、インターフェース・パスを試験する方法
を提供し、上記インターフェースを実行時間システム内
に組み込む方法を提供する。 【解決手段】 人間インターフェースおよびソフトウェ
アのスタッフの作業が、NICEカスタム化されれたD
K品目/DKリスト対象を使用して、インターフェース
の作成および修正と平行して行われ、上記インターフェ
ースが外部にあるために、実行時間コードを始終変更す
ることなく、有意の量のインターフェース保守を行い、
作成プログラムおよびテスター・プログラム用の多くの
コードが汎用であり、複雑でイベント被駆動実行時間コ
ードの大部分が再使用可能であるために、従来技術の方
法と比較すると価格の安い販売時点情報管理システム、
ウィンドウズ・ダイナキー(商標)または等価インター
フェース用のビルダー、テスターおよび実行時間の組み
込み方法。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概して、グラフィ
カル・ユーザ・インターフェースの組立て、試験および
組み込みに関するもので、ダイナキー(商標)販売時点
情報管理システム(POS)への一実施形態の場合に
は、それにより実行時間コードとは無関係にインターフ
ェースの設計、試験および保守が行われる。
【0002】
【従来の技術、及び、発明が解決しようとする課題】近
年、種々の場所でグラフィカル装置が使用されるように
なってきている。「チェックアウト」小売り店用に設計
されたそのような装置の一つにNCR社のダイナキー販
売時点情報管理システム(POS)がある。この製品
は、使用方法を教えるのに掛かる時間を短縮し、POS
オペレータのミスを少なくし、オペレータの生産性を向
上させるために特に設計されたものである。上記ダイナ
キー(商標)装置は、(LCD)スクリーンのすぐ右に
配置されている八個の物理的キーを持つ。これらのキー
は、動的なもので、二本のライン・ラベルとオプション
としてのアイコンが各ダイナキーのすぐ左に表示され、
種々のスクリーンがLCD上に表示されたとき、この情
報を変化させることができる。また、この装置は、スク
リーンのあるグループから他のグループに切り替えるこ
とができるグローバルキーと呼ばれる物理的キーを持
つ。また、データ入力用の物理的キーもある。最後に、
電子レシート内を上下にスクロールするために使用され
る二つのカーソルキーもある。この装置用のソフトウェ
アは、NICEDK品目およびDKリスト・スクリーン
対象物によりサポートされていて、上記各対象物はNI
CE制御の集まりである。各スクリーンのレイアウト
は、タイトル領域およびアイコン、命令領域、プロンプ
ト領域、入力領域、電子レシート領域、小計領域、合計
領域を含む普通のものであり、これらすべての領域は、
スクリーンの左側に表示される。各スクリーンの右側に
は、使用中の各ダイナキーに対応するラベルおよびアイ
コンが表示される。
【0003】新しいPOS用途の場合には、人間インタ
ーフェース(HI)スタッフは、通常、このようなLC
Dスクリーンを100以上設計する。その場合、顧客お
よびソフトウェアのエンジニアにどうしたらその内容を
最もよく理解してもらえるかという問題が起こってく
る。現在行われている一つの方法は、インターフェース
のレイアウトを行う際に、HIスタッフに、マイクロソ
フト(登録商標)のパワーポイント(登録商標)のよう
なツールを使用してもらうという方法である。もちろ
ん、そうした場合、その作業が最終的なインターフェー
スに直接貢献しないという問題が起こってくる。すなわ
ち、プログラマーはHI設計を取り上げ、プログラミン
グを開始しなければならない。さらに、どの設計の場合
でもそうだが、設計を繰り返して行わなければならない
ので、問題はさらに厄介なものになる。
【0004】もっと良い方法は、HIスタッフに、イン
ターフェースを組み立てるのに、ウィンドウズ、メニュ
ー、ダイアログおよびDK品目およびDKリスト対象物
を使用する、ビルダー・ツール(以後、「ビルダー」、
「ビルダー・ツール」および/または「<B>」と呼ぶ
を使用してもらうことである。このアイデアを使用すれ
ば、プログラマーでない人でもインターフェースを正確
に迅速に組立ることができる。組み立た後で、この実際
の外部インターフェースを、定義されたいくつかのダミ
ー入力レベル・ロジック(ELL)機能を持つ、スケル
トン実行時間システム(以後、「実行時間システム」お
よび/または「<R>」と呼ぶ)により読むことができ
る。その結果、HIスタッフは、インターフェースが実
際にどのような外観を持っているか、どのような感触を
持っているかについてのフィードバックを非常の速く入
手することができる。また、HIスタッフは、エラーを
修正し、インターフェースを微調整するときに、改善を
行うことができる。また、汎用テスター・プログラム
(以後、「テスター」、「テスター・ツール」および/
または「<T>」と呼ぶ)を使用することにより、HI
スタッフは別の方法で、人が種々のキーを押し、スキャ
ナのような種々の周辺機器を使用しているかのように、
システムの実行をチェックすることにより、自分達の作
業を判断することができる。設計者が、うっかり特定の
スクリーンを組み立てるのを忘れた場合には、<T>が
設計者に誤りを知らせ、設計者はもう一度、問題を修正
するのに<B>を使用することができる。ソフトウェア
・スタッフは、またシステムを設計し、組み立てる際
に、正しいELL機能が指定されているかどうかをチェ
ックするのに<T>を使用することができる。
【0005】最後に、ダイナキー(商標)システムが、
顧客のところで使用されたときに、多くの場合、<R>
を変更しないで、インターフェースを修正することがで
きることが望ましい。例えば、二つのダイナキーの機能
を相互に交換したい場合が出てくる。それ故、従来の方
法より安価で、設計から実行までをもっと正確に行うこ
とができ、プログラマーでない人でもかなりの設計作業
および保守作業を行うことが出きる実行時間システム
に、ダイナキー(商標)インターフェースを組立て、試
験し、組み込むための方法を提供することが望ましい。
本発明は、NICEダイナキー(商標)POS外部イン
ターフェースを生成するための一般的なシステムおよび
方法を提供し、インターフェース・パスを試験する方法
を提供し、上記インターフェースを実行時間システム内
に組み込む方法を提供する。
【0006】
【課題を解決するための手段】ダイナキー(商標)イン
ターフェースを生成する方法は、正しいスクリーン・セ
ットを選択するステップと、そのスクリーンを一度に一
つずつ組立るステップとを含む。個々のスクリーンを生
成する方法は、スクリーン・タイプを宣言するステップ
と、スクリーン・テキストを入力するステップと、スク
リーン・アイコンを選択するステップと、データを入力
する場合には、すべてのELL機能およびデータ・サイ
ズの範囲を選択するステップと、グローバルキーおよび
周辺機器の中のどれを使用することができるかを表示す
るステップと、必要なローカルおよび非ローカル・スク
リーン分岐を割り当てるステップとを含む。
【0007】上記インターフェースを試験する方法は、
外部インターフェースのスクリーンの各セットを試験す
る。この試験は、第一のスクリーン・セットのレシート
領域内に、スクリーン・セット名および最初のスクリー
ン番号を入力することによるスタートする。その後、ア
クティブなダイナキーおよび周辺論理情報が、第一のダ
イナキーのデータがスタックの一番上にくるように、ス
タック構造体内に置かれる。次に、スタックがポップ
し、その関連情報が、数秒間、DK品目/DKリストの
レシート領域に表示され、分岐が行われて、新しい論理
情報がスタックの一番上に置かれ、一番上の項目が再び
スタックからポップする。このプロセスは、すべてのス
クリーン・セットの分岐が完了するまで継続して行われ
る。特定のスクリーンが毎回再度表示される場合には、
その論理データはすべて、スタック上に二度置かれるこ
とはない。分岐が他のスクリーン・セットに向かって行
われた場合には、そのスクリーン・セット名だけが表示
される。その後、他のスクリーン・セットが試験され
る。スクリーン番号が存在しない場合には、その番号は
エラー・メッセージと一緒にポップアップ・ウィンドウ
内に表示される。テスターは、例えば、スペース・バー
を押すことにより、任意の時間に動作を中断することが
でき、例えば、数字キーを押すことにより、終了するこ
とができる。
【0008】上記外部インターフェースを実行時間シス
テムに組み込む方法は、このインターフェースをメモリ
のプログラム構造体内に読み込み、記憶する一連のステ
ップを実行することによりスタートする。次に、スクリ
ーン対象物を正しく表示させるのに必要なウィンドウズ
・コマンドを作成するために、外部ファイルの情報を使
用して、DK品目またはDKリスト対象物のどちらかを
生成することにより、第一のダイナキー(商標)スクリ
ーンがペイントされる。次に、ELL機能コードを、正
しい機能を実行にマップするステップが与えられる。最
後に、表示する次のスクリーンを決定するステップが与
えられる。本発明の方法は非常に効率的である。何故な
ら、実際の外部インターフェースを生成するために、人
間インターフェースおよびソフトウェア・スタッフが平
行して作業を行い、大部分のインターフェースの生成
を、周知のウィンドウズ環境に含まれているメニューお
よびダイアログを使用して実行することができるからで
ある。
【0009】本発明の他の目的は、ソフトウェアおよび
人間インターフェース・スタッフが見ることができる試
験スクリーンのレシート領域内に情報を提供しながら、
すべてのスクリーン分岐を視覚的に試験する汎用テスタ
ー・プログラムを提供することである。本発明のさらに
もう一つの目的は、実行時間システムで、多くの複雑な
コードを再使用できるようにすることである。このコー
ドは、ダイナキー(商標)上でウィンドウズをペイント
するコードと、イベント被駆動メッセージを処理するコ
ードと、ELL機能を呼出すコードと、DK品目および
DKリスト・スクリーンを生成し、削除するコードとを
含む。
【0010】
【発明の実施の形態】図1について説明すると、システ
ム10は、外部インターフェースを組立て、保守作業を
行い、試験するために使用される。このシステム10
は、コンピュータ12、CRT14、メモリ16、ハー
ドディスク18、フロッピー・ディスク20、キーボー
ド22、マウス24およびプリンタ26を含む。図2に
ついて説明すると、システム28は、小売りシステムで
あり、コンピュータ30、ダイナキー(商標)32、メ
モリ34、ディスク36、プリンタ38、現金収容引出
し40、スキャナ42、2x20ディスプレイ44を含
むことができる。好適な実施形態の場合には、システム
10は、通常の開発システムであり、コンピュータ12
は、インテル(登録商標)486またはペンチアム(登
録商標)コンピュータであり、CRT14はVGAモニ
タであり、メモリ16は少なくとも16MBの容量のR
AMであり、ハードディスク18は少なくとも1.2G
Bの二次記憶装置であり、フロッピー・ディスク20は
3.5インチの柔軟なディスクを使用し、キーボード2
2は通常のPCキーボードであり、マウス24はマイク
ロソフト社のマウス・パッドまたは相当品であり、プリ
ンタ26はPC互換レーザ・プリンタまたはインク・ジ
ェット・プリンタである。
【0011】好適な実施形態の場合には、システム28
は、小売り店で使用されるダイナキー(商標)システム
である。コンピュータ30は、NCR 7450 PC
であるが、通常のインテルをベースとするPCであって
もよい。ダイナキー(商標)32は、10インチのNC
Rダイナキー(商標)(カラーまたはモノクロ)であ
り、メモリ34は16MBまたはそれより容量が大きい
RAMであり、ディスク36はオプションで、少なくと
も500MBの容量を持つ二次記憶装置であり、プリン
タ38はNCRプリンタまたは相当品であり、現金収容
引出し40は、NCR現金収容引出しまたは相当品であ
り、スキャナ42はNCR 7870またはNCR 7
890スキャナまたは他の業者の製品であり、44はN
CRまたは他のメーカーの2x22ディスプレイであ
る。
【0012】図12から図23においては、ビルダー・
ツール<B>は、新しいダイナキー(商標)インターフ
ェースを組立てたり、現在のダイナキー(商標)インタ
ーフェースを修正するのに使用される。フローチャート
の個々の部分を検討する前に、全体的なことについてい
くつか説明することにする。最初に、すでに説明したよ
うに、このインターフェースは、外部インターフェース
であり、五つのASCIIファイルからなっている。そ
のファイル名のサフィックスが「.csv」である第一
のファイルは、主ファイルで、コンマで区切られた可変
ファイルである。このテキスト・ファイルは、各DK品
目およびDKリスト・スクリーンに対して、四つの異な
るレコード・タイプを持つ。例えば、図3の販売品目メ
ニュー・スクリーン201を表すために、図9を考えて
みよう。最初に、各「.csv」ファイル300に最初
に表示される四つのヘッディング・ライン301−30
4があることに留意されたい。これらラインは、異なる
レコード・フィールドに対する文書化を提供する。次
に、一つの「1」レコード311、五つの「2」レコー
ド312、一つの「3」レコード313、および二つの
「4」レコード314を検討してみよう。この場合、各
ラインの最初のフィールドはレコード・タイプである。
「1」レコードは、各DK品目およびDKリスト・スク
リーンに対して存在し、「2」のレコードの数はそのス
クリーンに対して使用されているダイナキーの数と対応
する。一つの「3」レコードは何時でも使用され、
「4」レコードの数は種々に変化するが、何時でも一つ
は存在する。
【0013】要するに、第一のレコード・タイプは主と
してダイナキーでないスクリーン・テキストをコード化
するためにに使用されるが、この場合、テキストは数と
してコード化される。テキストの数がゼロである場合に
は、テキスト・フィールドが使用されていないことを意
味する。第二のレコード・タイプは、使用中の各ダイナ
キーに対するスクリーン・ダイナキー情報をコード化す
る。第三のレコード・タイプは、スクリーンがダイナキ
ー(商標)上に現れ、後で説明するいくつかの他のもの
が現れたとき、どのグローバルキーおよび周辺機器にア
クセスすることができるかを示す。第四のレコード・タ
イプは、<入力>、周辺、およびダイナキー「2」レコ
ード・タイプに表示される情報に類似のイベント被駆動
論理情報を示す。
【0014】そのファイル名のサフィックスが「.da
t」である第二のインターフェース・ファイルは、デー
タ・ファイルであり、第一のインターフェース・ファイ
ルに直接関連する。例えば、図9の「1」レコード31
1では、第三のフィールドは29という数値を持つ。こ
のことは、「.dat」ファイルにおいては、29番目
のレコードは、「販売品目メニュー」のタイトル・テキ
ストを含むことを意味する。再び、図3について説明す
るが、このスクリーン・タイトル・フィールド202
は、この正確なテキストを含んでいることに留意された
い。そのファイル名のサフィックスが「.key」であ
る第三のインターフェース・ファイルは、使用中である
ことを示すグローバル・キーお、スクリーン・セット名
および<B>および<R>により使用される他の情報を
示す。そのファイル名のサフィックスが「.1st」で
ある第四のインターフェース・ファイルは、ダイナキー
(商標)上に表示される第一のスクリーン番号を含む。
最初の数値は<B>によるものであるが、後でこの数値
は<R>より修正することができる。
【0015】そのファイル名のサフィックスが、fin
ishの略語である「.fin」である、第五のインタ
ーフェース・ファイルは、<B>によってのみ使用さ
れ、すべてのスクリーンが組立られる前にビルダーを終
了させることができる。その後、<B>を再スタートさ
せると、スクリーンの作成を継続するために、ファイル
に含まれているスタック情報が<B>により使用され
る。再び、図12から図23までのフローチャートにつ
いて説明すると、<B>の実行はブロック100からス
タートし、ブロック102まで継続して行われ、ここで
新しいインターフェースを生成するのか、現在のインタ
ーフェースを開くのかについての決定を行うための問い
合わせが行われる。この問い合わせは、「新規」および
「開く」の選択により、ウィンドウズ・ファイルを形成
することにより行われる。
【0016】ブロック102を実行している時、問い合
わせの結果が「イエス」であった場合には、新しいイン
ターフェースを生成することを意味する。そして、次に
ブロック104−114が実行される。ブロック104
においては、新しいインターフェース・プリフィックス
名が「autopos1」に設定され、その後、そのイ
ンターフェースを含む五つのファイル名が、この同じプ
リフィックスを持つ。新しいインターフェース・ファイ
ルの一つは、既に存在するものと見なされ、そのファイ
ルは、「autopos1.key」ASCIIファイ
ルである。このコンマで分離された変数ファイルの各レ
コードは、スクリーン・セットに関連する。この最初の
二つのフィールドは、スクリーン・セット名を含む。第
二の名前が使用されない場合には、テキストは、「N
A」である。上記スクリーン・セットのいくつかは、ダ
イナキー(商標)上のグローバルキーに関連するが、他
のスクリーン・セットは関連しない。第三および第四の
フィールドは、横列および縦列で、ダイナキー上の位置
を示す。スクリーン・セットがグローバルキーでない場
合には、これら二つのフィールドの数値はゼロである。
スクリーン・セットを他のスクリーン・セットから分岐
できる場合には、第五のフィールド数値は1であり、そ
うでない場合にはゼロである。例えば、グローバルキー
が種々雑多の作業に使用される場合には、通常、グロー
バルキーは他のスクリーン・セットへまた他のスクリー
ン・セットから分岐することはできない。一方、品目を
購入する際に使用されるスクリーンのセットである「品
目、メニュー」セットは、多くの場合、他のスクリーン
・セットから分岐することができる。第六のフィールド
は、「黒板」フィールドと呼ばれ、使用されている場合
には、その数値は1である。このフィールドの内容につ
いては後で説明する。第七のフィールドは、そのセット
の最初のスクリーン番号を示す。最初この数値はゼロで
あり、スクリーン・セットが<B>により形成された
時、修正される。第八のフィールドは、ダイナキー(商
標)上のグローバルキーの表示に関連する機能番号を示
す。しかし、「.key」の入力の中のいくつかは、グ
ローバルキーに関連していない。それ故、これら入力の
フィールド値はゼロである。このフィールドが役に立つ
ことは、<R>フローチャートのところで明らかにな
る。第九そして最後のフィールド値は、最初に構成され
るセットを除いては、各入力に対してゼロである。
【0017】続いて、ブロック106が実行され、イン
ターフェース・ファイルが開かれる。さらに、ELL名
を含む一つの支持ファイルが開かれる。次に、ブロック
108が実行され、「autopos1.key」入力
インターフェース・ファイル、および「keylogi
c.dat」が読み取られる。これらのファイルの関連
レコード情報は、その後、構造体の二つの異なるアレイ
内に記憶される。次に、ブロック110が実行され、変
数「iCurrentScreen」が1に初期化さ
れ、「iLastScreen」および「iLastB
utton」がゼロに初期化される。これら三つの変数
は、構成される各DK品目/DKリスト・スクリーンの
レシート領域に表示される。この情報は、現在のCRT
14スクリーンが、前のスクリーンとどのように関連し
ているのかを追跡する際の助けになる。スクリーンが構
成されると、上記三つの変数は、「.csv」インター
フェース・ファイルに、「1」レコードの一部として記
憶される。
【0018】続いて、図12のブロック112に接続し
ているコネクタAに留意されたい。このコネクタは、ぞ
れぞれの新しいスクリーンを構成した後で、通常さらに
新しいスクリーンを構成する必要があるときに必要にな
る。それ故、図12の以降のフローチャートから、後戻
りしてコネクタAに分岐する必要がある。ブロック11
2が実行されると、二つのことが起こる。最初に、DK
品目またはDKリストのどちらのタイプのスクリーンを
構成しなければならないかを示すスクリーン・メニュー
から選択が行われる。この選択はマウスを使用して行わ
れるので、メニュー品目は、この目的のための周知のウ
ィンドウズ方法を使用してチェックされる。二番目に、
スクリーン・タイプが分かったら、スクリーンに対する
暫定構造体が初期化される。本質的には、この初期化に
より、「DK品目 Stub」または「DKLis S
tub」であるスクリーンに対するテキストが初期化さ
れる。スクリーン・テキストの残りすべては、ゼロ・ス
トリングにセットされ、どのダイナキーも使用されてい
ないと見なされる。次に、ブロック114が実行され、
最初のタイトル・テキストを使用して、CRT14上で
特定のNICEスクリーンがペイントされる。また、C
RT14スクリーン上においては、レシート領域内に二
行のテキストが存在する。例えば、第一の時間ブロック
114が実行され、第一の行は、ストリング「現在スク
リーン:1」であり、第二の行はストリング「Last
Screen:0 Last Button 0」であ
る。続けて、図13のコネクタDに対して分岐が行われ
る。このフローチャートについては、後でさらに詳細に
説明する。
【0019】ブロック102での問い合わせの結果が
「ノー」である場合には、現在のインターフェースを修
正する必要があり、ブロック116−126の予備ステ
ップが実行される。最初に、ブロック116が実行さ
れ、その結果、適当な「.csv」インターフェース・
ファイルが選択される。このブロックは、ユーザがファ
イル・メニューから「開け」メニュー項目を選択した場
合に実行される。その後、ウィンドウズ共通ファイル・
ダイアログ方法を使用することにより、ディスク上の特
定のディレクトリの常駐しているすべての現在の「.c
sv」ファイルから容易に選択することができる。続い
て、ブロック118までプログラムの実行が継続して行
われ、そこで五つのインターフェース・ファイルおよび
一つの支持ファイルが開かれる。次に、制御がブロック
120に渡され、そこですべての入力レコード情報が読
み取られ、種々のアレイ内に記憶される。次に実行され
るブロックは、ブロック122であり、このブロックは
コネクタBに接続している。このコネクタについては、
下記に明確に説明する。ここでは、構成された第一のセ
ットが、その最初のスクリーンが最初に表示されるスク
リーン・セットであると仮定しよう。しかし、一般的に
いって、「.fin」ファイルが新しいファイルを構成
しなければならない場合には、最初の「.fin」レコ
ード情報を使用するダミーのスクリーンが表示される。
続いて、ブロック122が実行されると、「iCurr
entScreen」、「iLastScreen」お
よび「iLastButton」値が初期化される。こ
の情報は、その最後のフィールド値が1である「.ke
y」ファイルに関連するスクリーンから入手される。ま
たは、上記情報は「.fin」ファイルからも入手する
ことができる。次に、ブロック124が実行され、スク
リーンの暫定構造体が、現在のスクリーン情報を使用し
て更新される。最後に、ブロック126が実行され、現
在のスクリーンが、そのテキストおよびアイコン情報を
使用して、CRT14上でペイントされる。
【0020】ブロック116−126が実行されると、
ブロック128において問い合わせが行われる。このブ
ロックがコネクタCに接続していることに留意された
い。このコネクタが必要な理由は、<B>により修正し
たばかりの任意のスクリーンに以降の修正を行うためで
ある。続いて、ブロック128での問い合わせの結果が
「ノー」である場合には、現在のスクリーンを修正しな
ければならないことを意味し、ブロック130が実行さ
れる。この問い合わせの結果が「イエス」である場合に
は、表示スクリーンをさらに修正するために、七つのレ
イアウト・メニュー選択を行わなければならないことを
意味し、ブロック114を実行した後で行ったように、
Dに向かって分岐が行われる。これについても、後でさ
らに詳細に説明する。ブロック130での問い合わせの
結果が「ノー」である場合には、ブロック132が実行
される。この問い合わせの結果が「イエス」である場合
には、表示スクリーンを変更するために保守メニュー項
目を使用しなければならず、図23のコネクタQに向か
って分岐が行われる。このフローチャートについては後
で説明する。この問い合わせの結果が「ノー」である場
合には、ファイルを任意にセーブし、次に行うことを決
定するために図21のコネクタOに向かって分岐が行わ
れる。このフローチャートについても後で説明する。
【0021】ブロック128に戻って説明する。この問
い合わせの結果が、新しいスクリーン・セットまたは個
々のスクリーンのアクセスする必要があることを示す、
「イエス」である場合には、上記選択に含まれるステッ
プを実行するために、図22のコネクタPに向かって分
岐が行われる。このフローチャートについても後で説明
する。ここで、図12のフローチャートについての説明
を終わる。説明が残っているのは、二つのスクリーン保
守メニュー、スクリーン・セット選択メニューの使用法
およびインターフェースのディスクへのセーブである。
図13について説明する。二つの場合に、図13のフロ
ーチャートで、コネクタDに向かって分岐が行われたこ
とを思いだしてほしい。第一のケースは、図12のブロ
ック114の後で実行されるもので、新しいスクリーン
を構成しなければならない場合である。第二のケース
は、同じレイアウト・メニュー選択のいくつか、または
すべてを使用して、現在のスクリーンを修正しなければ
ならない場合である。続いて、CRT14上の現在の表
示スクリーンと一緒に、七つのレイアウト・メニュー選
択のどれを使用しなければならないかを判断するため
に、ブロック134−146において一連の問い合わせ
が行われる。上記問い合わせのどれかの結果が「イエ
ス」である場合には、それぞれコネクタE、F、J、
K、L、MおよびNに向かって分岐が行われる。これら
のコネクタは図14−図20の連続フローチャートに順
次表示してある。これらフローチャートについて簡単に
説明する。図13のすべての問い合わせの結果が「ノ
ー」である場合には、図22のコネクタPに向かって分
岐が行われる。ここで、以降の修正を行う前に、新しい
スクリーン・セットまたは個々のスクリーンにアクセス
することができる。ユーザが最初にレイアウト・メニュ
ーを使用し、気が変わった場合には、終了するためのP
に向かっての分岐が図示されている。この分岐は脱出パ
スを示す。七つのレイアウト・メニュー選択の説明を、
図14からスタートする。
【0022】図14のフローチャートの目的は、識別テ
キストと一緒に、CRT14のスクリーンの一番上にダ
イアログを表示することである。例えば、図3のLCD
ディスプレイにまで戻って参照してほしい。第一のテキ
スト・フィールドはタイトル・フィールドであり、その
テキストは「販売品目メニュー」である。第二のテキス
ト・フィールドは、三行の命令からなり、この場合は、
第一の行だけが使用されている。その内容は、「品目走
査、入力または変更」である。次の二つのフィールド
は、隣接フィールドである。左端のフィールドはプロン
プト・フィールドであり、後退して見える右端のフィー
ルドは入力フィールドである。入力フィールドに一定の
テキストを表示することができるようになっている理由
は、スクリーンが最初に表示された時、デフォールト値
を表示するためである。テキスト・フィールドの残り
は、八つのダイナキーに関連し、各ダイナキーは二つの
行ラベルを含むことができる。ダイナキーを使用しなけ
ればならない場合には、二行の中の一行に書き込みを行
わなければならない。
【0023】図14のフローチャートについて説明す
る。ブロック148が最初に実行され、現在のテキスト
を表示するために、暫定構造体情報を使用して、テキス
ト・ダイアログが表示される。次に、ブロック150で
問い合わせが行われる。この問い合わせの結果が「イエ
ス」である場合には、ダイアログに対して行われたすべ
ての変更は捨てられ、第二のレイアウト・メニュー選択
を使用するために、図15のコネクタFに向かって分岐
が行われる。この問い合わせの結果が「ノー」である場
合には、ブロック152が実行され、テキスト・フィー
ルドが修正される。このプロセスを行うには、通常のワ
ープロの操作のように、マウスとキーボードとが必要で
ある。その後、ダイアログの内容が正しいかどうかを判
断するために、ブロック154において問い合わせが行
われる。この問い合わせの結果が「ノー」である場合に
は、ダイアログをキャンセルすべきか、テキストを変更
すべきかを判断するために、ブロック150に向かって
分岐が行われる。この問い合わせの結果が「イエス」で
ある場合には、ブロック156が実行され、DK品目/
DKリスト暫定構造体を更新するために、現在のダイア
ログの内容が使用される。しかし、最後のレイアウト・
メニュー選択が終了するまで、この変更は一次的なもの
に留まる。次に、ブロック158が実行され、現在のC
RT14スクリーン・テキスト・フィールドが修正され
る。最後に、第二のレイアウト・メニュー選択に対応す
るステップを実行するために、Fに向かって分岐が行わ
れる。これで図14の説明を終わる。
【0024】図15のフローチャートの目的は、現在の
CRT14スクリーンの一番上に、アイコン・ダイアロ
グを表示することである。アイコンは、タイトル行およ
び第一のレイアウト・メニュー選択により、テキストを
与えられたアクティブな各ダイナキーに割り当てられ
る。ダイアログの最初の状態において、「−−>」マー
カーを「タイトル・アイコン」ダイアログの左に移動す
る。このテキストの後ろに、「ダイナキー1」から「ダ
イナキー8」までのテキスト行が表示される。ダイアロ
グ上の「リスト・ボックス」は、アルファベット順のN
ICEアイコン名を含む。リスト・ボックスの上には、
タイトル行に対する現在のアイコン名表示され、何も使
用されていない場合には、デフォールト・アイコン名
「右」が表示される。また、この名前はリスト・ボック
スで強調される。図15のブロック160について説明
する。ブロック160が実行されると、CRT14の一
番上にアイコン・ダイアログが表示されるが、現在のス
クリーン・アイコンも依然として表示される。次に、す
べてのアイコンを「右」アイコン名にセットすべきかど
うかを判断するために、ブロック162が実行される。
これが、すべてのアイコンを一度に一つずつセットする
のではなく、すべてのアイコンを共通のアイコン名にセ
ットする簡単な方法である。この問い合わせの結果が
「イエス」である場合には、ブロック164が実行さ
れ、暫定構造体内のアクティブなアイコンすべてに名前
「右」が与えられる。この名前は、「.rc」ファイル
に表示され、NICEディスク・ディレクトリ内の正し
いパス、および実際の「right.ico」ファイル
名と一致する。次に、ブロック166が実行される。そ
の結果、ユーザにフィードバックするために、DK品目
/DKリスト・スクリーンが直ちに更新される。その
後、図15のコネクタIに向かって分岐が行われ、そこ
でブロック194が実行される。この問い合わせの結果
が「ノー」である場合には、さらにダイアログの変更を
行う必要があり、ブロック162に向かって分岐が行わ
れる。この問い合わせの結果が「イエス」である場合に
は、ブロック196が実行され、暫定スクリーン構造体
が更新される。次に、第三のレイアウト・メニュー作業
を行うために、図16のコネクタJに向かって分岐が行
われる。このフローチャートは、現在のフローチャート
の説明が終了してから説明する。
【0025】再び図15のブロック162について説明
すると、この問い合わせの結果が「ノー」である場合に
は、ブロック168が実行される。この問い合わせの結
果が「イエス」である場合には、ブロック170が実行
される。このブロックは、すべてのアクティブなアイコ
ン名が「右」の代わりに「左」になっていることを除け
ば、ブロック164に類似している。その後、Gに向か
って分岐が行われる。こフローチャートのこの部分につ
いてはすでに説明した。ブロック168での問い合わせ
の結果が「ノー」である場合には、ブロック172が実
行される。この問い合わせの結果が「イエス」である場
合には、ブロック174が実行される。この場合には、
現在のアイコンだけが「右」に変更される。次に、ブロ
ック176が実行され、アイコン・マーカーが前進し、
新しいアイコン名を反映するように、リスト・ボックス
が変更される。また、アイコン・ボックスの上のボック
スにも新しいアイコン名が与えられる。その後、今まで
のように、Gに向かって分岐が行われる。続いて、ブロ
ック172での問い合わせの結果が「ノー」である場合
には、ブロック178が実行される。この問い合わせの
結果が「イエス」である場合には、コネクタHに分岐が
行われる前に、ブロック180が実行される。しかし、
この場合、ラップ・アップ作業が行われる前に、現在の
アイコン名が「左」に変更される。ブロック178での
問い合わせの結果が「ノー」である場合には、ブロック
182が実行される。この問い合わせの結果が「イエ
ス」である場合には、ブロック184が実行され、コネ
クタGに向かって分岐が行われる前に、すべてのアイコ
ン名が削除される。ブロック182での問い合わせの結
果が「ノー」である場合には、アイコン・ショートカッ
トを行う必要はなく、ブロック186が実行される。こ
の問い合わせの結果が「イエス」である場合には、ブロ
ック188が実行される。このブロックのを実行する目
的は、リスト・ボックスの上のダイアログ・ボックス内
のユーザ・タイプに、新しいアイコンを選択させること
である。上記名前の各文字がタイプされるので、リスト
・ボックス内でその効果が観察され、最初の文字がタイ
プしたものと一致した場合には、名前が強調される。こ
のようにして、ユーザは、大部分の場合、名前全体をタ
イプしなければならない。続いて、Hに向かって分岐が
行われる。何故なら、これは単一のアイコン変更だから
である。ブロック186での問い合わせの結果が「ノ
ー」である場合には、ブロック190が実行される。こ
のブロックの目的は、アイコン・マーカーを、それがタ
イトル・テキストであっても、ダイナキー・テキストで
あっても、次の選択可能なアイコン・テキスト行に進め
ることである。このブロックを実行するには、アイコン
・ダイアログ上の次のボタンを使用する。続いて、ブロ
ック190での問い合わせの結果が「イエス」である場
合には、Iに向かって分岐が行われる前に、ブロック1
92が実行される。その結果、アイコン・マーカーが前
進し、他のアイコン名がリスト・ボックスで強調され、
新しい名前がリスト・ボックスの上のボックスにセット
される。その後、今までのように、別のアイコンの変更
を行う必要があるかどうかを判断するために、ブロック
194が実行される。これで図15のフローチャートの
説明を終わる。
【0026】図16のフローチャートの目的は、CRT
14スクリーンの一番上にELLダイナキー・ダイアロ
グをセットし、ELLの修正を行うことができるように
することである。上記ダイアログは、「ダイナキー・ロ
ジック」レイアウト・メニュー選択が行われた時に、表
示される。上記ダイアログ・スクリーンは、第一のEL
Lテキスト行に接続している「−−>」を含むアイコン
・ダイアログ・スクリーンに類似している。この場合、
ELLテキスト行は、「ダイナキー1」から「ダイナキ
ー8」までで、マーカーは第一のテキストをポイントし
ていて、この場合、CRT14スクリーン上の関連ダイ
ナキー・ラベルには書き込みを行わなければならない。
アイコン・ダイアログの場合と同様に、リスト・ボック
スが使用されるが、このリストは「「keylogi
c.dat」ファイルのELL名を含む。この名前はア
ルファベット順になっている。このリスト・ボックスの
上のボックスは、ELL選択を行う場合にタイプするた
めに使用される。アクティブな各ダイナキーは、データ
が入力された場合でも、入力されない場合でも、ELL
機能に割り当てられる。ELLデフォールト割当は、
「A−Error−DataW」および「A−Erro
r−DataWO」であり、デフォールト・データ範囲
は、「データ付き」の場合には、1−10デジットであ
る。デフォールト情報を使用するということは、このレ
イアウト・メニュー選択が使用されなくても、ELL割
当を行うことを意味する。ここで図16のフローチャー
トについて説明する。
【0027】図16においては、最初にブロック198
が実行される。その結果、ELLダイナキー・ダイアロ
グが、第一のアクティブなダイアログ・ダイナキー・テ
キストをポイントしているマーカーと一緒に表示され
る。対応するELL機能名がリスト・ボックスで強調さ
れ、リスト・ボックス上のダイアログ・ボックスは、同
じ強調された名前を含み、データ範囲ダイアログ・スロ
ットには現在の数値が表示される。続いて、ブロック2
00が実行される。この問い合わせの結果が「イエス」
である場合には、今までに行われたすべてのダイナキー
ELLダイアログの変更が捨てられ、図17のコネクタ
Kに向かって分岐が行われる。このフローチャートは、
このフローチャートの説明が終わった後で説明する。続
いて、ブロック200での問い合わせの結果が「ノー」
である場合には、ブロック202が実行される。この問
い合わせの結果が「イエス」である場合には、現在のE
LL機能を修正する必要があり、ブロック204および
206が実行される。ブロック204においては、アイ
コン名をタイプした場合と同じように、リスト・ボック
スの上のダイアログ・ボックスに新しい名前がタイプさ
れる。また、データ範囲スロット値が、必要に応じて、
修正される。次に、ブロック206が実行され、新しい
ELL名が、「keylogic.dat」ファイルの
機能の相対位置を示すコード化された番号として、その
スクリーンに対するダイアログ構造体内にセットされ
る。
【0028】再び、ブロック202について説明する
と、この問い合わせの結果が「ノー」である場合には、
「w/data」状態をそのまま維持し、ブロック20
8が実行される。この問い合わせの結果が「イエス」で
ある場合には、次にブロック210が実行される。この
ブロックにおいては、ダイナキー「w/data」状態
に対してELL修正が行われた後で、制御も渡される。
続いて、ブロック210において、「−−>」マーカー
が180度回転し、「<−−」になり、現在のダイナキ
ーに対する「データなし」状態を示す。また、ELL
「データ無し」機能を反映するためにダイアログの内容
が変更され、データ・フィールドがブランクになる。次
に、ブロック212が実行される。この問い合わせの結
果が「イエス」である場合には、その「データ無し」状
態でのダイナキーを修正する必要があることを意味し、
ブロック214およびブロック216が実行される。こ
れらブロックは、データ範囲情報を含んでいない点を除
けば、ブロック204および206に類似している。次
に、ブロック218が実行される。このブロックも、ま
た、「データ無し」状態を変更しないでそのまま維持す
る必要がある場合に、実行され、ブロック212での問
い合わせの結果が「ノー」であることを意味する。続い
て、ブロック218が実行され、マーカーが再び「−−
>」に変更され、次のアクティブなダイナキー・ダイア
ログ・テキストに移動する。要するに、このことは、現
在の情報を反映するために、次の「データあり」ダイナ
キー状態およびここでもダイアログの内容が修正される
ことを示す。しかし、ただ一つのダイナキーだけがアク
ティブである場合には、マーカーは現在の位置に留ま
る。マーカーが正しい位置を占めると、ブロック220
が実行される。この問い合わせの結果が「ノー」である
場合には、ダイアログをもっと変更する必要があるか、
ダイアログの変更を捨てる必要がある。それ故、ブロッ
ク200に向かって分岐が行われる。この問い合わせの
結果が「イエス」である場合には、ダイアログの変更が
維持され、ブロック222が実行される。ここで、すべ
てのELLダイナキー修正が、スクリーンの暫定構造体
を修正するために使用される。その後、レイアウト・メ
ニュー作業を継続するために、図17のKに向かって分
岐が行われる。このフローチャートについては次に説明
する。
【0029】再び、図16のブロック208に戻って説
明する。この問い合わせの結果が「ノー」である場合に
は、現在の「データあり」状態がそのまま維持され、ダ
イアログの変更がさらに必要かどうかを判断するため
に、ブロック220が実行される。ブロック220につ
いてはすでに説明したので、これで図16のフローチャ
ートについての説明を終わる。「環境」レイアウト・メ
ニュー選択が行われ、関連ダイアログがCRT14スク
リーンの一番上に表示されると、図17のフローチャー
トが呼び出される。このダイアログの第一の目的は、マ
ウスがグローバルキー・ラベルのすぐ左のリスト・ボッ
クスをクリックすることができるようにすることであ
る。もちろん、このラベルは変数であり、「.key」
ファイルから入手したものである。上記ラベルはダイナ
キー(商標)上のように、3x5マトリックスの形に配
置され、最後の二つの横列は第一の二つの入力ブランク
を持つ。ダイアログ・リスト・ボックスの一方がチェッ
クされた場合には、対応するグローバルキーを<R>の
ところで押して、制御をスクリーン・サブセットの最初
のスクリーンにすることができる。グローバルキー・ダ
イアログ・リスト・ボックスをチェックしない場合に
は、グローバルキーを押すと、<R>でビープ音が鳴
る。ダイアログの第二の目的は、<入力>キー以外のど
の非ダイナキーを、スクリーンを操作するために使用す
ることができるかどうかを表示するために、リスト・ボ
ックスを使用することである。これらには、スキャナの
ような周辺機器を含むが、他の論理エンティティも含ま
れる。これら周辺機器等については、<R>フローチャ
ートのところで説明する。
【0030】図17のフローチャートの第一のブロック
について説明する。ブロック224が実行されると、環
境ダイアログがCRT14スクリーン上に表示される。
次に、ブロック226が実行される。この問い合わせの
結果が「イエス」である場合には、環境ダイアログ変更
は捨てられ、図18のコネクタLに向かって分岐が行わ
れる。他のレイアウト・メニュー選択に対応するこのフ
ローチャートについては、このフローチャートの後で説
明する。再び、ブロック226に戻って説明する。この
問い合わせの結果が「ノー」である場合には、ブロック
228が実行される。この問い合わせの結果が「イエ
ス」である場合には、ブロック230および232が実
行される。ブロック230は、マウスにより種々のグロ
ーバルキー・リスト・ボックスをオン/オフすることに
より実行することができる。ブロック232の実行は、
種々の周辺イベントおよび他の論理イベントを、現在の
スクリーン上で使用することができるかどうかを示すリ
スト・ボックスをオン/オフするのにマウスを使用する
という点を除けば、類似している。ブロック228での
問い合わせの結果が「ノー」である場合には、ブロック
230および232がバイパスされる。次に、ブロック
234が実行される。この問い合わせの結果が「ノー」
である場合には、もっと多くのダイアログの変更を行う
必要があるか、またはダイアログの変更を捨ててしまわ
なければならない。それ故、ブロック226に向かって
分岐が行われる。この問い合わせの結果が「イエス」で
ある場合には、環境の変化を保持する必要があり、ブロ
ック236が実行される。その結果、ダイアログの変更
は、最後のレイアウト・メニュー・ダイアログが完了し
た後で、永久の構造体と一緒に併合することができる全
スクリーン・データを含んでいる暫定構造体と一緒に併
合される。これで図17のフローチャートの説明を終わ
る。
【0031】図18のフローチャートは、第五のレイア
ウト・メニューの選択に対応する。他のELL機能を、
環境ダイアログに記載されている周辺および他の論理エ
ンティティに確実に割当ることができるようにするため
にには、最初に、第四のレイアウト・メニュー(環境)
を正しく完了することが非常に重要である。その理由
は、ELLマーカーが、環境ダイアログ上でそのリスト
・ボックスがチェックされた非ダイナキー論理エンティ
ティに単に移動するからである。唯一の例外は、<入力
キー>をいつでもELL機能に割り当てることができる
ことである。図18を参照する。ELL機能作業が非ダ
イナキーに対して行われることを除くと、このフローチ
ャートが図16に非常に類似していることに留意された
い。それ故、図16のフローチャートが理解できていれ
ば、このフローチャートは簡単に理解できる。それ故、
これで図18のフローチャートの説明を終わる。図19
のフローチャートは、第六のレイアウト・メニューの選
択に対応し、任意のダイナキー、<入力>キー、アクセ
スすることができる周辺機器、およびある種の他のイベ
ント非駆動エンティティに、グローバル分岐を割り当て
るのに使用される。上記エンティティについては、<R
>フローチャートのところで説明する。それ故、このメ
ニュー品目を選択する前に、「環境」選択のダイアログ
に正しく記入することが絶対不可欠である。
【0032】すでに説明したように、他のスクリーン・
セットの第一のスクリーンに分岐を行ったときに、グロ
ーバル分岐が行われる。グローバル分岐を可能にするた
めに使用される技術は、人口頭脳の分野から借りてきた
もので、「黒板」を使用する。ここでもまた、この技術
については、<R>フローチャートのところで後で説明
する。ここで、図19のフローチャートについて考えて
みよう。図19において、ブロック264が最初に実行
され、CRT14上にグローバル・スクリーン分岐ダイ
アログが表示される。「−−>」マーカーは、割り当て
られたELL機能を持っている場合があるエンティティ
に対応する第一のテキストに接続している。通常、この
テキストは、「ダイナキー1」から「ダイナキー8」ま
でのキーの中の一つである。そうでない場合には、上記
テキストは「入力」キーテキストである。さらに、ダイ
アログ・コラムには、他のいくつかのものと一緒に、テ
キスト・ストリング「スキャナ」が含まれている。重要
なことは、上記マーカーが、ELL機能を持つために選
択することができない如何なるテキストへも移動しない
ということである。続いて、ブロック266が実行され
る。この問い合わせの結果が「イエス」である場合に
は、すべてのグローバル分岐ダイアログの変更は捨てら
れ、図20のNに向かって分岐が行われる。最後のレイ
アウト・メニュー選択に対応するこのフローチャートに
ついては、次に説明する。続いて、ブロック266での
問い合わせの結果が「ノー」である場合には、ブロック
268が実行される。この問い合わせの結果が「イエ
ス」である場合には、現在の「データ有り」状態に対し
てグローバルまたは「黒板」分岐が行われる。それ故、
次に、ブロック270および272が実行される。ブロ
ック270においては、指定の異なる<R>プログラム
・コンテキストに分岐することができる、すべての「黒
板」スクリーン・セット名を選択するためにマウスが使
用される。この選択プロセスの際には、「黒板」スクリ
ーン名のリストの中のどれを割り当てるかについての選
択を行うために、リスト・ボックスが使用される。セッ
ト名をグローバル分岐中に使用できるものであると識別
した、「.key」ファイルのフィールドの中の一つを
思い出してもらいたい。グローバル分岐ダイアログは
「黒板」名でハード・コード化されているので、「.k
ey」ファイル情報を読んで、使用する<B>をコンパ
イルする前に、ユティリティ・プログラムを使用して、
このダイアログにこれら名前をセットすることができ
る。続いて、「黒板」スクリーン名が選択されると、ブ
ロック272が実行される。ブロック272を実行する
には、グローバル・スクリーン・セット選択を行った後
で、「選択」ダイアログ・ボタンを押せばよい。これに
より、選択が終了し、そのスクリーンに対するダイアロ
グ構造が更新される。
【0033】ブロック268に戻って説明する。この問
い合わせの結果が「ノー」である場合には、「w/da
ta」状態はそのままに維持され、ブロック274が実
行される。問い合わせの結果が「イエス」の場合、次に
ブロック276が実行される。現在の「w/data」
状態がブロック270および272において修正された
そのグローバル分岐を持っている場合には、このブロッ
クにおいて、制御が渡される。続いて、ブロック276
において、「−−>」マーカーが180度回転し、同一
のダイナキーまたは他の論理エンティティに対する「デ
ータ無し」状態を示す「<−−」になる。続いて、ブロ
ック278が実行される。この問い合わせの結果が「イ
エス」である場合には、「データ無し」状態に対するグ
ローバル分岐を修正する必要があり、ブロック270お
よび272の場合と同様に、ブロック280お282が
実行される。次に、ブロック284が実行される。「デ
ータ無し」状態を変更しないでそのままに維持する場合
には、このブロックも実行されるが、このことはブロッ
ク278での問い合わせの結果が、「ノー」であること
を意味する。続いて、ブロック284を実行した後で、
上記マーカーはもとの「−−>」に戻り、それがダイナ
キーであれ、他のなんらかの論理エンティティであり、
次のテキスト・ストリングへ進む。次に、ブロック28
6が実行される。この問い合わせの結果が「ノー」であ
る場合には、もっと多くのダイアログの変更を行う必要
があり、ダイアログの変更を捨てなければならない。そ
れ故、分岐はブロック266に戻る。この問い合わせの
結果が「イエス」である場合には、すべてのダイアログ
の変更をそのまま維持する必要があり、ブロック288
が実行される。ここで、このスクリーンの暫定構造を修
正するために、グローバル分岐の変更が使用される。そ
の後、最後のレイアウト・メニュー選択に関する作業を
終了するために、図20のNに分岐が行われる。このフ
ローチャートについては、図19のフローチャートの説
明が全部終了してから説明する。
【0034】再び、図19のブロック274について説
明する。この問い合わせの結果が「ノー」である場合に
は、現在の「データ有り」状態がそのまま残り、ダイア
ログの変更をさらに行う必要があるかどうかを判断する
ために、ブロック286が実行される。ブロック286
についてはすでに説明したので、図19のフローチャー
トの説明はこれで終わる。最後のレイアウト・メニュー
選択は、図20のフローチャートにより行った作業に対
応する。ブロック290が最初に実行され、そのスクリ
ーンに対するローカル・スクリーン分岐ダイアログが、
CRT14上に表示される。このダイアログは、二つの
コラムを含んでいて、一方のコラムは主ローカル分岐用
であり、他方のコラムは補助ローカル分岐用である。各
コラムには、スプレッドシート・タイプのフォーマット
の分岐「有り」および分岐「無し」用の他の二つのコラ
ムがある。各セルにはスクリーン数値が入っている。論
理エンティティが使用されないためセルを適用できない
場合には、セルの内容は「NA」になる。セルを適用で
き、スクリーン番号がすでに割り当てられていた場合に
は、その番号がセルにセットされる。そうでない場合に
は、セルに他の数値がセットされるが、これについては
後で簡単に説明する。
【0035】続いて、ブロック292が実行される。こ
の問い合わせの結果が「ノー」である場合には、このダ
イアログから抜け出し、暫定構造体がそのまま維持され
る。次に、次の作業を決定するために、図21の0に向
かって分岐が行われる。これにより、ファイルのセー
ブ、プログラムの終了、または同じスクリーンに対する
七つのレイアウト・メニューの再度の使用までも含む、
種々の最終的なオプションを行うことができる。続い
て、ブロック292での問い合わせの結果が「ノー」で
ある場合には、ブロック294が実行される。ここで、
ダイアログ上の主および補助セルのあるものにゼロをセ
ットするために、ダイアログ・エディタが使用される。
その理由は、場合によっては、すべての分岐がグローバ
ルであり、ローカル・セットのどのスクリーンも分岐し
なければならない場合があるからである。また、ある場
合には、「データ有り無し」状態または「データ無し」
状態がエラー状態であり、分岐に対してゼロをセットす
ることがこの状況を示す場合があるからである。
【0036】次に、ブロック296が実行される。ここ
でもまた、ダイアログ・セルの数値のあるものを変更す
るために、ダイアログ・エディタが使用される。その理
由は、すでに存在するか、修正中の現在のスクリーンで
あるスクリーン番号に関連する各セルを修正するためで
ある。ブロック298が実行される。この問い合わせの
結果が「イエス」である場合には、いくつかの新しいス
クリーン番号が自動的に発生し、最初に9998の数値
が与えられた任意のセルにセットされる。これら数値
は、ローカル分岐に対して選択することができる各セ
ル、および現在どのスクリーン番号とも関連していない
各セルに割り当てられる。次にブロック300が実行さ
れ、最初の番号が9998であり、それがインターフェ
ースの次に最も大きいスクリーン番号により置き換えら
れたダイアログ構造体内で、9998のセル番号の変更
が行われる。続いて、ブロック302が実行され、ダイ
アログ・スクリーンの内容が、9998の置き換えを反
映させるために変更される。
【0037】ブロック298に戻って説明する。この問
い合わせの結果が「ノー」である場合には、新しいスク
リーン番号は付けられず、ブロック300および302
はバイパスされ、再度の番号付けが行われる前に、ブロ
ック304が直接実行される。この問い合わせの結果が
「イエス」である場合には、現在のダイアログの内容を
すべてそのダイアログの最初の内容で置き換えるため
に、ブロック306お308が実行される。このプロセ
スは、ミスをして、もう一度最初からやりなおさなけれ
ばならない場合に役にたつ。続いて、ブロック306が
実行されると、ダイアログ上の「リセット」ボタンが押
され、ダイアログ構造体の内容がリセットされる。その
後、ブロック308が実行されると、ダイアログ・セル
の数値をその初期値に変更するために、ダイアログ構造
体の内容が使用される。
【0038】再び、ブロック304に戻って説明する。
この問い合わせの結果が「ノー」である場合には、再初
期化は行われず、ブロック306および308がバイパ
スされ、ブロック310が直接実行される。この問い合
わせの結果が「ノー」である場合には、ダイアログの内
容をキャンセルするか、さらに修正しなければならず、
ブロック292に向かって分岐が行われる。この問い合
わせの結果が「イエス」である場合には、ダイアログの
内容をそのままたは受け入れなければならず、ブロック
312が実行される。その結果、暫定構造体および現在
のダイアログ構造体を使用して、インターフェース構造
体が更新される。その後、補助分岐スクリーンが後に続
く最初に作られた主分岐スクリーンにより、新しいスク
リーン構造を強制的にトップダウンの順序にするため
に、ダイアログ・セル内のすべての新しいスクリーン番
号がスタック内に押し込まれる。各スタック入力も、ま
た最後のスクリーン番号および最後のボタン番号を含
む。続いて、ブロック314が実行される。この問い合
わせの結果が「ノー」である場合には、スタックは空で
なく、もっと多くのスクリーンを作らなければならな
い。それ故、ダミーのDK品目DKリスト・スクリーン
の修正の際のステップを継続するために、図12のAに
分岐する前に、ブロック316および318が実行され
る。ブロック316においては、スタックの一番上の新
しいスクリーン項目がポップする。次に、ブロック31
8が実行され、三つの変数、すなわち、「iCurre
ntScreen」、「iLastScreen」およ
び「iLastButton」に、スタックから今ポッ
プした項目に関連する数値が与えられる。
【0039】ブロック314での問い合わせの結果が
「イエス」である場合には、スタックは空になり、ブロ
ック320が実行される。ここで、ポップアップ・ウィ
ンドウが、「スクリーン・サブセット終了」というメッ
セージと一緒に、CRT14上に表示される。処理を継
続するためには、ここで、ユーザはOKボタンをマウス
でクリックする必要がある。次に、次の作業を決定する
ために、図21のコネクタOに向かって分岐が行われ
る。このフローチャートについては後で説明する。ここ
で図20の説明を終わる。図21のフローチャートに行
く前に、インターフェース語の七つのレイアウト・メニ
ュー項目について考えてみよう。例えば、図3の「販売
項目メニュー」について再び考えてみよう。最初のレイ
アウト・メニュー選択の目的が、すべてのスクリーン・
テキストの入力であったことを思いだしてほしい。この
場合、ヘッディングの後の最初の「1」のレコードの数
値29は、「販売品目メニュー」テキストのコードが2
9であることを示す。また、同じレコードの数値30
は、「品目の走査、入力または変更」である命令の最初
の行に対するテキスト・コードである。次の二つの命令
行はブランクなので、そのコードはゼロである。上記
「1」レコードの最後の二つのテキスト・フィールドの
数値もゼロである。何故なら、図3の「プロンプト」お
よび「入力」フィールドはブランクであるからである。
最初のレイアウト・メニューを通して入力したスクリー
ン・テキストの残りを、アクティブなダイナキーに関連
する「2」レコードに示す。例えば、「1」レコードの
後ろの最初の「2」レコードのテキストは「2、1、3
1、0」である。「2」はダイナキーを示し、「1」は
最初のダイナキーを示し、「31」および「0」は第一
のダイナキーに対する二つの行ラベルに関連する。第二
のラベルが使用されていないことに留意されたい。それ
故、その数値はゼロである。しかし、数値「31」は、
テキスト「品目の数量」が「.dat」インターフェー
ス・ファイル内の31番目のレコードであることを示
す。
【0040】第二のレイアウト・メニューは、図3のタ
イトル・アイコン、および五つのダイナキー・アイコン
を選択するのに使用される。ここでもまた、図9を参照
し、第二のレイアウト・メニューを使用して生成した六
つの対応する名前、すなわち、「バーコード」、「数
量」、「価格変更」、「X」、「X」および「左」に留
意されたい。タイトル・アイコンを選択しなかった場合
には、テキスト名は適用できないことを示す「NA」で
あったことになる。図3の五つのアクティブなダイナキ
ーに、ELL機能「有り」コード、およびELL機能
「無し」コード、および「有り」状態に対する入力デジ
ット範囲を与えるために、第三のレイアウト・メニュー
が使用される。ここでもまた、図9を参照してほしい。
最初の「2」レコードに、ストリング「148、1、1
0」が含まれていることに留意されたい。148は、ダ
イナキー1の「有り」状態に対するELL機能名が、
「「keylogic.dat」ファイルの148番目
の機能であることを示す。次に、「1、10」という情
報は、ELL機能が1−10のデジットの長さの入力を
待っていることを意味する。図10を参照してほしい。
その「データ有り」状態のダイナキー1に割り当てられ
た148番目の機能は、「Item−Change−Q
uantityW」(411)として識別されているこ
とに留意されたい。図9および図10情報の「2」レコ
ードのヘッディング302は、適用できる場合には、ダ
イナキーELL割当の残りおよびデータ範囲の場所を知
るのに使用することができる。
【0041】四番目のレイアウト・メニューは、図2に
示すスクリーンにスクリーン環境を割り当てるのに使用
される。図9の「3」レコードに対する言語は、コンマ
で区切られた一連のTおよびFであることに留意された
い。「bKey11、bKey12、...、bKey
33、bKey43、bKey53」というキャプショ
ンが、11のグローバル・ダイナキーを示している
「3」レコード・ヘッディング303に留意されたい。
それ故、「3」レコードの最後の11の数値を調
べ、「.key」ファイルをチェックすることによっ
て、どのグローバルキーが図2のスクリーンに対して使
用することができるかを判断することができる。「3」
レコードの最初の10個のTまたはFは、図2のスクリ
ーンが現在表示されている場合、どの周辺および他の論
理エンティティを使用することができるかを示す。詳細
については、<R>フローチャートのところで説明す
る。
【0042】第五のレイアウト・メニュー選択機能は、
ELL機能コードおよびデータ範囲割当が、<入力>キ
ーおよび周辺機器スキャナのような「環境」論理エンテ
ィティ用のものであるという点を除けば、図2用の第三
のレイアウト・メニューに非常によく似ている。説明を
続けるが、図9において、最初の「4」レコードは、<
入力>キー用のものであり、第二の「4」レコードはス
キャナ用のものであることに留意されたい。図9の「i
FunctionW」、「iLowW」および「iHi
ghW」ヘッディング304について説明するが、<入
力>キーの関連「データ有り」ELL割当が、「15
0、1、10」であることに留意されたい。その後、再
び、図10を参照することにより、「keylogi
c.dat」ファイルの150番目のELL機能が「i
Tem−EntryW」412であることが分かる。
【0043】6番目のレイアウト・メニューは、図3の
グローバル分岐を割り当てるのに使用される。説明を続
けるが、もう一度、図9の最後の「4」レコードを参照
してほしい。「usBlackboardW」フィール
ドの数値である番号1109に留意されたい。このフィ
ールドは、その名称が意味するように、符号がついてい
ない16ビットの番号である。図10を参照してほし
い。図2のその「データ有り」状態のスキャナは、「*
*」に分岐していることに留意されたい。その後、図1
0の一番下の行において、上記分岐は四つの異なる「黒
板」セット名413であると指定されている。<B>の
グローバル分岐ダイアログ名のリストのチェックした各
名称の相対的な位置は、1にセットされているこの16
ビットの符号を持たないフィールド内の対応するビット
ということになる。また、1109というこのフィール
ドの数値が、16進法で表示される。<B>が、この割
当が行われるとき、必ずしも分岐目標のスクリーン番号
を知っているわけではないことに留意されたい。<R>
のフローチャートのところで、グローバル分岐の抽出の
レベル除去について説明する。
【0044】7番目、そして最後のレイアウト・メニュ
ーは、ローカル分岐情報をインターフェース語に挿入す
るためのものである。例えば、図9においては、「2」
レコードおよび「4」レコードは、それぞれローカル分
岐を持っている。これを理解するめに、最初の「2」レ
コードをチェックし、テキスト「148、1、10、
6」を考えてみよう。すでに説明したように、ダイナキ
ー1に対して、148番目のELL機能は、1から10
までの記号である入力範囲を予想している。その後、数
字6は、ELL機能の実行が成功した場合、分岐目標の
次のスクリーン番号を示す。この場合、図2のスクリー
ンに対して、強調されている項目が、最初、新しい数量
をタイプし、その後でダイナキー1を押すことにより変
更したその数量である場合には、結果として、レシート
領域が変更されるが、後続の分岐は同じスクリーンに向
かって行われる。図9のヘッディング、図2および図1
0を見れば、図9に示すローカル分岐を理解できるだろ
う。図21のフローチャートについての説明を続ける。
【0045】図21のフローチャートの主な目的は、イ
ンターフェースをセーブし、<B>における次の作業を
決定することができるようにすることである。それ故、
現在のスクリーンを生成または修正をするのに、七つの
レイアウト・メニュー項目が使用された後で、または他
の修正が終了した時、またはインターフェース・ファイ
ルをセーブする必要があるとき、図21のコネクタOに
接続する。続いて、Oに向かって分岐が行われた場合、
ブロック322が実行される。この場合、そのインター
フェースをセーブすべきかどうかを判断するために、問
い合わせが行われる。上記セーブは、ファイル・メニュ
ーに「Save」または「SaveAs]を追加するこ
とによって行うことができる。ブロック322での問い
合わせの結果が「ノー」である場合には、セーブ論理が
バイパスされ、ブロック330に向かって分岐が行われ
る。このブロックについては後でさらに説明する。ブロ
ック322での問い合わせの結果が「イエス」である場
合には、ブロック324が実行され、ユーザはインター
フェース名を変更するかどうかの決定を行う。この問い
合わせの結果が「イエス」である場合には、ブロック3
26が実行され、ブロック328が実行される前に、新
しいインターフェース・プリフィックスを入手するため
に、ダイアログが使用される。ブロック324での問い
合わせの結果が「ノー」である場合には、ブロック32
6がスキップされ、ブロック328に向かって直接分岐
が行われる。ブロック328が実行されると、現在また
は新しいインターフェース・プリフィックス名を使用し
て、五つのファイルがディスクに書き込まれる。次に、
ブロック330が実行され、インターフェースの修正を
継続するかどうかについての問い合わせが行われる。こ
の問い合わせの結果が「ノー」である場合には、ブロッ
ク336が実行され、<B>が終了する。ブロック33
6は、ファイル・メニューに「出口(Exit)」メニ
ューを追加することによって実行される。続いて、ブロ
ック330での問い合わせの結果が「イエス」である場
合には、ブロック332が実行される。この問い合わせ
の結果が「イエス」である場合には、もっと多くの新し
いスクリーンを作らなければならない。それ故、一番上
のスクリーン・スタック項目を使用して、三つの変数を
初期化するために、ブロック334が実行される。これ
ら三つの変数が新しい各スクリーンのレシート領域内に
表示されることを思い出してほしい。次に、図12のA
に向かって分岐が行われ、ここでスクリーンのタイプが
規定され、ダミーのDK品目DKリスト・スクリーンが
表示される。ブロック332での問い合わせの結果が
「ノー」である場合には、新しいスクリーンを作る必要
はなく、次のスクリーンの修正を継続して行うために、
図12のCに向かって分岐が行われる。これで図21の
フローチャートの説明を終わり、二つの残りの<B>の
フローチャート、すなわち、図22および図23につい
て説明する。
【0046】フローチャート22について詳細に説明す
る。現在のCRT14の表示を変更する必要がある場合
には、図22のコネクタPに向かって分岐が行われる。
この分岐は、他のスクリーン・セットを作るか、スクリ
ーンを修正するために行われる。続いて、ブロック33
8で問い合わせが行われる。この問い合わせの結果が
「ノー」である場合には、GOTOメニューからスクリ
ーン・セット名を選択する必要がないことを意味する。
次に、ブロック340で問い合わせが行われる。この問
い合わせの結果も「ノー」である場合には、GOTOメ
ニューのどれも使用する必要はなく、図12のCに向か
って分岐が行われる。要するに、これはユーザがGOT
Oメニューを使用使用として気が変わった場合の、脱出
ルートである。
【0047】ブロック340に戻って説明する。この問
い合わせの結果が「イエス」である場合には、ブロック
342が実行される。ブロック340を実行するには、
ユーザは、上記問い合わせの結果が「イエス」である場
合には、GOTOメニューから「スクリーン」を選択し
なければならない。続いて、ブロック342が実行され
ると、「iCurrentScreen」に現在の番号
をセットするためにダイアログが使用される。ブロック
348について続けて説明する前に、他のGOTOメニ
ュー選択の結果を知るために、ブロック338での問い
合わせに戻って説明する。この問い合わせの結果が「イ
エス」である場合は、GOTOメニューからスクリーン
・セット名が選択されることを意味し、ブロック344
が実行される。この問い合わせの結果が「イエス」であ
る場合には、選択したスクリーン・セットはスクリーン
を持たず、他の新しいスクリーンを作る前に、図12の
コネクタAに戻るための分岐を行なうのに先だって、ブ
ロック346へ進む。ブロック346が実行されると、
「iCurrentScreen」変数に、「iEnd
Screen+1」変数に記憶されている次のスクリー
ン番号の数値が与えられる。また、変数「iLastS
creen」および「iLastButton」はゼロ
にセットされる。何故なら、前のスクリーンのコンテク
ストが存在しないからである。ここで、ブロック344
に戻る。この問い合わせの結果が「ノー」である場合に
は、スクリーン・セットの第一のスクリーンが存在し、
次に、ブロック348が実行される。GOTOメニュー
からの「スクリーン」の選択に続いて、現在のスクリー
ン番号がタイプされた後で、このブロックに進むことを
思いだしてほしい。
【0048】続いて、ブロック348が実行され、三つ
の変数、すなわち、「iCurrentScree
n」、「iLastScreen」および「iLast
Button」を初期化するために、現在のスクリーン
構造情報が使用される。次に、ブロック350および3
52が実行され、それがDK品目であれDKリストであ
れ、適当なスクリーン・メニュー項目をチェックするた
めに、現在のスクリーン情報が使用される。また、スク
リーンに対する暫定構造が初期化される。その後、ブロ
ック354が実行され、現在のスクリーン情報を反映す
るためにCRT14が修正される。その後、スクリーン
・セット内のスクリーンまたは現在のスクリーンをプリ
ントすべきかどうかを判断するために、ブロック356
で問い合わせが行われる。この問い合わせは、ファイル
・メニューに「プリント」メニュー項目を追加すること
によって行われる。この問い合わせの結果が「イエス」
である場合には、ブロック358が実行され、そのスク
リーンまたは複数のスクリーンが、後でマイクロソフト
(登録商標)のワードを使用して、プリントすることが
できるディスク・ファイルに追加される。<B>のスタ
ートのところで、このディスク・ファイルは空になる。
それ故、GOTOメニュー・セット名を選択することに
よって、一度に一つずつ、以降の印刷を行うために、デ
ィスク・ファイルに全インターフェースを書き込むこと
ができる。図10に、最後にプリントアウトしたものの
一例を示す。このプリントアウトは図3のスクリーンに
対するものである。続いて、さらに「印刷」またはスク
リーン修正を行うことができるように、図12のコネク
タCに向かって分岐が行われる。ブロック356での問
い合わせの結果が「ノー」である場合にも、Cに向かっ
て分岐が行われるが、これは印刷をする必要がないこと
を意味する。これで図22のフローチャートの説明を終
わる。
【0049】図23は、<B>の最後のフローチャート
である。このフローチャートの最初のブロックに接続し
ているコネクタQは、「スクリーン保守タイプ2」に対
する問い合わせが「イエス」である場合には、図12か
ら分岐する。このフローチャートの実行は、下記の選
択、すなわち、「ダイナキーの移動」、「ダイナキーの
交換」、「スクリーンの削除」および「スクリーンの圧
縮」を含む「保守メニュー」からなる。最初の選択を行
うと、i番目の位置にある現在のダイナキーをj番目の
位置に移動させることができる。この場所では、j番目
のダイナキーは現在使用されていない。第二の選択は、
現在のダイナキーが論理的に相互に交換される点を除け
ば、第一の選択に類似している。第三の選択を行うと、
それが現在使用されていない場合には、スクリーンを削
除することができる。四番目、すなわち、最後の選択を
行うと、スクリーン番号が1から始まる番号で付け直さ
れる。図23のフローチャートの各ステップについて説
明する。
【0050】ブロック360で問い合わせが行われる。
この問い合わせの結果が「イエス」である場合には、動
的ダイナキーを削除する必要があることを意味し、ブロ
ック362が実行される。ブロック362においては、
二つの変数、すなわち、「Dynakey1」および
「Dynakey2」に整数の変数がセットされる。次
に、ブロック364が実行される。その結果、現在のス
クリーン構造内の「Dynakey1」の位置が、「D
ynakey2」に移動する。その後、「Dynake
y1」の位置において、上記情報はゼロにセットされ
る。次に、ブロック366が実行され、現在のCRT1
4のスクリーン情報が、ダイナキーの移動を示すために
修正される。このブロックにはコネクタRが接続してい
ることに留意されたい。何故なら、ここでも二つのダイ
ナキーの交換が行われた後で分岐が行われるからであ
る。続いて、ブロック366が実行された後で、さらに
修正を行うために、Cに向かって分岐が行われる。
【0051】ブロック360での問い合わせの結果が
「ノー」である場合には、ブロック368が実行され
る。この問い合わせの結果が「イエス」である場合に
は、二つのダイナキーを交換するために、ブロック37
0および372が使用される。その後、Rに向かって分
岐が行われ、修正が終了する。二つの変数が、現在使用
されている二つのダイナキーを参照する点を除けば、ブ
ロック370はブロック362に類似している。二つの
ダイナキー構造が二つの位置で交換される点を除けば、
ブロック372はブロック364に類似している。ブロ
ック368での問い合わせの結果が「ノー」である場合
には、ブロック374が実行される。この問い合わせの
結果が「イエス」である場合には、現在のスクリーンが
削除される。それ故、ブロック376おいて、そのスク
リーンが他のスクリーンにより参照されていないか、ま
たはそのスクリーンが、一つ以上のスクリーンを持つス
クリーン・セット内の最初のスクリーンではないことを
判断するための最初のチェックが行われた後で、インタ
ーフェース構造が修正される。また、そのスクリーンが
特定のスクリーン・セット内の唯一のスクリーンである
場合には、構造内に常駐する「.key」情報が、現在
空であるスクリーン・セットを反映するために更新され
る。続いて、ブロック378が実行され、スクリーン情
報がないことを示すために、CRT14スクリーンが修
正される。その後、どのスクリーン・セットまたはスク
リーンを次に修正すべきかを決定するために、図12の
Pに向かって分岐が行われる。このフローチャートにつ
いてはすでに説明した。
【0052】ブロック360、368および374での
問い合わせの結果が、それぞれ「ノー」である場合に
は、ブロック380が実行される。この問い合わせの結
果が「イエス」である場合には、スクリーン番号が1か
ら始まる連続番号となる。それ故、Rに向かって分岐が
行われる前に、ブロック382および384が実行され
る。ブロック382が実行されると、インターフェース
構造内の最初のスクリーン番号が1になり、以降のスク
リーン番号がつけ替えられる。その後、ブロック384
が実行され、外部インターフェース分岐および「.ke
y」構造内で参照されたスクリーン番号が、必要に応じ
て、修正される。ブロック360、368、374およ
び380での問い合わせの結果がすべて「ノー」である
場合には、保守メニュー選択がバイパスされ、修正を全
く行わないで、図12のCに向かって分岐が行われる。
これは、まさに特定のタイプの修正についてユーザの気
持ちが変化した様子を示している。これで図23および
<B>の説明を終了する。
【0053】<T>の説明を始める前に、<B>を実行
するために使用する参照資料について最後に少し説明し
たい。まず、Cに対するNICE(登録商標)クライア
ント、プログラミング情報、リリース1.2 という表
題の1994年のNCR刊行物に、DK品目およびDK
リスト対象に関する情報が記載されている。同様に、チ
ャールズ・ペツォルド著のウィンドウズ(商標)3.1
のプログラミングという表題の1992年発行の書籍
に、ウィンドウズ・メニュー、メニュー項目およびダイ
アログを構成するための詳細な情報が記載されている。
<T>について以下に説明する。図11のスクリーン5
00におけるレシート領域の上半分に、試験中の現在の
スクリーン番号が表示されていて、その番号が6であこ
とに留意されたい。これは図3の同じスクリーン・セッ
ト201に対応する。また、試験中のダイナキーは最初
のダイナキー211であり、その二つの行ラベルは「品
目数量」で、この場合、ラベルの第二の行はブランクで
ある。「データ無し」の状態でこのダイナキーを押す
と、それに向かって分岐したスクリーンのスクリーン番
号は7になる。これが図11のスクリーンである。この
レシート領域の下半分は、スクリーン6上でのダイナキ
ー1の圧下に関連するELL機能であり、ELL名は
「Item−Change−QuantityWO」
(502)である。レシート領域のこの行の下に、EL
L機能を終了した場合に分岐したスクリーン番号が表示
される(503)。<T>のフローチャートについて説
明する。
【0054】図24から図28について説明すると、<
T>の実行はブロッ500からスタートし、ブロック5
02まで継続して行われる。ブロック502が実行され
ると、現在のインターフェースに対して<B>において
行われたように、五つのインターフェース・ファイルが
開かれ、一つの対応する支持ファイルが開かれる。しか
し、この場合は、インターフェースのプリフィックスは
「autopos」であると見なされる。その理由は、
このインターフェースが<R>で使用されるものである
からである。その後、ブロック504が実行され、ファ
イルが読み取られ、構造体の適当な複数のアレイまたは
一つのアレイ内に記憶される。次に、ブロック506が
実行され、ブランクのDK品目がCRT14上に表示さ
れる。これにより、ブランクのDK品目スクリーンの一
番上でのその後のDK品目/DKリスト・インターフェ
ース・スクリーンの表示が容易に行われ、<T>をもっ
とよく見たり、触れたりすることができるようになる。
【0055】続いて、ブロック508から514におい
てループが実行される。このループの目的は、ブール・
アレイの素子を「偽」にセットすることである。このこ
とは、現在のインターフェース・スクリーンのどれもが
各スクリーンに関連するELL機能についての試験を行
っていないことを示す。ループが終了してから、図25
のコネクタAに向かって分岐が行われる。これで図24
のフローチャートの説明を終わる。図25のフローチャ
ートの目的は、一度に一つずつ、スクリーン・セットで
ステップを実行するのに使用する他のループを提供する
ことである。一つのスクリーン・セットの任意の複数の
スクリーンの検査を行う前に、プログラムを終了させる
ことができる。さらに、あるスクリーン・セットが一つ
またはそれ以上のスクリーンを含んでいる場合には、図
26のDに向かって分岐が行われ、そこですべてのスク
リーンが試験される。続いて、ブロック516が実行さ
れ、ループ変数「i]が1に初期化される。次に、ブロ
ック518が実行される。この問い合わせの結果が「イ
エス」である場合には、プログラムを終了させる必要が
あることを意味し、ブロック520から524までが実
行される。ブロック518の実行は、数字キーの一つを
押す動作に対応するイベントを処理することにより行わ
れる。<T>の他の場所でも、プログラムを終了させる
ことができる。それ故、ブロック520は、コネクタB
に接続している。ブロック520が実行されると、現在
のDK品目またはDKリスト・スクリーンが消去され
る。次に、ブロック522が実行され、ベースラインD
K品目スクリーンが消える。最後に、ブロック524が
実行され、<T>が終了する。
【0056】ブロック518に戻って説明する。この問
い合わせの結果が「ノー」である場合には、ブロック5
26が実行される。この問い合わせの結果が「イエス」
である場合には、現在のセットが一つのスクリーンを持
っていることを意味し、次のフローチャートのDに向か
って分岐が行われる。このフローチャートについては、
この後で説明する。ブロック526での問い合わせの結
果が「ノー」である場合には、現在のスクリーン・セッ
トが空になり、ブロック528が実行される。このブロ
ックはコネクタCに接続している。何故なら、スクリー
ン・セットの試験が行われた後で、スクリーン・セット
・ループを継続するために、このブロックへの分岐が必
要であるからである。続いて、ブロック528におい
て、ループ変数「i」が1だけ増大する。その後、ブロ
ック530が実行される。この問い合わせの結果が「イ
エス」である場合には、他にも試験しなければならない
スクリーン・セットが存在することを意味し、ブロック
51.8に向かって分岐が行われる。この問い合わせの
結果が「ノー」である場合には、<T>のラップアップ
作業を行うために、図28のGに向かって分岐が行われ
る。このフローチャートについては後で説明する。これ
で図25のフローチャートについての説明を終わる。
【0057】図26のフローチャートの目的は、特定の
スクリーン・セットの試験を開始するのに必要なステッ
プを提供することである。図26のDに向かって分岐が
行われと、ブロック532が実行される。このスクリー
ン・セットの最初のスクリーンが、CRT14上に表示
される。スクリーン・タイプが前のものと異なっている
場合には、現在のスクリーンが消去され、新しいスクリ
ーンが表示される。そうでない場合には、スクリーンの
内容が修正される。続いて、ブロック534が実行され
る。それにより、レシート領域内にセット名および最初
のスクリーン番号が表示される。その後、ブロック53
6が実行され、スクリーンの論理情報がスタック上に置
かれる。より詳細に説明すると、アクティブな各論理エ
ンティティに対する「有り」および「無し」状態が二つ
のスタックの入力を構成する。このスタックは逆の順序
で満たされる。すなわち、ダイナキー1の情報がダイナ
キー2の情報の前に表示され、ダイナキー8の情報が
「入力」キーの前に表示される。アクティブ各論理エン
ティティに対して、「無し」の状態が「有り」状態の前
に表示される。
【0058】続いて、ブロック538から542が、ス
クリーン・セット試験で、ループを形成する。このルー
プはコネクタEに接続している。スクリーン・セット内
の個々の各スクリーンの試験が行われた後で、このルー
プに入る。ブロック538が実行されると、試験が終了
する前に、<T>を終了すべきかどうかを判断するため
に、問い合わせが行われる。この問い合わせの結果が
「イエス」である場合には、<T>を終了させるため
に、図25のBに向かって分岐が行われる。このフロー
チャートについてはすでに説明した。この問い合わせの
結果が「ノー」である場合には、ブロック540が実行
される。この問い合わせの結果が「イエス」である場合
には、プログラムを一時的に中止する必要がある。この
ブロックの実行は、ユーザがスペース・バーを押すこと
により行われる。次に、ブロック542が実行される。
この問い合わせの結果が「ノー」である場合には、プロ
グラムは一時中止の状態に維持される。この問い合わせ
の結果が「イエス」である場合には、次の作業が何であ
るかを知るために、プログラムを再スタートさせ、Eの
ところでループのスタートに戻る。ここでも、スペース
・バーが使用されるが、この場合には、プログラムは一
時中止の状態のままには維持されない。要するに、スペ
ース・バーが<T>の一時中止および再スタートについ
てトグル・スイッチの働きをする。
【0059】ブロック540に戻って説明する。この問
い合わせの結果が「ノー」である場合には、特定のスク
リーンの試験で使用されるステップを実行するために、
試験を続行し、図27のコネクタFに向かって分岐が行
われる。このフローチャートについては次に説明する。
これで図26のフローチャートの説明を終わる。図26
から図27へは上記のように進む。次に、ブロック54
4が実行される。ポップしたスタック項目が空のセット
である場合には、現在のスクリーン・セットが試験さ
れ、スクリーン・セット試験ループの実行を継続するた
めに、図25のCに向かって分岐が行われる。これにつ
いてはすでに説明した。ブロック546での問い合わせ
の結果が「ノー」である場合には、ブロック548が実
行される。この問い合わせの結果が「ノー」である場合
には、試験中の論理エンティティは、現在のCRT14
スクリーンではなく、異なるスクリーンに関連してい
て、ブロック550から554が実行される。ブロック
550が実行されると、試験中の論理エンティティに関
連するスクリーンが、CRT14上に表示される。次
に、ブロック552が実行される。この問い合わせの結
果が「ノー」である場合には、ブロック554が実行さ
れる。それにより、新しいスクリーンの論理情報がスタ
ック上に置かれる。ブロック552での問い合わせの結
果が「イエス」である場合には、スクリーンを再び試験
する必要はなく、554はバイパスされる。
【0060】ブロック548に戻って説明する。この問
い合わせの結果が「イエス」である場合には、ブロック
550−554がバイパスされる。何故なら、現在のD
K品目/DKリスト・スクリーンは試験する必要がある
論理エンティティに関連する新しいものだからである。
続いて、ブロック556が実行される。それにより、使
用対象のポップした最後のELLスタック項目が、レシ
ート領域の上半分に、図11の情報に類似の情報をセッ
トするために使用される。次に、ブロック558が実行
される。この問い合わせの結果が「イエス」である場合
には、試験した機能スクリーンの移動が行われる。それ
故、この試験経路を示すために、ブロック560−56
6が実行される。ブロック560が実行されると、CR
T14上に分岐スクリーンが表示される。次に、ブロッ
ク562が実行され、一番上のレシート情報が再び表示
される。その後、ブロック564が実行される。この問
い合わせの結果が「イエス」である場合には、現在のC
RT14スクリーンは表示されず、その論理情報がスタ
ック上に載せられる。この問い合わせの結果が「ノー」
である場合には、スクリーンはすでに表示され、ブロッ
ク566がバイパスされる。
【0061】再び、ブロック558に戻って説明する。
この問い合わせの結果が「ノー」である場合には、EL
L機能が<R>を実行した後で、分岐は行われない。そ
れ故、ブロック560−566はバイパスされる。次
に、ブロック568が実行される。それにより、レシー
ト領域の下半分に、図11の情報に類似の情報が表示さ
れる。すでに説明したように、この情報は、シミュレー
トされたELL機能であり、スクリーンは実行後分岐す
る。レシート情報を読み取ることができるように、数秒
間一時的な中止を行った後で、試験を中断するため、ま
たはテスターを一時的に中止するため、またはスタック
を使用して試験を継続するために、図26のEに向かっ
て分岐が行われる。これで図27のフローチャートの説
明を終わる。図28は、再度の<T>のフローチャート
である。このフローチャートは、図25のフローチャー
トから分岐したもので、すべてのスクリーン・セットの
試験が終了してから、コネクタGへの分岐が行われたこ
とを思いだしてほしい。このフローチャートの主な目的
は、プログラムを終了するために、図25のコネクタB
に分岐する前に、一度に一つずつ、ポップアップ・ウィ
ンドウ内に、試験していない各スクリーン番号を表示す
るために必要なステップを示すためのものである。この
ようにして、必要な場合には、スクリーン番号をシーケ
ンシャルに番号を付け直すために、<B>を使用するこ
とができる。または、いくつかのスクリーンはもはや使
用せず、<B>をそれらのスクリーンを削除するために
使用しなければならない場合がある。
【0062】続いて、ブロック570が実行され、ルー
プ変数「i]が1に初期化される。次に、ブロック57
2が実行される。この問い合わせの結果が「ノー」であ
る場合には、i番目のスクリーンが<T>によりアクセ
スされ、ブロック574が実行される。ブロック574
の機能は、ポップアップ・ウィンドウに、試験中に遭遇
しなかったスクリーン番号を表示することである。その
後、ユーザは試験を継続するために、任意の入力キーを
押す。ブロック572での問い合わせの結果が「イエ
ス」である場合には、ブロック574はバイパスされ
る。次に、ブロック576が実行され、ループ変数
「i]が1だけ増大する。その後、ブロック578が実
行される。この問い合わせの結果が「イエス」である場
合には、「bTraverse」の最後の素子がチェッ
クされていないことを意味し、<T>を終了するため
に、図25のBに向かって分岐が行われる。
【0063】最後に、<T>についていくつか説明す
る。分岐が他のスクリーン・セットに向かって行われる
場合には、レシート領域内にセット名が表示されるが、
ローカル・スタックは変更されない。その後、他のスク
リーン・セットが試験される。また、ダイナキーおよ
び、<入力>キーの他に、スクリーンに関連する種々の
周辺機器は、スタック内のその論理情報を持つことがで
きる。最後に、データ「有り」状態情報が試験された場
合には、レシート領域にデジットの数に関する入力の範
囲が表示される。これで<T>についての説明を終わ
る。<R>へのインターフェースの内蔵について以下に
説明する。図29から図38について説明すると、<R
>の実行はブロック600からスタートし、ブロック6
02まで継続して行われ、そこで小さな四角いウィンド
ウがダイナキー(商標)上に表示される。次に、ブロッ
ク604が実行され、これらのウィンドウが消える。し
かし、ベース・ウィンドウは重要である。何故なら、そ
のハンドルがダイナキー(商標)32に対するウィンド
ウ・メッセージを受信するのに使用され、その周辺機器
が<R>として実行されるからである。続いて、ブロッ
ク606が実行され、五つの「autopos」ファイ
ルが開かれる。この場合、<B>および<T>とは対照
的に、支持ファイルは必要ないので、開かれない。次
に、ブロック608が実行され、インターフェースファ
イルが読み取られ、構造体の複数のアレイまたは一つの
アレイ内に記憶される。さらに、「autopos.k
ey」ファイルが読みだされると、「.key」ファイ
ルに現れるスクリーン・セットの順序に従って、すべて
のスクリーン・セットに対して、スタート・スクリーン
番号により整数「黒板」アレイが満たされる。「黒板」
という用語は、人口頭脳に由来するもので、この場合
は、インターフェース・エージェントが<R>エージェ
ントが後でアクセスすることができる領域に書き込むこ
とを意味する。それ故、インターフェース語が外部を生
成し、修正することができる。他の「黒板」アレイは、
グローバル分岐に関連するセットに対するスタート・ス
クリーン番号を維持するために使用される。
【0064】続いて、ブロック610が実行され、ブラ
ンクのDK品目が、ダイナキー(商標)上に表示され
る。このプロセスは、以降のインターフェース・スクリ
ーンが削除および生成されるときに、外観および感触を
改善するために行われる。次に、ブロック612が実行
され、<R>の初期化作業が行われる。このプロセス
は、プリンタ、スキャナ、MSR、および任意の他の周
辺機器に対する初期化作業を含む。また、単一のサーバ
に多くのダイナキー(商標)32がフックアップされて
いるので、レーン番号および特定のレジスタ情報を入手
するためにLANが使用される。さらに、異なるスキャ
ナ等を使用して、個々のレーンを容易に使用することが
できるようにするために、「.ini」ファイルを使用
することができる。これらファイルは共通ウィンドウズ
・コマンドを使用して処理される。
【0065】ブロック614が実行されると、最後の初
期化ステップが終了する。この場合、「autopos
1.key」レコードは、表示される最初のスクリーン
番号を入手するために使用される。この番号を入手する
と、構造体情報のそのアレイは、正しいDK品目または
DKリスト・スクリーンを表示するために使用される。
スクリーン・テキストの内容は、「autopos.d
at」ファイルへのオフセットとしての、インターフェ
ース数字コード情報を使用して入手される。しかし、テ
キスト・フィールドは変数であってもよく、それが問題
になる。例えば、図5のスクリーン231においては、
ダイナキー・テキスト・ラベルとしての、申し込んだポ
ンドによる数量230は購入品目によって変わってく
る。この問題を処理するために、特殊の数学的合成機能
が<R>に設定されている。各機能に対する抽出は、f
(g(x))として定義されるgのfである。すなわ
ち、xは数字コードであり、g(x)は「autopo
s.dat」を使用する解読ストリングの結果であり、
fは最初のコード化を示す最終解読である。可変テキス
トの場合には、最初の解読は、下記の抽出、すなわち、
「::n:c」に依存する。ここで、「n」は整数であ
り、「c]はコメントである。要するに、任意のスクリ
ーン・テキスト・フィールドに対して、変数テキストが
存在する場合には、<B>はnが一意の可変テキスト抽
出を入力するために使用される。これは、変数nに対し
て<R>内に特定の下記ロジックを与えなければならな
いことを意味する。しかし、多くの場合、この解読ロジ
ックは、一つの<R>から他の<R>へ行く際に再度使
用することができる。
【0066】図29の次のブロック、すなわち、ブロッ
ク616は、コネクタAに接続している。異なるインタ
ーフェース・スクリーンが表示されると、周辺機器およ
び他のスクリーンの初期化作業を行わなければならない
ので、このコネクタが必要になる。例えば、ある種のス
クリーンはスキャナまたは他の周辺機器に関連してい
る。それ故、これら装置に対する初期化は、新しいスク
リーンが表示されるときに行わなければならない。しか
し、最後のスクリーンに対して上記装置がアクティブで
ある場合には、関連ブール変数はすでに「真」にセット
されていて再度の初期化が行われるのを防止する。他の
初期化作業は、レシート状態、および関連ELL機能を
使用することができるかできないかに基づいて、アクテ
ィブなダイナキーをアクティブでない状態にするプロセ
スを含む。ダイナキー(商標)32がカラーLCDであ
る場合には、アクティブでないダイナキー・テキストは
赤に変わる。そうでない場合には、上記テキストは薄暗
くなる。ウィンドウズ制御パネルの設定により、実際の
効果が決まる。続いて、入力バッファ変数の文字の数を
ゼロにセットするような、他のハッキリとした変数の初
期化が、ブロック616で行われる。ブロック616が
実行された後、図30のコネクタBに向かって分岐が行
われる。このフローチャートについては後で説明する。
これで図29のフローチャートの説明を終わる。
【0067】図30のフローチャートの目的は、<R>
の実行時間イベントを処理することである。一つの実行
方法としては、エベント・ハンドラ機能に、受信した関
連ウィンドウ・メッセージに基づいて、一連のケース文
を収容するという方法がある。または、一連のイベント
・ハンドラ機能を使用することができる。続いて、ブロ
ック618が実行されると、現在のスクリーンに関連す
る任意のダイナキーが押されたかどうかを判断するため
に、問い合わせが行われる。この問い合わせの結果が
「イエス」である場合には、図31のコネクタCに向か
って分岐が行われる。このフローチャートについては、
次に説明する。
【0068】ブロック618での問い合わせの結果が
「ノー」である場合には、ブロック620が実行され
る。この問い合わせの結果が「イエス」である場合に
は、グローバルキーがすでに押されている。この検出は
容易に行うことができる。何故なら、各グローバルキー
は一つの機能コードと関連しているからである。しか
し、グローバルキーは、<R>のすべての例に対して同
じラベルがつけられているわけではないので、<R>の
グローバル一致コードは一定ではない。このような変化
を処理するために、「.key」ファイルに、「グロー
バル」スクリーン・セットの名前、対応する機能番号お
よびセットの最初のスクリーン番号が含まれていること
を知っている。それ故、<R>に保持されているコード
を修正するためのユティリティ・プログラムを書くこと
ができる。要するに、グローバルキーの決定が行われ、
ユティリティ・プログラムが実行れると、特定の<R>
の修正が行われる。続いて、図33のFに向かって分岐
が行われる。このフローチャートについては、後で説明
する。ブロック620での問い合わせの結果が「ノー」
である場合には、ブロック622が実行される。この問
い合わせの結果が「イエス」である場合には、<入力>
キーがすでに押されていて、図34のコネクタGに向か
って分岐が行われる。このフローチャートについては、
後で説明する。この問い合わせの結果が「ノー」である
場合には、ブロック624が実行される。この問い合わ
せの結果が「イエス」である場合には、二つのカーソル
・キーの中の一つが押されたことを意味し、図35のコ
ネクタHに向かって分岐が行われる。このフローチャー
トについては後で説明する。ブロック624での問い合
わせの結果が「ノー」である場合には、ブロック626
が実行される。この問い合わせの結果が「イエス」であ
る場合には、データ・キーがすでに押されていて、図3
6のコネクタJに向かって分岐が行われる。このフロー
チャートについも後で説明する。次に、ブロック626
での問い合わせの結果が「ノー」である場合には、ブロ
ック628が実行される。この問い合わせの結果が「イ
エス」である場合には、スキャナ読み取りのような周辺
イベントが起こり、図37のコネクタKに向かって分岐
が行われる。このこのフローチャートについても、後で
説明する。最後に、図30のすべての終了させないため
の問い合わせの結果が「ノー」である場合には、ブロッ
ク630が実行される。この問い合わせの結果が「イエ
ス」である場合には、プロセス終了ステップを実行する
ために、図38のコネクタLに向かって分岐が行われ
る。このフローチャートについては、後で説明する。こ
の問い合わせの結果が「ノー」である場合には、図30
のBに向かって分岐が行われる。これにより、イベント
・ハンドラ・ロジックのスタートへの脱出経路が供給さ
れ、イベントが各CPUタイム・スライスにおいて必ず
しも起きるとは限らないことが示される。これで図30
のフローチャートについての説明を終わる。残っている
のは、各タイプの実行時間イベントの処理の際に関連す
るステップを示す図31から図38のフローチャートで
ある。図31から説明する。
【0069】ダイナキーを押すと、図31のコネクタC
に進むことを思いだしてほしい。続いて、ブロック63
2が実行され、特定のダイナキーが識別され、変数
「i」に正しい数値が与えられる。この特定のダイナキ
ーは容易に検出することができる。何故なら、八つのダ
イナキーがいつでも、それぞれ1から8までのファンク
ション・キーに対応しているからである。また、アクテ
ィブでないダイナキーを押すか、またはラベルのないキ
ーを押すと、ウィンドウズのイベントは起こらない。要
するに、アクティブなダイナキーの場合だけ、コネクタ
Cに進む。続いて、ブロック634が実行される。この
問い合わせの結果が「イエス」である場合には、ダイナ
キーが押される前に、ある種の入力が行われ、ブロック
636が実行される。ここで、インターフェース構造体
から、その「データ有り」状態のi番目のダイナキーに
対するELL情報を取り出すために、スクリーン番号と
変数「i」が使用される。この情報の使用方法はすぐに
明らかになる。
【0070】ブロック634に戻って説明する。この問
い合わせの結果が「ノー」である場合には、ブロック6
38が実行される。このブロックは、「データ無し」状
態情報が、記憶されたインターフェース構造体から検索
されるという点を除けば、ブロック636に類似してい
る。ブロック638または636が実行されると、EL
Lロジックの処理を継続するために、図32のコネクタ
Dに向かって分岐が行われる。これで図31のフローチ
ャートの説明を終わる。ダイナキー、<入力>キーまた
は<R>で識別されたある種の他の論理イベントに対し
て、ELL情報が検索された後で、図32のコネクタD
に進む。続いて、ブロック640が実行され、「bLo
gic」変数が「真」にセットされ、変数「iNext
Screen」に、今検索したELL情報に関連する主
なローカル・スクリーン番号の数値が与えられる。この
変数の使用方法は、説明が進むにつれて明らかになる。
【0071】次に、ブロック642が実行される。ここ
で、構造体から入手したばかりのELL相対番号と一緒
に、「ビジネス・モデル」機能を呼び出すことにより、
ELL機能作業がスタートする。その後、コードの下記
のC行、すなわち、「bStatus=Bridge
[iFunction]();」を使用して、正しいE
LL機能作業がスタートする。この呼び出し作業を行う
理由は、ELL機能は「ビジネス・モデル」機能の次
に、アルファベット順でコード化されているからであ
り、「.h」ファイルが「int(*Bridge[N
UM−FUNCTION])(void)
={....};」のように「ブリッジ」を定義してい
るからである。この文中、NUM−FUNCTIONS
には、「定義」文により数値が与えられ、三つの点のと
ころにはコンマで区切られたELL機能名が入る。「.
h]ファイルおよび「.c]ファイルの生成は、入力と
して「keylogic.dat」ファイルを使用する
ことにのより、自動的に行われる。その後、ELL機能
を含むスケルトン「.c]ファイルが、特定のELLコ
ードの追加が行われるとき、修正される。開発が行われ
るとき、「keylogic.dat」ファイルは、新
しいELL機能により修正することができ、現在のいく
つかのファイルを削除することができる。このプロセス
を自動化するために、下記の一連のステップが行われ
る。最初に、「keylogic.dat」ファイルの
後に新しい名前が追加され、相対的な番号−1が名前お
よびコンマの右にタイプされる。二番目に、これらの削
除対象の相対的番号が−2に変更される。その後、この
ファイルはアルファベット順に記憶される。次に、<B
>が呼び出され、そのファイルがセーブされる。その結
果、インターフェースおよび「keylogic.da
t」ファイルの両方が更新される。三番目に、古いEL
L機能を削除し、スケルトンの新しいELL機能を追加
するために、「.h]ファイルおよび「.c]ファイル
を更新するプログラムが実行される。最後に、「ビジネ
ス・モデル」を反映するために、新しいELL機能が修
正される。
【0072】ブロック642を実行した後で、表示する
次のスクリーンが決定される。このスクリーンは、同じ
スクリーンである場合もあるし、他のスクリーンである
場合もある。続いて、ブロック644が実行され、変数
「iNextScreen」が、必要に応じて、修正さ
れる。「iNextScreen」を重ね書きする理由
は二つある。第一の理由は、ローカル分岐は依然として
必要であるが、補助スクリーン番号を使用する必要があ
り、それは主要なスクリーン番号ではないからである。
それ故、ELL機能が暫定変数にゼロでない数値をセッ
トした場合には、「iNextScreen」には、そ
の補助スクリーン番号に対する数値が与えられる。第二
の理由は、グローバル分岐が必要な場合、ブロック64
4の最後のタスクは、「iNextScreen」に、
他のスクリーン・セットの最初のスクリーン番号をセッ
トすることだからである。特定のダイナキー、<入力>
キー、または他の論理スクリーン・エンティティに対し
て、グローバル分岐を指定するために<B>が使用さ
れ、<R>がそれを確認した場合に限って、グローバル
分岐が行われると仮定する。例えば、再び、ここで図3
について考えてみよう。最初のレシート品目である「Z
IPLOCK」(203A)が、その品目が走査された
あとで、何等の加重も行う必要がないと仮定しよう。一
方、第二のレシート品目である「バナナ」(203B)
が加重を必要とすると仮定しよう。この場合は、その
「データ有り」状態のスクリーン走査に関連するELL
機能は、何等かの方法でグローバル分岐をアクティブに
するか、アクティブでない状態にするかを区別しなけれ
ばならない。この場合、グローバル分岐は、「バナナ」
に対する「PLU−WEIGH」セットの第一のスクリ
ーンへ向かって行われ、ローカル分岐は「ZIPLOC
K」品目を走査した後で、図3のスクリーンに向かって
行われると仮定する。この場合、どのようにしてグロー
バル分岐が強行されるのかという疑問が起こる。最初
に、各ELL割当てが、符号を持たない変数を含んでい
る<B>についての説明を思い出してもらいたい。第一
のグローバル・スクリーン・セットが、例えば、その
「データ有り」の状態のスクリーンのスキャナに向かう
分岐である場合には、このフィールドの最下位のビット
はゼロにではなく、1にセットされる。同様に、すべて
の他のスクリーン・セットおよび符号を持たない数字の
各ビットについても同じことが行われる。例えば、図9
に示すようになる。この図においては、最後の「4」レ
コード314は、符号を持たず、16進法で1109の
数値を持つ「usBlackboardW」フィールド
を持つ。このグローバル分岐フィールドは、その「デー
タ有り」状態にあるスキャナに対するものである。ここ
でもまた、ブロック644において、符号を持たない関
連ビットを、一度に一つずつ、右にシフトすることによ
って、グローバル分岐がスタートする。どれかが数値1
を持っている場合には、そのグローバル・セット名に対
応するブール変数が、数値として「真」を持っているか
どうかを判断するためにチェックが行われる。このブー
ル変数は、前のブロック642で実行されたばかりのE
LL機能で「真」にセットされている。ブール変数のこ
のアレイは、最初そして新しい各分岐が決定された後、
「偽」にセットされる。ブール変数割当て文は、アレイ
へのオフセットとしてスクリーン・セット名を使用す
る。例えば、「.key」ファイルにおいては、コンマ
で区切られたファイルは、下記の内容、すなわち、「品
目、入力」がセットされているその二つの名前フィール
ドを持つ。これらフィールドは、容易に、下線文字を持
つ大文字からなる一つの名前、すなわち、「ITEM−
ENTRY」に結合することができる。その後、「#d
efine」、大文字による名前、および数値からなる
「.key」ファイルから、「.h」を発生することが
できる。要するに、ブロック644を実行した後で、
「iNextScreen」変数は、それがエラー・ス
クリーン番号ゼロであれ、分岐目標の次のスクリーン、
同じセット内の同じスクリーン、同じスクリーン・セッ
ト内の異なるスクリーン、または他のセットの最初のス
クリーンを含む。
【0073】次に、ブロック646が実行される。この
ブロックが、コネクタEに接続していることに留意され
たい。その理由は、<クリア>キー以外のグローバルキ
ーが検出されたとき、グローバル・スクリーン・セット
の最初のスクリーンが分かった場合には、ここで分岐が
行われる。続いて、ブロック646での問い合わせの結
果が「イエス」である場合には、「iNextScre
en」の数値はゼロになり、このことはエラーが発生し
たことを意味する。例えば、図3において、データの入
力が行われず、<入力>キーが押されると仮定しよう。
この場合、図10に示すように、エラー状態が発生す
る。この場合、ELL機能は「A−Error−Ent
erWO」であり、次のスクリーン番号はゼロ(41
0)である。続いて、次にブロック648が実行され、
ポップアップ・ウィンドウが現在のDK品目/DKリス
ト・スクリーン上に表示される。この内容は、どのよう
な状態でどの「キー」が押されたかを示すエラー・メッ
セージ、および発見できなかったスクリーン番号を含
む。この時点で、すべての他の以降の実行時間イベント
は、グローバル<クリア>キーが押されるまで、処理さ
れない。一つの実行は、ブール・ガード変数の「真」値
に基づいて、これら実行時間イベントを処理することで
ある。続いて、図30のコネクタBに向かって分岐が行
われ、<クリア>実行時間イベント待ち状態になる。
【0074】ブロック646に戻って説明する。この問
い合わせの結果が「ノー」であると仮定しよう。この場
合には、ブロック650が実行される。この問い合わせ
の結果が「イエス」である場合には、「iNextSc
reen」の数値は、現在のスクリーン番号と同じ数値
である。それ故、現在のELL機能が終了した後で、こ
れ以上何もする必要はない。それ故、今までのように、
コネクタBに向かって分岐が行われる。ブロック650
での問い合わせの結果が「ノー」である場合には、ブロ
ック652が実行される。この問い合わせの結果が「イ
エス」である場合には、DK品目/DKリスト・スクリ
ーンを削除する必要がある。スクリーンの削除が必要な
第一の場合は、現在のスクリーンがDKリスト・スクリ
ーンであり、次のスクリーン番号が異なる場合である。
例えば、図4のDKリスト・スクリーンが、現在のスク
リーンであると仮定しよう。このタイプのスクリーンが
生成された場合には、そのスクリーンは、通常、図3に
示すように、DK品目スクリーンの一番上に置かれる。
この場合、DKリスト・スクリーンは、そのダイナキー
・ラベル(210)および最後の六つのダイナキーに対
して予め指定した機能を持つ。これにより、何のプログ
ラミングを行わないで、レシート・リストを容易に移動
することができる。このレシート・リストは、通常、生
成されたとき、その名前にDKリストを与えることがで
きるファイルから満たされる。その後、このファイルの
最初のページが、レシート領域内に自動的に表示され
る。各DKリスト・スクリーンは、一番上に二つのダイ
ナキーおよび<入力>キーに、<B>によりELL機能
情報を与えることができるために、さらにカスタム化さ
れる。一つまたはそれ以上の特定のスクリーンのELL
機能を使用して、リストが処理されると、DKリスト・
スクリーンは何時でも削除される。そうすることによ
り、DK品目スクリーンは、通常、現在のスクリーンの
ままに維持される。それ故、DKリスト・スクリーンの
目的は、以後の使用のために「黒板」領域に記憶されて
いる情報を集めることである。通常、この情報は現在の
DKリスト・スクリーンの下に表示されている現在のD
K品目スクリーン内のレシート領域に影響を与える。
【0075】スクリーン削除の第二の場合を説明するた
めに、現在ののスクリーン261が、図8に示すスクリ
ーンの中の一つであり、前のスクリーンがDK品目であ
ると仮定しよう。この場合を説明するために、ローガン
処理の後で、図3が生成されたと仮定しよう。グローバ
ルキーが押されると、図8に示すスクリーンが図3のス
クリーンの一番上に置かれると仮定しよう。このこと
は、メッセージ・スクリーンが削除された場合には、最
も少ないプログラミングを行うだけで、「販売品目メニ
ュー」スクリーンを、依然として使用できることを意味
する。特に、「販売品目メニュー」に対するハンドル
は、そのアクティブな各ダイナキーの状態を保持してい
るアレイと一緒に保持しなければならない。一般的にい
って、二つのDK品目は異なるものである。何故なら、
各スクリーンに対する<B>の「環境」ダイアログは二
つのブール変数を含み、一方の変数は小計を抑制するた
めのものであり、他方の変数は合計を抑圧するためのも
のである。図3のDK品目スクリーンの場合には、<B
>によりスクリーンが生成された場合、これら変数は両
方ともチェックされる。そして、図8のDK品目スクリ
ーンの場合には、これらリスト・ボックスはチェックさ
れない。要するに、ブロック652が実行され、一つ以
上のDK品目スクリーンが存在し、その二つの小計/合
計「環境」ブール変数の数値が同じでない場合には、問
い合わせの結果は「イエス」になる。その後、ブロック
654が実行され、現在表示されているスクリーンが削
除される。このことは、現在表示中のスクリーンのハン
ドルが、現在のスクリーンのハンドルになり、その対応
するダイナキー状態アレイが、アクティブな状態のアレ
イになる場合があることを意味する。
【0076】ブロック652に戻って説明する。問い合
わせの結果がノーであると仮定する。この場合、ブロッ
ク656が実行される。このブロックは、またブロック
654が実行された後でも実行される。続いて、ブロッ
ク656での問い合わせの結果が「イエス」である場合
には、ブロック658が実行される。ここで、メモリに
記憶されているインターフェースから、指定のDK品目
またはDKリスト・スクリーンを検索するために、「i
NextScreen」番号が使用される。このスクリ
ーンがDKリスト・スクリーンである場合には、前のE
LL機能が、ファイル名を、DKリスト生成の際に使用
される「黒板」変数名にコピーする。新しいスクリーン
がDK品目スクリーンである場合で、現在のスクリーン
がDK品目スクリーンである場合には、現在のDK品目
ハンドルを、その各ダイナキーの状態と一緒に、スタッ
クにセーブしなければならない。通常のPOS用途の場
合には、アクティブなインターフェース・スクリーンの
数は、通常、三以下である。
【0077】ブロック656に戻って説明する。この問
い合わせの結果が「ノー」である場合には、ブロック6
60が実行され、記憶されたインターフェースから情報
を取り出すために、スクリーン番号を使用して、現在の
DK品目スクリーンの修正が行われる。こうすれば、必
要な場合に、新しいスクリーンを生成するだけでよいの
で、メモリを節約することができる。また、<R>の動
作をもっと速くすることができる。ブロック660また
は658を実行した後で、周辺機器を作動可能にすると
いうような追加スクリーン初期化を行うために、図29
のコネクタAに向かって分岐が行われる。このブロック
についてはすでに説明した。これで図32のフローチャ
ートの説明を終わる。図33において、グローバルキー
が押され、それが検出されると、処理は図33のコネク
タFに進む。続いて、ブロック662が実行される。こ
の問い合わせの結果が「ノー」である場合には、<クリ
ア>グローバルキーはまだ押されていない。次に、ブロ
ック664が実行され、グローバルキーを識別し、その
スクリーン・セット内の第一のスクリーン番号を発見す
るために、「.key」ファイルのグローバルキーの機
能番号、および最初のスクリーン番号が使用される。次
に、このスクリーンを表示するために使用されるステッ
プを実行するために、図32のコネクタEに向かって分
岐が行われる。このフローチャートのセグメントについ
てはすでに説明した。
【0078】ブロック662に戻って説明する。この問
い合わせの結果が「イエス」である場合には、<クリア
>グローバルキーがすでに押されている。「.key」
名およびその関連機能番号キーを使用することにより、
このキーを容易に識別することができる。続いて、ブロ
ック666が実行される。この問い合わせの結果が「イ
エス」である場合には、<R>はエラー状態または情報
状態であり、ポップアップ・ウィンドウが、オペレータ
に<クリア>キーを押すように促している最後の行と一
緒に、ダイナキー(商標)上に存在する。それ故、ブロ
ック668が実行され、ポップアップ・ウィンドウが消
去され、もっと多くの実行時間イベントを処理すること
ができるように、実行時間イベント用のブール・ガード
が、再び、「真」にセットされる。最後に、もっと多く
の実行時間イベントを処理するために、図30のコネク
タBに向かって分岐が行われる。
【0079】ブロック666に戻って説明する。この問
い合わせの結果が「ノー」である場合には、<クリア>
グローバルキーはすでに押されているが、<B>はエラ
ー状態または情報状態ではない。それ故、ブロック67
0が実行される。これにより、入力関連の変数が再び初
期化される。すなわち、「iData」がゼロにセット
され、入力バッファ領域は「無効」にセットされる。次
に、ブロック672が実行され、もっと多くの入力を入
力することができれるように、現在のスクリーン上の入
力領域が消去される。通常、入力内容が不正確で、再入
力する必要がある場合に、これらのフローチャートのス
テップが必要になる。スクリーン入力が消去された後
で、図30のコネクタBに向かって分岐が行われ、もっ
と多くの実行時間イベントの待ち状態になる。これで図
33のフローチャートについての説明を終わる。
【0080】図30で<入力>キーが検出された場合
に、処理は図34のコネクタGに進む。このフローチャ
ートは、すでに説明した図31のフローチャートに非常
によく似ている。ここで唯一補足したいことといえば、
八つのダイナキーがあるので、<入力>キーを9番目の
「キー」と見なすことができるということである。この
ことは9番目のキーから、ELL情報を取り出すときに
便利である。何故なら、ブロック674においては、変
数「i」を9にセットすることができるからである。<
入力>情報を記憶した構造体内の適当な場所から取り出
した場合には、ダイナキーELL情報を検索した場合に
行ったように、コネクタDに向かって分岐が行われる。
これで図34のフローチャートの説明を終わる。図30
で「アップ」または「ダウン」カーソル・キーが押さ
れ、それが検出されると、処理は図35のコネクタHに
進む。続いて、ブロック682が実行されると、「bL
ogic」変数に数値「偽」が与えられ、変数「i」が
1にセットされる。その理由は、「i」が、アクティブ
にすべきかアクティブでない状態にすべきを判断するた
めに、各ダイナキーがチェックされるブロック684−
698のループを支配しているからである。さらに、一
定の「bLogic」、すなわち、数値「偽」により、
実行できるかどうかの判断を行うために、その前提条件
にあるELL機能が呼び出される。一方、「bLogi
c」の数値が「真」である場合には、ELL機能が実際
に実行される。要するに、各ELL機能は、確認ロジッ
クに続く二つの状態を持つ。例えば、図3において、強
調されたレシート品目は、「バナナ」(204B)に関
連する行である。この場合、この品目は加重品目である
ことがわかる。それ故、この数量を修正できない状態で
なければならない。何故なら、修正することは無意味で
あるからである。その結果、第一のダイナキー・テキス
トである「品目数量」は赤で表示される。このことは、
ダイナキー1がアクティブ状態でないことを意味する。
【0081】続いて、ブロック684が実行される。こ
の問い合わせの結果が「ノー」である場合には、このダ
イナキーがテキストを持っていないことを意味し、図3
5のコネクタIに向かって分岐が行われる。次に、ブロ
ック696が実行され、変数「i」が1だけ増大する。
次に、ブロック698が実行される。この問い合わせの
結果が「イエス」である場合には、考慮しなければなら
ないダイナキーが他にあり、ブロック684に向かって
分岐が行われる。この問い合わせの結果が「ノー」であ
る場合には、カーソルの動きに関してすべてのダイナキ
ーがチェックされ、図30のコネクタBに向かって分岐
が行われ、他の実行時間イベントに対して待ち状態にな
る。スクリーン・レシート内の実際のカーソルの動き
は、直接<R>では行われないことに留意されたい。そ
の代わり、上記動きはNICE DLLコマンドによっ
て行われる。
【0082】ブロック684に戻って説明する。この問
い合わせの結果が「イエス」である場合には、前提条件
の特定のダイナキーの「データ有り」および「データ無
し」ELL結果を入手するために、ブロック686およ
び688が実行される。すなわち、各ELL機能の実行
は、数値「真」または「偽」に戻る。続いて、ブロック
690において問い合わせが行われる。この問い合わせ
の結果が「ノー」である場合には、ダイナキーのELL
の戻り数値はどちらも「真」にならない。それ故、ブロ
ック692が実行され、DK品目/DKリスト・スクリ
ーン上に常駐するNICE対象へのウィンドウズ・コマ
ンドにより、ダイナキーがアクティブでない状態にな
る。その後、他に評価対象のダイナキーがあるかどうか
を判断するために、コネクタIに向かって分岐が行われ
る。ブロック690に戻って説明する。この問い合わせ
の結果が「イエス」である場合には、ダイナキーの二つ
のELL機能の中の一つを実行することができる。それ
故、ブロック694が実行され、ダイナキー・テキスト
がアクティブになる。その後、今までのように、考慮の
対象となるダイナキーが他にもあるかどうかを判断する
ために、ブロック696が実行される。最後に、作動お
よび非作動について説明する。そのダイナキーの状態が
前と同じである場合には、冗長作業を行わないことが一
番よい。それ故、<R>がこの可能性をチェックするこ
とができるようにするためのアレイが保持されている。
これで、図35のフローチャートの説明を終わる。
【0083】図30においてダイナキー(商標)データ
キーの中の一つを押し、それが検出されると、処理が図
36のコネクタJに進む。続いて、ブロック700が実
行される。ここで、変数「iData」が1だけ増大す
る。この変数は、入力バッファ内にある入力文字の数を
追跡調査する。次に、ブロック702が実行される。こ
の問い合わせの目的は、データをスクリーン上でエコー
すべきかどうかを判断することである。この実行方法
は、キーボード・エコー、およびそうでない場合には、
左のブランクに対してチェックすることができる「環
境」ダイアログ変数を導入することである。これはパス
ワード保護スクリーンに対する便利な機能である。続い
て、ブロック702での問い合わせの結果が「イエス」
である場合には、ブロック704が実行される。それに
より、入力記号を現在の入力ストリングの後ろに連結す
ることができる。ブロック702に戻って説明する。こ
の問い合わせの結果が「ノー」である場合には、ブロッ
ク706が実行される。この場合、入力記号は入力スト
リングに追加されず、星印が追加される。しかし、実際
の入力記号は他のアレイ内に保持される。これにより、
以降のELL機能が、それを後で使用することができ
る。ブロック706または704が実行されると、ブロ
ック708が実行される。それにより、入力バッファの
内容がスクリーンの入力領域に表示される。最後に、コ
ネクタBに向かって分岐が行われ、他の実行時間イベン
ト待ち状態になる。これで図36のフローチャートの説
明を終わる。
【0084】図30でPOS周辺または関連イベントの
一つが検出された場合には、処理は図37のコネクタK
に進む。フローチャートの説明をする前に、POSの周
辺イベントについて少し説明する。スキャナ、MSR、
MICRおよびプリンタのような装置の場合には、NI
CEアクセス・ライブラリはメッセージを送受信するた
めにドライバと通信する。上記メッセージの中のいくつ
かは<R>のイベント・ハンドラ機能に転送される。し
かし、考慮しなければならない他の論理イベントがあ
る。これらイベントは、周辺イベントであると見なすこ
とができる。何故なら、それらはダイナキーまたは<入
力>イベントではないからである。例えば、図6につい
て考えてみよう。申し込みが始まると、通常現金収納引
出し40が開く。その後、オペレータが支払い金額を変
更することができるように、「追加支払い」DK品目ス
クリーン241が表示される。しかし、現金収納引出し
40は依然として開いたままである。最後に現金収納引
出しが閉められると、次のスクリーンが自動的に表示さ
れる。それ故、この要件を処理するには、「周辺」イベ
ントが下記のように導入される。
【0085】最初に、図6に示すスクリーン241の表
示に先行するELL機能が、一意のメッセージを<R>
のイベント・ハンドラ機能に送る。その後、この手順
は、本質的に、現金収納引出しが閉まるまで、同じイベ
ント・メッセージを繰り返して送信することにより、ル
ープを形成する。しかし、図6のスクリーンが表示され
ている間に、ある種のダイナキー(商標)入力が入力さ
れると仮定しよう。この解決策は、「現金収納引出し」
イベント・ループがアクティブである間に、ウィンドウ
ズの実行の変更を行うことである。このようにして、現
金収納引出しが最後に閉められると、すべての他の論理
イベントと同じように、そのイベントが処理される。<
B>が<R>にELL情報を提供することができるよう
に、「環境」ダイアログ・スクリーンは、スキャナ等に
対するのと同じように、現金収納引出しに対してリスト
・ボックスを含むことができる。このリスト・ボックス
がチェックされると、スキャナ等に対して行ったよう
に、そのイベントへのELL機能、グローバル分岐、お
よびローカル分岐を割り当てるために、以降の<B>レ
イアウト・メニュー選択を使用することができる。
【0086】もう一つの種類の周辺イベントを理解して
もらうために、図7のスクリーン251について考えて
みよう。ELL機能が最初に小切手を印刷するものと仮
定しよう。この場合、小切手の印刷が終了すると、「小
切手取り出し」DK品目スクリーンが表示される。この
スクリーンは、オペレータにプリンタから小切手を取り
出すように指示する。しかし、このような指示が行われ
ると、あとはオペレータが何もしなくても、以降のスク
リーンが表示される。この問題を解決するために、最も
一般的には、「環境」ダイアログに「フォーム・アウ
ト」イベント・リスト・ボックスが追加される。その
後、「現金収納引出し」イベントに対して行ったよう
に、必要に応じて、このボックスをチェックすることが
できる。同様に周辺イベントに分類されるもっとあいま
いな種類のイベントは、「無効アクション」イベントで
ある。例えば、図8について再び考えてみよう。レシー
ト領域265にメッセージが表示されていることに留意
されたい。このメッセージは、ダイナキー(商標)上に
スクリーン261が表示された後で表示される。しか
し、共通実行時間イベントによっては、このような表示
は行われない。それ故、この問題を処理するために、ス
クリーンの生成が行われた後で、ダミーのイベントが発
生する。特に、「環境」ダイアログに「無効アクショ
ン」リスト・ボックスが追加される。チェックすると
き、ELL機能、グローバル分岐およびローカル分岐を
この「周辺」イベントに与えることができる。もちろ
ん、この場合のグローバル分岐は、おそらく決して使用
されず、ローカル分岐は同じスクリーンに向かって行わ
れる。要するに、<R>がこのスクリーンを生成する
と、適当な「環境」変数が<B>でチェックされた場
合、ダミー・メッセージがイベント・ハンドラ機能に送
られる。このようにして、最初のスクリーン・ロジック
を実行することができる。
【0087】要するに、周辺イベントは、オペレータが
「キー」を押すことによってトリガーされたイベントと
に関連しない実行時間イベントからなる。しかし、厳密
にいうと、イベントすべてが、本当の意味では周辺装置
イベントではない。続いて、コネクタKに分岐が行われ
ると、ブロック710が実行される。それにより、周辺
ループ変数「i」に、初期値1が与えられる。次に、ブ
ロック712が実行される。この問い合わせの結果が
「ノー」である場合には、その周辺イベントはi番目の
ものではなく、ブロック714が実行される。ここで、
ループ変数「i]が1だけ増大する。次に、ブロック7
16において問い合わせが行われる。この問い合わせの
結果が「イエス」である場合には、他の周辺イベントを
チェックする必要があり、ブロック712に向かって分
岐が行われる。この問い合わせの結果が「ノー」である
場合には、特定の周辺イベントが検出されず、図30の
コネクタBに向かって分岐が行われ、他の実行時間イベ
ント待ち状態になる。この分岐は行われないが、終了す
るためのものである。
【0088】図37のブロック712に戻って説明す
る。この問い合わせの結果が「イエス」である場合に
は、図30で検出したばかりの、この周辺イベントは、
i番目のイベントであり、この場合、正しい数値が変数
「i」に記憶される。続いて、ブロック718が実行さ
れる。この問い合わせの結果が「イエス」である場合に
は、インターフェース構造体から、ブロック720の
「データ有り」状態に関するELL情報を検索するため
に、「iEvent[i]」変数値が使用される。この
検索アルゴリズムに対する一つの実行は、数値が10で
ある「i」に対する数値に<B>の、「環境」ダイアロ
グ・マップ上の第一の周辺リスト・ボックスを入手する
ことである。何故なら、第一の八つのダイナキーおよび
<入力>キーは、すでに最初の九つの数値を使用してい
るからである。この方法により、あるスクリーンに対す
るインターフェース構造体は、ELLデータ情報に対す
る構造体の埋設アレイを持つことができる。
【0089】ブロック718に戻って説明する。この問
い合わせの結果が「ノー」である場合には、i番目のイ
ベントのELL情報は、ブロック722のイベントに対
する「データ無し」状態から取り出される。その後、ブ
ロック722または720が実行され、ELL作業を行
うために、図32のコネクタDに向かって分岐が行われ
る。このフローチャートは、ダイナキー・イベントを処
理した時にすでに説明した。これで図37の説明を終わ
る。ELL機能の一つが、ウィンドウズに、プログラム
を終了する必要があることを示すメッセージを送った場
合に、処理は図38のコネクタLに進む。このフローチ
ャートは、<R>の最後のフローチャートである。続い
て、ブロック722が実行され、すべてのDK品目/D
Kリスト・インターフェース・スクリーンが消去され
る。次に、ブロック724が実行され、ブランクのDK
品目が消去される。その後、ブロック726が実行さ
れ、隠れているベースライン・スクリーンが消去され
る。最後に、ブロック728および730が実行され、
<R>終了ロジックが実行され、プログラムは終了す
る。上記終了ロジックは、周辺機器、LAN等への任意
の切り放しロジックを含むことができる。これで<R>
インターフェース内蔵についての説明を終わる。好適な
実施形態を参照しながら本発明を詳細に説明してきた
が、本発明の精神および範囲から逸脱しないで、種々の
変化および修正を行うことができることを理解された
い。
【0090】<関連出願への相互参照>本出願は、「グ
ラフィカル・タッチ・ユーザ・インターフェースを組立
て、試験し、組み込むためのシステムおよび方法」とい
う名称の、1996年10月31日付けの米国特許出願
号の一部継続出願である。
【図面の簡単な説明】
【図1】開発システムのブロック図である。
【図2】小売りダイナキー(商標)システムの関連ブロ
ック図である。
【図3】通常のDK品目およびDKリスト小売りスクリ
ーンの例である。
【図4】通常のDK品目およびDKリスト小売りスクリ
ーンの例である。
【図5】通常のDK品目およびDKリスト小売りスクリ
ーンの例である。
【図6】通常のDK品目およびDKリスト小売りスクリ
ーンの例である。
【図7】通常のDK品目およびDKリスト小売りスクリ
ーンの例である。
【図8】通常のDK品目およびDKリスト小売りスクリ
ーンの例である。
【図9】図3の対象物用の外部インターフェース言語で
ある。
【図10】図3の対象物の読むことができる印刷物であ
る。
【図11】テスター<T>プログラムの視覚的な例であ
る。
【図12】外部ダイナキー(商標)インターフェースを
組立てるためのフローチャートである。
【図13】外部ダイナキー(商標)インターフェースを
組立てるためのフローチャートである。
【図14】外部ダイナキー(商標)インターフェースを
組立てるためのフローチャートである。
【図15】外部ダイナキー(商標)インターフェースを
組立てるためのフローチャートである。
【図16】外部ダイナキー(商標)インターフェースを
組立てるためのフローチャートである。
【図17】外部ダイナキー(商標)インターフェースを
組立てるためのフローチャートである。
【図18】外部ダイナキー(商標)インターフェースを
組立てるためのフローチャートである。
【図19】外部ダイナキー(商標)インターフェースを
組立てるためのフローチャートである。
【図20】外部ダイナキー(商標)インターフェースを
組立てるためのフローチャートである。
【図21】外部ダイナキー(商標)インターフェースを
組立てるためのフローチャートである。
【図22】外部ダイナキー(商標)インターフェースを
組立てるためのフローチャートである。
【図23】外部ダイナキー(商標)インターフェースを
組立てるためのフローチャートである。
【図24】ダイナキー(商標)外部インターフェースに
指定された分岐を試験するためのフローチャートであ
る。
【図25】ダイナキー(商標)外部インターフェースに
指定された分岐を試験するためのフローチャートであ
る。
【図26】ダイナキー(商標)外部インターフェースに
指定された分岐を試験するためのフローチャートであ
る。
【図27】ダイナキー(商標)外部インターフェースに
指定された分岐を試験するためのフローチャートであ
る。
【図28】ダイナキー(商標)外部インターフェースに
指定された分岐を試験するためのフローチャートであ
る。
【図29】特定のPOS実行時間システム内に上記イン
ターフェースを組み込むためのフローチャートである。
【図30】特定のPOS実行時間システム内に上記イン
ターフェースを組み込むためのフローチャートである。
【図31】特定のPOS実行時間システム内に上記イン
ターフェースを組み込むためのフローチャートである。
【図32】特定のPOS実行時間システム内に上記イン
ターフェースを組み込むためのフローチャートである。
【図33】特定のPOS実行時間システム内に上記イン
ターフェースを組み込むためのフローチャートである。
【図34】特定のPOS実行時間システム内に上記イン
ターフェースを組み込むためのフローチャートである。
【図35】特定のPOS実行時間システム内に上記イン
ターフェースを組み込むためのフローチャートである。
【図36】特定のPOS実行時間システム内に上記イン
ターフェースを組み込むためのフローチャートである。
【図37】特定のPOS実行時間システム内に上記イン
ターフェースを組み込むためのフローチャートである。
【図38】特定のPOS実行時間システム内に上記イン
ターフェースを組み込むためのフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ガリー レイヤング アメリカ合衆国 ジョージア州 30338 ダンウディー キングス ダウン ロード 4653

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ・システムの、一つまたは
    それ以上のインターフェース制御を備えるグラフィカル
    ・ユーザ・インターフェースを生成するためのシステム
    であって、 (a)各入力が一つのインターフェース制御に関連し、
    少なくとも一つのインターフェース制御が一つの機能に
    関連している場合に、一つまたはそれ以上の入力を含む
    ファイルを生成するための手段と、 (b)上記ファイルを記憶するための手段と、 (c)システムのユーザに、インターフェース制御の図
    形的表現を表示するための手段と、 (d)選択手段が選択したインターフェース制御に関連
    している場合に、ユーザに応答するインターフェース制
    御の一つを選択するための手段と、 (e)(i)記憶手段から上記ファイルの入力を読み取
    り、(ii)上記ファイルに含まれる、上記選択手段に
    より選択されたインターフェース制御に関連する機能を
    実行するための実行時間手段とを備えるシステム。
  2. 【請求項2】 コンピュータ・システムで一つまたはそ
    れ以上のインターフェース制御を備えているグラフィカ
    ル・タッチ・インターフェースを生成するための方法で
    あって、 (a)各入力が一つのインターフェース制御に関連し、
    少なくとも一つのインターフェース制御が一つの機能に
    関連している場合に、一つまたはそれ以上の入力を含む
    ファイルの生成と、 (b)上記コンピュータ・システムに接続している記憶
    装置への、上記ファイルの記憶と、 (c)コンピュータ・システムのユーザへの、インター
    フェース制御の図形的表現の表示と、 (d)コンピュータ・システムのユーザに応答するイン
    ターフェース制御の一つの選択と、 (e)上記記憶手段からの、上記ファイルの各入力の読
    み取りと、 (f)上記ファイルの選択したインターフェース制御機
    能に関連する機能の実行とを含む方法。
  3. 【請求項3】 ビデオ・ディスプレイを含むコンピュー
    タ・システムの、一つまたはそれ以上のインターフェー
    ス制御を備えているグラフィカル・タッチ・インターフ
    ェースを生成するための方法であって、 (a)各入力が一つのインターフェース制御に関連し、
    少なくとも一つのインターフェース制御が一つの機能に
    関連している場合に、一つまたはそれ以上の入力を含む
    ファイルの生成と、 (b)上記コンピュータ・システムに接続している記憶
    装置への、上記ファイルの記憶と、 (c)コンピュータ・システムのユーザへの、インター
    フェース制御の図形的表現の表示と、 (d)コンピュータ・システムのユーザに応答するイン
    ターフェース制御の一つの選択と、 (e)上記記憶手段からの、上記ファイルの各入力の読
    み取りと、 (f) 各入力に関連するインターフェース制御に関す
    る情報の、ビデオ・ディスプレイ上への表示と、 (g)各インターフェース制御に関連する上記機能に関
    する情報のビデオ・ディスプレイ上への表示とを含む方
    法。
JP33341897A 1996-10-31 1997-10-28 グラフィカル ユーザー インタフェース システム及び方法 Pending JPH10232768A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/742,005 1996-10-31
US08/742,005 US5920312A (en) 1996-10-31 1996-10-31 System and method for building testing and integrating a graphical dynakey user interface

Publications (1)

Publication Number Publication Date
JPH10232768A true JPH10232768A (ja) 1998-09-02

Family

ID=24983126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33341897A Pending JPH10232768A (ja) 1996-10-31 1997-10-28 グラフィカル ユーザー インタフェース システム及び方法

Country Status (3)

Country Link
US (1) US5920312A (ja)
EP (1) EP0841613A3 (ja)
JP (1) JPH10232768A (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628309B1 (en) * 1999-02-05 2003-09-30 International Business Machines Corporation Workspace drag and drop
US7039571B1 (en) 1999-12-21 2006-05-02 Lockheed Martin Corporation Method for programming operator system interface with a simulator
US6580440B1 (en) 2000-04-05 2003-06-17 Ncr Corporation System and method for automatically creating and updating a graphical user interface
US7128760B2 (en) * 2001-03-27 2006-10-31 Warsaw Orthopedic, Inc. Radially expanding interbody spinal fusion implants, instrumentation, and methods of insertion
AR038680A1 (es) 2002-02-19 2005-01-26 Synthes Ag Implante intervertebral
US7453442B1 (en) 2002-12-03 2008-11-18 Ncr Corporation Reconfigurable user interface systems
CA2515247C (en) 2003-02-06 2010-10-05 Synthes (U.S.A.) Intervertebral implant
US7819903B2 (en) 2003-03-31 2010-10-26 Depuy Spine, Inc. Spinal fixation plate
US8024706B1 (en) 2005-09-27 2011-09-20 Teradata Us, Inc. Techniques for embedding testing or debugging features within a service
EP1988855A2 (en) 2006-02-27 2008-11-12 Synthes GmbH Intervertebral implant with fixation geometry
US8140986B2 (en) * 2007-09-27 2012-03-20 International Business Machines Corporation Generating test scenarios using reusable triggers indicating graphical user interface (GUI) elements and actions
JP2011502708A (ja) 2007-11-16 2011-01-27 ジンテス ゲゼルシャフト ミット ベシュレンクテル ハフツング 低輪郭の椎間インプラント
US9400640B2 (en) 2008-02-05 2016-07-26 Wayne Baratta Web-based point of sale builder
US8612271B2 (en) 2008-10-02 2013-12-17 Certusview Technologies, Llc Methods and apparatus for analyzing locate and marking operations with respect to environmental landmarks
WO2010054181A1 (en) 2008-11-07 2010-05-14 Synthes Usa, Llc Vertebral interbody spacer and coupled plate assembly
CA2692110C (en) * 2009-02-11 2015-10-27 Certusview Technologies, Llc Providing a process guide to a locate technician
JP4677039B2 (ja) * 2009-04-08 2011-04-27 東芝テック株式会社 注文受付装置およびプログラム
CA2706195A1 (en) * 2009-06-25 2010-09-01 Certusview Technologies, Llc Methods and apparatus for assessing locate request tickets
US9241809B2 (en) 2010-12-21 2016-01-26 DePuy Synthes Products, Inc. Intervertebral implants, systems, and methods of use
EP2654626B1 (en) 2010-12-21 2016-02-24 Synthes GmbH Intervertebral implants and systems
US9867718B2 (en) 2014-10-22 2018-01-16 DePuy Synthes Products, Inc. Intervertebral implants, systems, and methods of use

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901221A (en) * 1986-04-14 1990-02-13 National Instruments, Inc. Graphical system for modelling a process and associated method
US5353219A (en) * 1989-06-28 1994-10-04 Management Information Support, Inc. Suggestive selling in a customer self-ordering system
US5163130A (en) * 1989-10-11 1992-11-10 Next Computer, Inc. System and method for configuring a graphic interface
JPH0756628B2 (ja) * 1990-10-22 1995-06-14 富士ゼロックス株式会社 グラフィカル・ユーザインターフェースの編集装置
EP0525258A1 (en) * 1991-07-29 1993-02-03 International Business Machines Corporation Generation of rules-based computer programs
US5533184A (en) * 1991-08-19 1996-07-02 International Business Machines Corporation Computer system for dynamically generating display screen panels providing interactive interfaces for application program steps
JP2525546B2 (ja) * 1992-09-08 1996-08-21 インターナショナル・ビジネス・マシーンズ・コーポレイション グラフィックリソ―ス・エディタ
US5438659A (en) * 1992-10-08 1995-08-01 Hewlett-Packard Company Object-action user interface management system
US5555369A (en) * 1994-02-14 1996-09-10 Apple Computer, Inc. Method of creating packages for a pointer-based computer system
US5765142A (en) * 1994-08-18 1998-06-09 Creatacard Method and apparatus for the development and implementation of an interactive customer service system that is dynamically responsive to change in marketing decisions and environments

Also Published As

Publication number Publication date
EP0841613A3 (en) 2004-06-30
EP0841613A2 (en) 1998-05-13
US5920312A (en) 1999-07-06

Similar Documents

Publication Publication Date Title
JPH10232768A (ja) グラフィカル ユーザー インタフェース システム及び方法
US6002395A (en) System and method for building, testing and integrating a graphical touch user interface
JP2752040B2 (ja) マルチメディア適用業務を作成する方法
US5251130A (en) Method and apparatus for facilitating contextual language translation within an interactive software application
US6580440B1 (en) System and method for automatically creating and updating a graphical user interface
US6562078B1 (en) Arrangement and method for inputting non-alphabetic language
US5583761A (en) Method for automatic displaying program presentations in different languages
US5590264A (en) Method and apparatus for graphic association of user dialog displays with primary applications in a data processing system
US6430663B1 (en) Methods for selecting a boot partition and hiding a non-selected partition
US5678039A (en) System and methods for translating software into localized versions
US6429793B1 (en) Abstraction of input mapping for keyboards
US5623261A (en) Method and system for translating keyed input within a data processing system
JP2782478B2 (ja) 自国言語サポートプログラムのテスト方法およびテスト装置
US7587378B2 (en) Embedded rule engine for rendering text and other applications
US4755808A (en) Automatic capture of pointing device actions in a keystroke program
US6209006B1 (en) Pop-up definitions with hyperlinked terms within a non-internet and non-specifically-designed-for-help program
US7102765B1 (en) Apparatus and method for automated testing of print drivers in a computer system
JP2016186805A (ja) 中国語、日本語、および韓国語の言語データを電子的形態で管理するためのモジュラーシステムと方法
US20140149103A1 (en) Modular system and method for managing chinese, japanese, and korean linguistic data in electronic form
JPH0778782B2 (ja) 対話型コンピュータ・システムならびにその使用環境適合化装置および方法
JPH09282330A (ja) データベース作成方法
US5802482A (en) System and method for processing graphic language characters
JP2001014103A (ja) 文字入力装置及び文字入力方法
JPH10301922A (ja) コマンド入力方法,かな漢字変換用ソフトウェアを用いて文字を入力する際のコマンド入力方法およびその方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3463331B2 (ja) メニュー選択方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070216

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070517

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071029

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071212

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101118