イントロダクション:IT経営

実はかなり低い IT 運用の実態

MZプラットフォームを導入、社内システム構築を開始して(2008年)もう13年が経過した。

工場見学や意見交換会はとても高評価で、「ぜひ導入したい」、「すぐ検討する」と幕を下ろすが、その後実際に運用した会社は1割も無い。
経産局や産総研から話を伺うがやはり IT 導入はなかなか進んでいないと聞く。
IoT ・ AI・DX と世間を賑わせているが裏腹に IT 化もまだというのが実態である。

なんでだろう・・・?

中小機構の方から興味深い資料を頂いたので紹介する。(図1)


平成27年度中小企業の成長と投資行動に関する調査報告書 株式会社帝国データバンクより

60%強の企業が IT 化したいと思っているが実際の導入はない。理由として
・「人材不足」
・「導入効果が不明」
・「導入コスト高」とある。
経験的に、導入が進まない企業は紙ベースでもエクセル管理でも社内を運用する為のフローやルールが無い所が非常に多い。
1:物の流れや人の動きをある程度把握
2:必要な情報を整理
3:データ化して分析・活用
これがIT化の流れ。
そもそも管理手法が無い場合はデータ化する元(アイデアや基礎)がないので、立上げを一層難しくしている。
「何の為にIT導入するのか?」これが無いと話が始まらない。 

『旅行計画と同じ』

まず「何処に何しに行く」を決める
⇒予算は?日程は?と順番に話は決まる。
『旅行に行けば良い事があるらしい、だから行きたい』と言われてもやりようがない。
あなたが旅行代理店の窓口ならばどう思うだろうか?

さて、本題に戻ろう、「IT導入」は
○課題の解決手段
×目的ではない。
このサイトではMZを使ったIT化の手順や考え方を紹介する。
IT導入に困っている方の一助になれば嬉しく思う。

MZの概要およびメリット

産業技術総合研究所の無償ソフトウェア。(中小企業支援を目的に製作)
・200点以上あるコンポーネントというソフトウェアブロックを組合わせてシステムを構築。
・一定スキルは必要だが、ある程度修得すれば、自社でソフト開発が可能。
・運用を開始して管理範囲の拡大や縮小、システムを追加して行くなど、自由度が高い。
・簡素なシステムから開始して、社内で育て上げて行く。
一般に販売されている業務パッケージソフトウェアは300万円~500万円であり、零細中小企業では投資が難しい。
IT ベンダー委託の構築が不可であれば、「自分達で時間を割いて勉強し低コストで IT 化しよう」というコンセプトのMZは中小企業向け。

視覚的にプログラムが可能、処理の流れは左が起点で右へ移り下方へ処理が実施されて行くという仕組み

(さらに…)


第1回:MZ プラットフォームによるシステムの簡単な構築方法

シリーズ概要

中小企業のIT導入率は非常に低い、IT 化によって「必要な情報を整理・データ化して分析・活用する」ことができるようになり、社内の SWOT 分析が容易になる。
導入当初は拙い状況からスタートして、日を追う毎に社内で議論を重ねて洗練され、自社にフィットしたシステムが生まれる。
そして単純な IT システムから社内運用の全体的な仕組みが整っていく、これが大きなメリットであり、本シリーズで伝えたい『核』。

このブログは「産業技術総合研究所」開発の無償のソフトウェア「MZ プラットフォーム」の使い方、考え方を紹介。
前回は我々の取組みを紹介した、現場で必要情報を取得し、作業のボトルネックを改善したり、売上と支払のバランスを見て経営判断に活かしている。
今回は IT 運用に入る前の準備をお伝えする。

IT経営やってみよう!

 社内をIT 化するには基本として・・・
「アナログで物の流れや人の動きを把握、必要な情報を整理・データ化して分析・活用する。」である。
 失敗しない為の留意点として3つ
・半年~2年程は立上げに時間が掛かる事
・専任者を1名選定する事
・何の為にIT化するか決める事


業務フローを考えよう

