MZ Platform購買管理作成チュートリアル1(購買依頼)

このチュートリアルは『講習資料DB編』を基に説明しています。

<データベースの基礎知識と事前準備>

1.データベースとは

データベースとは、様々な形式で整理された情報の集まりです。
Excel のようなテーブル(表)形式で整理さ れたデータベースを、リレーショナルデータベース(RDB、関係データベース)と呼びます。

データベースを効率的に運⽤し、管理するためのソフトウェアを、データベース管理システム(DBMS) と呼びます。
代表的なDBMS には、Oracle Database やMySQL などがあります。
MZ Platform では、オープンソースのRDBMS であるMySQL を利⽤します。

2.SQLとは

SQL とは、データベース管理システムに対して、データの操作や定義を実⾏するための問い合わせ(クエ
リ)言語です。言語の⽂法に従って、実現したい処理を表現するSQL ⽂を作成します。

以下に、PersonとFirmを組み合わせて顧客一覧表を作るSELECT文の例をします。

1.MySQLデータベースの準備

MZ Platform は、データベース管理システムとしてMySQL を使⽤します。

ここでは、初めてMySQL をインストールする場合について説明します。
  1. MySQL は以下のURL からインターネット経由でダウンロードします。
  2. https://dev.mysql.com/downloads/installer/
    1. ダウンロードページにアクセスする
      [MySQL Community Downloads]画⾯が表⽰されます。
    2. [Microsoft Windows]を選択していることを確認して、2 番目の[Download]を
      クリックする
      1 番目の[Download]はWeb 経由のインストーラのダウンロードです。
      ここでは、プログラム本体をダウンロードする2 番目の[Download]を選びます。
    3. Sign Up のページが表⽰されます。
    4. [No thanks, just start my download.]をクリックする
      インストーラ(mysql-installer-community-8.0.4X.X.msi)がダウンロード されます。
  3. インストーラーを立ち上げます。
    1. インストーラをダブルクリックする
      MySQL のインストール画⾯が表⽰されます。
    2. [Server Only]を選び、[Next]ボタンをクリックする
      インストールするMySQL 名が画⾯に表⽰されます。
    3. 基本的に設定は変更せず、[Next]ボタンで画⾯を進めでいきます。
    4. rootのパスワードを設定し、[Next]ボタンをクリックする
      ここで設定したパスワードは、アプリケーションの作成でも使用します。
      必ずメモを取ってください。
    5. [next]、[execute]、[finish]ボタンまで押して完了します。

2.MySQL Connector のインストール

MZ PlatformからはJDBC(データベースへアクセスするためのJava標準API)ドライバーを介してデータベースに接続します。
MySQLインストール時にJDBCドライバも一緒にダウンロードし、設定します。
  1. ドライバがインストールされているフォルダ(例:C:\Program Files (x86)\MySQL\Connector J 8.0)に移動し、ドライバファイル(例:mysql-connector-java-8.0.33.jar)をコピーします。
  2. \MZPlatform\4.0(または4.0_32)\jars\extフォルダにコピーしたドライバファイルを入れ ます。

参考:MZ Platform データベース接続>データベースの準備>JDBCドライバー(MySQLConnector/J)の配置

3.データベースのサービス起動状態 の変更(セキュリティの強 化)

MySQLのインストール後、規定では、MySQLのサービスはOSの起動と同時に自動起動します。
セキュリティ上、使用するときにのみ起動する設定(手動)にしておくことを推奨します。

参考:MZ Platform データベース接続>データベースの準備>MySQLサービスの起動状態の変更

3.リモート接続の設定

MySQLサーバーに他のPCからリモート接続するには、以下の2つの設定が必要です。

1.Windowsファイアウォールの例外リストにポートを追加する
2.rootユーザーにリモート接続の権限を与える

1については、インストール時に基本設定を変更しなければ設定済みです。
2についてはMZ Platformに付属のbatファイルを使って、ユーザーに権限を与えることができます。
MySQLサーバがインストールされたPCで、MZ Platformのアプリケーションを起動し、ローカル接続する場合には必要ありません。

参考:MZ Platform データベース接続>データベースの準備>リモート接続の設定

