作成した返信
-
著者投稿
-
MZPlatformユーザー会サイト管理者
セルの値をキー入力で変更する場合とメソッドから変更する場合のいずれも、データ更新イベントが発生するため、ループ状態となってしまいます。これを回避するには、「イベント伝播制御」コンポーネントを使用します。コンポーネント追加のメニューでは、「処理部品>イベント」に含まれています。
使用方法は添付のサンプルをご覧ください。テーブルのデータ更新イベント処理で発生したイベントをイベント伝播制御に渡し、イベント伝播制御側でデータ更新イベントを処理します。その際、テーブルでセルの値を設定する前にイベント伝播制御無視モードをONにして、セルの値を設定したらOFFにします。これでループ状態を回避できますので、ご確認ください。
添付ファイル:
MZPlatformユーザー会サイト管理者制約が数多くあり、おすすめできませんが、一応可能です。グラフを貼り付けるフレーム等が、画面編集で「手動配置」の状態であれば、ラベルをグラフ上に配置することができます。
ただし、画面編集画面でラベルの位置を決定するためのドラッグ等の操作が可能となるのは、左のツリー表示でグラフより下にあるラベルに限定されます。これは、画面編集画面ではツリー表示の上から順に画面表示で下から順に描画していくので、ツリー表示側でグラフより上にあるラベルは画面表示側で隠れてしまうからです。
一方、このようにして配置したラベルは、そのままビルダーから実行すると表示されません。これは、実行中の画面表示では、画面編集画面のツリー表示側の通りに下から描画されるからです。ツリー表示側でグラフより下にあるラベルは隠れてしまいます。
そのため、画面編集画面でラベルの位置を編集する際には、ツリー表示側でグラフの下になるようにドラッグして順序を移動させます。位置の編集が終了したら、ツリー表示側でグラフの上になるように順序を変更します。このようにすれば、フレーム等を表示した際に、グラフの任意の位置にラベルを表示することができます。このようにして作成したサンプルを添付しますので、ZIPファイルを展開してビルダーでご確認ください。
なお、ここまでの手順に従ってグラフの上にラベルを表示させても、グラフ上のどこかをクリックすると、ラベルが消えてしまいます。これは、グラフに画面のフォーカスが当たったことで最前面に出てきてしまい、ラベルが隠れてしまう現象です。使用しているJava側の制約で、MZ側では制御できないことも多いので、以上の制約をふまえてお使いください。
添付ファイル:
MZPlatformユーザー会サイト管理者メソッド「時間軸の表示期間の値を取得する()」で表示期間の数値を取得し、さらに「時間軸の表示期間の単位を取得する()」で取得した単位(年、月、週など)と組み合わせることで、表示期間を取得することができます。
(2)の処理は、単位が何かによって場合分けをする必要があるため、作成が少々煩雑になります。
MZPlatformユーザー会サイト管理者一応確認ですが、これは複合コンポーネントの内部にファンクションコンポーネントを追加して、そのメソッドを公開する場合の話ですね。
引数を個別に指定してファンクションを呼び出すメソッドとしては、引数が最大9個までとなっておりますが、引数をリストで渡すと何個でも渡せる仕様にしております。また、ファンクションの処理要求イベント処理内での受け取り方としては、位置指定で引数を取得するメソッドがありますので、10番目以降の引数も問題なく取得可能です。注意点としては、位置指定の場合は1番目が「0」、10番目の位置が「9」と表現されます。
参考までに、呼び出し方法のサンプルを作成したので添付しておきます。
添付ファイル:
MZPlatformユーザー会サイト管理者MZを用いたWebアプリケーション作成全般の問題として、サーバ側でアプリケーションの動作中にエラーが発生した時に、エラーの状況によってはご指摘のようにWebブラウザ側で接続完了待ちのままフリーズする現象が発生します。そのため、そのような状況に遭遇した場合は作成したアプリケーション側に不具合があるとお考えください。
こちらではすぐに状況を再現できませんが、ご報告いただいた内容から「データベースに接続する」のところで問題が発生しているということですね。作業環境としては、同じPC上でビルダーでの作業とWebアプリ実行(Tomcat)およびデータベース稼働(MySQL)している状況でしょうか。
そうであれば、ビルダー上の「画面確認」の画面から「登録」ボタンを押してみていただけますでしょうか。
これでエラーが出れば、データベース接続の指定に問題があるか、データベースの準備状況やアカウント権限の設定に問題があると思われます。こちらはエラーが発生するとダイアログが表示され、MZのログにも記録されると思いますので、エラー内容をご確認ください。
もしそこでエラーが発生しなければ、Tomcat経由のデータベース接続だと想定通りに動作しないということですので、接続の指定をいろいろ変えてみてお試しください。こちらだとMZ側でエラーが捕捉できないのですが、Tomcat側のログには何か出力されているかもしれません。
インストールの状況にもよりますが、下記のような位置にTomcatのログが出力されます。
C:\Program Files (x86)\Apache Software Foundation\Tomcat 8.0\logs
複数種類ありますので日時で選んで中身をご確認ください。おそらくlocalhost.2017-11-##.logに表示されていると思います。MZPlatformユーザー会サイト管理者ビルダー上で帳票コンポーネントのメソッド起動の際に、「印刷プレビュー画面をモード指定で表示する(Component,int)」を選択し、2つ目の引数を1(編集不可)にするとご希望の動作になりますので、お試しください。
MZPlatformユーザー会サイト管理者ガントチャートの「時間軸の表示開始日時を設定する(Date)」メソッドを使うことで、表示開始日時を設定できます。この引数に対して、システム情報コンポーネントの「現在時刻を取得する()」メソッドで得た現在時刻を指定することにより、表示開始日時が現在の日時に設定されます。
現在の日時をチャートの真ん中にして表示するためには、さらに以下の処理が必要になります。
(1) ガントチャートの表示期間を取得する。
(2) 現在日時から、表示期間の半分だけ前に遡った日時を計算する。
(3) ガントチャートの表示開始日時を、(2)で計算した日時に設定する。(2)の処理の作成は少々煩雑になりますので、まずは現在日時を表示開始日時(ガントチャートの左端)に設定することをお試し頂けないでしょうか。
MZPlatformユーザー会サイト管理者ご説明いただいた状況からすると、実際に操作していただいた内容のどこかに誤りがあったか、一度エラーが発生したことでアプリケーションが不正な状態になったかもしれません。それが原因で、アプリケーションが正常ではない動作をしてエラーが発生する状態と思われます。この状態では、アプリケーションを保存してロードしなおしても同じエラーが発生します。
Cボタンを押してエラーが発生するということと、エラー表示が任意精度実数格納変数の「数値を文字列で設定する」となっていることから、おそらく84ページからの操作のところで、<引数>の指定に誤りがあると思われます。イベント内包の処理結果データとなっているかご確認いただけますでしょうか。
MZPlatformユーザー会サイト管理者内部の処理を少し解説させていただきますと、テーブルは複数行選択の場合、選択行位置のリストを保持しており、このリストは数字の小さいものから順に並べられています。メソッド「選択行の位置を取得する()」では、常にこのリストの先頭(最小の選択行位置)を返します。そのため、選択した順序にかかわらず、選択された行位置の中で最小の数字が返ってくる状況です。
すべての行位置を取得する方法としては、日本語化されていないメソッド「getSelectedRows()」をお使いいただくと、すべての選択行位置のリストが得られます。多少処理が増えますが、リスト格納変数に入れて値を取り出すことで、ご希望の処理が実現できるのではないかと思います。参考までに、使い方を示すサンプルを添付します。
MZPlatformユーザー会サイト管理者ファイル選択ダイアログで拡張子をリストに追加する場合は、メソッド「選択可能なファイルフィルタのリストにフィルタを追加する(String,String)」を使用します。サンプルアプリではID:24のサブルーチンのアクションイベント処理の中で記述されていますのでご確認ください。
なお、このサンプルアプリはxlsファイルで動作するように作成していますので、この拡張子を追加するだけでxlsxファイルでもすべてが正常に動作するわけではありませんのでご注意ください。関連するご質問が掲示板にありますので、下記リンク先をご参照ください。
https://ssl.monozukuri.org/mzplatform/forums/topic/%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e3%80%8cexcel%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%80%8d%e3%81%a7-xlsx%e3%83%95/ -
著者投稿