IT 化する前に先ずは社内の業務を把握する必要がある。
業務把握してない会社があるだろうか?と思われるかもしれないが、実は結構ある。
製造業であれば、だいたい受注して出荷までを把握しよう。

  1. 受注:受注したら社内で何をしているか?エクセルや帳票で管理している項目は何かを具体的に上げる。
    (社内管理No.・品名・受注金・客先・納期)など把握する。現場へ指示書を出すなど、受注業務の動きもチェック
  2. 購買:購入する場合の手順はあるか?また同じく管理項目を考える
    (注文No.・品名・商品コード・手配先発注者・発注日・入荷日)などが想定される。
    発注形態は紙で FAX かデータから web 発注しているなど手配から入荷までの処理を把握する
    (外注業務もほぼ同じだが、注文No.・品名・外注内容手配先発注者・発注日・入荷日など想定)
  3. 現場:指示書があるか?作業日報をつけているならば、その項目を考える
    (作業指示No.・作業者名数量工程)などがあるリピート生産と一品生産の現場ではやや違いがあるが、失敗した場合や完了した場合どうしているかも確認する。
  4. 検査:出荷前の検品。検査記録の項目をチェック
    (社内管理No.・品名・作業者・日付・品質の可否)など。
  5. 出荷:出荷の際の流れを把握。指示書が事務所へ戻る、伝票の発行など。
    (社内管理No.・日付・担当者)など

太字で記載している項目はマスターを用意する事を推奨している。
 後の回でまた説明するが、登場頻度の高いものはマスター管理をした方が後々システムを組みやすい。社員や顧客、品目などがこれに当たる。

これらをフローチャートに記入すると図1の様になる。


図1 フローチャート

この様に会社の流れを記入していく、
受注から出荷まで何を管理している?
どんな指示書や帳票、注文書を使っている?
現場では何を入力もしくは記載している?

完璧である必要は無い、しかし広く社内を網羅しようと努める事が大事。
この作業は社長(もしくは次期社長)がやらなければならない。
この作業は IT 化する、しない以前の話であり、社内業務を整理出来る良い機会でもある。

また、IT 化する際の決断を下さないといけないが、トップが何をどうIT化するのか理解する事が必要。(導入の成否の分かれ目)
上記のフローチャートは説明用に製作しているだけであって、社内用は手書きでも付箋を貼りつけて作成しても構わない。

ゴールを決める

何事もそうであるだろうが、何をしたいかをまず決める事。
つまり「ゴール」。
フローチャートを見て課題のある工程から初めても良いし、受注業務から出荷までを管理項目に挙げて全社的に運営しても良い。

MZ の良さはシステムの修正・改善や撤去・刷新など簡単に出来る事にある。
先ずは、自社に合った簡素なシステム構築を検討。
システムを創る人、使う人、合否判定をするトップまで、全員がレベル1からスタートするのである。

大きな理想は素晴らしいが、初回から壮大過ぎては達成しない。
小さく作って運用、小さく作って運用これの繰り返しで全く問題ない。
やがて変更項目が出てきて改修して、また運用とサイクルを回す。2年も経てば立派な社内システムが出来上がっている。

中小企業にとって小さく作っていくメリットは大きい。
スタート時に盲点と成りがちなのが、「誰かが入力しないと動かない」という点。
張り切って欲張るのも良いが、入力してくれる人が面倒と思えば、苦労して作ったシステムも無駄となる。

「昔からせっせと書類をファイリングして棚にしまっているが何年も誰も見た事がない…」というファイルはないだろうか?
何の為にやるのか?
本質は「データ収集して活用する事」である。
不要なデータは最初から取らない事
重複するが MZ は改造・撤去が簡単である、良ければ続投、不要なら止めれば良いのである。

(さらに…)


第2回:システム環境を整えよう1

それでは実際にインストールしてみよう

第2回は実際にMZプラットフォームをインストールする手順を紹介。
第3回以降はデモやサンプルの解説を行うので自身のPCにセットアップがないと進められない。
なるべく簡素に記載してるが意味不明であれば「問い合わせフォーム」へどうぞ。


MZをインストール

  1. ssl.monozukuri.org/mzplatform へアクセスし最上面のダウンロードをクリック
  2. ログインを実施し最新の64bit 版のインストーラーをクリック
    【会員登録が未実施であれば新規会員登録(無料)を申請】
    ※国の研究所ですからヘンな事は起こりません※
  3. ダウンロードファイルから Zip を解凍。解凍が済んだら「set up.exe」を起動
  4. ウィザードが立ち上がるので NEXT を押す
  5. インストールの場所を聞くのでそのまま変更せず、NEXT
  6. Set Type を聞いてくるので「Typical」を選択し、NEXT
  7. 選択の確認をしてくるので、そのまま NEXT。インストールが始まる

※2021年1月注記!
 将来的にデータベースとエクセルとの連携を説明するが、
 手元のOfficeが32ビットの場合MZも32ビットを選択しないとリンク出来ない

