(57)【要約】【課題】データ収集装置で実行するアプリケーションソフトウェアを容易に作成する。【解決手段】バーコードを読み取るスキャナ４１を有するハンディターミナル５がバーコードに基づくデータの収集を行うための業務アプリケーション７２を生成するデータ処理装置１は、任意の項目を定義する表データ８１を生成する表計算ソフト６１と、表データ８１に定義された項目に基づいてデータを収集するためにハンディターミナル５が実行する業務アプリケーション７２が起動時に読み込む業務アプリケーション定義８３を生成するアプリケーション生成モジュール６２と、業務アプリケーション７２及び業務アプリケーション定義８３をハンディターミナル５に転送する通信モジュール６３及び通信装置３６と、表計算ソフト６１、アプリケーション生成モジュール６２及び通信モジュール６３を実行するＣＰＵ１１と、を備える。【選択図】図３
2010176557.tif 000002
【特許請求の範囲】
【請求項１】
識別情報の読取手段を有するデータ収集装置が前記識別情報に基づくデータの収集を行うためのアプリケーションソフトウェアを生成するアプリケーションソフトウェア生成装置であって、
任意の項目を定義する表データを生成する表データ生成手段と、
前記表データに定義された項目に基づいて前記データを収集するために前記データ収集装置が実行するアプリケーションソフトウェアを生成するアプリケーションソフトウェア生成手段と、
前記生成されたアプリケーションソフトウェアを前記データ収集装置に転送する転送手段と、
を備えることを特徴とするアプリケーションソフトウェア生成装置。
【請求項２】
前記識別情報に基づき収集するデータに対応する項目を指定する指定手段を備えることを特徴とする請求項１に記載のアプリケーションソフトウェア生成装置。
【請求項３】
前記指定手段は、前記表データに定義された項目のうち前記識別情報に基づき収集するデータに対応する項目と他の項目とを視覚的に判別可能とすることを特徴とする請求項２に記載のアプリケーションソフトウェア生成装置。
【請求項４】
前記アプリケーションソフトウェアは、
前記表データに定義された複数の項目に対して前記データ収集装置によるデータの入力を行うための画面を当該データ収集装置の表示装置に表示させる機能と、
前記画面上においてフォーカスの当たった項目に対して入力を可能とする機能と、
予め定められたルールに基づきフォーカスを移動させる機能と、を有し、
前記アプリケーションソフトウェア生成手段は、
前記表データに定義された項目のうち前記識別情報に基づき収集するデータに対応する項目が最初に入力する項目でない場合に、前記識別情報に基づき収集するデータに対応する項目よりも前に入力する項目に対する入力終了後に前記フォーカスを移動させる機能によりフォーカスを移動させる場合には前記識別情報に基づき収集するデータに対応する項目にフォーカスを移動させる前記ルールを生成することを特徴とする請求項３に記載のアプリケーションソフトウェア生成装置。
【請求項５】
前記表データに定義された項目に対応する項目を有する空の表データを生成する空データ生成手段と、
前記アプリケーションソフトウェアを実行した前記データ収集装置によって収集されたデータを取り込む取込手段と、
前記取込手段によって取り込まれたデータを前記空の表データに格納する格納手段と、を備えることを特徴とする請求項１から４のいずれか一項に記載のアプリケーションソフトウェア生成装置。
【請求項６】
前記表データ生成手段は、前記表データを複数生成することができ、
前記アプリケーションソフトウェア生成手段は、複数の前記表データにそれぞれ対応する複数のアプリケーションソフトウェアを生成することを特徴とする請求項１から５のいずれか一項に記載のアプリケーションソフトウェア生成装置。
【請求項７】
前記アプリケーションソフトウェア生成手段は、複数の前記表データにそれぞれ対応する複数のアプリケーションソフトウェアを生成すると共に生成された複数のアプリケーションソフトウェアのうちいずれか一つを選択して用いるためのメニューを生成し、
前記転送手段は、前記複数のアプリケーションソフトウェア及び前記メニューを前記データ収集装置に転送することを特徴とする請求項６に記載のアプリケーションソフトウェア生成装置。
【請求項８】
識別情報の読取手段を有するデータ収集装置が前記識別情報に基づくデータの収集を行うためのアプリケーションソフトウェアをコンピュータに生成させるためのプログラムであって、
前記コンピュータを、
任意の項目を定義する表データを生成する表データ生成手段、
前記表データに定義された項目に基づいて前記データを収集するために前記データ収集装置が実行するアプリケーションソフトウェアを生成するアプリケーションソフトウェア生成手段、
前記生成されたアプリケーションソフトウェアを前記データ収集装置に転送する転送手段、
として機能させることを特徴とするプログラム。
【請求項９】
識別情報の読取手段を有するデータ収集装置と、前記データ収集装置が前記識別情報に基づくデータの収集を行うためのアプリケーションソフトウェアを生成するアプリケーションソフトウェア生成装置と、を有するアプリケーションソフトウェア生成システムであって、
前記アプリケーションソフトウェア生成装置は、
任意の項目を定義する表データを生成する表データ生成手段と、
前記表データに定義された項目に基づいて前記データを収集するために前記データ収集装置が実行するアプリケーションソフトウェアを生成するアプリケーションソフトウェア生成手段と、
前記生成されたアプリケーションソフトウェアを前記データ収集装置に転送する転送手段と、
を備えることを特徴とするアプリケーションソフトウェア生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションソフトウェア生成装置、プログラム及びアプリケーションソフトウェア生成システムに関する。
【背景技術】
【０００２】
棚卸等、資材の数量等の各種情報を把握して管理するため、各資材に付された識別子（例えばバーコードやRFID等）を読み取ってデータとして取り込むデータ収集装置（例えばバーコードリーダやRFIDリーダ等）が知られている。
このようなデータ収集装置として、多数の資材を収めた施設内で各資材に付された識別子を読み取る作業における所持、持ち運び及び取り回し等を考慮し、ハンディターミナル等の形態をとるものがある。以下、データ収集装置の一例として、バーコードを読み取るハンディターミナルを取り上げた説明を行う。
【０００３】
ハンディターミナルで収集するデータの種類は一種類とは限らず、用途に応じて多岐にわたる。このため、収集するデータに応じて実行するアプリケーションソフトウェアを使い分けることが可能なハンディターミナルがある。このようなハンディターミナルを用いる場合、収集したいデータに応じたアプリケーションを外部のコンピュータ等からハンディターミナルに転送した上で、ハンディターミナルが有する制御部に実行させる。以下の記載において、「アプリケーション」の記載はアプリケーションソフトウェアを指す。
【０００４】
収集するデータに応じて実行するアプリケーションを使い分けられるハンディターミナルを用いる場合、収集するデータに応じたアプリケーションの作成により任意のデータを収集することができる。しかしながら、アプリケーションを作成するには専門的な知識を有することから、収集したい項目に応じてアプリケーションを作成することは難しく、またコストがかかる。そこで、ハンディターミナルで実行するアプリケーションの作成を支援する専用のプログラムツールを利用してアプリケーションの作成処理を効率的に行うためのアプリケーション生成方法及びシステムが公開されている（例えば特許文献１及び特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−０３１８１６号公報
【特許文献２】特開２００５−０３１８１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１及び特許文献２に記載のプログラムツールを利用する場合、当該プログラムツールを活用するための専門知識が必要となる。このため、当該プログラムツールの利用方法を知らない又はその経験が浅い者は、プログラムツールを利用することが難しい作業となってしまう。つまり、プログラムツールを利用したとしても、アプリケーションの作成に不慣れな者にとっては結果としてアプリケーションの作成が難しい作業であることに変わりはない。このため、アプリケーションの作成に不慣れな者が収集したい項目に応じたアプリケーションを任意に作成することは不可能に等しい。
【０００７】
上記の問題は、バーコードを読み取るハンディターミナルに限らず、アプリケーションを実行可能なデータ収集装置ならば該当しうる問題である。
【０００８】
本発明の課題は、データ収集装置で実行するアプリケーションソフトウェアを容易に作成することである。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、請求項１記載の発明によるアプリケーションソフトウェア生成装置は、識別情報の読取手段を有するデータ収集装置が前記識別情報に基づくデータの収集を行うためのアプリケーションソフトウェアを生成するアプリケーションソフトウェア生成装置であって、任意の項目を定義する表データを生成する表データ生成手段と、前記表データに定義された項目に基づいて前記データを収集するために前記データ収集装置が実行するアプリケーションソフトウェアを生成するアプリケーションソフトウェア生成手段と、前記生成されたアプリケーションソフトウェアを前記データ収集装置に転送する転送手段と、を備えることを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載のアプリケーションソフトウェア生成装置において、前記識別情報に基づき収集するデータに対応する項目を指定する指定手段を備えることを特徴とする。
【００１１】
請求項３に記載の発明は、請求項２に記載のアプリケーションソフトウェア生成装置において、前記指定手段は、前記表データに定義された項目のうち前記識別情報に基づき収集するデータに対応する項目と他の項目とを視覚的に判別可能とすることを特徴とする。
【００１２】
請求項４に記載の発明は、請求項３に記載のアプリケーションソフトウェア生成装置において、前記アプリケーションソフトウェアは、前記表データに定義された複数の項目に対して前記データ収集装置によるデータの入力を行うための画面を当該データ収集装置の表示装置に表示させる機能と、前記画面上においてフォーカスの当たった項目に対して入力を可能とする機能と、予め定められたルールに基づきフォーカスを移動させる機能と、を有し、前記アプリケーションソフトウェア生成手段は、前記表データに定義された項目のうち前記識別情報に基づき収集するデータに対応する項目が最初に入力する項目でない場合に、前記識別情報に基づき収集するデータに対応する項目よりも前に入力する項目に対する入力終了後に前記フォーカスを移動させる機能によりフォーカスを移動させる場合には前記識別情報に基づき収集するデータに対応する項目にフォーカスを移動させる前記ルールを生成することを特徴とする。
【００１３】
請求項５に記載の発明は、請求項１から４のいずれか一項に記載のアプリケーションソフトウェア生成装置において、前記表データに定義された項目に対応する項目を有する空の表データを生成する空データ生成手段と、前記アプリケーションソフトウェアを実行した前記データ収集装置によって収集されたデータを取り込む取込手段と、前記取込手段によって取り込まれたデータを前記空の表データに格納する格納手段と、を備えることを特徴とする。
【００１４】
請求項６に記載の発明は、請求項１から５のいずれか一項に記載のアプリケーションソフトウェア生成装置において、前記表データ生成手段は、前記表データを複数生成することができ、前記アプリケーションソフトウェア生成手段は、複数の前記表データにそれぞれ対応する複数のアプリケーションソフトウェアを生成することを特徴とする。
【００１５】
請求項７に記載の発明は、請求項６に記載のアプリケーションソフトウェア生成装置において、前記アプリケーションソフトウェア生成手段は、複数の前記表データにそれぞれ対応する複数のアプリケーションソフトウェアを生成すると共に生成された複数のアプリケーションソフトウェアのうちいずれか一つを選択して用いるためのメニューを生成し、前記転送手段は、前記複数のアプリケーションソフトウェア及び前記メニューを前記データ収集装置に転送することを特徴とする。
【００１６】
請求項８に記載のプログラムは、識別情報の読取手段を有するデータ収集装置が前記識別情報に基づくデータの収集を行うためのアプリケーションソフトウェアをコンピュータに生成させるためのプログラムであって、前記コンピュータを、任意の項目を定義する表データを生成する表データ生成手段、前記表データに定義された項目に基づいて前記データを収集するために前記データ収集装置が実行するアプリケーションソフトウェアを生成するアプリケーションソフトウェア生成手段、前記生成されたアプリケーションソフトウェアを前記データ収集装置に転送する転送手段、として機能させることを特徴とする。
【００１７】
請求項９に記載のアプリケーションソフトウェア生成システムは、識別情報の読取手段を有するデータ収集装置と、前記データ収集装置が前記識別情報に基づくデータの収集を行うためのアプリケーションソフトウェアを生成するアプリケーションソフトウェア生成装置と、を有するアプリケーションソフトウェア生成システムであって、前記アプリケーションソフトウェア生成装置は、任意の項目を定義する表データを生成する表データ生成手段と、前記表データに定義された項目に基づいて前記データを収集するために前記データ収集装置が実行するアプリケーションソフトウェアを生成するアプリケーションソフトウェア生成手段と、前記生成されたアプリケーションソフトウェアを前記データ収集装置に転送する転送手段と、を備えることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、データ収集装置で実行するアプリケーションソフトウェアを容易に作成することができる。
【図面の簡単な説明】
【００１９】
【図１】アプリケーション生成装置として機能するデータ処理装置を含むアプリケーション生成システムの構成を示す図である。
【図２】アプリケーション生成システムの各構成のブロック図である。
【図３】アプリケーション生成システムのソフトウェア及びデータの構成と各を示す図である。
【図４】アプリケーション生成システムの処理内容の概要を示す説明図である。
【図５】表データの一例を示す図である。図５（ａ）は、表データの「棚卸」シートにフォーカスが当たっている状態を示し、図５（ｂ）は、表データの「フロア棚卸」シートにフォーカスが当たっている状態を示し、図５（ｃ）は、表データの「エリア棚卸」シートにフォーカスが当たっている状態を示す。
【図６】アプリケーション生成モジュールの操作画面の表示例である。
【図７】業務アプリケーションを実行中のハンディターミナルの表示装置の表示内容の一例を示す図である。図７（ａ）は、「棚卸」の業務アプリケーション定義に対応した表示内容を示し、図７（ｂ）は、「フロア棚卸」の業務アプリケーション定義に対応した表示内容を示し、図７（ｃ）は、「エリア棚卸」の業務アプリケーション定義に対応した表示内容を示す。
【図８】業務アプリケーションの実行時の表示画面におけるフォーカス位置の一例を示す図である。図８（ａ）は棚卸日及び担当者の入力前の一例を示し、図８（ｂ）は棚卸日及び担当者の入力後の一例を示す。図８（ａ）、（ｂ）に示す図は、図７（ａ）に示す「棚卸」の業務アプリケーション定義に対応した表示内容である。
【図９】業務メニューを実行中のハンディターミナル５の表示装置３８の表示内容の一例を示す図である。
【図１０】メニューシートの一例を示す図である。図１０（ａ）は、表データの末尾シートとして生成されたメニューシートの表示例を示し、図１０（ｂ）は印刷されたメニューシートの一例を示す。
【図１１】登録用表データの表示例を示す図である、図１１（ａ）は、登録データを格納する前の登録用表データの表示例を示し、図１１（ｂ）は、登録データを格納した後の登録用表データの表示例を示す。
【図１２】表データの各セルに定義される項目及び設定されるデータと、メニューシート及び登録用表データに定義される項目と、の関係を示す模式図である。
【図１３】バーコードの一例を示す図である。図１３（ａ）は「BS1」のバーコードの一例を示し、図１３（ｂ）は「BE1」のバーコードの一例を示す。
【図１４】業務メニュー定義の内容の一例を示す図である。
【図１５】メニュー画面の表示内容の一例を示す模式図である。図１５（ａ）は、メインメニューの表示内容を示し、図１５（ｂ）は、環境設定メニューの表示内容を示す。
【図１６】業務アプリケーション定義の内容の一例を示す図である。
【図１７】業務アプリケーション実行時の表示内容の一例を示す模式図である。図１７（ａ）は各部の符号を示し、図１７（ｂ）はレイアウトに関する変数が示す位置を示す。
【図１８】各テキストボックスへの入力が行われた状態の業務アプリケーションの表示内容の一例を示す。
【図１９】登録データの内容の一例を示す。
【図２０】登録データのデータを格納した後の登録用表データの内容の一例を示す模式図である。
【図２１】アプリケーション生成処理の内容を示すフローチャートである。
【図２２】ステップＳ１に示す業務メニュー定義の生成処理の内容を示すサブフローである。
【図２３】ステップＳ１２に示すメイン業務メニュー定義出力処理の内容を示すサブフローである。
【図２４】ステップＳ１３に示す環境設定業務メニュー定義出力処理の内容を示すサブフローである。
【図２５】ステップＳ２に示す全てのアプリケーション定義の生成処理の内容を示すサブフローである。
【図２６】ステップＳ４２に示す各アプリケーション定義の出力処理の内容を示すサブフローである。
【図２７】ステップＳ５２に示す[CTRL_BASE]出力処理の内容を示すサブフローである。
【図２８】ステップＳ５３に示す[CTRL]出力処理の内容を示すサブフローである。
【図２９】ステップＳ６２に示すLABEL出力処理の内容を示すサブフローである。
【図３０】ステップＳ６３に示すEDIT出力処理の内容を示すサブフローである。
【図３１】ステップＳ５４に示す[FOCUS]出力処理の内容を示すサブフローである。
【図３２】ステップＳ５５に示す[SCAN]出力処理の内容を示すサブフローである。
【図３３】ステップＳ５６に示す[ENTRY]出力処理の内容を示すサブフローである。
【図３４】ステップＳ１２３に示すFIELDS出力処理の内容を示すサブフローである。
【図３５】ステップＳ１２４に示すVALUES出力処理の内容を示すサブフローである。
【図３６】ステップＳ３に示す登録用表データの生成処理の内容を示すサブフローである。
【図３７】ステップＳ１５５に示す登録用表データのシート生成処理の内容を示すサブフローである。
【図３８】ステップＳ４に示すメニューシート生成処理の内容を示すサブフローである。
【図３９】ステップＳ１７７に示すメインメニューラベル生成処理の内容を示すサブフローである。
【図４０】ステップＳ１７９に示す環境設定メニューラベル生成処理の内容を示すサブフローである。
【図４１】クレードルの監視処理の内容を示すフローチャートである。
【図４２】ステップＳ２４２に示す登録データの格納処理の内容を示すサブフローである。
【図４３】業務メニューの起動処理の内容を示すフローチャートである。
【図４４】ステップＳ２７３に示すメインメニュー表示処理の内容を示すサブフローである。
【図４５】設定ボタン操作時の処理内容を示すフローチャートである。
【図４６】ステップＳ２９１に示す環境設定表示処理の内容を示すサブフローである。
【図４７】戻るボタン操作時の処理内容を示すフローチャートである。
【図４８】メインメニュー画面におけるメニューボタン操作時の処理内容を示すフローチャートである。
【図４９】メインメニュー画面における番号キー操作時の処理内容を示すフローチャートである。
【図５０】業務アプリケーションの起動処理の内容を示すサブフローである。
【図５１】環境設定メニュー画面におけるメニューボタン操作時の処理内容を示すフローチャートである。
【図５２】環境設定メニュー画面における番号キー操作時の処理内容を示すフローチャートである。
【図５３】環境設定アプリケーションの起動処理の内容を示すサブフローである。
【図５４】メニューシートのスキャン処理の内容を示すフローチャートである。
【図５５】業務アプリケーションの起動時に行われる処理内容を示すフローチャートである。
【図５６】EDITフォーカスイン処理の内容を示すフローチャートである。
【図５７】EDITフォーカスアウト処理の内容を示すフローチャートである。
【図５８】業務アプリケーション実行時のスキャン処理の内容を示すフローチャートである。
【図５９】フォーカス移動時の処理内容を示すフローチャートである。
【図６０】登録ボタン及び入力装置のリターンキー操作時の処理内容を示すフローチャートである。
【図６１】ステップＳ４３４及びステップＳ４４１に示す登録データ保存処理の内容を示すサブフローである。
【図６２】ステップＳ４３５及びステップＳ４４２に示すテキストボックスのクリア処理の内容を示すサブフローである。
【図６３】バーコードラベルを作成する際の表示装置の表示内容の一例を示す。
【図６４】生成されたバーコードラベルの印刷データの一例を示す。
【発明を実施するための形態】
【００２０】
以下、図を参照して本発明の実施形態について詳細に説明する。
【００２１】
図１は、アプリケーション生成装置として機能するデータ処理装置１を含むアプリケーション生成システム１００の構成を示す図である。
アプリケーション生成システム１００は、データ処理装置１、クレードル２、ラベルプリンタ３、プリンタ４及びハンディターミナル５を有する。データ処理装置１と他の各機器は、ケーブル６を介して接続されている。
【００２２】
データ処理装置１は、ハンディターミナル５が実行するアプリケーションを生成する機能、生成したアプリケーションをハンディターミナルに転送する機能、ハンディターミナル５が記憶したデータを取り込んで格納する機能、ラベルプリンタ３又はプリンタ４による印刷の制御を行う機能及びその他のアプリケーション生成システム１の各種動作を制御する機能を有するコンピュータである。
【００２３】
クレードル２は、ハンディターミナル５とデータ処理装置１とを接続するためのインターフェースとして機能する。
【００２４】
ラベルプリンタ３は、ハンディターミナル５が有するスキャナ４１（後述）によって読み取り可能なバーコード等のラベルを印刷する機能を有する。
【００２５】
プリンタ４は、ハンディターミナル５が実行するアプリケーションを選択するためのメニューシートの印刷を含む各種の印刷を行う機能を有する。
【００２６】
ハンディターミナル５は、データ処理装置１から転送されたアプリケーションを実行し、スキャナ４１（後述）によってバーコードを読み取って各種データを収集して記憶する機能及び入力装置３７（後述）による入力操作によって入力されたデータを記憶する機能を有する。ハンディターミナル５が収集、記憶するデータの定義はアプリケーションに基づく。
【００２７】
図２は、アプリケーション生成システム１００の各構成のブロック図である。
データ処理装置１は、ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、ＨＤＤ１４、通信装置１６、入力装置１７、表示装置１８及びインターフェース１９（以下の記載及び図においてＩ／Ｆ１９とする）を有し、これらの各構成はバス２０によって接続されている。
【００２８】
ＣＰＵ１１は、ＲＯＭ１３、ＨＤＤ１４から処理内容に応じたプログラム、データ等を読み込み、実行処理することでデータ処理装置１及びアプリケーション生成システム１００の動作に関する各種処理を行う。ＣＰＵ１１が行う処理において読み込むプログラム、データ及び一時的に生じるパラメータ等はＲＡＭ１２に格納される。
【００２９】
ＲＯＭ１３は、ＣＰＵ１１が読み込む各種のプログラム、データ等を書き換え不可能に記憶する。ＨＤＤ１４は、ＣＰＵ１１が読み込む各種のプログラム、データ等を書き換え可能に記憶すると共に、ＣＰＵ１１の処理結果として生じた各種のデータやハンディターミナル５から取り込まれたデータ等を記憶する記憶領域としても機能する。
【００３０】
通信装置１６は、他の機器と通信を行う機能を有する。通信装置１６は例えばイーサネット(Ethernet)(登録商標)接続のためのネットワーク・インターフェース・カード(Network Interface Card、NIC)や無線LAN機器及びBluetoothによる通信のための機器等であり、用途に応じて使い分けることが可能である。
【００３１】
入力装置１７は、データ処理装置１が行う各種処理内容に関する外部からの入力を行う。入力装置１７は、例えばキーボードやマウス等であり、その他のヒューマンインターフェースも用いることができる。
【００３２】
表示装置１８は、データ処理装置１が行う画面出力の内容を表示する。表示装置１８は、例えば液晶ディスプレイやブラウン管、有機ＥＬ(Electro-Luminescence)ディスプレイ等であり、その他の画面表示デバイスも用いることができる。
【００３３】
Ｉ／Ｆ１９は、データ処理装置１と他の機器とを接続するためのインターフェースである。Ｉ／Ｆ１９は、例えばＵＳＢ(Universal Serial Bus)やIEEE1394、その他のシリアルポート又はパラレルポート等であり、用途に応じて使い分けることが可能である。本実施形態では、データ処理装置１とクレードル２、ラベルプリンタ３及びプリンタ４はＵＳＢを介して接続されており、ケーブル６はＵＳＢケーブルである。
【００３４】
ハンディターミナル５は、ＣＰＵ３１、ＲＡＭ３２、ＲＯＭ３３、フラッシュメモリ３４、通信装置３６、入力装置３７、表示装置３８、インターフェース３９（以下の記載及び図においてＩ／Ｆ３９とする）、スキャナ４１及びトリガーキー４２を有し、これらの各構成はバス４０によって接続されている。
【００３５】
ＣＰＵ３１は、ＲＯＭ３３、フラッシュメモリ３４から処理内容に応じたプログラム、データ等を読み込み、実行処理することでハンディターミナル５の動作に関する各種処理を行う。ＣＰＵ３１が行う処理において読み込むプログラム、データ及び一時的に生じるパラメータ等はＲＡＭ３２に格納される。
【００３６】
ＲＯＭ３３は、ＣＰＵ３１が読み込む各種のプログラム、データ等を書き換え不可能に記憶する。フラッシュメモリ３４は、ＣＰＵ３１が読み込む各種のプログラム、データ等を書き換え可能に記憶すると共に、ＣＰＵ３１の処理結果として生じた各種のデータやデータ処理装置１から転送されたアプリケーション等を記憶する記憶領域としても機能する。
【００３７】
通信装置３６は、他の機器と通信を行う機能を有する。通信装置３６は例えばイーサネット(Ethernet)接続のためのネットワーク・インターフェース・カード(Network Interface Card、NIC)や無線LAN機器及びBluetoothによる通信のための機器等であり、用途に応じて使い分けることが可能である。
【００３８】
入力装置３７は、ハンディターミナル５が行う各種処理内容に関する外部からの入力を行う。入力装置３７は、例えばハンディターミナル５と一体で設けられたボタン、キー等であり、その他のヒューマンインターフェース、例えば外付けのキーボード等も用いることができる。
【００３９】
表示装置３８は、ハンディターミナル５の画面出力内容を表示する。表示装置３８は、例えば液晶ディスプレイや有機ＥＬ(Electro-Luminescence)ディスプレイ等であり、その他の画面表示デバイスも用いることができる。
【００４０】
Ｉ／Ｆ３９は、ハンディターミナル５と他の機器とを接続するためのインターフェースである。Ｉ／Ｆ１９は、例えばＵＳＢ(Universal Serial Bus)やIEEE1394、その他のシリアルポート又はパラレルポート等であり、用途に応じて使い分けることが可能である。本実施形態では、ハンディターミナル５とクレードル２とはＵＳＢを介して接続されており、クレードル２にはインターフェース５１（I／Ｆ５１）として、データ処理装置１と接続するためのＵＳＢポートとハンディターミナル５と接続するためのＵＳＢポートとが別個に存在する。
【００４１】
スキャナ４１は、バーコードを読み取る。具体的には、スキャナ４１の動作中にスキャナ４１の読取部をバーコードにかざすと、バーコードが示す情報を読み取る。スキャナ４１が読み取った情報はデータとしてＣＰＵ３１に入力される。
トリガーキー４２は、スキャナ４１の動作のＯＮ／ＯＦＦを切り替えるキーであり、トリガーキー４２の操作によりスキャナ４１をＯＮにすると、スキャナ４１によるバーコードの読み取りを行うことができる。
【００４２】
図３は、アプリケーション生成システム１００のソフトウェア及びデータの構成と各を示す図である。
データ処理装置１は、表計算ソフト６１、アプリケーション生成モジュール６２、通信モジュール６３、表データ登録モジュール６４及びバーコードラベル作成モジュール６５の各種ソフトウェアを有し、これらはＨＤＤ１４に記憶されている。また、ＨＤＤ１４には業務メニュー７１、業務アプリケーション７２、環境設定アプリケーション７３、環境設定定義７４及びマスタデータ７５が記憶されている。
ハンディターミナルは、通信モジュール６６を有する。通信モジュール６６は、フラッシュメモリ３４に記憶されている。
【００４３】
表計算ソフト６１は、行と列とを有するテーブル形式の表データ８１を生成することができるソフトウェアであり、データ処理装置１を操作するユーザは、入力装置１７に対する入力操作によって表データ８１の各列に任意の項目を定義することができる。
【００４４】
アプリケーション生成モジュール６２は、表データ８１に基づき業務メニュー定義８２、業務アプリケーション定義８３、メニューシート８４及び登録用表データ８５を生成するプログラムである。業務メニュー定義８２は業務メニュー７１の表示内容に対応するデータ、業務アプリケーション定義８３は業務アプリケーション７２の項目に対応するデータ、メニューシート８４はハンディターミナル５で実行する業務アプリケーションを選択するために用いるシートのデータ、登録用表データ８５はハンディターミナル５で収集、記録したデータを格納するためのデータである。
【００４５】
通信モジュール６３は、クレードル２を介して行われるデータ処理装置１とハンディターミナル５との間の通信及び転送処理を通信モジュール６６と協働で行うプログラムである。通信モジュール６３、６６による通信及び転送により、データ処理装置１は、業務メニュー７１、業務アプリケーション７２、環境設定アプリケーション７３、環境設定定義７４、業務メニュー定義８２及び業務アプリケーション定義８３を含むアプリケーションセット８０をハンディターミナル５に転送する。一方、ハンディターミナル５は、業務アプリケーション７２を実行してスキャナ４１又は入力装置３７を介して収集、記憶したデータである登録データ８６をデータ処理装置１に転送する。
本実施形態では、通信モジュール６３、６６間の転送はクレードル２を介した接続によって行われるが、通信装置１６、３６間の通信を介して行ってもよい。
【００４６】
表データ登録モジュール６４は、登録データ８６に基づき登録用表データ８５にデータを格納するプログラムである。表データ登録モジュール６４の動作の詳細は後述する。
バーコードラベル作成モジュール６５は、マスタデータ７５に基づきバーコードシート８７を生成するプログラムである。
【００４７】
図４は、アプリケーション生成システム１００の処理内容の概要を示す説明図である。
まず、データ処理装置１の表計算ソフト６１を用いて表データ８１を生成し、表データ８１に任意の項目を定義する。その後、アプリケーション生成モジュール６２を用いて表データ８１から業務メニュー定義８２、業務アプリケーション定義８３、メニューシート８４及び登録用表データ８５を生成する。このうち業務アプリケーション定義８３により、ハンディターミナル５が業務アプリケーション７２を実行して収集するデータの項目が決定する。業務アプリケーション定義８３の内容は、表データ８１で定義された項目に対応する。
【００４８】
データ処理装置１は、業務メニュー定義８２及び業務アプリケーション定義８３を含むアプリケーションセット８０をハンディターミナル５に転送する。ハンディターミナル５は、業務アプリケーション７２を実行してデータを収集する。実行する業務アプリケーションの選択は、業務メニュー７１から選択する他、メニューシート８４を用いて行うことができる。業務メニュー７１の表示項目は業務メニュー定義８２により決定する。また、環境設定アプリケーション７３により、ハンディターミナル５の各種設定を変更、確認することもできる。
【００４９】
ハンディターミナル５を用いて収集、記録されたデータは登録データ８６としてハンディターミナル５のフラッシュメモリ３４に記憶される。登録データ８６は、ハンディターミナル５からデータ処理装置１に転送される。データ処理装置１は、表データ登録モジュール６４により、登録データ８６に基づくデータを登録用表データ８５に格納する。以上のようにデータ収集が行われる。
【００５０】
次に、アプリケーション生成システム１００が行う各処理について詳細に説明する。
まず、表計算ソフト６１を用いた表データ８１の生成について説明する。
図５は、表データ８１の一例を示す図である。図５（ａ）は、表データ８１の「棚卸」シートにフォーカスが当たっている状態を示し、図５（ｂ）は、表データ８１の「フロア棚卸」シートにフォーカスが当たっている状態を示し、図５（ｃ）は、表データ８１の「エリア棚卸」シートにフォーカスが当たっている状態を示す。以下、表データ８１の縦方向の並びを行、横方向の並びを列とする。
【００５１】
図５（ａ）〜（ｃ）に示すように、表データ８１は一又は複数のシートを定義することが可能な表形式のデータである。各シートの１行目の各列には項目が定義される。項目の内容及び項目の数はユーザの任意である。
項目の定義において、ハンディターミナル５のスキャナ４１でバーコードをスキャナした際に読み取る情報に対応する項目を指定することができる。本実施形態では、図５（ａ）、（ｂ）の「商品コード」の項目Ｂ１や、図５（ｃ）の「商品」の項目Ｂ２のように、ユーザは任意の項目に対して他の項目に比して太字で表示される装飾を加える（ボールド指定の属性を設定する）ことで、その項目をスキャナ４１で読み取る情報に対応する項目として指定することができる。無論、スキャナ４１により読み取る情報に対応する項目の指定方法は他の方法によってもよい。例えば、フォントの色を変更する方法や、特定の識別子を項目に付する等の方法が挙げられる。このとき、本実施形態のようにフォントを太字にする方法等、スキャナ４１により読み取る情報に対応する項目と他の項目と視覚的に判別可能とすることが望ましい。
各シートにおいてスキャナ４１で読み取る情報に対応する項目として指定できる項目の数に制限はなく、一つでも複数でもよいし、一つも指定しなくてもよい。本実施形態において、各シートにおいてスキャナ４１で読み取る情報に対応する項目として指定された項目がない場合、ＣＰＵ１１は各シートの最左方にある項目をスキャナ４１で読み取る情報に対応する項目とみなして処理する。
【００５２】
各シートの２行目には、１行目に定義された各項目に対応するデータの一例が入力される。２行目に入力されたデータの一例によって、各項目のデータの属性（例えば入力されるデータの文字種類や桁数等）が決定する。
【００５３】
次に、アプリケーション生成モジュール６２による表データ８１から業務メニュー定義８２、業務アプリケーション定義８３、メニューシート８４及び登録用表データ８５の生成について説明する。
図６は、アプリケーション生成モジュール６２の操作画面の表示例である。
【００５４】
図６に示すように、アプリケーション生成モジュール６２は、アプリ生成ボタン９１を有し、アプリ生成ボタン９１をクリックすることで表データ８１の各シートの内容に応じた業務メニュー定義８２、業務アプリケーション定義８３、メニューシート８４及び登録用表データ８５が生成される。
【００５５】
本実施形態は、表データ８１を含む表形式のデータファイルの先頭のシートに設けられたアプリ生成ボタン９１を操作することでアプリケーション生成モジュール６２を起動する。言い換えれば、アプリ生成ボタン９１を有するシートを含んだ表形式のデータファイルに、表データ８１となるシートを追加作成し、項目を定義することができる。無論、表データ８１とアプリケーション生成モジュール６２及びその起動のためのインターフェースは別個のファイルとしてもよく、本実施形態に示す方法に限定されることはない。
【００５６】
次に、業務アプリケーション７２について説明する。
図７は、業務アプリケーション７２を実行中のハンディターミナル５の表示装置３８の表示内容の一例を示す図である。図７（ａ）は、「棚卸」の業務アプリケーション定義８３に対応した表示内容を示し、図７（ｂ）は、「フロア棚卸」の業務アプリケーション定義８３に対応した表示内容を示し、図７（ｃ）は、「エリア棚卸」の業務アプリケーション定義８３に対応した表示内容を示す。
【００５７】
業務アプリケーション７２の画面表示に表示されるデータとして収集可能な項目は、業務アプリケーション定義８３の内容に対応する。そして、業務アプリケーション定義８３の内容は、表データ８１に定義された項目に対応する。つまり、業務アプリケーション７２を実行して収集することができるデータは、表データ８１に定義された項目に対応する。さらに、業務アプリケーション定義８３は表データ８１において項目を定義した各シートに対して個別に生成される。即ち、表データ８１において項目を定義したシートが一である場合には一の業務アプリケーション定義８３が生成され、シートが複数である場合には複数の業務アプリケーション定義８３が生成される。本実施形態においては、「棚卸」、「フロア棚卸」及び「エリア棚卸」の三つのシートに基づく例を記載する。
図７（ａ）に示す「棚卸」の業務アプリケーション定義８３に対応した表示内容は、図５（ａ）に示す「棚卸」シートに定義された各項目に対応し、図７（ｂ）は、「フロア棚卸」の業務アプリケーション定義８３に対応した表示内容は、図５（ｂ）に示す「フロア棚卸」シートに定義された各項目に対応し、図７（ｃ）に示す「エリア棚卸」の業務アプリケーション定義８３に対応した表示内容は、図５（ｃ）に示す「エリア棚卸」シートに定義された各項目に対応する。
【００５８】
業務アプリケーション７２は一つの実行ファイルであり、実行時に読み込む業務アプリケーション定義８３を変更することで図７（ａ）〜（ｃ）に示す各表示内容及びデータ収集項目の内容の切替を行うことができる。即ち、業務アプリケーション定義８３は業務アプリケーション７２の動作内容を定義する定義ファイルとして機能し、業務アプリケーション７２と業務アプリケーション定義８３はその組み合わせによりアプリケーションプログラムとして機能する。
【００５９】
図８は、業務アプリケーション７２の実行時の表示画面におけるフォーカス位置の一例を示す図である。図８（ａ）は棚卸日及び担当者の入力前の一例を示し、図８（ｂ）は棚卸日及び担当者の入力後の一例を示す。図８（ａ）、（ｂ）に示す図は、図７（ａ）に示す「棚卸」の業務アプリケーション定義８３に対応した表示内容である。
業務アプリケーション７２の起動直後、各項目の右側に設けられた各項目の入力を行うためのテキストボックスは全て空の状態である。図８（ａ）、（ｂ）に示された項目のうち、スキャナ４１で読み取る情報に対応する項目として指定された項目は「商品コード」であり、「商品コード」の前には「棚卸日」及び「担当者」の項目がある。
【００６０】
業務アプリケーション７２の起動直後、最初の項目である「棚卸日」のテキストボックスにフォーカスが当たっており、入力装置３８による入力を行うと当該テキストボックスに入力が行われる。その後、入力装置３８が有する入力の完了を指示するキー（例えばリターンキー等。図示略）を操作すると、次の項目である「担当者」のテキストボックスにフォーカスが移動する。以後、入力と入力の完了の指示を繰り返す毎に、逐次下の項目へとフォーカスが移動する。
【００６１】
スキャナ４１で読み取る情報に対応する項目として指定された項目である「商品コード」にフォーカスが当たっている場合、スキャナ４１によるバーコードの読取操作が可能となる。このとき、スキャナ４１でバーコードを読み取ると、バーコードが示す情報に対応する文字列が「商品コード」のテキストボックスに設定されると共に、次の項目である「数量」のテキストボックスにフォーカスが移動する。
【００６２】
「棚卸」の業務アプリケーション定義８３を読み込んだ業務アプリケーション７２における最後の項目である「数量」のテキストボックスに入力を行った状態で、画面右下に表示された「登録」ボタン又は入力装置３８が有するリターンキー（図示略）を操作すると、それまで入力された「棚卸日」、「担当者」、「商品コード」及び「数量」のテキストボックス内の文字列がひとつのレコードとして登録データ８５に記憶される。そして、「商品コード」及び「数量」のテキストボックスが自動的にクリアされ、空になると共に「商品コード」のテキストボックスにフォーカスが移動する。このとき、「棚卸日」及び「担当者」のテキストボックスはクリアされず、過去に入力された文字列を保持した状態となる。そして、「商品コード」にフォーカスが当たった状態であるので、ハンディターミナル５のユーザはすぐに次のバーコードをスキャナ４１で読み込むことができる。
つまり、業務アプリケーション７２の実行時に、ＣＰＵ３１は表データ８１に定義された複数の項目のうちバーコードに基づき収集するデータに対応する項目が最初に入力する項目でない場合に、バーコードに基づき収集するデータに対応する項目よりも前に入力する項目の入力終了後に表示内容に含まれる「登録」ボタン又は入力装置３８が有するリターンキーの操作によりフォーカスを移動させる場合にはバーコードに基づき収集するデータに対応する項目にフォーカスを移動させる。
【００６３】
図９は業務メニュー７１を実行中のハンディターミナル５の表示装置３８の表示内容の一例を示す図である。
業務メニュー７１の表示内容は、業務メニュー定義８２の内容に対応する。即ち、業務メニュー定義８２は業務メニュー７１の動作内容を定義する定義ファイルとして機能し、業務メニュー７１と業務メニュー定義８２はその組み合わせによりアプリケーションプログラムとして機能する。
図９に示す業務メニュー７１は「1.棚卸」、「２．フロア棚卸」及び「３．エリア棚卸」のメニューボタンを有し、その各メニューボタンは図７（ａ）〜（ｃ）に示す業務アプリケーション７２の実行時の内容と対応する。つまり、業務メニュー７１の表示内容を決定する業務メニュー定義８２の内容は、業務アプリケーション定義８３の内容即ち表データ８１の内容に応じる。アプリケーション生成モジュール６２は、表データ８１の各シートに対応した業務アプリケーション定義８３を生成すると共に、その業務アプリケーション定義８３の内容に対応した業務メニュー定義８１を生成する。
【００６４】
業務メニュー７１は業務アプリケーション定義８３に対応したメニューボタンの他、終了ボタンと設定ボタンとを有する。終了ボタンの操作時、ＣＰＵ３１は業務メニュー７１の表示を終了する。設定ボタンの操作時、ＣＰＵ３１は環境設定アプリケーション７３を実行する。
【００６５】
図１０は、メニューシート８４の一例を示す図である。図１０（ａ）は、表データ８１の末尾シートとして生成されたメニューシート８４の表示例を示し、図１０（ｂ）は印刷されたメニューシートの一例を示す。
アプリケーション生成モジュール６２は、メニューシート８４を生成する。メニューシートは[メインメニュー]項目と[環境設定]項目とを有する。[メインメニュー]項目は表データ８１に生成された各シートに対応する項目名と、各項目名の右側に形成されたバーコードとを有する。各項目名の右側に形成されたバーコードを図１０（ｂ）に示すように紙等の印刷媒体に印刷し、ハンディターミナル５のスキャナ４１により読み込むと、ハンディターミナル５のＣＰＵ３１は、バーコードの左側に記載された項目名に対応する業務アプリケーション定義８３を読み込んで業務アプリケーション７１を実行する。つまり、印刷されたメニューシートをハンディターミナル５で読み込むことにより実行する業務アプリケーション７１のデータ収集項目を選択することができる。
[環境設定]項目も[メインメニュー]項目と同様、ハンディターミナルの環境設定に関する項目名とその右側に形成されたバーコードとを有し、バーコードをスキャナ４１で読み込むことでその環境設定の項目名に対応した環境設定定義７４を読み込んだ環境設定アプリケーション７３を実行することができる。本実施形態では、環境設定アプリケーション７３が読み込む環境設定定義７４は一つであり、図１０（ａ）、（ｂ）に示す[環境設定]項目の項目名は当該一つの環境設定定義７４に応じたものである。
【００６６】
生成されたメニューシート８４のシート名は「!メニューシート」とされ、その一文字目として「!」（エクスクラメーションマーク）が付される。
【００６７】
図１１は、登録用表データ８５の表示例を示す図である、図１１（ａ）は、登録データ８６を格納する前の登録用表データ８５の表示例を示し、図１１（ｂ）は、登録データ８６を格納した後の登録用表データ８５の表示例を示す。
図１１（ａ）、（ｂ）に示すように、登録用表データ８５は、生成された表データ８１の各シートに対応するシートを有する。そして、図１１（ａ）に示すように、アプリケーション生成モジュール６２によって生成された直後の登録用表データ８５の各シートの１行目の各列には表データ８１の１行目の各列に定義された項目が設定され、２行目のデータは空である。言い換えれば、登録用表データ８５は、表データ８１の２行目のデータを削除した表形式のデータとして生成される。
【００６８】
表データ登録モジュール６４が登録データ８６に基づき登録用表データ８５にデータを格納すると、図１１（ｂ）に示すように、ハンディターミナル５を用いて収集、記憶された登録データ８６が登録用表データ８５の２行目以降に記録される。このとき、ハンディターミナル５が実行した業務アプリケーション７２が読み込んだ業務アプリケーション定義８３と、その業務アプリケーション定義８３を読み込んだ業務アプリケーション７２を実行して収集、記憶された登録データ８６と、その登録データ８６が格納される登録用表データ８５のシートとはそれぞれ対応する。つまり、登録データ８６及び登録用表データ８５の各シートは、各業務アプリケーション定義８３即ち表データ８１のシート毎に管理される。
【００６９】
以下、具体的な処理内容について説明する。
図１２は、表データ８１の各セルに定義される項目及び設定されるデータと、メニューシート８４及び登録用表データ８５に定義される項目と、の関係を示す模式図である。以下の記載及び図において、表データ８１及び登録用表データ８５の各シートをシートS1、シートS2…シートSiと記載する。
【００７０】
図１２に示すように、シートS1の１行目１列目には項目S1F1が定義される。同様に、シートS1の１行目２列目には項目S1F2が定義され、シートS1の１行目ｎ１列目には項目S1Fn1が定義される。そして、シートS2の１行目１列目には項目S2F1が定義される。つまり、シートSiの１行目ni列目には、項目SiFniが定義される。
【００７１】
また、シートS1の２行目１列目にはデータS1P1が設定される。同様に、シートS1の２行目２列目にはデータS1P2が設定され、シートS1の２行目ｎ１列目にはデータS1Pn1が設定される。そして、シートS2の２行目１列目にはデータS2P1が定義される。つまり、シートSiの２行目ni列目には、データSiＰniが設定される。
【００７２】
表データ８１の各シートを含む表形式のデータファイルの先頭シートの１行目１列目には「出力ブック名」項目が定義されており、その右側である１行目２列目には「DATA.XLS」が設定されている。「出力ブック名」項目は、登録用表データ８５のファイル名を指定するための項目名であり、図１２に示す例では「出力ブック名」項目の右側に設定された「DATA.XLS」が登録用表データ８５のファイル名となる。
【００７３】
表データ８１の各シートを含む表形式のデータファイルの先頭シートの２行目１列目には「参照ブック名」及び「バーコードブック名」の項目が定義されており、その右側である２行目２列目には「MT.XLS」が設定されている。「参照ブック名」項目は、マスタデータ７５のファイル名であり、図１２に示す例では「参照ブック名」項目の右側に設定された「MT.XLS」がマスタデータ７５のファイル名となる。「バーコードブック名」項目は、バーコードシート８７のファイル名であり、図１２に示す例では「参照ブック名」項目の右側に設定された「BC.XLS」がバーコードシート８７のファイル名となる。
【００７４】
アプリ生成ボタン９１を操作すると、メニューシート８４と登録用表データ８５が生成される。前述の記載及び図１２の登録用表データ８５が示すように、登録用表データ８５の各シートは、表データ８１の各シートの２行目を空にした表形式のデータとして生成される。
【００７５】
メニューシート８４は、表データ８１を含む表形式のデータファイルの末尾のシートとして作成され、そのシート名は「!メニューシート」である。
メニューシート８４の２列目には、１行目に「メニューシート」の文字列が設定され、３行目に[メインメニュー]が設定される。そして、メニューシート８４の２列目の４行目には「1.S1」に対応する文字列が設定される。「1.S1」に対応する文字列とは、表データ８１のシートS1のシート名の文字列と、１番目であるという番号を示す「1.」とを組み合わせた文字列である。例えば、シートS1のシート名が「棚卸」である場合、メニューシート８４の２列目の４行目には「1.棚卸」の文字列が設定される。同様に、メニューシート８４の２列目の４行目には「2.S2」に対応する文字列が設定され、以降の行に表データ８１の各シートに対応する「i.Si」に対応する文字列がi+3行目まで設定される。
【００７６】
メニューシート８４の２列目、i+5行目には[環境設定]の文字列が設定される。そして、メニューシート８４の２列目のi+6(i+1+5)行目には「1.E1」に対応する文字列が設定される。「1.E1」に対応する文字列とは、環境設定定義７４のファイル名のうち拡張子を除いた文字列の冒頭に番号を付したものである。例えば、一つ目の環境設定の名称が「端末情報.INI」である場合、メニューシート８４の２列目のi+6行目には、「端末情報」の文字列と１番目であるという番号を示す「1.」とを組み合わせた「1.端末情報」の文字列が設定される。同様に、メニューシート８４の２列目のi+7(i+2+5)行目には「2.E2」に対応する文字列が設定され、以降の行に表データ８１の各シートに対応する「ｊ.Ej」に対応する文字列がi+j+5行目まで設定される。各環境設定の名称は、それぞれ個別の環境設定定義７４に対応付けられている。
【００７７】
そして、メニューシート８４の２列目に「1.S1」、「2.S2」…「i.Si」及び「1.E1」、「2.E2」…「ｊ.Ej」が設定された各行の５列目には、２列目に設定された各項目に対応するバーコード「BS1」、「BS2」…「BSi」及び「BE1」、「BE2」…「BEj」が設定される。
図１３は、バーコードの一例を示す図である。図１３（ａ）は「BS1」のバーコードの一例を示し、図１３（ｂ）は「BE1」のバーコードの一例を示す。
メニューシート８４の５列目に設定されるバーコードは、予め定められた番号及びバーコードパターンによって生成されたバーコードであり、それぞれバーコードの左側の項目に対応するものとして設定される。このとき、表データ８１の各シート名は生成される業務アプリケーション定義８３に対応する。つまり、メニューシート８４を印刷し、「BS1」、「BS2」…「BSi」のいずれかのバーコードをハンディターミナル５のスキャナ４１で読み込むと、そのバーコードに対応する業務アプリケーション定義８３を読み込んだ業務アプリケーション７２を実行することができる。同様に、「BE1」、「BE2」…「BEj」のいずれかのバーコードを読み込むと、その環境設定定義７４を読み込んだ環境設定アプリケーション７３の実行をすることができる。
本実施形態では、「BSi」及び「BEj」のバーコードは４桁の数字を示すバーコードとして生成される。そして、図１３（ａ）に示すように、「BSi」のバーコードは、「BS1」のバーコードが０００１の数字を示すバーコードから始まる連番のバーコードであり、図１３（ｂ）に示すように、「BEj」のバーコードは、「BE1」のバーコードが９００１の数字を示すバーコードから始まる連番のバーコードである。
【００７８】
図１４は、業務メニュー定義８２の内容の一例を示す図である。
業務メニュー定義８２は、[メインメニュー]に関する設定と、[環境設定]に関する設定と、を有している。[メインメニュー]に関する設定は、”i=Si,Si.INI,0000+i”の形式で記述される。iは１を初期値とする純増の数値でありメインメニューのメニュー番号として機能する。Siは表データ８１の対応するシート名、Si.INIはSiが示すシート名に対応する業務アプリケーション定義８３のファイル名、0000+iはスキャンコードと照合するための番号（スキャンコード番号）であり、初期値0の四桁の数値にiを加算した数値で表され、メニューシート８４においてSi.INIが示す業務アプリケーション定義８３の項目名と対応付けられたバーコードＢSiの番号と同値となる。例えば、メニューシート８４における「1.棚卸」の業務アプリケーションに対応するメインメニューの設定は、”1=棚卸,棚卸.INI,0001”となる。図１４に示すように、[メインメニュー]に関する設定は、業務アプリケーション定義８３の数即ち表データ８１で生成されたシートS1〜Siの数だけ設けられ、順次記載される。
同様に、[環境設定]に関する設定は、”j=Ej,Ej.INI,9000+j”の形式で記述され、jは１を初期値とする純増の数値であり環境設定のメニュー番号として機能する。
【００７９】
図１５は、メニュー画面７１の表示内容の一例を示す模式図である。図１５（ａ）は、メインメニューの表示内容を示し、図１５（ｂ）は、環境設定メニューの表示内容を示す。
メインメニュー及び環境設定メニューは、ハンディターミナル５の表示装置３８によって表示される。図１５（ａ）に示すように、メインメニュー画面は、「1.S1」、「2.S2」…「i.Si」のメニューボタンと、終了ボタンと、設定ボタンと、を有する。メニューボタンの「i.Si」の内容は、業務メニュー定義８２の”i=Si,Si.INI,0000+I”の形式で記述されたデータのi及びSiの内容に対応する。例えば、”1=棚卸,棚卸.INI,0001”のデータに対応するメニューボタンは、「1.棚卸」となる。メインメニュー画面におけるメニューボタンはＣＰＵ３１からBTN_S1、BTN_S2、…、BTN_Siのように指定され、各メニューボタンの表示名が個別に制御される。
メニュー画面において登録ボタンが操作されると、ＣＰＵ３１はその登録ボタンの記載内容に対応した業務アプリケーション定義８３を読み込んで業務アプリケーション７２を起動する。例えば、「1.棚卸」の登録ボタンが操作されると、ＣＰＵ３１は”1=棚卸,棚卸.INI,0001”の記述で指定された「棚卸.INT」の業務アプリケーション定義８３を読み込んで業務アプリケーション７２を起動する。
【００８０】
設定ボタンを操作すると、図１５（ｂ）に示す環境設定メニューが表示される。環境設定メニューは、「1.E1」、「2.E2」…「ｊ.Ej」のメニューボタンと、戻るボタンとを有する。メニューボタンの「ｊ.Ej」の内容は、業務メニュー定義８２の”j=Ej,Ej.INI,9000+j”の形式で記述されたデータのj及びEjの内容に対応する。環境設定メニューにおけるメニューボタンはＣＰＵ３１からBTN_E1、BTN_E2、…、BTN_Ejのように指定され、各メニューボタンの表示名が個別に制御される。
戻るボタンを操作すると、表示装置３８の表示内容が図１５（ａ）に示すメインメニューに戻る。
【００８１】
図１６は、業務アプリケーション定義８３の内容の一例を示す図である。
図１７は、業務アプリケーション７２実行時の表示内容の一例を示す模式図である。図１７（ａ）は各部の符号を示し、図１７（ｂ）はレイアウトに関する変数が示す位置を示す。
業務アプリケーション定義８３は、表示画面のタイトル及び各ボタンの表示内容、項目及びテキストボックスに関する内容、テキストボックスのフォーカスに関する内容、スキャナ４１で読み込む情報に関する内容ならびに登録データ８６のファイル名、登録データ８６に記録されたデータを登録用表データ８５に格納する際の対象となるファイル名、シート名、項目名及びデータ源と対応するテキストボックスを示す情報に関する内容を含む。本実施形態では、図１６に示すように、表示画面のタイトル及び各ボタンの表示内容を[CTRL_BASE]のデータとして有し、項目及びテキストボックスに関する内容を[CTRL]データとして有し、テキストボックスのフォーカスに関する内容を[FOCUS]データとして有し、スキャナ４１で読み込む情報に関する内容を[SCAN]データとして有し、登録データ８６のファイル名ならびに登録データ８６に記録されたデータを登録用表データ８５に格納する際の対象となるファイル名、シート名、項目名及びデータ源と対応するテキストボックスを示す情報に関する内容を[ENTRY]データとして有する。
【００８２】
[CTRL_BASE]及び[CTRL]の各項目は、”(数値)=(変数名),(種別),(Ｘ方向の開始位置),(Ｙ方向の開始位置),(幅),(高さ),(適用される文字列)”の形式で記述される。(数値)は1を初期値とする順増の数値、(変数名)は図１７に示す各表示内容に付された符号に対応する内容、(種別)はその表示内容の種類、(Ｘ方向の開始位置)、(Ｙ方向の開始位置)、(幅)及び(高さ)はその表示内容のレイアウト、(適用される文字列)はその表示内容に実際に反映される文字列の内容を示す。なお、[CTRL]において(数値)が偶数のものには(適用される文字列)のパラメータはない。
【００８３】
図１６及び図１７（ｂ）に示す、Ｘ方向のタイトル開始位置T1x、Ｙ方向のタイトル開始位置T1y、タイトル幅T1w、タイトル高さT1j、Ｘ方向の終了ボタン開始位置B1x、Ｙ方向の終了ボタン開始位置B1y、終了ボタン幅B1w、終了ボタン高さB1h、Ｘ方向の登録ボタン開始位置B2x、Ｙ方向の登録ボタン開始位置B2y、登録ボタン幅B2w、登録ボタン高さB2h、ni番目の項目のＸ方向の開始位置Lnix、ni番目の項目のＹ方向の開始位置Lniy、ni番目の項目の幅Lniw、ni番目の項目の高さLnih、ni番目のテキストボックスのＸ方向の開始位置Enix、ni番目のテキストボックスのＹ方向の開始位置Eniy、ni番目のテキストボックスの幅Eniw及びni番目のテキストボックスの高さEnihに適用される数値は、以下の式（１）〜（２０）によって求められる。以下の式（１）〜（２０）で用いられる変数ax、ay、aw、ah、bw、bh、lx、ly、lh、ex、ey、eh、sh及びclenにはそれぞれ初期値が設定されており、本実施形態ではax=0、ay=0、aw=240、ah=300、bw=60、bh=40、lx=5、ly=30、lh=30、ex=135、ey=30、eh=30、sh=10、clen=10の初期値が設定されている。ハンディターミナル５のＣＰＵ３１は、これらの初期値、表示装置３８に表示する際の各数値が示す座標位置及び式（１）〜（２０）に基づき各表示内容のレイアウトを決定する。
T1x＝ax……（１）
T1y＝ay……（２）
T1w＝aw……（３）
T1h＝20……（４）
B1x＝ax……（５）
B1y＝ay＋ah−bh……（６）
B1w＝bw……（７）
B1h＝bh……（８）
B2x＝ax＋aw−bw……（９）
B2y=＝ay＋ah−bh……（１０）
B2w＝bw……（１１）
B2h＝bh……（１２）
Lnix＝lx……（１３）
Lniy＝ly＋(lh+sh)×(ni-1) ……（１４）
Lniw＝(SiFniの文字列byte数)×clen……（１５）
Lnih＝lh……（１６）
Enix＝ex……（１７）
Eniy＝ey＋(eh+sh)×(ni-1) ……（１８）
Eniw＝(SiPniの文字列byte数)×clen……（１９）
Enih＝eh……（２０）
【００８４】
(適用される文字列) である[CTRL_BASE]のSi及び[CTRL]のSiF1、SiF2…SiFniは、それぞれ表データ８１のSi、SiF1、SiF2…SiFniに対応する。
[CTRL_BASE]の各行は、(数値)が1のものが表示画面のタイトルを、2のものが終了ボタンに関するパラメータを、3のものが登録ボタンに関するパラメータを定める。
[CTRL]の(数値)が奇数のものはそれぞれ表データ８１に定義された項目に関するパラメータを、偶数のものはそれぞれその直前の(数値)の項目のデータを入力するためのテキストボックスに関するパラメータを定める。式（１５）の(SiFniの文字列byte数)は、表データ８１に定義された項目SiFniの文字列のbyte数に対応し、式（１９）の(SiPniの文字列byte数)は、表データ８１に設定されたデータSiPniの文字列のbyte数に対応する。
【００８５】
[FOCUS]の各行はそれぞれ、フォーカスが移動する順番、業務アプリケーション７２の起動時にフォーカスが当たるテキストボックス及びデータ登録後にフォーカスが当たるテキストボックスを示す。
図１６に示す“ORDER=EDIT1,EDIT2,…,EDITni”は、フォーカスが移動する順番を示し、この場合のフォーカス移動はEDIT1、EDIT2、…、EDITniの順に行われる。図１６に示す“FIRST=EDIT1”は、業務アプリケーション７２の起動時にフォーカスが当たるテキストボックスを示し、この場合はEDIT1にフォーカスが当たった状態となる。図１６に示す”SECOND=EDIT2”は、データ登録後にフォーカスが当たるテキストボックスを示し、この場合はEDIT2にフォーカスが当たる。例えば、EDIT1のテキストボックスにデータを入力し、入力装置３７のリターンキー（図示略）を押すと、ORDERの記述に従い、EDIT2のテキストボックスへとフォーカスが移動する。その後、登録ボタンまたは登録キー（図示略）を操作すると、各テキストボックスに入力されたデータが登録データ８６に書き出されて保存され、EDIT2のテキストボックスにフォーカスが移動する。このとき、ORDERにおいて、SECONDとして設定されたテキストボックス以降にフォーカスが当たるテキストボックス、この場合はEDIT2以降のテキストボックスの内容はクリアされる。
【００８６】
[SCAN]の各行はそれぞれ、EDIT1、EDIT2、…、EDITniのテキストボックスの入力にスキャナ４１で読み取った情報を用いることが可能か否かを示す。[SCAN]の各行は、”ni=(ALL又はNONのいずれか一方)”の形式で記述される。[SCAN]の各行の冒頭のniは、EDITniの設定を示すという意味の番号である。ALLはスキャナ４１によって読み取った情報による入力を許可する旨を示し、NONはスキャナ４１による入力を許可しない旨を示す。つまり、ALLが設定されている番号に対応するテキストボックスにフォーカスがある場合のみ、トリガー４２の操作によるスキャナ４１のＯＮが可能となり、スキャナ４１で読み取った情報を当該テキストボックスに入力することができる。ALL又はNONの決定は、元となった表データ８１においてそのテキストボックスに対応する項目がスキャナした際に読み取る情報に対応する項目として指定されているか否かに基づく。
【００８７】
[ENTRY]の各行はそれぞれ、登録データ８６のファイル名と、登録データ８６に記録されたデータを登録用表データ８５に格納する際の対象となるファイル名、シート名、項目名及びデータ源と対応するテキストボックスを示す情報を含む。
FILENAMEは、登録データ８６のファイル名を示す。CONNECTは登録用表データ８５のファイル名を示す。TABLEは、FILENAMEで指定された登録データ８６の内容が格納されるCONNECTで指定された登録用表データ８５のシート名を示す。FIELDSは、TABLEで指定されたシートに定義された項目のうち、FILENAMEで指定された登録データ８６から読み出して格納するデータの項目を示す。VALUESは、FIELDSで指定された項目に対応するデータが入力されるテキストボックスを示し、その記述順はFIELDSに記載された項目の順番と対応している。
【００８８】
業務アプリケーション７２の表示内容のうち、登録ボタンを押すと各テキストボックスの入力内容がFILENAMEで指定された登録データ８６のファイルに記録、保存される。業務アプリケーション７２の表示内容のうち、終了ボタンが操作されると、ＣＰＵ３１は業務アプリケーション７２を終了する。
【００８９】
図１８は、各テキストボックスへの入力が行われた状態の業務アプリケーション７２の表示内容の一例を示す。
図１９は、登録データ８６の内容の一例を示す。
図１８に示すように、業務アプリケーション７２の実行時に、各テキストボックスへの入力が行われた状態で登録ボタン又は入力装置３７の登録キー（図示略）を操作すると、図１９に示すように、ＣＰＵ３１は各テキストボックスの入力内容を登録データ８６へ記録、保存する。
【００９０】
図１９に示すように、登録データ８６は、格納する登録用表データ８５のファイル名及びシート名を指定するエントリーと、登録用表データ８５に格納するデータの項目を指定するエントリーと、登録用表データ８５に格納するデータの内容を示すエントリーと、を含む。
図１９に示す登録データ８６の１行目は、格納する登録用表データ８５のファイル名及びシート名を指定するエントリーであり、その内容はその登録データ８６の入力元となる業務アプリケーション７２が読み込んでいる業務アプリケーション定義８３のCONNECTの指定内容及びTABLEの指定内容と同一である。図１９に示す登録データ８６の２行目は、登録用表データ８５に格納するデータの項目を指定するエントリーであり、その内容はその登録データ８６の入力元となる業務アプリケーション７２が読み込んでいる業務アプリケーション定義８３のFIELDSの内容と同一である。図１９に示す登録データ８６の３行目以降は、登録用表データ８５に格納するデータの内容を示すエントリーであり、その内容はその登録データ８６の入力元となる業務アプリケーション７２が読み込んでいる業務アプリケーション定義８３のVALUESで指定されたテキストボックスに対して業務アプリケーション７２の実行中の表示画面内において入力された各データと対応する。図１９に示す例では、登録データ８６の最後の行が図１８に示す各テキストボックスの入力内容に対応している。登録用表データ８５に格納するデータの内容を示すエントリーは、登録データ８６の３行目以降に逐次追加記録、保存される。
【００９１】
図２０は、登録データ８６のデータを格納した後の登録用表データ８５の内容の一例を示す模式図である。
図１２及び前述の記載に示すように、登録用表データ８５の各シートは、元となる表データ８１の各シートの２行目を空にした状態で生成される。その後、データ処理装置１のＣＰＵ１１が表データ登録モジュール６４を実行し、登録データ８６に基づき登録用表データ８５にデータを格納すると、図２０に示すように登録データ８６の内容が登録用表データ８５に反映される。具体的には、登録データ８６の３行目以降に記録、保存された登録用表データ８５に格納するデータの内容を示すエントリーが登録用表データ８５の２行目以降に逐次格納される。登録用表データ８５に格納された登録データ８６は消去される。その後、新たに記録、保存された登録データ８６に基づき登録用表データ８５にデータを格納する場合、ＣＰＵ１１は、その登録データ８６に含まれる登録用表データ８５に格納するデータの内容を示すエントリーを登録用表データ８５の２行目以降に存在する最初の空の行以降の行に対して格納する。
【００９２】
次に、各処理内容をフローチャートに基づいて説明する。
図２１は、アプリケーション生成処理の内容を示すフローチャートである。
ＣＰＵ１１は、業務メニュー定義８２の生成処理（ステップＳ１）、全ての業務アプリケーション定義８３の生成処理（ステップＳ２）、登録用表データ８５の生成処理（ステップＳ３）、メニューシートの生成処理（ステップＳ４）を順次行う。その後、ＣＰＵ１１は、表データ登録モジュール６４のショートカットを生成し（ステップＳ５）、ステップＳ５で生成したショートカットをスタートアップに登録し（ステップＳ６）、表データ登録モジュール６４を起動する（ステップＳ７）。
【００９３】
図２２は、図２１のステップＳ１に示す業務メニュー定義８２の生成処理の内容を示すサブフローである。
ＣＰＵ１１は、業務メニュー定義８２として生成される空のファイルを生成してオープンし（ステップＳ１１）、メイン業務メニュー定義出力処理（ステップＳ１２）、環境設定業務メニュー定義出力処理（ステップＳ１３）を順次行う。その後、ＣＰＵ１１は、業務メニュー定義８２のファイルをクローズする（ステップＳ１４）。
【００９４】
図２３は、図２２のステップＳ１２に示すメイン業務メニュー定義出力処理の内容を示すサブフローである。
ＣＰＵ１１は、メインメニューセクション名である[メインメニュー]の文字列を出力する（ステップＳ２１）。そして、ＣＰＵ１１は、カウンタqを初期値1で宣言し、表データ８１に作成されたシートの数（シートSiのi）まで以下のステップＳ２３、ステップＳ２４を繰り返す処理を行う（ステップＳ２２）。
ＣＰＵ１１は、メニュー番号、メニュー名及びスキャンコード番号に対応する変数の宣言を行い、メニュー番号=q、メニュー名=シートSqの名称、スキャンコード番号=(0000+q)とする処理を行う（ステップＳ２３）。そして、”メニュー番号=メニュー名,メニュー名.INI,スキャンコード番号”に対応する文字列を出力する（ステップＳ２４）。
【００９５】
図２４は、図２２のステップＳ１３に示す環境設定業務メニュー定義出力処理の内容を示すサブフローである。
ＣＰＵ１１は、環境設定セクション名である[環境設定]の文字列を出力する（ステップＳ３１）。そして、ＣＰＵ１１は、カウンタrを初期値1で宣言し、環境設定定義７４のファイル数（j）まで以下のステップＳ３３、ステップＳ３４を繰り返す処理を行う（ステップＳ３２）。
ＣＰＵ１１は、メニュー番号、メニュー名及びスキャンコード番号に対応する変数の宣言を行い、メニュー番号=r、メニュー名=環境設定定義７４のファイル名から拡張子を除いた文字列（Er名）、スキャンコード番号=(9000+q)とする処理を行う（ステップＳ３３）。そして、”メニュー番号=メニュー名,メニュー名.INI,スキャンコード番号”の形式で、ステップＳ３３で設定した値を反映した文字列を出力する（ステップＳ３４）。
【００９６】
図２５は、図２１のステップＳ２に示す全ての業務アプリケーション定義８３の生成処理の内容を示すサブフローである。
ＣＰＵ１１は、カウンタqを初期値1で宣言し、表データ８１に作成されたシートの数（シートSiのi）まで各業務アプリケーション定義８３の出力処理（ステップＳ４２）を繰り返す処理を行う（ステップＳ４１）。
【００９７】
図２６は、図２５のステップＳ４２に示す各業務アプリケーション定義８３の出力処理の内容を示すサブフローである。
ＣＰＵ１１は、Sq.INIとして生成される空のファイルを生成してオープンし（ステップＳ５１）、[CTRL_BASE]出力処理（ステップＳ５２）、[CTRL]出力処理（ステップＳ５３）、[FOCUS]出力処理（ステップＳ５４）、[SCAN]出力処理（ステップＳ５５）及び[ENTRY]出力処理（ステップＳ５６）を順次行う。その後、ＣＰＵ１１は、Sq.INIのファイルをクローズする（ステップＳ１４）。
【００９８】
図２７は、図２６のステップＳ５２に示す[CTRL_BASE]出力処理の内容を示すサブフローである。
ＣＰＵ１１は、[CTRL_BASE]のセクション名の出力（ステップＳ６１）、タイトル定義（図１６の”1=TITLE1,…”の行の文字列）の出力（ステップＳ６２）、終了ボタン定義（図１６の”2=BTN_END,…”の行の文字列）の出力（ステップＳ６３）、登録ボタン定義（図１６の”3=BTN_ENTRY,…”の行の文字列）の出力（ステップＳ６４）を順次行う。
【００９９】
図２８は、図２６のステップＳ５３に示す[CTRL]出力処理の内容を示すサブフローである。
ＣＰＵ１１は、[CTRL_BASE]のセクション名を出力する（ステップＳ７１）。そして、ＣＰＵ１１は、カウンタmを初期値1で宣言し、シートSqに定義された項目数、即ち最後の項目SqFnqのnqの値までLABEL出力処理（ステップＳ７３）、EDIT出力処理（ステップＳ７４）を繰り返す処理を行う（ステップＳ７２）。
【０１００】
図２９は、図２８のステップＳ７３に示すLABEL出力処理の内容を示すサブフローである。
ＣＰＵ１１は、定義された項目SqFmの値（文字列）をLABEL名として取得する（ステップＳ８１）。そして、ＣＰＵ１１は、式（１３）〜（１６）に基づき、Lqmx、Lqmy、Lqmw及びLqmhを算出すると共に、キー番号とコントロールIDに対応する変数を宣言して、以下の式（２１）、（２２）を実行して各変数の値を設定する（ステップＳ８２）。なお、LABELmは文字列LABELの末尾にカウンタmの値を付加したものである。
キー番号＝ｍ×2−1……（２１）
コントロールID＝LABELm……（２２）
そして、ＣＰＵ１１は、”キー番号=コントロールID,LABEL,Lqmx,Lqmy,Lqmw,Lqmh,ラベル名”の形式で、ステップＳ８１及びステップＳ８２で設定した値を反映した文字列を出力する（ステップＳ８３）。
【０１０１】
図３０は、図２８のステップＳ７４に示すEDIT出力処理の内容を示すサブフローである。
ＣＰＵ１１は、定義された項目SqPmの値（文字列）を文字列byte数算出のための入力データサンプルとして取得する（ステップＳ８６）。そして、ＣＰＵ１１は、式（１７）〜（２０）に基づき、Eqmx、Eqmy、Eqmw及びEqmhを算出すると共に、キー番号とコントロールIDに対応する変数を宣言して、以下の式（２３）、（２４）を実行して各変数の値を設定する（ステップＳ８７）。なお、EDITmは文字列EDITの末尾にカウンタmの値を付加したものである。
キー番号＝ｍ×2……（２３）
コントロールID＝EDITm……（２４）
そして、ＣＰＵ１１は、”キー番号=コントロールID,EDIT,Eqmx,Eqmy,Eqmw,Eqmh”の形式で、ステップＳ８６及びステップＳ８７で設定した値を反映した文字列を出力する（ステップＳ８８）。
【０１０２】
図３１は、図２６のステップＳ５４に示す[FOCUS]出力処理の内容を示すサブフローである。
ＣＰＵ１１は、[FOCUS]のセクション名の出力、（ステップＳ９１）、フォーカス順（図１６の”ORDER=…”の行の文字列）の出力（ステップＳ９２）、初期起動時フォーカス位置の出力（図１６の”FIRST=…”の行の文字列）の出力（ステップＳ９３）を行う。そして、ＣＰＵ１１は、定義された項目SqF1〜SqFnqに対してスキャナした際に読み取る情報に対応する項目として指定する属性が設定されているか否かを判定する（ステップＳ９４）。ステップＳ９４においていずれの項目にも属性が設定されていない場合（ステップＳ９４：ＮＯ）、ＣＰＵ１１は登録時フォーカス位置を示す行の文字列としてSECOND=EDIT1として出力する（ステップＳ９５）。ステップＳ９４においていずれかの項目に属性が設定されている場合（ステップＳ９４：ＹＥＳ）、ＣＰＵ１１はカウンタmを初期値1で宣言し、シートSqに定義された項目数、即ち最後の項目SqFnqのnqの値まで以下のステップＳ９７を繰り返す処理を行う（ステップＳ９６）。
ＣＰＵ１１は、項目SqFmに属性が設定されているか否かを判定する（ステップＳ９７）。ステップＳ９７において、属性が設定されている場合（ステップＳ９７：ＹＥＳ）、ＣＰＵ１１は登録時フォーカス位置を示す行をSECOND=EDITmとして出力し、ステップＳ９６の繰り返し処理を抜ける（ステップＳ９８）。ステップＳ９７において、属性が設定されていない場合（ステップＳ９７：ＮＯ）、ステップＳ９６に戻る。
【０１０３】
図３２は、図２６のステップＳ５５に示す[SCAN]出力処理の内容を示すサブフローである。
ＣＰＵ１１は、[SCAN]のセクション名を出力する（ステップＳ１０１）。そして、ＣＰＵ１１は、定義された項目SqF1〜SqFnqに対してスキャナした際に読み取る情報に対応する項目として指定する属性が設定されているか否かを判定する（ステップＳ１０２）。
ステップＳ１０２においていずれかの項目に属性が設定されている場合（ステップＳ１０２：ＹＥＳ）、ＣＰＵ１１はカウンタmを初期値1で宣言し、シートSqに定義された項目数、即ち最後の項目SqFnqのnqの値まで以下のステップＳ１０４〜ステップ１０８を繰り返す処理を行う（ステップＳ１０３）。
まず、ＣＰＵ１１はキー番号及びコントロールIDに対応する変数を宣言して、キー番号＝ｍ、コントロールID＝EDITmを設定する（ステップＳ１０４）。そして、ＣＰＵ１１は、項目SqFmに属性が設定されているか否かを判定し（ステップＳ１０５）、属性が設定されている場合（ステップＳ１０５：ＹＥＳ）、スキャン種別をALLとして出力し（ステップＳ１０６）、属性が設定されていない場合（ステップＳ１０５：ＮＯ）、スキャン種別をNONとして出力する（ステップＳ１０７）。ステップＳ１０６又はステップＳ１０７の後、ＣＰＵ１１は、EDITmのスキャン情報としてステップＳ１０６又はステップＳ１０７で得た結果に基づき出力する（ステップＳ１０８）。
ステップＳ１０２においていずれの項目にも属性が設定されていない場合（ステップＳ１０２：ＮＯ）、ＣＰＵ１１はカウンタmを初期値１で宣言する。（ステップＳ１０９）。そして、ＣＰＵ１１は、キー番号及びコントロールIDに対応する変数を宣言して、キー番号＝ｍ、コントロールID＝EDITmを設定すると共に、スキャン種別をALLとし（ステップＳ１１０）、ステップＳ１１０の内容に基づきEDITm即ちEDIT1のスキャン情報を出力する（ステップＳ１１１）。その後、ＣＰＵ１１は、カウンタmに１を加算してm=2とし、シートSqに定義された項目数、即ち最後の項目SqFnqのnqの値まで以下のステップＳ１１３、ステップ１１４を繰り返す処理を行う（ステップＳ１１２）。
ＣＰＵ１１は、キー番号＝ｍ、コントロールID＝EDITmを設定すると共に、スキャン種別をNONとし（ステップＳ１１３）、ステップＳ１１３の内容に基づきEDITmのスキャン情報を出力する（ステップＳ１１４）。
【０１０４】
図３３は、図２６のステップＳ５６に示す[ENTRY]出力処理の内容を示すサブフローである。
ＣＰＵ１１は、[ENTRY]のセクション名の出力（ステップＳ１２１）、登録属性出力（ステップＳ１２２）を順次行う。ステップＳ１２２の登録属性出力として、具体的には、”FILENAME=Sq.TXT”、”CONNECT=(登録用表データ８５のファイル名)”、”TABLE=Sq”の各エントリーを出力する。その後、ＣＰＵ１１は、FIELDS出力処理（ステップＳ１２３）、VALUES出力処理（ステップＳ１２４）を順次行う。
【０１０５】
図３４は、図３３のステップＳ１２３に示すFIELDS出力処理の内容を示すサブフローである。
ＣＰＵ１１は、”FIELDS=”の文字列の出力（キー出力）を行い（ステップＳ１３１）、ステップＳ１３１の”FIELDS=”の文字列に続く文字列として、定義された項目SqF1〜SqFnqの値をコンマ区切りで出力（フィールド名出力）する（ステップＳ１３２）。
【０１０６】
図３５は、図３３のステップＳ１２４に示すVALUES出力処理の内容を示すサブフローである。
ＣＰＵ１１は、”VALUES=”の文字列の出力（キー出力）を行い（ステップＳ１４１）、ステップＳ１３１の”VALUES=”の文字列に続く文字列として、EDIT1〜EDITnqをコンマ区切りで出力（フィールド名出力）する（ステップＳ１４２）。
【０１０７】
図３６は、図２１のステップＳ３に示す登録用表データ８５の生成処理の内容を示すサブフローである。
ＣＰＵ１１は、「出力ブック名」項目として設定されているファイル名を取得する（ステップＳ１５１）。そして、ＣＰＵ１１は、ステップＳ１５１で取得したファイル名の登録用表データ８５がＨＤＤ１４に存在するか否かを確認し（ステップＳ１５２）、存在しない場合（ステップＳ１５２：ＮＯ）、登録用表データ８５をステップＳ１５１で取得したファイル名で生成する（ステップＳ１５３）。ステップＳ１５３の処理後又はステップＳ１５２においてファイルが存在する場合（ステップＳ１５２：ＹＥＳ）、ＣＰＵ１１は、登録用表データ８５をオープンし（ステップＳ１５４）、登録用表データ８５のシート生成処理を行い（ステップＳ１５５）、登録用表データ８５をクローズする（ステップＳ１５６）。
【０１０８】
図３７は、図３６のステップＳ１５５に示す登録用表データ８５のシート生成処理の内容を示すサブフローである。
ＣＰＵ１１は、カウンタqを初期値1で宣言し、表データ８１に作成されたシートの数即ちシートS1〜Siのiが示す値まで以下のステップＳ１６２〜ステップＳ１６６を繰り返す処理を行う（ステップＳ１６１）。
ＣＰＵ１１は、登録用表データ８５にシート名がSqのシートが存在するか否かを判定し（ステップＳ１６２）、存在する場合（ステップＳ１６２：ＹＥＳ）、ＣＰＵ１１は既に存在するシート名がSqのシートを別名に変更し（ステップＳ１６３）、シート名がSqであった既存のシートのシート名を変更した旨を通知するメッセージを表示装置１８に表示させる（ステップＳ１６４）。ステップＳ１６４の処理後又はステップＳ１６２においてシート名がSqのシートが存在しない場合（ステップＳ１２３：ＮＯ）、ＣＰＵ１１は登録用表データ８５に表データ８１のシートSqをコピーし（ステップＳ１６５）、コピーした登録用表データ８５のシートSqの１行目以外のデータをクリアする（ステップＳ１６６）。
【０１０９】
図３８は、図２１のステップＳ４に示すメニューシート生成処理の内容を示すサブフローである。
ＣＰＵ１１は、表データ８１の既存のメニューシートを削除する処理（ステップＳ１７１）、表データ８１に新規のメニューシートを作成する処理（ステップＳ１７２）を順次行う。そして、ＣＰＵ１１は、メニューシートの列番号を管理するための変数（列）及び行番号を管理するための変数（行）を宣言して列=2、行=1を設定し（ステップＳ１７３）、ステップＳ１７３に基づき指定されたセルに「メニューシート」のタイトル名を設定する（ステップＳ１７４）。そして、ＣＰＵ１１は、ステップＳ１７４でタイトルを設定した行の属性設定（例えばフォントや行高さ等）を行う（ステップＳ１７５）。
そして、ＣＰＵ１１は、行番号（行）に１を加算し（ステップＳ１７６）、メインメニューラベル生成処理を行う（ステップＳ１７７）。
そして、ＣＰＵ１１は、ステップＳ１７７のメインメニューラベル生成処理後の行番号（行）に１を加算し（ステップＳ１７８）、環境設定メニューラベル生成処理を行う（ステップＳ１７９）。
そして、ＣＰＵ１１は、メニューシートの列幅を設定する（ステップＳ１８０）。
なお、ステップＳ１７５のフォントや行高さ、ステップＳ１８０の列幅等の各種設定内容は予め定められた設定内容に基づく。当該設定内容は、例えば「参照ブック名」項目で指定されたファイルの内容に含まれる。後述するステップＳ１９３、ステップＳ２００、ステップＳ２１３、ステップＳ２２０も同様である。
【０１１０】
図３９は、図３８のステップＳ１７７に示すメインメニューラベル生成処理の内容を示すサブフローである。
ＣＰＵ１１は、ステップＳ１７６の処理後の行番号（行）に１を加算し（ステップＳ１９１）、メインメニュー名の設定（ステップＳ１９２）、ステップＳ１９２でメインメニュー名を設定した行の属性設定（例えばフォントや行高さ等）の処理（ステップＳ１９３）を順次行う。
そして、ＣＰＵ１１は、カウンタqを初期値1で宣言し、表データ８１に作成されたシートの数即ちシートS1〜Siのiが示す値まで以下のステップＳ１９５〜ステップＳ２００を繰り返す処理を行う（ステップＳ１９４）。
ＣＰＵ１１は、ステップＳ１９１の処理後の行番号（行）に１を加算し（ステップＳ１９５）、0000+qの算出結果をバーコード番号として取得する（ステップＳ１９６）。そして、ＣＰＵ１１は、ステップＳ１９５の処理後の行番号（行）と列=２によって指定されるセルにq.Sqに対応する文字列を設定する（ステップＳ１９７）。ステップＳ１９７で設定される文字列のqはカウンタの数値、Sqは表データ８１におけるq番目のシートのシート名である。そして、ＣＰＵ１１は、ステップＳ１９６で取得したバーコード番号に基づきバーコードイメージBSqを作成し（ステップＳ１９８）、ステップＳ１９５の処理後の行番号（行）と列=6によって指定されるセルにステップＳ１９８で作成したバーコードイメージBSqを貼り付ける（ステップＳ１９９）。そして、ＣＰＵ１１は、ステップＳ１９５で指定された行の属性設定（例えばフォント、行高さ及び罫線等）を行う（ステップＳ２００）。
【０１１１】
図４０は、図３８のステップＳ１７９に示す環境設定メニューラベル生成処理の内容を示すサブフローである。
ＣＰＵ１１は、ステップＳ１７８の処理後の行番号（行）に１を加算し（ステップＳ２１１）、環境設定メニュー名の設定（ステップＳ２１２）、ステップＳ２１２で環境設定メニュー名を設定した行の属性設定（例えばフォントや行高さ等）の処理（ステップＳ２１３）を順次行う。
そして、ＣＰＵ１１は、カウンタrを初期値1で宣言し、環境設定定義７４の数(j)が示す値まで以下のステップＳ２１５〜ステップＳ２２０を繰り返す処理を行う（ステップＳ２１４）。
ＣＰＵ１１は、ステップＳ２１１の処理後の行番号（行）に１を加算し（ステップＳ２１５）、9000+rの算出結果をバーコード番号として取得する（ステップＳ２１６）。そして、ＣＰＵ１１は、ステップＳ２１５の処理後の行番号（行）と列=２によって指定されるセルにr.Erに対応する文字列を設定する（ステップＳ２１７）。ステップＳ２１７で設定される文字列のrはカウンタの数値、Erはr番目の環境設定の名称である。そして、ＣＰＵ１１は、ステップＳ２１６で取得したバーコード番号に基づきバーコードイメージBErを作成し（ステップＳ２１８）、ステップＳ２１５の処理後の行番号（行）と列=6によって指定されるセルにステップＳ２１８で作成したバーコードイメージBErを貼り付ける（ステップＳ２１９）。そして、ＣＰＵ１１は、ステップＳ２１５で指定された行の属性設定（例えばフォント、行高さ及び罫線等）を行う（ステップＳ２２０）。
【０１１２】
図４１は、クレードル２の監視処理の内容を示すフローチャートである。
ＣＰＵ１１は、表データ登録モジュール６４を終了するまで以下のステップＳ２３２〜ステップＳ２４２を繰り返す処理を行う（ステップＳ２３１）。
ＣＰＵ１１は、クレードル２を介してハンディターミナル５が接続されるまで監視し（ステップＳ２３２：ＮＯ）、ハンディターミナル５が接続されると（ステップＳ２３２：ＹＥＳ）、ステップＳ２３３以降の処理を行う。
ＣＰＵ１１は、ハンディターミナル５のフラッシュメモリ３４にアプリケーションセット８０の各実行ファイル即ち業務メニュー７１、業務アプリケーション７２及び環境設定アプリケーション７３があるか否かを確認し（ステップＳ２３３）、いずれか一つ以上がない場合（ステップＳ２３３：ＮＯ）、アプリケーションセット８０の各実行ファイルをハンディターミナル５に転送する（ステップＳ２３４）。
ステップＳ２３４の処理後又はステップＳ２３３においてフラッシュメモリ３４に業務アプリケーション７２及び環境設定アプリケーション７３が全てある場合（ステップＳ２３３：ＮＯ）、ＣＰＵ１１はフラッシュメモリ３４に記憶されたアプリケーションセット８０の各定義ファイル即ち業務メニュー定義８２、業務アプリケーション定義８３及び環境設定定義７４の更新日時（ファイル作成日時又は更新日時）がＨＤＤ１４に記憶されたアプリケーションセット８０の各定義ファイルのファイル作成日時又は更新日時と同一か否かを確認し（ステップＳ２３５）、同一でないあるいは業務メニュー定義８２、業務アプリケーション定義８３、環境設定定義７４のいずれか一つ以上がない場合（ステップＳ２３５：ＮＯ）、ＣＰＵ１１は、ハンディターミナル５のＣＰＵ３１にハンディターミナル５で実行されているアプリケーションを全て終了させるよう制御し（ステップＳ２３６）、その後に業務メニュー定義８２、業務アプリケーション定義８３及び環境設定定義７４をデータ処理装置１からハンディターミナル５に転送し（ステップＳ２３７）、その後にハンディターミナル５のＣＰＵ３１に業務メニュー７１を起動させる（ステップＳ２３８）。
ステップＳ２３８の処理後又はステップＳ２３５において業務メニュー定義８２、業務アプリケーション定義８３及び環境設定定義７４のファイル作成日時又は更新日時が同一であった場合（ステップＳ２３５：ＹＥＳ）、ＣＰＵ１１はフラッシュメモリ５に登録データ８６があるか否かを確認し（ステップＳ２３９）、登録データ８６がある場合（ステップＳ２３９：ＹＥＳ）、ＣＰＵ１１は全ての登録データ８６を取得し（ステップＳ２４０）、フラッシュメモリ３４にある全ての登録データ８６を削除し（ステップＳ２４１）、登録データ８６の格納処理を行う（ステップＳ２４２）。
【０１１３】
図４２は、図４１のステップＳ２４２に示す登録データ８６の格納処理の内容を示すサブフローである。
ＣＰＵ１１は、ステップＳ２４０で取得した全ての登録データの数に応じた回数だけ、以下のステップＳ２５２〜ステップＳ２６０を繰り返す処理を行う（ステップＳ２５１）。
ＣＰＵ１１は、登録データ８６をオープンし（ステップＳ２５２）、データを格納する対象となる登録用表データ８５のファイル名を取得する処理（ステップＳ２５３）、データを格納する対象となる登録用表データ８５のシート名を取得する処理（ステップＳ２５４）、データを格納する対象となる登録用表データ８５のフィールド名を取得する処理（ステップＳ２５５）を順次行う。登録用表データ８５のフィールド名は、図１９に示す登録データ８６の２行目で指定される項目名である。その後ステップＳ２５３で取得したファイル名の登録用表データ８５をオープンする（ステップＳ２５６）。そして、ＣＰＵ１１は、ステップＳ２５４で取得したシート名のシートに登録データ８６の３行目以降のレコードを追加する処理（ステップＳ２５８）をレコード数に応じた回数だけ繰り返す処理を行う（ステップＳ２５７）。その後、ＣＰＵ１１は登録用表データ８５をクローズし（ステップＳ２５９）、登録データ８６をクローズする（ステップＳ２６０）。
【０１１４】
図４３は、業務メニュー７１の起動処理の内容を示すフローチャートである。
ハンディターミナル５のＣＰＵ３１は、業務メニュー定義７１を読み込み（ステップＳ２７１）、スキャナ４１を読み込み動作可能とし（ステップＳ２７２）、メインメニュー表示処理を行う（ステップＳ２７３）。
【０１１５】
図４４は、図４３のステップＳ２７３に示すメインメニュー表示処理の内容を示すサブフローである。
ＣＰＵ３１は、業務メニュー定義７１から[メインメニュー]に関する情報を取得する処理（ステップＳ２８１）、タイトルを[メインメニュー]とする処理（ステップＳ２８２）、メニュー画面のボタンを全て非表示とする処理（ステップＳ２８３）を順次行う。そして、ＣＰＵ３１は、カウンタqを初期値１で設定し、表データ８１に作成されたシートの数即ちシートS1〜Siのiが示す値まで以下のステップＳ２８５、ステップＳ２８６を繰り返す処理を行う（ステップＳ２８４）。
ＣＰＵ３１は、BTN_Sqのボタン名をq.Sqにする処理を行い（ステップＳ２８５）、BTN_Sqを表示させる（ステップＳ２８６）。ステップＳ２８５で設定される文字列のqはカウンタの数値、Sqは表データ８１におけるq番目のシートのシート名である。
その後、ＣＰＵ３１は、終了ボタンBTN_END、設定ボタンBTN_SETを表示させ、戻るボタンBTN_RETを非表示とする処理を行う（ステップＳ２８７）。
【０１１６】
図４５は、設定ボタン操作時の処理内容を示すフローチャートである。
設定ボタンBTN_SETが操作されると、ＣＰＵ３１は、環境設定表示処理を行う（ステップＳ２９１）。
【０１１７】
図４６は、図４５のステップＳ２９１に示す環境設定表示処理の内容を示すサブフローである。
ＣＰＵ３１は、業務メニュー定義７１から[環境設定]に関する情報を取得する処理（ステップＳ３０１）、タイトルを[環境設定]とする処理（ステップＳ３０２）、メニュー画面のボタンを全て非表示とする処理（ステップＳ３０３）を順次行う。そして、ＣＰＵ３１は、カウンタrを初期値１で設定し、環境設定定義７４のファイル数（j）まで以下のステップＳ３０５、ステップＳ３０６を繰り返す処理を行う（ステップＳ３０４）。
ＣＰＵ３１は、BTN_Erのボタン名をr.Erにする処理を行い（ステップＳ３０５）、BTN_Erを表示させる（ステップＳ３０６）。ステップＳ３０５で設定される文字列のrはカウンタの数値、Erはr番目の環境設定の名称である。
その後、ＣＰＵ３１は、終了ボタンBTN_END、設定ボタンBTN_SETを非表示とし、戻るボタンBTN_RETを表示させる処理を行う（ステップＳ３０７）。
【０１１８】
図４７は、戻るボタン操作時の処理内容を示すフローチャートである。
戻るボタンBTN_RETが操作されると、ＣＰＵ３１は、ステップＳ２７３と同様のメインメニュー表示処理を行う（ステップＳ３１１）。
【０１１９】
図４８は、メインメニュー画面におけるメニューボタン操作時の処理内容を示すフローチャートである。
ＣＰＵ３１は、操作されたメニューボタンに対応するメニュー番号を付された業務アプリケーション定義８３のファイル名を業務メニュー定義８２から取得し（ステップＳ３２１）、業務アプリケーション７２の起動処理を行う（ステップＳ３２２）。
【０１２０】
図４９は、メインメニュー画面における番号キー操作時の処理内容を示すフローチャートである。
ＣＰＵ３１は、操作された番号キーに対応するメニュー番号が業務メニュー定義内に存在するか否か判定し（ステップＳ３３１）、存在しない場合（ステップＳ３３１：ＮＯ）処理を終了する。ステップＳ３３１において、操作された番号キーに対応するメニュー番号が業務メニュー定義内に存在する場合（ステップＳ３３１：ＹＥＳ）、ＣＰＵ３１は操作された番号キーに対応するメニュー番号を付された業務アプリケーション定義８３のファイル名を業務メニュー定義８２から取得し（ステップＳ３３２）、業務アプリケーション７２の起動処理を行う（ステップＳ３３３）。
【０１２１】
図５０は、業務アプリケーション７２の起動処理の内容を示すサブフローである。
ＣＰＵ３１は、スキャナ４１を読み込み不可能な状態とし（ステップＳ３４１）、ステップＳ３２１又はステップＳ３３２で取得した業務アプリケーション定義８３のファイル名を引数として業務アプリケーション７１を起動し（ステップＳ３４２）、その後スキャナ４１を読み込み可能な状態とする（ステップＳ３４３）。
【０１２２】
図５１は、環境設定メニュー画面におけるメニューボタン操作時の処理内容を示すフローチャートである。
ＣＰＵ３１は、操作されたメニューボタンに対応するメニュー番号を付された環境設定定義７４のファイル名を業務メニュー定義８２から取得し（ステップＳ３５１）、環境設定アプリケーション７３の起動処理を行う（ステップＳ３５２）。
【０１２３】
図５２は、環境設定メニュー画面における番号キー操作時の処理内容を示すフローチャートである。
ＣＰＵ３１は、操作された番号キーに対応するメニュー番号が業務メニュー定義内に存在するか否か判定し（ステップＳ３６１）、存在しない場合（ステップＳ３６１：ＮＯ）処理を終了する。ステップＳ３６１において、操作された番号キーに対応するメニュー番号が業務メニュー定義内に存在する場合（ステップＳ３６１：ＹＥＳ）、ＣＰＵ３１は操作された番号キーに対応するメニュー番号の環境設定定義７４のファイル名を業務メニュー定義８２から取得し（ステップＳ３６２）、環境設定アプリケーション７３の起動処理を行う（ステップＳ３６３）。
【０１２４】
図５３は、環境設定アプリケーション７３の起動処理の内容を示すサブフローである。
ＣＰＵ３１は、スキャナ４１を読み込み不可能な状態とし（ステップＳ３７１）、ステップＳ３５１又はステップＳ３６２で取得した環境設定定義７４のファイル名を引数として環境設定アプリケーション７４を起動し（ステップＳ３７２）、その後スキャナ４１を読み込み可能な状態とする（ステップＳ３７３）。
【０１２５】
図５４は、メニューシート８４のスキャン処理の内容を示すフローチャートである。
ＣＰＵ３１は、スキャナ４１でスキャンしたバーコードが示す文字列情報（スキャンコード）を取得し（ステップＳ３８１）、業務メニュー定義７２の内容にステップＳ３８１で取得したスキャンコードに対応するスキャンコード番号が存在するか否か判定する（ステップＳ３８２）。ステップＳ３８２において業務メニュー定義７２の内容に対応するスキャンコード番号が存在しない場合（ステップＳ３８２：ＮＯ）、ＣＰＵ３１は処理を終了し、業務メニュー定義７２の内容に対応するスキャンコード番号が存在する場合（ステップＳ３８２：ＹＥＳ）、ＣＰＵ３１はスキャンコード番号の先頭２文字が「００」であるか否か判定する（ステップＳ３８３）。ステップＳ３８３においてスキャンコード番号の先頭２文字が「００」である場合（ステップＳ３８３：ＹＥＳ）、ＣＰＵ３１はスキャンコード番号に対応する業務アプリケーション定義８３のファイル名を業務メニュー定義８２から取得し（ステップＳ３８４）、業務アプリケーション７２の起動処理を行う（ステップＳ３８５）。ステップＳ３８３においてスキャンコード番号の先頭２文字が「００」でない場合（ステップＳ３８３：ＮＯ）、ＣＰＵ３１はスキャンコード番号に対応する環境設定定義７４のファイル名を業務メニュー定義８２から取得し（ステップＳ３８６）、環境設定アプリケーション７３の起動処理を行う（ステップＳ３８７）。
【０１２６】
図５５は、業務アプリケーション７２の起動時に行われる処理内容を示すフローチャートである。
ＣＰＵ３１は、起動時に引数として指定された業務アプリケーション定義８３のファイルの読み込み（ステップＳ３９１）、読み込んだ業務アプリケーション定義８３の[CTRL_BASE]の内容に基づく表示内容の作成（ステップＳ３９２）、読み込んだ業務アプリケーション定義８３の[CTRL]の内容に基づく表示内容の作成（ステップＳ３９３）、読み込んだ業務アプリケーション定義８３の[FOCUS]の”ORDER=…”によって定義された順番にフォーカス順を設定する処理（ステップＳ３９４）、読み込んだ業務アプリケーション定義８３の[FOCUS]の”FIRST=…”によって定義されたテキストボックスにフォーカスを当てる処理（ステップＳ３９５）を順次行う。
【０１２７】
図５６は、EDITフォーカスイン処理の内容を示すフローチャートである。EDITフォーカスインとは、テキストボックスにフォーカスが当たる際に行われるスキャン可／不可の切替処理である。
ＣＰＵ３１は、フォーカスが当たったテキストボックスのコントロールIDを取得し（ステップＳ４０１）、業務アプリケーション７２の起動時に読み込んだ業務アプリケーション定義８３の[SCAN]に定義されているコントロールIDのうち、ステップＳ４０１で取得したコントロールIDに対応するエントリーのスキャン種別（ALL又はNON）を取得する（ステップＳ４０２）。そして、ＣＰＵ３１は、ステップＳ４０２で取得したスキャン種別が「ALL」であるか否か判定し（ステップＳ４０３）、「ALL」である場合はスキャナ４１によるスキャンを可能とし（ステップＳ４０４）、「ALL」でない場合は処理を終了する。
【０１２８】
図５７は、EDITフォーカスアウト処理の内容を示すフローチャートである。EDITフォーカスアウトとは、テキストボックスからフォーカスが外れる際に行われるスキャン可／不可の切替処理である。
ＣＰＵ３１は、フォーカスアウト時にスキャナ４１によるスキャンを不可能とする処理を行う（ステップＳ４１１）。
【０１２９】
図５８は、業務アプリケーション７２実行時のスキャン処理の内容を示すフローチャートである。
ＣＰＵ３１は、スキャンしたバーコードが示す文字列情報（スキャンコード）を取得し（ステップＳ４２１）、現在フォーカスのあるテキストボックスにスキャンコードを設定してリターンする（ステップＳ４２２）。ステップＳ４２２の「リターンする」とは、テキストボックス内の入力内容を確定して次のテキストボックスにフォーカスを移動する処理を行うことを示す。
【０１３０】
図５９は、フォーカス移動時の処理内容を示すフローチャートである。
ＣＰＵ３１は、フォーカス移動前にフォーカスの当たっていたテキストボックスのコントロールIDを取得し（ステップＳ４３１）、ステップＳ４３１で得たコントロールIDが、業務アプリケーション７２の起動時に読み込んだ業務アプリケーション定義８３の[FOCUS]の”ORDER=…”において最後に記述されたテキストボックス（最終コントロール）であるか否か判定する（ステップＳ４３２）。ステップＳ４３２において、最終コントロールでない場合（ステップＳ４３２：ＮＯ）、ＣＰＵ３１は業務アプリケーション７２の起動時に読み込んだ業務アプリケーション定義８３の[FOCUS]の”ORDER=…”によってステップＳ４３１で得たコントロールIDの次に記述されたテキストボックスにフォーカスを移動させる（ステップＳ４３３）。ステップＳ４３２において、最終コントロールである場合（ステップＳ４３２：ＹＥＳ）、ＣＰＵ３１は、登録データ保存処理（ステップＳ４３４）、テキストボックスのクリア処理（ステップＳ４３５）を順次行い、業務アプリケーション７２の起動時に読み込んだ業務アプリケーション定義８３の[FOCUS]の”SECOND=…”によって指定されたテキストボックスにフォーカスを移動させる（ステップＳ４３６）。
【０１３１】
図６０は、登録ボタン及び入力装置３７のリターンキー操作時の処理内容を示すフローチャートである。
ＣＰＵ３１は、登録データ保存処理（ステップＳ４４１）、テキストボックスのクリア処理（ステップＳ４４２）を順次行い、業務アプリケーション７２の起動時に読み込んだ業務アプリケーション定義８３の[FOCUS]の”SECOND=…”によって指定されたテキストボックスにフォーカスを移動させる（ステップＳ４４３）。
【０１３２】
図６１は、図５９のステップＳ４３４及び図６０のステップＳ４４１に示す登録データ保存処理の内容を示すサブフローである。
ＣＰＵ３１は、業務アプリケーション７２の起動時に読み込んだ業務アプリケーション定義８３の[ENTRY]のFILENAMEエントリーに設定されたファイル名を有するファイルがフラッシュメモリ３４にあるか否か判定する（ステップＳ４５１）。ステップＳ４５１においてファイルがフラッシュメモリ３４にない場合（ステップＳ４５１：ＮＯ）、ＣＰＵ３１は、[ENTRY]のFILENAMEエントリーに設定されたファイル名のファイルを作成し（ステップＳ４５２）、ステップＳ４５２で作成したファイルに対して、[ENTRY]のCONNECTの値の追加処理（ステップＳ４５３）、[ENTRY]のTABLEの値の追加処理（ステップＳ４５４）及び[ENTRY]のFIELDSの値の追加処理（ステップＳ４５５）を順次行う。
ステップＳ４５５の処理後又はステップＳ４５１においてファイルがフラッシュメモリ３４にある場合（ステップＳ４５１：ＹＥＳ）、ＣＰＵ３１は[ENTRY]のVALUESによって指定されているテキストボックスを示す値を取得し（ステップ４５６）、ステップＳ４５６で取得したコントロールの値に基づき各テキストボックスの入力内容から登録データ８６に記録するためのレコードデータを作成し（ステップＳ４５７）、[ENTRY]のFILENAMEエントリーに設定されたファイル名を有するファイルにステップＳ４５７で作成したレコードデータを追加記録する（ステップＳ４５８）。
【０１３３】
図６２は、図５９のステップＳ４３５及び図６０のステップＳ４４２に示すテキストボックスのクリア処理の内容を示すサブフローである。
ＣＰＵ３１は、業務アプリケーション７２の起動時に読み込んだ業務アプリケーション定義８３の[FOCUS]の”SECOND=…”によって指定されたテキストボックスを示すコントロールIDを取得し（ステップＳ４６１）、[FOCUS]の”ORDER=…”においてステップＳ４６１で取得したコントロールID即ち[FOCUS]の”SECOND=…”によって指定されたテキストボックスを示すコントロールID以降に記述されたコントロールIDに対応するテキストボックスに入力された値をクリアする（ステップＳ４６２）。
【０１３４】
本実施形態によるアプリケーション生成システム１００は、バーコードラベル作成モジュール６５の機能により、バーコードを印字したラベル（バーコードラベル）を作成することもできる。
図６３に、バーコードラベルを作成する際のデータ処理装置１の表示装置１８の表示内容の一例を示す。
図６４に、生成されたバーコードラベルの印刷データの一例を示す。
データ処理装置１は、マスタデータ７５に基づき、バーコードラベルを作成することができる。マスタデータ７５は、図６３に示すように、少なくとも商品コード及び商品名の各レコードを対応付けるデータとして存在する。マスタデータ７５は、商品コード及び商品名を対応付けるほか、これにさらに他の項目（例えば図６３に示す「商品名よみ」等）を対応付けてもよい。マスタデータ７５は表計算ソフト６１で用いることができる表形式のデータである。
表計算ソフト６１を用いてマスタデータ７５を開き、バーコードラベルを作成したい商品コード及び商品名を選択した状態で右クリックメニューの「バーコードラベル作成」を選択すると、ＣＰＵ１１は選択された商品コード及び商品名に基づきバーコードラベル作成モジュール６５を実行して図６４に示すバーコードシート８７を生成する。生成されたバーコードシート８７は、ラベルプリンタ３を介して印刷されることでラベルシートに印字され、バーコードラベルとして印刷出力される。
【０１３５】
本実施形態のアプリケーション生成システム１００によれば、表計算ソフト６１を用いて任意の項目を定義した表データ８１を生成し、ハンディターミナル５が実行する業務アプリケーション７２によって表データ８１に定義された項目のデータ収集、記録を行うための定義ファイルである業務アプリケーション定義８３をアプリケーション生成モジュール６２が表データ８１に基づいて生成し、通信モジュー６３，６６によって業務アプリケーション７２及び業務アプリケーション定義８３がハンディターミナルに転送される。これによって、表データ８１でユーザが定義した任意の項目のデータの収集、記録をハンディターミナル５で行うことができる。表データ８１の生成及び任意の項目の定義のための作業は、表計算ソフト６１を用いたデータの入力作業のみであり、アプリケーションの作成や専用のプログラムツールを利用したアプリケーションの作成に比して非常に容易である。つまり、ユーザは簡易な作業で任意の項目のデータの収集、記録をハンディターミナル５で行うためのアプリケーションを容易に作成することができる。
【０１３６】
さらに、表計算ソフト６１の操作において任意の項目に対して属性を設定（例えばボールド指定等）することで、スキャナ４１で読み取る情報に対応する項目として指定することができる。これによって、ユーザはバーコードから読み取るデータに対応する項目を表データ８１の作成時に明示的に指定することができる。
【０１３７】
さらに、表計算ソフト６１の操作において任意の項目に対して属性を設定（例えばボールド指定等）することで、スキャナ４１で読み取る情報に対応する項目として指定された項目を他の項目と視覚的に判別可能とすることができる。これによって、ユーザはバーコードから読み取るデータに対応する項目を表データ８１の作成時に明示的に指定することができることに加えて、スキャナ４１で読み取る情報に対応する項目として指定された項目を視覚的に確認することができる。
【０１３８】
さらに、例えば図７（ａ）〜（ｃ）に示すように、業務アプリケーション７２の実行時に、ＣＰＵ３１は、業務アプリケーション定義８３を読み込むことで表データ８１に定義された複数の項目に対してハンディターミナル５の入力装置３８によるデータの入力を可能とする画面を表示装置３８に表示させ、当該画面上においてフォーカスの当たった項目のテキストボックスに対して入力を可能とし、図８（ａ）、（ｂ）に示すように、表データ８１に定義された複数の項目のうちバーコードに基づき収集するデータに対応する項目が最初に入力する項目でない場合に、バーコードに基づき収集するデータに対応する項目よりも前に入力する項目の入力終了後に表示内容に含まれる「登録」ボタン又は入力装置３８が有するリターンキーの操作によりフォーカスを移動させる場合にはバーコードに基づき収集するデータに対応する項目にフォーカスを移動させる。これによって、スキャン作業の繰り返しによりデータの内容が変更される項目に対するフォーカスの移動をスムーズに行うことができ、スキャン作業をより円滑に行うことができるようになる。加えて、スキャン作業による入力内容の変更が行われないデータ、例えばスキャン作業時の日付やスキャン作業を行う担当者の氏名等のデータの入力については、その入力を一度行うのみでよく、以後はスキャン作業による入力内容の変更が行われないデータにフォーカスが移動しないので、誤ってこれらの入力内容を削除、変更等してしまうことがない上に手動でスキャン作業の項目までフォーカスを移動させる必要が生じないので、スキャン作業を一層円滑に行うことができるようになる。
【０１３９】
さらに、データ処理装置１は、アプリケーション生成モジュール６２の実行時に登録用表データ８５を生成し、表データ登録モジュール６４の機能によりハンディターミナル５のフラッシュメモリ上に登録データ８６がある場合に登録データ８６をデータ処理装置１に取り込んで登録データ８６に記録されたデータを登録用表データ８５に格納する。これによって、ユーザはデータ収集、記録後のハンディターミナル５をクレードル２に接続するだけでハンディターミナル５を用いて行ったデータ収集、記録の結果をデータ処理装置１に取り込んで登録用表データ８５に保存することができ、データ収集の効率がより向上する。
【０１４０】
さらに、表データ８１の作成時に複数のシートを作成して各シートに個別の項目を定義することができ、アプリケーション生成モジュールは表データ８１の各シートに対応した業務アプリケーション定義８３を生成する。これによって、業務アプリケーション７２の起動時に読み込む業務アプリケーション定義８３を指定することで各シートに定義した項目のデータ収集、記録をハンディターミナル５により行うことができ、ユーザはより多彩、多目的なデータ収集を行うためのアプリケーションの作成を行うことができる。
【０１４１】
さらに、データ処理装置１は、アプリケーション生成モジュール６２の実行時に、表データ８１に生成された各シート即ち生成される各業務アプリケーション定義８３に対応する業務メニュー定義８２を生成し、業務メニュー７１と共にハンディターミナル５へ転送する。これによって、ハンディターミナル５において業務メニュー７１を実行することで業務アプリケーション７２の起動時に読み込む業務アプリケーション定義８３を選択して指定することができ、表データ８１の各シートに定義された項目を使い分けることができるので、ユーザはより簡便に多彩、多目的なデータ収集を行うためのアプリケーションを利用することができる。
【０１４２】
前述の実施形態における記述は、本発明の一例を示すものであり、本発明の実施形態を限定するものではない。
【０１４３】
例えば、前述の実施形態では業務アプリケーション７２と業務アプリケーション定義８３とを個別に設けて業務アプリケーション７２が起動時に業務アプリケーション定義８３を読み込んでその処理内容を決定する仕組みを有し、アプリケーション生成モジュール６２が業務アプリケーション定義８３を生成することで業務アプリケーション７２の動作内容を決定する方法をとっているが、他の方法によってもよい。例えば、業務アプリケーション７２と業務アプリケーション定義８３とを個別に設けることなく一つの実行ファイルとし、アプリケーション生成モジュール６２がハンディターミナル等のデータ収集装置で実行可能なアプリケーションの実行ファイルを生成するようにしてもよい。
【０１４４】
前述の実施形態では、識別情報としてバーコードを、データ収集装置としてハンディターミナルを例としているが、他の識別情報やデータ収集装置でもよい。例えば、識別情報として二次元バーコードやRFIDその他の規格を用いてもよいし、ハンディターミナル以外のデータ収集装置としてカメラ付き端末やRFIDリーダ等を用いてもよい。
前述の実施形態で示した通信装置１６及び通信装置３６による通信は、その他の通信規格及び将来規格化される通信規格による通信のための装置を用いることを妨げない。
同様に、アプリケーション生成システム１００を構成する各部は、それぞれを代替可能な既存の構成及び将来世に出る構成による置換を妨げない。
【０１４５】
前述の実施形態で例示している各種の変数、パラメータ、書式その他の形態はあくまで一例であり、適宜変更可能である。
【符号の説明】
【０１４６】
１    データ処理装置
２    クレードル
３    ラベルプリンタ
４    プリンタ
５    ハンディターミナル
１１、３１    ＣＰＵ
１２、３２    ＲＡＭ
１３、３３    ＲＯＭ
１４    ＨＤＤ
１６，３６    通信装置
１７、３７    入力装置
１８、３８    表示装置
１９、３９    Ｉ／Ｆ
２０、４０    バス
３４    フラッシュメモリ
４１    スキャナ
４２    トリガーキー
６１    表計算ソフト
６２    アプリケーション生成モジュール
６３、６６    通信モジュール
６４    表データ登録モジュール
６５    バーコードラベル作成モジュール
７１    業務メニュー
７２    業務アプリケーション
７３    環境設定アプリケーション
７４    環境設定定義
７５    マスタデータ
８１    表データ
８２    業務メニュー定義
８３    業務アプリケーション定義
８４    メニューシート
８５    登録用表データ
８６    登録データ
９１    アプリ生成ボタン
【図１】
2010176557.tif 000003
【図２】
2010176557.tif 000004
【図３】
2010176557.tif 000005
【図４】
2010176557.tif 000006
【図５】
2010176557.tif 000007
【図６】
2010176557.tif 000008
【図７】
2010176557.tif 000009
【図８】
2010176557.tif 000010
【図９】
2010176557.tif 000011
【図１０】
2010176557.tif 000012
【図１１】
2010176557.tif 000013
【図１２】
2010176557.tif 000014
【図１３】
2010176557.tif 000015
【図１４】
2010176557.tif 000016
【図１５】
2010176557.tif 000017
【図１６】
2010176557.tif 000018
【図１７】
2010176557.tif 000019
【図１８】
2010176557.tif 000020
【図１９】
2010176557.tif 000021
【図２０】
2010176557.tif 000022
【図２１】
2010176557.tif 000023
【図２２】
2010176557.tif 000024
【図２３】
2010176557.tif 000025
【図２４】
2010176557.tif 000026
【図２５】
2010176557.tif 000027
【図２６】
2010176557.tif 000028
【図２７】
2010176557.tif 000029
【図２８】
2010176557.tif 000030
【図２９】
2010176557.tif 000031
【図３０】
2010176557.tif 000032
【図３１】
2010176557.tif 000033
【図３２】
2010176557.tif 000034
【図３３】
2010176557.tif 000035
【図３４】
2010176557.tif 000036
【図３５】
2010176557.tif 000037
【図３６】
2010176557.tif 000038
【図３７】
2010176557.tif 000039
【図３８】
2010176557.tif 000040
【図３９】
2010176557.tif 000041
【図４０】
2010176557.tif 000042
【図４１】
2010176557.tif 000043
【図４２】
2010176557.tif 000044
【図４３】
2010176557.tif 000045
【図４４】
2010176557.tif 000046
【図４５】
2010176557.tif 000047
【図４６】
2010176557.tif 000048
【図４７】
2010176557.tif 000049
【図４８】
2010176557.tif 000050
【図４９】
2010176557.tif 000051
【図５０】
2010176557.tif 000052
【図５１】
2010176557.tif 000053
【図５２】
2010176557.tif 000054
【図５３】
2010176557.tif 000055
【図５４】
2010176557.tif 000056
【図５５】
2010176557.tif 000057
【図５６】
2010176557.tif 000058
【図５７】
2010176557.tif 000059
【図５８】
2010176557.tif 000060
【図５９】
2010176557.tif 000061
【図６０】
2010176557.tif 000062
【図６１】
2010176557.tif 000063
【図６２】
2010176557.tif 000064
【図６３】
2010176557.tif 000065
【図６４】
2010176557.tif 000066