1.MySQL内の動作確認データの準備

  1. 作成するデータベース
    1. MySQLサーバー内に互いに関連性を持つ複数のテーブルを作成することができます。
      そのデータベースを「production」という名前を付けて作成します。
    2. 「production」の中に2つの「project」と「task」というテーブルを作成します。
      • 「primary Key (主キー)」とはテーブル内で行(レコード)を一意に特定するための項目です。
        重複データは許容されません。
      • 「auto_increment」はデータを追加すると自動的に採番され、一意のデータを割り当てることができ ま す。
      1. 「project」テーブル
      2. 列名 データ型 MZでのデータ型 NULLの許容 特記
        id int java.lang.Integer(整数) NO Primary Key, auto_increment
        label text 文字列 YES
        product text 文字列 YES
        delivery datetime 日付 YES
      3. 「task」テーブル
      4. 列名 データ型 MZでのデータ型 NULLの許容 特記
        isCompleted tinyint(1) 論理 YES
        dateEnd datetime 日付 YES
        dateStart datetime 日付 YES
        workingTime int java.lang.Integer(整数) YES
        projectLabel text 文字列 YES
        id int java.lang.Integer(整数) NO Primary Key, auto_increment
        process text 文字列 YES
  2. 設定されるデータ
  3. projectテーブルとtaskテーブルは受注番号(labelと projectLabel)において関係性があり、projectテーブルに登録された受注の工程の内容をtaskテーブルに格納します。
    1. projectテーブルのデータ例
    2. id label product delivery
      1 A01 A01 2023/11/11
      2 A02 A02 2023/12/12
    3. taskテーブルのデータ例
    4. isCompleated dateEnd dateStart workingTime projectLabel id process
      0 2023/11/08 12:00:00 2023/11/08 13:00:00 90 A01 1 めっき
      2023/12/05: 15:30:00 2023/12/05 18:00:00 150
      A02 2 検査
      ※「isCompleate」列はMySQL内に格納されるデータは「1」か「0」ですが、MZ Platfromでは「true」「false」のboolean型として取得できます。
      またデータ更新・挿入SQLも「””」で囲まない「true」「false」値で実行することができます。
  4. 設定方法
  5. MySQLコマンドラインから createコマンドでデータベースやテーブルを作成できますが、このチュートリアルでは幾つかのデータと共にデータベーステーブルを作成するbatファイルを実行しま す。
    ※「production」というデータベースが既に存在する場合上書きされてしまうので、注意してください。
    1. MZPlatform\4.0\AP_DATA\Production内の「dbsetup80.bat」ファイル をダブル クリックします。
    2. コマンドプロンプト画面が立ち上がります。
      パスワードを入力し、<Enter>キーを押します。
      「続行するには何かキーを押してください」というメッセージが表示されます。
      何かキーを押すと終了します。

    3. データベースとテーブルが作成され、データが追加されます。
  1. 設定データの動作確認
  2. 以下の幾つかの方法があります。
    1.工程管理システム簡易版を実行して、動作を確認する
    2.サンプルアプリケーション「データベースアクセス.mzax」を実行して、動作を確認する
    3.MySQLコマンドラインで確認する

    1. 工程管理システムでの確認
      1. AP_DATA¥Production内にある 「ProductionControl.mzax」ファイルをダブルク リックします。
        工程管理システム簡易版アプリケーションが起動します。
      2. 実行画面左上の[データベース管理...]ボタンをクリックします。
        [ローカルSQL管理]画面が表示されます。
      3. [ローカルSQL管理]画面の[パスワード]欄にMySQLのインストールで設定したrootのパスワードを入 力しま す。
        設定後、画面は右上の[×]で画面を閉じます。
        ※「production」以外のデータベースに接続する場合は、[データベース名]欄も変更します。
      4. 工程管理アプリケーションに、データベースの内容が反映されることを確認します。
        受注番号などを選んで、リストが動的に表示されることを確認します。
    2. データベースアクセス.mzaxアプリケーションでの確認
      1. AP_DATA¥Sample内にある 「データベースアクセス.mzax」ファイルをダブルク リックします。
        データベースアクセスアプリケーションが起動します。
      2. 接続フレームの[パスワード]欄にMySQLのインストールで設定したrootのパスワードを入力しま す。
      3. データベース検索フレームにMySQLデータベース内のテーブル名がツリー形式で表示されます。
        ツリーノードをクリックすると、テーブルが表示されます。
    3. MySQLコマンドラインでの確認
      1. Windowsスタートメニュー>MySQL>MySQL 8.0 Command Line Clientを立ち上げます。
      2. パスワードを入力します。
      3. 「mysql>」と表示されている後ろに「use production;」と入力して[Enter]キーを押します。
      4. 「select * from project;」と入力して、[Enter]キーを押します。
      5. テーブルの内容が表示されれば、データが設定されています。