続いてライセンスファイルの申請

  1. C:\MZPlatform\3.6_64 ファイルの中に「PFBuilder.exe」があるので起動する
  2. 初期起動時はライセンス申請が必要でライセンス申請ファイル生成を押す
  3. 名前・社名・メールアドレスを記入し「ライセンス申請ファイル生成」をクリック
  4. C:\MZPlatform\3.6_64\etc フォルダの中に「
    PFLicenseKey.mzk」ファイルがあるので「mzlicense-ml@aist.go.jp」メールで添付して送る。
  5. しばらくして、「PFLicenseKey_.mzl」というファイルが返信されるので再度「PFBuilder.exe」を起動。
    今度はライセンスファイル取込で戻ってきたファイルを指定して完了

次は JDBC ドライバの設定

  1. www.mysql.com/jp へアクセスしダウンロード⇒すぐ下にあるCommunityをクリック
  2. 左側の下方にある「MySQL Connectors」⇒「Connector/J」を選択クリック
  3. Connector/J 5.1.47Platform Independent を選択し Zip ファイルをダウンロード
  4. アカウントを聞かれるので無視したい方は「No thanks, just start my download.」をクリック
  5. Zip ファイルを解凍して「mysql-connector-java-5.1.47-bin.jar」ファイルを
    C:\MZPlatform\Java\jre7_mz3.6_64\lib\ext の直下へ配置
    C:\MZPlatform\Java\jre8_mz3.6_64\lib\ext の直下へ配置

MZのファイル設定

  1. Cの直下にファイル名「MZ」作成
  2. MZフォルダの中にファイル名「AP_DATA_COMB」とファイル名「bin」生成
  3. C:\MZPlatform\3.6_64\etc にある「Platform.ini」を開き
    CombinativeComponentsFolder=AP_DATA_COMB
    CombinativeComponentsFolder=c:\\MZ\\AP_DATA_COMB へ変更する

これで MZプラットフォーム環境設定は全て完了。
このソフトウェアは画面を構成してユーザにインターフェースとして入出力させるのに用いる。
シンプルな組合せで画面を作成可能で、どの様に構築したら良いかを第3回以降は解説する。


第3回:MZプラットフォームをさわってみよう!

MZ プラットフォームをさわってみよう

C:\MZPlatform\3.6_64\PFBuilder.exe」を起動しよう。
 (タスクバーかデスクトップにショートカットを作る事をお勧め)
起動すると黄色の背景に左上に□(赤)のアプリケーションという状態
黄色背景で右クリックを押すとコンポーネント追加 ⇒ 画面構成部品 ⇒ ウィンドウ ⇒ フレームと選択が出来る(図1参照)。

図1 MZ ビルダー初期画面

  • ① まずはこれを選択する。すると左側に□(緑)フレームが出る。
  • ② □(赤)アプリケーションにカーソルを移動し右クリック、イベント処理追加⇒アプリケーション開始イベントを選択
  • ③ □(赤)アプリケーションから線と○(赤)が出る
  • ④ ○(赤)にカーソルを合わせ右クリック、起動メソッド追加(もしくはダブルクリック)すると更に線がつながり空欄の箱が出る
  • ⑤ 空欄箱にカーソルを合わせ右クリック(もしくはダブルクリック)、接続コンポーネント選択で①で出した□(緑)フレームを選択する
  • ⑥ ⑤で接続した□(緑)フレームにカーソルを合わせ起動メソッド設定(もしくはダブルクリック)
  • ⑦ 起動メソッド情報フレームが起動するので、メソッド:「フレームを表示する」を設定する(コンボボックスから選択)⇒了解ボタン
  • ⑧ 次は左側に□(緑)フレームに対して②と同様の処理、右クリック・起動メソッド・アクションイベントを選択
  • ⑨ ④同様、○(赤)にカーソル、起動メソッド追加で右側へ空欄箱をつなげる。
  • ⑩ ⑤同様、空欄にてコンポーネント選択にて□(赤)アプリケーションを選択⇒⑥同様、起動メソッド設定「アプリケーションを終了する」

ここまで実施すると図2の様になり実行を押すと、画面左上に青枠の様なフレームが表示される。

MZ にてシステムを作成する際に必ず実施する初期画面設定は以上となる。
基本的に目的のコンポーネントを追加して線をつなげてシステムを構築する、これがMZの使い方。

画面構成部品を使って MZ の概要を体感しよう

