MZ Platformバーコード入力導入チュートリアル

このチュートリアルのサンプルアプリケーションはAP_DATA\Tutorial\バーコード入力導入.mzaxです。
このアプリケーションは、USB接続のバーコードリーダからの入力を受け取り、その入力文字列から製品コードとロット番号を読み取ったのち、これに対応する製 品名ならびにロット番号をテキストフィールドに設定するものです。

  1. アプリケーションの概要
  2. 概要

     このアプリケーションは、USB接続のバーコードリーダからの入力を受け取り、その入力文字列から製品コードとロット番号を読み取ったの ち、これに対応する製品名ならびにロット番号をテキストフィールドに設定するものです。
    本書ではUSB接続のバーコードリーダからの入力の受け取り方、および、受け取った文字列の扱い方の例を示します。

    バーコードの仕様

     このアプリケーションではコード体系はCODE39を採用しています。
    アプリケーションは、バーコードリーダをパソコンのUSBポートに接続し、コードをCODE39に設定して使用します。
    なお、バーコードリーダの設定方法はそれぞれのバーコードリーダに付属のマニュアルをご覧ください。
    コード体系 CODE39
    書式 PRDxxxLOTyyy の12文字。
    前半6文字が製品コードを示し、後半6文字がロット番号を示す。
     例)PRD003ーーー製品コード LOT005ーーーロット番号

    UBS接続のバーコードリーダ

      現在市販されているUSB接続のバーコードリーダからの入力は、キーボード入力として扱われます。
    したがって、バーコードを読み取る場合、そのときにフォーカス(カーソル)のある場所にバーコード入力文字列が出力されます。例えば、メモ帳 でテキスト編集をしているときにバーコードの読み取りを行うと、その場所にバーコード文字列が書き込まれます。そこで、このアプリケーション は[バーコード入力]テキストフィールドでバーコード入力文字列を受け取るように作成しています。
     

    完成画面図

     アプリケーションの機能概要は下図のとおりです。

  3. 画面作成
  4. バーコード入力画面作成

    バーコード入力画面を作成します。
    コンポーネント追加
    1. 以下のコンポーネントを追加します。
    2. 参考: 基 本操作>知ってい ると便利>コンポーネントの一括追加

      コンポーネント名 必要数 カテゴリー コンポーネントキー/テキスト
      フレーム 1 画面構成部品>ウィンドウ 派遣管理一覧
      ラベル 3 画面構成部品>テキスト バーコード入力
      製品名
      ロット番号
      テキストフィールド 3 画面構成部品>テキスト バーコード入力
      製品名
      ロット番号
      ボタン 画面構成部品>ボタン バーコードサンプル印刷
      パネル 画面構成部品>パネル 製品コード対応表
      テーブル 画面構成部品>テーブル 製品コード対応表
    画面編集
    1. 右のバーコード入力画面図を参考にコンポーネントを画面配置します。
    2. 配置方法は「手動配置」にします。
      [テーブル]は[パネル]に配置した上で[フレーム]に配置します。
      フ レーム画面へコンポーネントを一括追加する方法もあります。

      参考:基本操 作>画面編集>一括追加
      参考:基本操作>画面編集
    3. コンポーネントキーを変更します。
    4. [テキストフィールド]と[テーブル]のコンポーネントキーを「コンポーネント属性情報」画面で変更します。
      [ラベル]と[ボタン]のテキスト、[フレーム]と[パネル]のタイトルは、後で[実行(設定可)]ボタンで実行しながら 変更も可能です。
    5. 基本の接続を作成します。
    6. アプリケーションを開始したら[フレーム]を表示する、[フレーム]を閉じたらアプリケーションを終了する基本の処理を作成します。

      参考: 基 本操作>接続処理の作成>基本の接続処理

    7. ボタン名やタイトルの変更
    8. まだ[ラベル]のテキスト等を変更していない場合は、[実行(設定可)]ボタンで実行し、各画面構成部品の上で右クリック>ポップアップ メニューから変更します。
      「画面編集画面」に戻り、位置を微調整します。

      ※パネルのタイトルの表示
      [パネル]の上で右クリック>[枠]>[タイトル...]を選択し、「タイルの入力」窓でタイトルを入力します。
      [パネル]の上で右クリック>[枠]>[タイトル表示有無]>[表示する]を選択します。
    画面編集例

    製品コード対応表の入力

    製品コードの対応表を作成します。
    1. 行と列の作成
    2. [テーブル]の上で右クリック>[テーブル作成...]を選択します。
      「テーブル作成」窓が表示されます。
      行数に「4」、列数に「2」と入力します。
      デフォルトの列型の欄はそのまま「java.langString」とします。
    3. 列名の入力
    4. 各列の上で右クリック>[列]>[列名...]を選択します。
      「列名の入力」窓で、それぞれ「製品コード」、「製品名」と入力します。
    5. セルの値の入力
    6. 右側の製品コード対応表入力例を参考にセルの値を入力します。
    製品コード対応表入力例

  5. アプリケーション開始/終了時の処理
  6. アプリケーション開始時の処理

    アプリケーションの起動時には、入力フォーカス(カーソル)が[バーコード入 力]テキストフィールドに設定されるようにします。
    接続処理設定
    1. アプリケーション開始時に[テキストフィールド]にフォーカスを設定する
      1. 【接続0-1-1】[アプリケーション]のアプリケーション開始イベントの接続先を[テキストフィールド(バーコード入 力)]に設定します。
        メソッド「入力フォーカスを設定する()」を設定します。
    注意
    バーコードを読み込む際に、入力フォーカスが[バーコード入力]テキストフィールドにないとアプリケーションは動作しません。
    ここで行う処理 により、アプリケーション起動時には入力フォーカスが[バーコード入力]テキストフィールドに自動的に設定されるようになりますが、その後 テーブルや他のテキストフィールド等をクリックした場合には、改めて[バーコード入力]テキストフィールドをクリックし、入力フォーカス を設 定する必要があります。

    アプリケーション終了時の処理

    アプリケーション終了時には、[バーコード入力]テキストフィールド、[製品 名]テキストフィールド、[ロット番号]テキストフィールドのデータを削除するようにします。
    接続処理設定
    1. アプリケーション終了時に各「テキストフィールド」のデータをクリアする
      1. 【接続1-1】[アプリケーション]のアプリケーション終了イベントの接続先を[テキストフィールド(バーコード入 力)]に設定します。
        メソッド「テキストを設定する()」を設定します。
        引数に固定値で空白文字列を設定します。
      2. 【接続1-2】[アプリケーション]のアプリケーション終了イベントの接続先を[テキストフィールド(製品名]に設定し ます。
        メソッド「テキストを設定する()」を設定します。
        引数に固定値で空白文字列を設定します。
      3. 【接続1-3】[アプリケーション]のアプリケーション終了イベントの接続先を[テキストフィールド(ロット番号)]に 設定します。
        メソッド「テキストを設定する()」を設定します。
        引数に固定値で空白文字列を設定します。

    [編集画面図1]  
    ※右側の接続先をクリックすると、起動メソッド情報の画像が表示されます。

  7. 製品名を設定する
  8. 設定するデータ

    バーコードリーダからの入力文字列をもとに、製品名を設定します。
    バーコードの書式は「PRDxxxLOTyyy」で、前半の6文字(PRD003等)が製品コード、後半の6文字(LOT005等)がロット 番号を表すものとします。
    ここでは、前半の6文字で表現される製品コードを[製品コード対応表]テーブルと照合し、対応する製品名を[製品名]テキストフィールドに設 定します。

    サブルーチンの利用

    MZ Platformには処理をまとめるためのコンポーネントとして、『サブルーチン』『ファンクション』等があります。
    サブルーチンとは、頻繁に利用する小さな処理を個別に作成し、必要に応じて呼び出すという手法です。
    [サブルーチン]コンポーネントでは、メソッドが呼び出された際に、接続先のコンポーネントの処理が実行されます。
    ファンクションとは「関数」であり、入力値(引数)に対し、それに対応した出力(戻り値)の関係を示すものです。
    [ファンクション]コンポーネントでは、オブジェクトとして引数を指定してメソッドが呼び出された際に、接続先のコンポーネントの処理結果を 得ることができます。
    また、接続先のコンポーネントのメソッドを実行する際に、[ファンクション]コンポーネントのメソッドの引数として指定されたオブジェクトを 取得することができます。
    接続先コンポーネントのうち最後に接続されているコンポーネントのメソッドからの戻り値が処理結果として取得できます。
    ここでは、サブルーチンとファンクションを使用し、製品名を設定する処理をまとめておきます。

    コンポーネント追加
    1. 以下のコンポーネントを追加します。
    2. コンポーネント名 必要数 カテゴリー コンポーネントキー
      文字列格納変数 [処理部品]>[変数]
      サブルーチン [処理部品]>[サブルーチン] 製品名設定
      ファンクション [処理部品]>[サブルーチン]
      リスト格納変数 [処理部品]>[変数]

    製品名の設定

    接続処理の作成
    1. バーコード入力文字列の格納
      1. 【接続2-1】バーコード入力文字列を文字列格納変数に格納します。
      2. バーコードリーダーでバーコードを読み込むと、[テキストフィールド]に文字を入力しEnterキーを押したのと同様の動作になりま す。
        [テキストフィールド]のアクションイベントに[文字列格納変数]を接続し、入力された文字列を変数に設定します。
        ※バーコードリーダーでバーコード読み込み後にEnterキーが押される動作になっていない場合は、バーコードリーダーの設定を確認 してください。
    2. 製品コード部分の取得
      1. 【接続3-1】 製品名設定サブルーチンを呼び出します。
        [文字列格納変数]にデータが設定されるとデータ設定イベントが発生します。
        次に作成する『バーコード の文字列から製品コードを取得し、対応する製品名を設定する』[サブルーチン]の処理を呼び出します。
      2. 【接続4-1】製品コード(前半6文字)を取得します。
      3. バーコード文字列の前半部分が製品コードとなっているので、部分文字列を変数から取得します。
        引数0に「0」、引数1に「6」と設定すると、第0番目から第5番目まで(第6番目は含まれない)の文字列が取得できます。
        [サブルーチン(製品名設定)]を先頭に処理を作成します。
      4. 【接続4-2】ファンクションを呼び出します。
      5. 後で作成する『製品コード対応表から製品名を取得する』[ファンクション]を呼び出します。
        【接続4-2】 で取得した製品コードを引数としてファンクションの呼び出しを行います。
      6. 【接続4-3】製品名を設定します。
      7. [ファンクション]の処理の結果を[テキストフィールド(製品名)]に設定します。

    [編集画面図2]  

    1. コード名と対応する製品名の取得
    2. 製品コードが何番目の行にあるか取得し、同じ行にある製品名を取得します。
      1. 【接続5-1】製品コード対応表から製品コードの列(第0列)を取得します。
      2. [ファンクション]を先頭に処理を作成します。
      3. 【接続5-2】製品コードの列をリスト格納変数に格納します。
      4. 取得した列はリスト型なので、リスト格納変数に設定します。
      5. 【接続5-3】与えられた製品コードのインデックスを取得します。
      6. メソッド「indexOf(Object)」で製品コードのリスト中の位置が分かります。
      7. 【接続5-4】製品名を取得します。
      8. 表から行位置を列位置(第1列)を指定してセルの値を取得します。

    [編集画面図3]  

    確認
    ここまで作成して、製品名が設定される処理の動作を確認しましょう。
    1. ツールボタン[実行]を押して、アプリケーションを実行します。
    2. [バーコード入力]テキストフィールドに、キーボードから製品名とロット番号を入力します。
      ここでは、「PRD003LOT005」と入力し【Enter】キーを押します。
    3. 製品名が表示されます。
    作成画面例

  9. ロット番号を設定する
  10. ロット番号を設定する

    バーコードリーダからの入力文字列をもとに、製品名を設定します。
    バーコードの書式は「PRDxxxLOTyyy」で、前半の6文字(PRD003等)が製品コード、後半の6文字(LOT005等)が ロット番号を表すものとします。
    ここでは、後半の6文字で表現されるロット番号を[ロット番号]テキストフィールドに設定します。
    この処理をロット番号設定サブルーチンとしてまとめておきます。

    コンポーネント追加
    1. 以下のコンポーネントを追加します。
    2. コンポーネント名 必要数 カテゴリー コンポーネントキー
      サブルーチン [処理部品]>[サブルーチン] ロット番号設定
    3. コンポーネントキーを「ロット番号設定」に変更します。
    接続処理の作成
    1. ロット番号の設定
      1. 【接続3-2】ロット番号設定サブルーチンを呼び出します。
        [文字列格納変数]のデータ設定イベントの接続先処理とします。
      2. 【接続6-1】製品コード(後半6文字)を取得する
      3. 【接続4-1】をコピーして貼り付けると簡単です。
        引数0は「6」引数1は「12」に変更します。
      4. 【接続6-2】ロット番号を設定する
        取得した文字列を[テキストフィールド(ロット番号)]に設定します。

    [編集画面図4]  

    確認
    ここまで作成して、製品名が設定される処理の動作を確認しましょう。
    1. ツールボタン[実行]を押して、アプリケーションを実行します。
    2. [バーコード入力]テキストフィールドに、キーボードから製品名とロット番号を入力します。
      ここでは、「PRD003LOT005」と入力し[Enter]キーを押します。
    3. ロット番号と製品名が表示されます。
    作成画面例

  11. フィールドのクリアと入力フォーカスの設定
  12. テキストフィールドのクリアと入力フォーカスの設定

    バーコードリーダからの入力文字列である製品名とロット番号を、対応する製品名ならびにロット番号テキストフィールドに設定した後は、次の入 力に備え[テキストフィールド(バーコード入力)]のデータをクリアするように設定し、入力フォーカスをテキストフィールドに設定します。
    接続処理の設定
    1. [テキストフィールド(バーコード入力)]をクリアします。
    2. 空白文字列を設定します。
    3. [テキストフィールド(バーコード入力)]に入力フォーカスを設定します。

    [編集画面図5]  

    確認
    バーコード入力テキストフィールドのデータがクリアされ、入力フォーカスが設定される 処理の動作を確認しましょう。
    1. ツールボタン[実行]を押して、アプリケーションを実行します。
    2. [テキストフィールド(バーコード入力)]に、キーボードから製品名とロット番号を入力します。
      ここでは、「PRD003LOT005」と入力し[Enter]キーを押します。
    3. バーコード入力のフィールドはクリアされ、フォーカスが入力されています。
    作成画面例

  13. バーコードサンプル一覧の印刷
  14. バーコード用サンプルデータの準備

    バーコードのサンプル一覧を[帳票]に作成します。
    ここでは次の8つのバーコードを作成します。
    コ ンポーネント追加
    1. 以下のコンポーネントを追加します。
    2. コンポーネント名 必要数 カテゴリー
      ラベル 8 画面構成部品>ラベル

    3. [ラベル]のテキストを変更します。
    4. 画面に配置する必要は無いので、コンポーネント属性情報窓から各[ラベル]の[Text]欄を以下に変更します。
      PRD001LOT001、PRD001LOT002、PRD002LOT003、PRD002LOT004 PRD003LOT005、PRD003LOT006、PRD004LOT007、PRD004LOT008

      参考:基 本操 作>MZ Platformのコンポーネント>コンポーネントの属性

    テキスト変更例

    帳票イメージの作成と印刷

    帳票を印刷するには、印刷プレビュー画面を表示し、印刷プレビュー内の[印刷]ボタンをクリックして印刷する方法があります。[印刷]ボタン をクリックすると印刷設定ダイアログが表示されるので、プリンタの設定や印刷の設定を行った後、印刷が実行できます。
    帳票のレイアウトは[帳票編集]画面で作成します。

    参考:注 文票作成チュートリアル>帳票機能の作成
    参考:基 本のコ ンポーネント>帳票

    コ ンポーネント追加
    1. 以下のコンポーネントを追加します。
    2. コンポーネント名 必要数 カテゴリー
      帳票 1 入出力>帳票
    帳票編集

    参考:基 本のコ ンポーネント>帳票>帳票画面編集
    参考:基 本のコ ンポーネント>帳票>ラベル要素

    1. [帳票編集]ツールボタンを押し、帳票編集画面を表示します。
    2. まず、帳票レイアウト画面に[ラベル要素]を追加します。
      要素の上で右クリック>[データ設定]>[テキスト入力...]を選択し、「テキスト入力」画面で『バーコードサンプル』と入力しま す。
    3. 要素の上で右クリック>[データ設定]>[ラベル描画属性設定...]を選択し、フォントサイズ等を調整します。
    4. 次に、[バーコード要素]を8個追加します。
    5. 初めに1つ追加し、データを設定してから、それをコピーして使ってもいいです。

      参考:基 本のコ ンポーネント>帳票>バーコード要素

    6. 要素の上で右クリック>[データ設定]>[データ取得設定...]を選択します。「データ取得設定」窓が表示されます。
    7. 取得元コンポーネント「変更」のボタンを押し、データ取得元に[ラベル(PRD001LOT001)]を選択します。
    8. データ取得メソッドに「ラベルのテキストを取得する()」を選択します。
    9. 要素の上で右クリック-[バーコード描画属性設定…]を選択します。
    10. 「バーコード属性設定」窓で [データ表示]の[表示する]にチェックボックスにチェックをつけ[設定]ボタンを クリックします。
      バーコードのデータが表示されるようになります。
    11. [バーコード要素]コピー・貼り付けして8個配置します。
    12. それぞれの要素のデータ設定をやり直し、取得元コンポーネントを各[ラベル]とします。
      PRD001LOT001~PRD004LOT008 の[バーコード要素]を配置します。
    帳票作成例


    バーコード描画属性画面

    印刷プレビューを表示する

    ボタンを押したら、印刷プレビュー画面を表示するようにします。 この印刷されたバーコードを読み込んで、製品とロット番号を表示します。接続処理の作成
    1. 印刷プレビューの表示
      1. 【接続7-1】「バーコードサンプル印刷」ボタンを押したら印刷プレビュー画面を表示します。
    2. フォーカスの入力
    3. 印刷プレビュー画面を閉じた後、フォーカスが[フレーム]に戻らないことがあるため、フォーカスを入力します。
      1. 【接続7-2】[テキストフィールド(バーコード入力)]にフォーカスを入力します。

    印刷プレビュー例
    [編集画面図6]