工程管理システム画面例(クリックして拡大)
工程管理システムデータ表示例
データベースアクセスアプリケーションでの表示例

1.購買依頼機能の作成

接続機能の確認

1.MySQL内のデータの準備

  1. 作成するデータベース
    1. MySQLサーバー内に「kobaiirai」という名前のデータベースを作成します。
    2. 「kobaiirai」の中に2つの「buhin」と「irai」というテーブルを作成します。
      • 「primary Key (主キー)」とはテーブル内で行(レコード)を一意に特定するための項目です。
        重複データは許容されません。
      • 「auto_increment」はデータを追加すると自動的に採番され、一意のデータを割り当てることができま す。
      1. 「buhin」テーブル
      2. 列名 MZでの列名 データ型 MZでのデータ型 特記
        buhinid 部品コード varchara(10) 文字列 Primary Key
        buhinmei 部品名 varchara(50) 文字列
        kijun 在庫基準 int java.lang.Integer(整数)
      3. 「irai」テーブル
      4.   列名 MZでの列名 データ型 MZでのデータ型 特記
        irai_id id int java.lang.Integer(整数) Primary Key, auto_increment
        buhincode 部品コード varchar(10) 文字列
        suryo 数量 int java.lang.Integer(整数)
        tantosha 担当者 varachar(20) 文字列
        iraidate 依頼日 date 日付
  2. 設定方法
  3. データベーステーブルを作成するbatファイルを実行しま す。
    1. 講習フォルダ内の「dbsetup80.bat」ファイルをダブル クリックします。
    2. コマンドプロンプト画面が立ち上がります。
      パスワードを入力し、<Enter>キーを押します。
      「続行するには何かキーを押してください」というメッセージが表示されます。
      何かキーを押すと終了します。
    3. 「kobaiirai」データベースと「buhin」、「irai」テーブルが作成され、データが追加されます。

2.作成するアプリケーションの概略

STEP0,STEP1