先の設定だけでは何がなんだか不明と思うので構成部品を追加して、MZの作り方や雰囲気を体感してみよう。

    • ⑪ さきほどフレームを出した様に黄色の所で右クリック、コンポーネント追加 ⇒ 画面構成部品 ⇒ ボタン ⇒ ボタン
    • ⑫ 左側に現れたボタンを構成部品として画面に貼り付けます。図2のB画面編集を押す
    • ⑬ 黄色の背景で右クリック ⇒ コンポーネント追加 ⇒ ボタン(図3参照)画面が貼り付けられたら「閉じる」ボタン押す
    • ⑭ 実行ボタンを押すと何も無かったフレームにボタンが現れる。試しに押しても何も起きない
  • ⑮ 先述と同じ要領で、ボタンからイベント処理追加 ⇒ アクションイベント、右側にフレームを連結し、起動メソッド設定で「フレームを閉じる」を選択する。
  • ⑯ ⑭と同じ手順で実行からボタンを押すと「フレームが閉じる」というプログラムが成立する。

ここまでが C:\MZPlatform\3.6_64\AP_DATA\Tutorial\ Lesson04(ウィンドウ)-1.mzaxとLesson04(ウィンドウ)-2.mzax の解説となる。

レッスンファイルのダウンロード(チュートリアルファイルと同じです)

まとめ

チュートリアルの中にはサンプル集やレッスンなど色々とプリインストールされている。
いくつかのコンポーネントとメソッドの組合せを理解する事が出来るので色々と試しながら使い方を体験できる。
画面や帳票の編集方法や良く使うコンポーネントに慣れる事が重要、サンプル集を起動してみて、雰囲気を感じ取って欲しい。
用意されたコンポーネントやメソッドは多数あるが、全ての種類を覚える必要は無い。


第4回:MZの基礎知識を知っておこう!

MZの基本

MZプラットフォームはコンポーネントAから開始条件を設定してコンポーネントBに何かを実施させるという流れでシステム構築する(図1)。
前回の説明にて、チュートリアル実践してみれば用意された箱を組合せれば、画面が出来るというのが理解できる。


 図1 MZシステムイメージ

※MZで最低限必要な知識は4つ※

・コンポーネント
 構成部品や演算部品など様々用意されており200種以上存在。MZはコンポーネントの組合せで成立する為、極めて重要。

・イベント
 設置コンポーネントがどの条件で発動するかを選択(何をしたらスタートするか)。
 ユーザがエンターキーを押した時、処理が完了した時、マウスが横切ったらスタートする等、20種類以上ある。

・メソッド
 イベントから接続したコンポーネントに何をするのかを決定する(訳すと「方法・手段」)。
 数え切れないほど種類があるが全て覚える必要はない。

・取得方法
 メソッドで設定した方法に設定情報がある場合、どうやってデータを取るか指定する。
 どのコンポーネントでも選択肢は一緒で全6種類。

「うーん、そんなに色々あるのか・・」とお悩みの方でも大丈夫。
決まった組合せのパターンがある、それを覚えれば良いのでマスターしなくてOK。
今回は各々の役割を解説、それぞれ内容が多い為、分割して掲載。
今後データベースに関しての記事が多くなる為、個別に行き詰まった際に戻ってこられる様な形式を取っている。

 


第4回–1 コンポーネント

コンポーネント

ソフトウェアやアプリケーションを構築する部品 大別すると4つ

赤コンポーネント


ひとつのアプリに必ず一つしか存在しない、大元の赤コンポーネント。特に覚える必要はない(覚える事がない)

ウィンドウコンポーネント(緑コンポーネント)


「フレーム」と「ダイアログ」の2つ、どちらも用途に大差はない。
フレーム:ウィンドウサイズ変更する拡大・縮小機能がある。
ダイアログ:拡大・縮小が出来ない、モーダル(画面がトップに現れ、他が触れなくなる)が初期値で有効。

画面構成部品(青コンポーネント)

種類がとても多い、ユーザに向けて表示している情報入力させたり、データを表示しているのがこの青いコンポーネント


テキスト:①テキストフィールド
 全体的に非常によく使う。自由入力をさせる時に用いる、日付・品名・金額・特記事項など、ほぼこれを使って入力、非常に万能である。
 それ故にユーザが何を入力しても受理されてしまう事と2行目3行目といった改行入力は出来ない。

 ※類似で数値入力フィールド(入力を数値に限定)、日付入力フィールド(日付に限定)、パスワード入力フィールド(入力した値が表示されない、暗号入力に用いる)、マスク入力フィールド(入力出来る文字種を限定出来る。)


ボタン:②ボタン
 非常によく使う。いわゆるスイッチ。何かを始めるきっかけ。
ボタン:③トグルボタン
 基本は②ボタンと同じ、違いは押すと押しっぱなしになる。on状態かoff状態か認識しやすい。


