フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
お問い合わせありがとうございます。
1.まず、表示項目の順番について回答します。
お使いいただいている[グラフ作成]複合コンポーネントの中には[分類テーブル作成]コンポーネントが含まれています。このコンポーネントで対象のテーブルデータを分類し、グラフで使用する基本データの形に整理しています。分類の際、既定ではソートをするようになっていますので、[グラフ作成]複合コンポーネントの中の[系列グラフ作成]複合コンポーネントの中にさらに入り、[分類テーブル作成]の属性設定で「unsorted」の項を「true」に変更します。2.➀と➁について原因と思われるものをお伝えします。
『開発チュートリアル応用編(L8)』にもあるように系列グラフに設定するテーブルデータには基本の形式があります。これ以外の形式の例えばデータベースから取得したデータをグラフにするために[グラフ作成]複合コンポーネントを使用しています。
通常L8での気温のテーブルデータをデータベースに格納する際には、添付の図のように3列のデータとなるかと存じます。つまり、チュートリアルと同じ形にするためには、お使いのテーブルデータには足りない部分があります。
特に棒グラフについては、一つの項目の幅に12本(12か月分)並べる幅になっていると推察します。以上、ご確認いただき、ご不明な点がございましたら、再度ご連絡いただければ幸いです。
どうぞ、よろしくお願い申し上げます。添付ファイル:
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
エラーメッセージの内容を拝見すると、MySQLのJDBCドライバーが必要なフォルダーに配置されていない可能性が考えられます。
例えばMZ Platformを複数バージョンインストールしている場合、一方のファイルが起動されているバージョンにはドライバーが配置されており、もう一方のファイルは違いバージョンを読みに行きドライバー未配置となっているのではと考えました。お手数ですが、もう少し起動時の状況をお知らせください。
1.各ファイルはダブルクリックでローダー起動されているでしょうか?違う形での起動でしょうか?2.windowsスタートメニューからMZ Platform4.0(またはご使用のバージョン)>アプリケーションローダーを立ち上げ、そこから各ファイルをロードして、エラーが発生するかご確認いただけないでしょうか。
これは確実に同じバージョンのローダーを使用した上で、違いがあるか確認したいという意図があります。大変お手数ですが、上記2点ご確認いただき、ご返信頂ければ幸いです。
どうぞよろしくお願い申し上げます。MZPlatformユーザー会キーマスター返信が遅くなり、申し訳ございません。
『MZ講習資料DB編』の通り進めていただければ、作成されたDB接続用のアプリケーションをWEBアプリ化することが可能です。
現在のところ、講習資料以外ではMZプラットホームユーザー会ホームページからダウンロードできるmzservletのフォルダーの中のReadMe.txtに注意点が書いてあるぐらいですが、お気付きの点がございましたら、都度お問い合わせいただければ幸いです。一点注意していただきたいこととしては、WARフィルの配備がテキスト通り進めても上手くいかない場合は、手動での配置をお試しください。
どうぞよろしくお願い申し上げます。
MZPlatformユーザー会キーマスターご連絡ありがとうございます。
例えばselect文に条件句(where句)を付けると該当データが無いとき、MySQLのコマンドラインではお知らせいただいたように「Empty set」となりますが、MZ上では空のテーブルではなく、データ行数が0のテーブルデータとして取得されます。
ですので、一旦検索結果を[テーブル格納変数]に設定し、テーブル行数が0より大きい場合は処理を行い、そうでない場合は何もしないか、メッセージを表示するなどが考えられます。
例えば[比較演算(>)]の引数にテーブル行数と0を設定し演算します。演算が終わると[比較演算(>)]から処理完了イベントが発生するので、接続先処理にイベント番号を設定すると演算結果によって処理を分けることができます。何らかのタイミングで演算を行いますが、[テーブル]や[テーブル格納変数]にデータを設定すると「データ設定イベント」が発生するので、このイベントの接続先とするのか適当かと存じます。
以上の説明の編集画面例図を添付いたします。
ご不明な点がございましたら、再度ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。添付ファイル:
MZPlatformユーザー会キーマスター前回3月21日に『SQLの新規テーブルについて』のスレッドに添付しましたproduction1Simple.mzaxのフォルダの中に「工程管理チュートリアル1Simple.mzax」というファイルを入れてあります。
ガントチャートの表示を目的としたいということで、購買依頼の方に進むと遠回りしてしまう可能性があるので、よろしければ添付のファイルもお試しください。変更すべき点は『購買依頼チュートリアル』でも添付のファイルでも以下の2箇所です。
1)DB接続情報画面のパスワードおよび接続先データベース名を変更する
添付のファイルでは編集しやすいように、メニューから接続情報フレームを表示できるようにしてあります。
productionあるいはkobaiiraiというデータベース名の文字の箇所をご自分のデータベース名に合わせて変更します。
添付ファイルのproductionの[テキストフィールド]の文字列を変更します。
購買依頼の方はテキスト通り、複合コンポーネント内に入り属性情報の文字列を変更します。
変更を維持するにはアプリケーションビルダー終了前に保存してください。
パスワードも同様に変更します。2)検索SQL文を変更します。
購買依頼のSTEP1の時点では[テキストフィールド]にSQL文を入力して、それを[データベースアクセス]コンポーネントのメソッド「SQL文を実行する(String)」の引数として設定しています。
添付のファイルでは[テキストフィールド]は使用せず直接「検索SQL文を実行する(Object)」の引数欄に固定値で設定していますが、どちらも考え方は同じです。
「select * from buhin」や「select * from task」となっているところを「from」の後をご自分のデータベースのテーブル名に合わせて変更します。
「*」は全ての列データを意味しているので、必要に応じて「列1,列2,・・・」と変更します。
添付のファイルの「検索SQL文を実行する(Object)」の引数を変更してお試しください。WEB版『工程管理チュートリアル1』
https://ssl.monozukuri.org/mzplatform/docs_web/mztutorialproductioncontrol1.html
「2.2項」がご参考になれば幸いです。ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会キーマスターご連絡ありがとうございます。
1)申し訳ございません。この掲示板へのファイルのアップロードですが、mzaxファイルやbatファイルはそのままではアップロードできないため、フォルダーに入れて圧縮してからアップロードしていただけないでしょうか。大変ご面倒をお掛けいたしますが、よろしくお願いいたします。
2)ファイルを拝見する前ですが、「prodution.sql」のファイルの内容を変更して実行したところ、ERROR 1231 (42000) at line 31: Variable ‘character_set_client’ can’t be set to the value of ‘NULL’のエラーが出てしまうということですが、
編集の際7行目にある「/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;」の記述を削除したり、変更してしまってはいないでしょうか。
手元のファイルで確認したところ、この記述はファイルの最初の(7行目)と最後の部分(71行目)にあり最初の方を削ってしまうと、後半の部分で引っ掛かってしまうようです。この記述はファイル実行のために絶対必要というわけではないので、エラーが解決できないようでしたら、2箇所ともコメントアウトあるいは削除して試してみてください。
また、データベーステーブルの作成も、batファイルでの実行が便利ではありますが、MySQL command Line Clientから「--」や「/*!」が先頭についていない記述の部分(例:CREATE DATABASE IF NOT EXISTS production;)を入力していっても作成できます。
3)ガントチャートについては、WEB版『工程管理チュートリアル1』ページにあるように、テーブルデータがあれば[グラフデータ作成]複合コンポーネントで簡単に表示できます。
以上ご確認いただき、ご不明な点がございましたら、お知らせください。
ファイル再送の手間をお掛けいたしますが、どうぞよろしくお願い申し上げます。MZPlatformユーザー会キーマスターご連絡ありがとうございます。
お知らせいただいた設定は、意図しない間に自動的にDBが起動しアクセス可能となることでの問題を意識していますので、絶対変更しなければならないわけではありません。
OS起動時にはDBが起動していることが分っていれば問題ないかと存じます。
よろしくお願いいたします。MZPlatformユーザー会キーマスターご連絡ありがとうございます。
1)まず、事前準備としてJDBCドライバをMZPlatform\4.0\jars\extフォルダに配置します。使用するデータベースによってドライバ名や入手方法は変わりますが、MySQLの場合はMySQL Insrtallerからダウンロードできます。2)一番簡単にご自分のデータベースにMZから接続できるか確認するには、MZPlatform\4.0\AP_DATA\Sampleフォルダ内の「データベースアクセス_1.mzax」あるいは「データベースアクセス_4.mzax」を使っていただくのが良いかと思います。
MySQLをお使いの場合は、パスワードの欄にパスワードを入力し、「接続」ボタンを押すと画面にツリー図が表示され、フォルダを展開してノードをクリックすると右側にテーブルが表示されます。
他のデータベースをお使いの場合は「データベースアクセス_4.mzax」で「登録名」のところをクリックすると他のデータベース名を選べ、ドライバーやサーバー名などを各DBに合ったものに変更できます。3)接続確認ができましたら、MZ上に目的のデータベースのテーブルのみの表示を試みます。
上記サンプル、また添付のファイルでもデータベース名「production」を指定していますので、目的のテーブルがあるデータベースに合わせてデータベース名欄を変更します。検索SQLの基本的な文は「SELECT 列名1, 列名2, FROM テーブル名」ですが、例えば工程管理のtaskテーブルの内容を取得するとき「select id, process, projectLabel, workingTime, dateStart, dateEnd, isCompleted from task」というSQL文を実行しています。
このSQL文を目的のテーブル名、列名に変更します。初めは「SELECT * FROM テーブル名」で全列取得してみて、その後「*」の部分を列名に変更しても良いかと存じます。以上1)の事前準備と3)の変更はWEB版『工程管理チュートリアル1』の「2.2 検索結果のテーブルへの設定」までがご参考になるかと存じます。https://ssl.monozukuri.org/mzplatform/docs_web/mztutorialtop.html
から チュートリアル>工程管理アプリケーション作成をクリックして表示されるページをご覧ください。
上記WEB版『工程管理チュートリアル1』のサンプルファイルはページ上部のリンクから取得できますが、[ガントチャート]は削除して2.2章までの内容にしたものを添付いたします。
データベース名およびパスワードと複合コンポーネントのメソッド「検索SQLを実行する」の引数(SQL文)を変更してご確認ください。またhttps://ssl.monozukuri.org/mzplatform/docs_web/mztutorialdatabase.htmlページ下部の「データベースからのデータ取得の流れ」項の内容のように、複合コンポーネントを使わず[データベースアクセス]コンポーネントの引数に接続情報を設定し、SQL文を実行してテーブルデータの取得も可能です。
まずは以上ご確認いただき、ご不明な点、ご要望がございましたら、再度ご連絡いただければ幸いです。どうぞよろしくお願い申し上げます。
- この返信は1年前にMZPlatformユーザー会が編集しました。
- この返信は1年前にMZPlatformユーザー会が編集しました。
- この返信は1年前にMZPlatformユーザー会が編集しました。
添付ファイル:
MZPlatformユーザー会キーマスターご連絡ありがとうございます。
特に稼働休憩時間の計算をする必要が無い場合は、[カレンダー]のメソッド「指定時刻までの経過時間の取得(Date)」を使うのが簡単です。先にまず[カレンダー]に開始日時の「日付を設定」し、次に上記メソッドの引数に終了時刻を設定すると、開始日時-終了日時のミリ秒での時間数が取得できます。
ミリ秒ですので[整数格納変数(BigInteger)]か[除算(÷)]コンポーネントに設定して、「60000」で割って分単位に直します。以上お送りいただいたファイル変更を加えてみましたので、ご確認いただき、ご不明な点等ございましたら再度ご連絡いただければ幸いです。
添付ファイル:
MZPlatformユーザー会キーマスターご連絡ありがとうございます。
確かに繰り返し処理を設定した[ラベル要素]にNULL値を設定すると、NULLと表示されてしまうようです。
[テーブル]の文字列型の列の場合、通常空欄には空白文字列が入っていますが、日付型や数値型の場合NULL値が入っていることで空欄となります。一番簡単に変更するにはデータ取得の際にメソッド「指定セルの値を取得する(int,int)」ではなく「指定セルの表示文字列を取得する(int,int)」で[テーブル]からセルデータ取得時に文字列としてしまうことです。
ただ表示文字列の取得だと処理上都合が悪い場合や、元のテーブルデータを[テーブル]に表示せずに変数に入れて編集したい場合には、別の方法も考えられます。
日付列に関しては編集領域を右クリック>[複合コンポーネント追加]>[テーブル]>[テーブル日付データ文字列変換.mzcx]を追加し、この複合コンポーネントで日付型列を文字列型に変換することができます。
また他の数値型列等の列型の場合は[NULL判定]を使って、NULL値が入っていた場合は代わりに空白文字列を取得することが考えられます。上記確認のためのサンプルファイルを添付いたしますので、ご覧いただき、ご不明な点がございましたら、再度ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。添付ファイル:
-
投稿者投稿