「DB 共通STEP0.mzax」ファイルのパスワードとサーバー接続文字列を設定して、データ ベースとの接続を確認します。
[パスワード入力フィールド]のパス ワードを変更し、[kobaiirai」データベースに接続できるよう接続文字列も変更 します。

コンポーネント属性変更
  1. 接続パスワードの変更
    1. アプリケーションビルダー編集画面で「DB共通STEP0.mzax」をロードします。
    2. 複合コンポーネント[DB接続]をダブルクリックし、複合コンポーネント編集領域に入ります。
    3. 複合コンポーネント内の[パスワード入力フィールド]をダブルクリックし、「コンポーネント属性情報」画面を表示し ます。
    4. 「text」の欄の文字列を、MySQLのインストール時に設定したrootのパスワードに変更します。
      ※「PasswordText」欄も連動して変更されます。
    5. 「コンポーネント属性情報」画面を閉じます。
  2. 実行確認
    1. ツールボタン[実行]を押し、実行画面を表示します。
    2. 表示された[フレーム]の[テキストフィールド]の文字列が、「select * from project」となっているのを確認して、「SQL実行」ボタンを押します。
    3. 「project」テーブルが表示されるのを確認します。
  3. 名前を付けて保存
    1. ツールボタン[保存]を押し、保存する範囲「すべて」を選択して、任意のファイル名を付けて保存します。
      (ファイル名例「今日の日付_+ファイル名」=例:1010_STEP0)
  4. サーバ接続文字列の変更
    1. 複合コンポーネント内の[テキストフィールド(サーバ)]をダブルクリックし、「コンポーネント属性情報」画面を表 示しま す。
    2. 「text」の欄の文字列を、「jdbc:mysql://localhost/kobaiirai」 に変更します。
      元の[Text]には、初期設定した「jdbc:mysql://localhost/production」が入力さ れている の で、最 後の部分を変更します。
  5. 実行確認
    1. ツールボタン[実行]を押し、実行画面を表示します。
    2. 表示された[フレーム]の[テキストフィールド]の文字列を「select * from buhin 」に変更して、「SQL実行」ボタンを押します。
    3. 「buhin」テーブルが表示されるのを確認します。
  6. 名前を付けて保存
    1. ツールボタン[保存]を押し、保存する範囲「すべて」を選択して、任意のファイル名を付けて保存します。(ファイル 名例:日 付_STEP1.mzax)
パスワード入力フィールド属性情報画面
projectテーブル表示例
テキストフィールド(サーバ)属性情報画面
buhinテーブル表示例

データ入力画面の作成

データを入力するための画面を作成します。
検索結果表示テーブルから[テキストフィールド]と[ボタン]を削除し、代わりに部品コードや必要数量等の入力フィールドを追加します。

完成画面

画面編集
  1. アプリケーションビルダー編集画面でツールボタン[ロード]を押し、接続機能作成の項で保存済みのファイルをロードします。
  2. ツールボタン[画面編集]を押して、「画面編集」画面を表示します。
  3. [フレーム]に配置されている[テーブル]のみを残し、削除します。
    [テキストフィールド]と[ボタン(SQL文実行)]を右クリック>[コンポーネント削除]を選択します。
コンポーネ ント追加

    参考:MZ Platformの画面編集>参考:画面編集画面での一括追加

  1. 画面編集画面上右クリック>[新規コンポーネント追加]で一括で以下のコンポーネントを追加します。
    編集領域の上で右クリック>[新規コンポーネント一括追加...]を選択します。
    コンポーネント追加窓が表示されます。
    必要なコンポーネントの追加数を入力し、最後に「追加」ボタンを押します。
  2. コンポーネント名 必要数 カテゴリー テキスト/コンポーネントキー
    ラベル 5 画面構成部品>テキスト 部品コード
    部品名
    必要数量
    担当者
    依頼日
    テキストフィールド 画面構成部品>テキスト 担当者
    数値入力フィールド 画面構成部品>テキスト 必要数量
    日付入力フィールド 画面構成部品>テキスト 依頼日
    コンボボックス 画面構成部品>コンボボックス 部品コード
    部品名
  3. 配置方法が「手動配置」となっているので、領域の左上またはクリックした場所にに重なってコンポーネントが追加されま す。
    コンポーネント上にマウスを置き、ポインターが十字矢印の形になったところで、ドラッグして移動させます。
  4. [ラベル]のテキストを変更します。
    右クリック>[属性情報設定...]で属性情報画面を表示し、「Text」欄を表を参考に変更します。
  5. ファイルを別名で保存しておきます。
    (ファイル名例:日付_STEP2.mzax)
新規コンポーネント一括追加
画面作成例
テーブルに行を追加するボタンを作成します。
次に、部品コードと部品名のコンボボックスに表示される要素を追加し、テーブルの列ヘッダを作成します。
最後に、アプリケーション終了時に全行を削除する処理を追加します。

ボタンの追加

コンポーネント追加
  1. アプリケーションビルダー編集画面で、前項で作成した保存ファイルをロードします。
  2. 以下のコンポーネントを追加し、コンポーネントキーを変更しま す。
  3. コンポーネント名 必要数 カテゴリー コンポーネントキー/テキスト
    ボタン 1 画面構成部品>ボタン 部品発注追加
    リスト格納変数 処理部品>変数
    サブルーチン 処理部品>サブルーチン 終了処理

画面編集 画面編集画面に入り、配置方法:「手動配置」でコンポーネントを配置します。
  1. 画面編集画面に入り、[ボタン]を配置します。
  2. ツールボタン[実行(設定可)]で実行しボタン名を『部品発注追加』に変更します。

コンボボックス選択リストの追加

画面編集
  1. ツールボタン[実行(設定可)]で実行し、フレーム画面を表示します。
  2. 部品コードの[コンボボックス]の上で右クリック>[要素]>[一括追加...]を選択します。
  3. 追加数入力画面が表示されます。
    「3」と入力し、「OK」ボタンを押します。
  4. 部品コード[コンボボックス]上で右クリック>[要素]>[編集...]を選択します。
  5. 要素の編集画面が表示されます。
    追加した3つの要素が表示されています。
  6. 各要素の上で右クリック>[テキスト...]を選択します。
  7. テキストの入力画面が表示されます。
    それぞれテキストを入力して(例:「A0001」、「A0002」、「A0003」)、「OK」ボタンを押します。
  8. 「適用」ボタンを押して要素の編集画面を閉じます。
  9. 2.~8.までの作業を部品名[コンボボックス]にも行い、3つの要素(例:「MZA0001」、「MZB0002」、 「MZC0003」)

テーブル列ヘッダーの追加

画面編集

参考:テーブル を使って みよう(L6)>列と行の作成
参考:テーブル を使って みよう(L6)>列属性の変更

  1. ツールボタン[実行(設定可)]で実行し、フレーム画面を表示します。
  2. [テーブル]に列を追加します。
    テーブルの上で右クリック>[ テーブル]>[列]>[追加]>[複数列]>[文字列]を選びます。
    列数を入力する窓が表示されます。
    追加列数を「5」と入力し、「適用」ボタンを押します。
    灰色の列ヘッダーが追加されて表示されます。
  3. [テーブル]の列名を設定します。
    各列の上で右クリックし、[列]>[列名]を選びます。
    [列名の入力]画面が表示されます。
    列名(部品コード、部品名、必要数量、担当者、依頼日)を入力し、「OK]ボタンを押します。
  4. 列型の変更をします。
    「必要数量」を入れる列の列型を変更します。
    列ヘッダーの上で右クリック>[列]>[列型]>[整数]を選択します。
    「依頼日」を入れる列の列型を変更します。
    列ヘッダーの上で右クリック>[列]>[列型]>[日付]を選択します。