テーブル:④テーブル
 非常によく使う。データベースの情報はテーブル状に保存される為、取得した情報をそのまま表示する事が多い。
 演算機能はないが一見エクセルの様なイメージ、テーブルデータをグラフ表示に転用可能な為、これを覚えればグラフも使える。
 グラフは「C:\MZPlatform\3.6\AP_DATA\Tutorial¥Lesson11(ガントチャート).mzax」
 もしくは「C:\MZPlatform\3.6\AP_DATA\Sample\グラフ化.mzax」が参考になる。


コンボボックス:⑤コンボボックスコンポーネント
 非常によく使う、リスト状のデータから(複数選択肢)から選ばせる時に用いる、例えば担当者とか受注先とかの選択時に便利である。
 ①で紹介したテキストフィールド系はユーザが自由記載が出来る為、ミスも発生するが、これはその心配が要らない。


チェックボックス:⑥チェックボックスコンポーネント
 ON・OFFで切替えが可能で、条件分岐を用いる時に使える。
 例えば受注リストを表示するシーンで過去データも検索するかどうかなど(イメージ:☑過去データ)。使用頻度は低い。


チェックボックス:⑦ラジオボタングループ
 まあまあ使う、ユーザ側に限定的選択の時に用いる、3~5種類程度の選択肢の時便利。
 例えば部署・商品区分・地域区分などで活用、コンボボックスに近いがもっと限定的に選択させる際に使用。


テキスト:⑧数値入力カウンタ
 ユーザに決まった数量の中で選択時に活用、上限・下限値も設定可。
 矢印で数値を増減出来るし、ダイレクト入力も可能。


テキスト:⑨テキストエリア
 自由記載が可能で①テキストフィールドとほぼ同じ。改行が可能なので特記事項や追記の所に用いる事が多い。


テキスト:ラベル(黄枠部)
 非常によく使う、図の通りだが説明や解説をユーザにする際に用いる。
 (画面上にテキストフィールドやボタンだけ配置してればユーザ側は意味不明になる為)。
 ※裏技的に背景色を変えたい時に予め、ラベルのBackgroundとForegroundの色を決めておいて、イベント起点で指定色を採用する方法もある。
  MZで色を選定するのはちょっと大変なのでこれは便利。

レッスンファイルのダウンロード

処理部品コンポーネント(ピンクコンポーネント)

実際には画面に登場する事はないが、裏での計算や内部処理を実施して、青コンポーネントにデータを渡す、裏方的存在がピンクコンポーネント


条件制御:等価演算(=)
 左オペランドと右オペランドが同じ値かどうかをみて、その後の条件分岐を行う時に用いる。
 等価演算(≠)はその逆で同じでは無いかどうかをみている。(=)の方を覚えておけば良いのでこっち(≠)は出番なし。

条件制御:等価演算(≧、>、≦、<)
 これは(=)の説明とほぼ同じ、数学的な意味合いが変わるだけなので、より大きい場合やより小さい場合など必要に応じて使い分けたら良い。

※次の論理演算は急にエンジニアっぽい雰囲気が出てくる。エクセルの関数だったり、PLC制御にも出てくるが、「うーん、頭が痛くなってきた・・・。」という方はこの辺は蓋をしても構わない。先に説明した演算処理がAとBの2つあったとして、双方(3つ以上も可)の結果に基づき条件分岐をする演算処理。あまり使わないので簡素に説明する。一覧参照(図2)


条件制御:
 ・論理積演算(AND)双方の結果が両方「true」の場合に「true」を返す
 ・論理和演算(OR)。どっちか一方が「true」の場合に「true」を返す
 ・排他的論理和演算(XOR)。双方が「true」もしくは「false」の場合に「false」を返し、双方が異なっていれば「true」を返す
 ・否定演算(NOT)。「true」ならば「false」、「false」ならば「true」を返す
 ・否定論理積演算(NAND)。演算処理が双方「true」ならば「false」、他は「true」を返す。
 ・否定論理和演算(NOR)。演算処理が双方「false」ならば「true」、他は「false」を返す。
 ・否定排他的論理和演算(NXOR)。演算処理が双方「true」もしくは「false」の場合に「true」を返し、双方が異なっていれば「false」を返す


 図2 論理演算のリスト (「true」が戻ってくるパターン)


条件制御:NULL判定
 これは非常に良く使う。指定した値がNULL(空っぽ)かどうかを判断して条件分岐を行う。
 例:ユーザが商品コードをデータベースに検索かけて何も返って来ない場合に用いたりする。
 ※ちょっと難しい話になるが「NULL」と「空文字」はシステム上意味が違うので気をつけて欲しい。NULLというのは本当に何も無い状態であり、空文字というのは「0字の文字列」が存在しているという認識になるので演算が上手くいかない時はこのケースがよくある。


条件制御:繰り返し制御(FOR、WHILE)
 よく使う、一言で「ループ処理」。
 例:受注リストが20行あって、本日納期の案件があるか無いかを探したりする時や発注リストがあって、手配品10個が入荷し納品日登録を一括処理する時に用いる。テーブルやリストに複数情報があって、そこに特定情報を引き出したい時やワンクリックで同じ内容を登録したい場合に便利。


演算制御:加算(+)
 説明不要かも知れないが、足し算。右オペランドと左オペランドに足したい数値を入れて、結果を求める事が出来る。
 演算制御コンポーネントには他に(-)、(×)、(÷)、(%)が用意されている。


ユーティリティー:タイマー
 「※ms(ミリ秒)」を設定して、その時間が来たらイベントが発生する。
 使い方としては毎秒イベントが発生する様にして現在時刻を表示したり、1時間毎に自動でデータ更新する時に用いる。
 ※「ms(ミリ秒)」は1/1,000秒なので1秒は1,000ms、1時間なら3,600,000ms。


ユーティリティー:カレンダー
 一般に毎日見ている様な「こよみ」イメージよりは、日付や時刻に関してデータを取得したり、表示方法を選択するコンポーネント。
 システム上、2019年4月1日12時34分56秒は「Mon Apr 01 12:34:56 JST 2019」と表示され、ユーザに馴染みがない。
 仮に「yyyy/MM/dd HH:mm:ss」と指定すれば「2019/04/01 12:34:56」と表示する事が出来る様になる。
 月日だけ時間だけなど表示方法は色々出来るので状況に応じて使い分ける。


ユーティリティー:音声再生
 任意のタイミングで音を鳴らす事が出来るコンポーネント。
 入力作業が上手くいった時に「ピンポ~ン」とかダメな場合「ブッブー」とか出来る。
 ユーザの入力認識を上げる意味で使えるが、工場ではうるさい事が多いので出番は乏しいかも知れない。
 ウィンドウズであればC:\Windows\mediaに音声ファイルが入っているので任意ファイルを指定すれば再生する。

※格納変数は種類が多くとてもよく使う。「変数?」と思われる方もおられるだろう・・、この気持ちは良く分かる。
数学的な「x」とか「y」に近いイメージ。「○○さん、おはようございます。」の「○○」も変数。
これら「格納変数」の役割は「データを保管する一時置場」である。
イメージとしては決まった情報を保存するというよりは毎回異なった情報を預けて入れる箱に近い。


変数:文字列格納変数
 よく使うパターンは、宣言文を先に記載して(例:x+y=12と宣言する)、次のプログラムでxやyを置換してxを10、yを2と変換するといった使い方。
 類似で数値用の「整数(Integer)格納変数」や日付用の「日付格納変数」というのもあるが、この「文字列格納変数」で代用が可能である。


変数:テーブル格納変数
 データベースとの連携時に必須であり、SQL実行後に取得したデータをテーブル格納変数に一時的に保管後、あおコンポーネントのテーブルに情報を表示するという流れになる。
 データベースから直接テーブル(あお)にはデータを保存する事は出来ない。
 因みに「リスト格納変数」は1行のデータを保管する際に用いる。


サブルーチンコンポーネント
 使い方は決まった処理を1回設定してそれをサブルーチン経由で設定すれば、いつでもワンタッチで同じ処理を起動出来る。
 他の使い方としては処理を見やすくする為に用いて、画面を整理する時にも使える。
ファンクションコンポーネント
 「サブルーチン」と類似しているが、異なる点は「引数」を使える変数に対して※引数を与えたい場合に使う。
 さらに階層を分ける時に用いる複合コンポーネント(緑)を使う場合にファンクションが階層を行き来する時の橋渡しとなる。
 ※引数は変数に渡す具体的な固定情報。「○○さん、おはようございます。」の○○に入れる「田中・山田・佐藤」のイメージ


データベース:データベースアクセス
 非常に良く使う、MZプラットフォームはユーザがデータを登録・参照して、情報を得る為のインターフェース。
 データベース活用が無いとただの画面構成ソフトになってしまう。
 あとの回で説明するがデータベースとMZの連携は多岐に亘る、データベースへ情報を入・出力の際に必ず出番があるコンポーネント


帳票
 MZで取得したデータ(例、受注リストや注文書など)を印刷する際に用いるコンポーネント。

まとめ

コンポーネントは非常に種類が多いが業務上で用いるのは40種程度となる。その中でもいくつかはワンパターンな使い方なので習うより慣れた方が良い所もある。