画面作成例
接続処理の 作成
  1. データをリスト格納変数にまとめる
  2. [ボタン(部品発注追加)]を押したときに、[コンボボックス]やフィールドのデータを[リスト格納変数]に追加していきます。
    1. 【接続1-1][リスト格納変数]に「空のリストを設定」します。
      要素を追加する前に変数内にリストが無いとエラーが発生します。
    2. 【接続1-2][コンボボックス(部品コード)]から「現在選択されている項目ラベルを取得」し[リスト格納変数] に要素と して追加し ます。
    3. 【接続1-3][コンボボックス(部品名)]から「現在選択されている項目ラベルを取得」し[リスト格納変数]に要 素として 追 加しま す。
    4. 【接続1-4][数値入力フィールド(必要数量)]から「数値を取得」し[リスト格納変数]に要素として追加しま す。
    5. [接続1-5][テキストフィールド(担当者)]から「テキストを取得」し[リスト格納変数]に要素として追加しま す。
    6. [接続1-6][日付入力フィールド(依頼日)]から「日付を取得」し[リスト格納変数]に要素として追加します。
  3. テーブルに行として追加
    1. 【接続1-7】[テーブル]に行として[リスト格納変数]のリストを追加します。
      メソッド「addRawData(PFObjectList)」がリスト型のデータを行として追加するメソッドです。
[編集画面図1]

確認ツールボタン[実行]で実行し、「部品発注追加」ボタンを 押して、 [テーブル]に各フィールドのデータが行として追加されるのを確認します。

接続処理の作成
  1. 終了時の処理
  2. 終了時に全行を削除する処理を追加します。
    1. 【接続2-1][サブルーチン(終了処理)]に「テーブル」を接続します。
      メソッドに「全行を削除する()」を選択します。
    2. 【接続0-2-1]終了時に[サブルーチン]を呼び出します。
      [フレーム]のアクションイベントに[サブルーチン]を接続し、呼び出します。
[編集画面図2]

確認アプリケーションを実行して行を追加した後、[×]で画面 を閉じて 再度実行し、追加された行がクリアされていれば完了です。
ファイルを別名保存します。(ファイル名例:日付_STEP3.mzax)

起動時の連動処理作成