第4回–2 イベント

イベント

コンポーネントに「何をしたらシステムが始まるか」を設定する項目。
サブルーチンが1番イベント項目が多いので参考に見て欲しい(図3)。結構あるが良く使うメインは4個程度


図3 サブルーチン、イベントリスト

・処理要求イベント:
  ファンクションコンポーネントから繫げる事が出来るが選択肢がこれ一択。

・処理完了イベント:
 演算処理などが終わったら次はどうするという使い方。これも条件制御や演算制御からは一択。

・アクションイベント:
 とてもよく使う。(ほとんどこれ)。ボタンコンポーネントが1番良い理解し易い。
 ボタンを押したら(アクションしたら)発動する。
 乱暴な言い方であるが「何を選んだら良いか分からん!」という時にコレで成立する事がある位、万能。

・データ生成イベント:
 データベースアクセスコンポーネントから選択可能であるが、取得データをテーブル格納変数へ設定する際に用いる。

・データ設定イベント:
 データベース等からテキストフィールドやテーブルにデータ設定されたら発動する。
 ニュアンスが微妙だがテキストフィールドにユーザが入力してデータを書き込んだ場合は発動しない。

・データ更新イベント:
 テキストフィールド等に何でも良いがユーザが一文字でも入力したら発動する。
 今度は逆にデータベースなどから書き込まれた場合は発動しない。

・データ選択イベント:
 リストやテーブルから使う事が可能であるが、特定の行や列を指定したら発動する。
 例としては受注情報一覧にて、顧客のリストがあって、特定A社を選んだら、受注情報がA社だけ表示されるというイメージ

まとめ

以上がよく使うイベントの説明である。25種類の内7つなので覚えやすいと思う、コンポーネントと同様に使っていく内にワンパターンな事もあるので、実際は4つ程度マスターすれば良い。


第4回–3 メソッド

メソッド

イベントから接続したコンポーネントに何をさせるのかを決める。
・あおコンポーネントであれば大体何らかの入力をするか、既に記述されている情報を取得するというパターンがほとんど。
・ピンクコンポーネントであれば演算処理や内部処理を行う為の予備動作となり、パラメータを設定する事がほとんど。

ここでテーブルのメソッド一覧を見てみよう(図4)。日本語の意味は直感的に理解出来るものもいくつかあるが、カッコ内に英語が記載されているタイプとそうでないタイプがある。簡単なのはなにもない()だけのタイプ(例:全行を削除する())、これは選べばその記載通りの手段を実行してくれる。それ以外に記載がある方は要求されている「値」を設定してやらないとエラーが発生し思う様に動かない。頻度の高い物をいくつか個別に解説する。


図4 テーブル、メッソド一覧

・Object:
 文字でも数字でも良いが、何らかの値を要求している

・int:
 数字(整数)を要求しており、サイズや量、位置などを指定する事が多い

・PFObjectTable:
 エクセルの様に行と列からなるテーブル状のデータを要求している。
 データベースから取得したデータをテーブルへ表示する時に良く使う。

・PFObjectList:
 テーブル状(行と列)のデータと違って一列だけの複数行からなるリストデータを要求してる。

・boolean:
 trueかfalseを要求している。入力可否を設定するとか、可視(不可視)の設定時に用いる

・String:
 文字列を要求している。(プロは違うと言うと思うが)Objectと認識して良い。

・Color:
 色の設定値を要求、書き方は「java.awt.Color[r=255,g=210,b=255]」となる。
 R(赤)G(緑)B(青)の3色を0~255の数字で表現、面倒な場合はラベルコンポーネントの説明に簡素な方法も紹介。

・class:
 (ITっぽい説明になるが・・)システムには「型」というのがあり文字列用の「String」、整数用の「Integer」、日付用の「Date」などある。
 数字用の型は種類が多く、「BigInteger」「Long」「Float」などあるが深掘りすると混乱するので、整数は「Integer」、小数点が付くなら「Double」と2つ覚えていればちょうど良い。

※右上に全メソッド対象と□にチェックを入れれば、対象のコンポーネントが持つ全ての処理方法が英語で記載されている。慣れくれば使える様になるが、最初は使う事はないので無視して良い。

まとめ

今回のメッソドは要求されている「値」が何なのかを知る為には重要な回となっている。次回の取得方法と今回のメソッドはセットで用いる。分からなくなったら、また振り返って参照して欲しい。


第4回–4 取得方法

取得方法

メソッドでセットした方法に先に説明した要求事項がある場合の設定方法である。どのコンポーネントでも選択肢は一緒で6種類方法が選べる(図1)、4つ覚えれば良い。例としてテキストフィールドの「テキストを設定する(String)」の場合は何か文字列をセットする必要がある。4パターンのセット方法を解説する。


図1 取得方法一覧

○固定値:
 いつも必ず決まった値を設定したい場合はこれを選ぶ。
 テキストフィールドに「こんにちは」と設定すれば、朝でも夜でも「こんにちは」となる。
 ※例、タイマーのセット時間を毎時間であれば「3,600,000ms」と設定

○メソッド戻り値、メソッド処理結果、イベント内包:
 これら3つの説明は感覚的理解になるので図で説明する。

・メソッド戻り値で取得する場合(図2)
①ボタンを押したら足し算処理をして、②のボタンを押すとテキストフィールドにテキスト設定するとプログラムしている。加算コンポーネントにて、演算を実施した時点で内部的には処理が完了している(この場合、1+1の処理を実行して(メソッド)その答え(2)が内部に保管されている(戻り値))。この処理が完了した「値」を直接指定してテキストフィールドにデータを設定している。直接コンポーネント指定して、値や結果を取得する事が可能なので、処理が終わってさえいれば、繫げる場所が比較的自由。この場合ボタン②から設定しているが、加算処理後のスグ下で設定しても良いし、加算コンポーネントから繫げて処理しても構わない。1番使う頻度が高い取得方法。

レッスンファイルのダウンロード1


図2 メソッド戻り値による取得

・メソッド処理結果で取得する場合(図3)
今度は②ボタンを使わない。①ボタンを押したら演算処理を実施ですぐテキストフィールドにデータをセットしている。
内部処理で演算をした後に「演算処理(左オペランド+右オペランド)を取得する」という処理を実施している。○○を取得するという処理は元々のjava言語(英語)で言うと「get~」という処理になる。この「取得する(get)」のすぐ後で「メソッド処理結果」でデータの取得が可能になる。この場合コンポーネントの指定は不要で「メソッド/値」に「○○を取得する」を設定すれば良い。

レッスンファイルのダウンロード2


図3 メソッド処理結果による取得

・イベント内包で取得する場合(図4)
今度は加算コンポーネントに直接テキストフィールドが接続している。内部処理の完了したコンポーネント(この場合、加算コンポーネント)に直接繫げて処理結果データを取得している。イベント内包はこの方法でしか情報を取得出来ない。メソッド戻り値で代用も可能なので出番がやや少ない。

レッスンファイルのダウンロード3

図4 イベント内包による取得

まとめ


取得方法で頻度が高いのは「メソッド戻り値」で次は「メソッド処理結果」となる。固定値は説明が不要と思うのでこの2点を実践してみて習得して欲しい。


第5回:MZ基礎知識~応用編

チュートリアル 注文票をさわってみよう

少しレベルアップ。
C:\MZPlatform\3.6\AP_DATA\Tutorialにある「注文票.max」をビルダー上に展開する。
29個コンポーネントを用いたシステムで第4回で説明した、全ての部品がバランス良く使われている。
実行ボタンを押すと発注業務を想定した画面が表示される。
任意の品名や個数を入力し「印刷ボタン」を押すと帳票画面が起動して、入力情報に基づいた印刷が実際に可能なシステムが構築されている。

長いので分けて解説する(図1)。
・まずは起動。
・入力項目が用意されているので、適当な値を入力。
👆確認
 テキストフィールドは入力してもイベントが繋がっていないので何も発生しない。
 単価や数量には演算処理がセットされている為、合計金額が入力に応じて変化する。

帳票:実際に注文書を発行する事務処理を模してある
 ・印刷ボタンを押すと指定したプリンターから印刷される
👆確認
 帳票編集で自社に合ったフォーマットを作成する事が出来るので色々と動かしてみる。
 帳票上のラベルには入力項目の反映が可能、その設定方法も試してみて理解して欲しい。

 

図1 注文票チュートリアル

クリア:
 (図2参照)システムを構築していくと、フレームが表示される際やボタンを押したら初期化したい事がある。
 MZには基本的に初期化というのはないので、テキストフィールドには「NULL」を設定するといったプログラムを構築する。
👆確認
 初期化の設定方法をみておく事

サブルーチンのメリット:
 初期化したいフィールドが10個あれば、10個に初期化の設定が必要になる。
 (画面が表示された時やクリアボタンを押した時、データベースにデータ登録した時など、初期化した頻度は高い)
 特定処理後に毎回同じコンポーネント設定が面倒な時にサブルーチン化をする。
👆確認
 サブルーチンの使い方、設定方法。

図2 クリアとサブルーチン

(さらに…)