このステップでは、起動時に現在日時を取得し、部品マスターのデータを取得する処理を作成します。
これにより、日付入力フィールドには現在日時が表示され、コンボボックスには部品マスターのデータが表示されます。

起動時のDBとの連動処理を作成する

コンポーネント追加
  1. アプリケーションビルダー編集画面で、前項で作成した保存ファイルをロードします。
  2. 以下のコンポーネントを追加し、コンポーネントキーを変更しま す。
  3. コンポーネント名 必要数 カテゴリー コンポーネントキー
    サブルーチン 処理部品>サブルーチン 開始処理
    テーブル格納変数

    システム情報

接続処理の作成
    ※以下の【接続3-1】~【接続3-4】の処理は、[ボタン(SQL実行)]に残っている接続先処理をコピーし、 変更して利用することもで きます。
  1. データベースに接続し、テーブルデータを取得する
  2. [サブルーチン(開始処理)]のアクションイベントの接続先に[DB接続部]複合コンポーネントを設定し、データベースに接続します。
    1. 【接続3-1】データベースに接続します。
    2. 【接続3-2】部品テーブルから部品コードと部品名のテーブルデータを取得します。
      SQL文「SELECT buhinid, buhinmei FROM buhin」を引数に設定してSQL文を実行します。
    3. 【接続3-3】データベースとの接続を切断します。
  3. 結果をテーブルに設定する
    1. 【接続3-4】検索結果を取得し、[テーブル格納変数]に設定します。
      Select文の実行結果は、取得方法「メソッド処理結果」で戻り値として取得できます。
  4. 現在日時を表示する
    1. 【接続3-5】[日付入力フィールド(依頼日)]を接続先とします。
      [システム情報]から現在時刻を取得し、日付を設定します。
  5. コンボボックスの項目を設定する
  6. [テーブル格納変数]にデータが設定されたのをきっかけとして、以下の処理を設定します。
    1. 【接続4-1】[テーブル格納変数]から列データを取得します。
      [テーブル格納変数]のデータ 設定イベントを接続元とし、[テーブル格納変数]から第0列目の列データ(部品コード)列を取得します。
    2. 【接続4-2】[コンボボックス(部品コード)]の全項目のラベル名を設定します。
      【接続4-1】で取得した列データを設定します。
    3. 【接続4-3】[テーブル格納変数]から列データを取得します。
      [テーブル格納変数]のデータ 設定イベントを接続元とし、[テーブル格納変数]から第1列目の列データ(部品名)列を取得します。
    4. 【接続4-4】[コンボボックス(部品名)]の全項目のラベル名を設定します。
      【接続4-3】で取得した列データを設定します。
      ※引数設定時に取得方法「メソッド処理結果」を選び、メソッド/値欄をクリックして表示される「メソッド処理結果選択」画面の2 番目の候 補を選択します。
  7. サブルーチンを呼び出す
    1. 【接続0-1-1】アプリケーション開始時に[サブルーチン(開始処理)]を呼び出します。

    [編集画面図3]

確認アプリケーションを実行して、コンボボックスに部品マスターの情報 が設定さ れ、日付入力フィールドに現在の日付が設定されることを確認します。

部品マスター内の部品コードと部品名は、一対一で対応しています。
製品コードのコンボボックスを選択したら部品名もそれに応じて変わり、製品名を選択したら部品コードも変わるよう、連動のための処理 を追加し ます。

コンボボックスの連動処理

接続処理の設定
  1. コンボボックスの連動処理
  2. 一対一対応する部品コードと部品名の[コンボボックス]の項目位置が同位置であることを利用して、処理を設定します。
    1. 【接続5-1】[コンボボックス(部品コード)]のデータ選択イベントに[コンボボックス(部品名)]を接続します。
      [コンボボックス(部品コード)]の項目の選択位置を取得し、同位置の[コンボボックス(部品名)]の項目を選択します。
    2. 【接続6-1】[コンボボックス(部品名)]のデータ選択イベントに[コンボボックス(部品コード)]を接続します。
      [コンボボックス(部品名)]の項目の選択位置を取得し、同位置の[コンボボックス(部品コード)]の項目を選択します。

[編集画面図4]

確認アプリケーションを実行して、部品コードと部品名が連動するこ とを確認 します。
ファイルを別名保存します。(ファイル名例:日付_STEP4.mzax)

データベースへ行データを追加する

メソッドの公開
  1. メソッドを公開する (メソッド公開方法:複合コンポ ーネント>メソッドの公開)
    1. アプリケーションビルダー編集画面で、前項で保存したアプリケーションファイルをロードします。
    2. 複合コンポーネント(DB接続)内に入り、以下のメソッドを公開します。

    3. コンポーネント メソッド 変更メソッド名
      データベースアクセス getColumnNameList(String,String,String,String) データベースのテーブルの列名をリスト形式で取得する
      データベースアクセス insertRowDirectlyByQuery(String,PFObjectTable) テーブルデータを一括でデータベーステーブルに追加する
    4. メソッド公開後、上位階層に戻ります。
  2. メソッド引数の詳細
    1. getColumnNameList(String,String,String,String) のパラメータは以下の通りです。
      引数0:database データベース名(指定しない場合はNULL)
      引数1:schemaPattern スキーマ名パターン(スキーマ名、指定しない場合はNULL)
      引数2:tableNamePattern テーブル名パターン(テーブル名、0文字以上任意文字列:”%”、任意の1 文 字:"_")
      引数3:columnNamePattern 列名パターン(テーブル名、0文字以上任意文字列:”%”、任意の1文 字:"_")


データ追加処理の設定

コ ンポーネント追加
  1. ビルダ―編集画面で以下のコンポーネントを追加し、テキスト、コンポーネントキーを変更しま す。
  2. コンポーネント名 必要数 カテゴリー コンポーネントキー/テキスト
    ボタン 画面構成部品>ボタン 発注確定
    リスト格納変数 処理部品>変数 追加データ
    テーブル格納変数 処理部品>変数
    列名リスト
接続処理設定
  1. 考え方
  2. データベースアクセスのメソッド 「insertRowDirectlyByQuery(String,PFObjectTable)」または 「insertrRowDirectly(String,PFObjectTable)」でデータベースにテーブルデータを追加するには、列名が 追加対象のテーブルと一致している必要があります。
    また、全部の列のデータを追加する必要はなく、一部の列だけでも追加可能です。
    1. データベースの「irai」テーブルに「buhincode」、「suryo」、「tantosha」、 「iraidate」列の データを追加します。
      「irai_id」は追加しません。
      「部品名」の列も「irai」テーブルにないので追加しません。
    2. DBテーブルの列名
      irai_id buhincode
      suryo tantosha iraidate
      DBでの列位置 0 1
      2 3
      4
      MZ上のテーブル列名
      部品コード 部 品名
      数量 担当者
      依頼日
      MZテーブルでの列位置
      0 1
      2 3
      4
  3. データベースに接続
  4. [ボタン(発注確定)]のアクションイベントを接続元として以下の処理を設定します。
    1. 【接続7-1】[複合コンポーネント(DB接続)]を接続して、データベースに接続します。
  5. 追加するテーブルデータの準備
    1. 【接続7-2】[テーブル格納変数(追加データ)]に[テーブル]から取得したデータを設定します。
    2. 【接続7-3】[テーブル格納変数(追加データ)]の第1列(部品名列)を削除します。
  6. iraiテーブルの列名の取得、テーブルへの設定
    1. 【接続7-4】[複合コンポーネント(DB接続)]を接続先とし、メソッド「データベースのテーブルの列名をリスト形式で取得する (String,String,String,String)」を選択します。
      引数2のみテーブル名として「irai」を設定し、他の引 数はNULLのままとします。
    2. 【接続7-5】【接続7-4】で取得した列名データを[リスト格納変数(列名リスト)]に格納します。
    3. 【接続7-6】リストの第0番目の要素(irai_id)を削除します。
    4. 【接続7-7】変数内の列名リストを[テーブル格納変数]に設定します。
    5. 【接続7-8】[複合コンポーネント(DB接続)]で「テーブルデータを一括でデータベーステーブルに追加する (String,PFObjectTable)」を実行します。
      引数0にテーブル名「irai」、引数1に[テーブル格納変数]内のテーブルデータを指定します。
  7. データベースを切断
    1. 【接続7-9】データベースとの接続を切断します。

    [編集画面図5]

画面編集
  1. 「発注確定」ボタンをフレーム画面上に配置します。
確認
  1. ツールボタン[実行]を押し、「部品発注追加」ボタンで[テーブル]にデータ行を追加します。
    「発注確定」ボタンを押し、エラーが発生しないか確認します。
  2. ※ここで実行しているような、データベースに対する追加や更新の処理では、直接データベースに追加したデータを確認することはできません。
    STEP 1で作成したアプリケーション(step1.mzax)を用いると、iraiテーブルにデータが追加されているかどうか確認できます。

  3. 完成したアプリケーションを別名を付けて保存します。
    (ファイル名例:日付_STEP4.mzax)
画面配置例
実行画面例

テーブル選択行を削除する

このステップでは、テーブル選択行を削除する処理を追加して、発注候補を削除するボタンを作成します。
さらに、テーブルが選択されているときだけボタンが有効になるようにします。

コンポーネント追加
  1. アプリケーションビルダー編集画面で、前項で保存したアプリケーションファイルをロードします。
  2. 以下のコンポーネントを追加し、テキストを変更しま す。
  3. コンポーネント名 必要数 カテゴリー コンポーネントキー/テキスト
    ボタン 画面構成部品>ボタン 発注候補削除
接続処理の設定
  1. 特定行削除処理
    1. 【接続8-1】[ボタン(発注候補削除)]のアクションイベントに[テーブル]を接続します。
      選択されている行を削除する処理を設定します。
  2. ボタン押下可否設定
    1. 【接続8-2】[ボタン(発注候補削除)]のアクションイベントに[ボタン(発注候補削除)]を接続します。
      ボタンを押すことができるかどうか設定をします。
      行削除後は行が選択されていない状態になるので、選択行削除の処理が行われることを防ぐため[ボタン(発注候補削除)] の押下可 否を「false」に設定します。
    2. 【接続9-1】テーブル行が選択されたとき、[ボタン(発注候補削除)]の押下可否を「true」 に設定し、ボタンが押せる ようにします。
[編集画面図6]

画面編集
  1. 画面編集画面で発注候補削除ボタンをフレーム画面上に配置します。
  2. ツールボタン[実行(設定可)]ボタンで実行し、[テーブル]の行の選択モードを変更します。
    テーブル上で右クリックし、[選択方法]>[行選択]を選びます。
    クリックしたとき、行全体が選択されるようになります。
確認
  1. 実行して、「発注候補削除」ボタンを押して選択された行が削除され るのを確認します。
  2. 行が選択されていないときは、「発注候補削除」ボタンが押せないようになっていることを確認します。
  3. 変更したアプリケーションファイルを別名で保存します。
    (ファイル名例:日付_STEP4.mzax)
画面配置例
実行画面例

終了時にデータをクリアする

接続処理設 定
  1. アプリケーションビルダー編集画面で、前項で保存したファイルをロードします。
  2. 以下の処理を[サブルーチン(終了処理)]に接続します。
  3. テキストフィールドのクリア
    1. 【接続2-2】[テキストフィールド(担当者)]に空文字列を設定します。
  4. 数理入力フィールドの初期化
    1. 【接続2-3】[数値入力フィールド(必要数量)]に「0」を設定します。
  5. 日付入力フィールドのクリア
    1. 【接続2-4】[日付入力フィールド(依頼日)]にNULL値を設定します。
  6. コンボボックスの全要素の削除
    1. 【接続2-5】[コンボボックス(部品コード)]の全要素をメソッド「removeAllItems()」で削除します。
    2. 【接続2-6】[コンボボックス(部品名)]の全要素をメソッド「removeAllItems()」で削除しま す。
  7. ボタンの押下可否設定
    1. 【接続2-7】[ボタン(発注候補削除)]の押下可否を「false」 に設定します。

    [編集画面図7]

確認
  1. ツールボタン[実行]を押した後、画面の「✖」印を押して終了します。
    再度実行したとき、フィールドのデータがクリアされているのを確認します。
  2. 完成したアプリケーションを別名を付けて保存します。
    (ファイル名例:日付_STEP7.mzax)