フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
ご連絡ありがとうございます。
お送りいただいたファイルを参考に簡単にサンプルファイルを作ってみました。
前回ご紹介したメソッド「「条件指定で下位のコンポーネントを取得する(String,String)」はタブ上の部品がパネルでも、また、パネル上のコンポーネント数が不定でも使えますが複雑になりますので、複合コンポーネントのメソッドを公開する処理にしてあります。
ご参考になれば幸いです。ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
かなり複雑になりますが、例えば[タブ]のメソッド「getPanelAt(int)」で、各タブに配置されているパネル(今回はGUI複合コンポーネント)を取得することができます。
取得した複合コンポーネントを[コンポーネント格納変数]に設定し、メソッド「条件指定で下位のコンポーネントを取得する(String,String)」で引数1に[テーブル]のクラス名である「jp.go.aist.dmrc.platform.beans.gui.table」を設定し、[テーブル]コンポーネントを取得します。
さらに、この取得したコンポーネントを新しい[コンポーネント格納変数]に設定し、メソッド「起動メソッド名を設定する(String)」(引数はgetObjectTable)、「起動メソッドを実行する()」でテーブルデータを取得します。
表示ボタンの階層とタブのある階層は分かれていますから、以上の処理をまとめて、公開メソッドを設定し、タブの数の分繰り返し、処理を行います。実を申しますと、動的にコンポーネントを生成するのも、階層を深く分けるのも、処理が複雑になり、あまりお勧めいたしません。
タブの複製数が10を超えないのであれば、初めから複合コンポーネントを必要数用意しておき、必要に応じて画面へ追加、削除する方が簡単です。動的に生成すると、生成したコンポーネントを[コンポーネント格納変数]等に入れてデータを取得する処理が余分に生じます。アプリケーション開発中に同じ画面配置で複数の複合コンポーネントを作成したい場合には、複合コンポーネントの外部参照をお勧めしています。詳しくは『アプリケーションビルダー操作説明書p118-p120をご覧ください。
以上ご検討いただき、ご不明な点があれば再度ご連絡いただければ幸いです。
よろしくお願い申し上げます。- この返信は4年前にMZPlatformユーザー会が編集しました。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
「一回ずつEnterを押さなくてはならない」とのことですが、多くのバーコードリーダーでは、スキャン後にEnterキーを付加する機能が付いています。デフォルトではEnterキーを付加していない機種でも設定で追加できるようになっています。[テキストフィールド]のデータ更新イベントは「insert(String,int)」では引数にNullを入れても発生しませんが、「setText(String)」では発生します。
お手元のバーコードリーダーにEnterキーが付加できれば、MZ側の処理を変更するよりも簡単で把握しやすいかと思いますので、お調べいただき、不明な場合は再度ご連絡ください。その際バーコードリーダーの機種名もお知らせください。
どうぞよろしくお願い申し上げます。MZPlatformユーザー会キーマスターご指摘のように、JDBCドライバによる型変換でjava.time.LocalDateTimeが渡される問題について、こちらでも把握しておりました。
MySQLのバージョンが5.7であれば、JDBCドライバは5系を使用していただけるとこの問題は生じないと思いますが、調査できていない組み合わせで何か不具合があるかもしれません。その際はお手数ですがお知らせいただけると助かります。
MySQLのバージョンが8.0であればJDBCドライバは8系をご使用いただき、MySQL8.0用のMZ側修正パッチをご利用ください。最新版のスマート製造ツールキット(MZIoTtoolkit)ZIPファイルをダウンロードして展開しますと、commonフォルダの中に講習資料と必要なファイルが含まれていますので、お試しいただければと思います。
MZPlatformユーザー会キーマスターお問い合せ頂いた現象はMZPlatformが使用しているJava側の仕様によるもので、「現在選択されている項目の位置を取得する()(getSelectedIndex())」は指定された項目に一致する、リスト内の最初の項目を返します。
[コンボボックス]に重複要素を設定しないようにする場合は、一旦[リスト格納変数]にリストを設定して、「重複要素を削除したリストを取得する()」でリストを取得します。
以前にも同様のご質問がありましたので、ご参考になれば幸いです。
https://ssl.monozukuri.org/mzplatform/forums/topic/%e3%82%b3%e3%83%b3%e3%83%9c%e3%83%9c%e3%83%83%e3%82%af%e3%82%b9%ef%bc%9a%e9%a0%85%e7%9b%ae%e4%bd%8d%e7%bd%ae%e3%81%ae%e5%8f%96%e5%be%97%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/MZPlatformユーザー会キーマスターWebのユーザ認証画面を経由する機能がMZ側の機能として存在しないので、現状はできません。今後の開発対象の候補ではありますが、実現をお約束することはできません。
なお、お使いの製品はユーザ認証をOFFにしてもホスト認証で接続PCを制限することができるようなので、画像を表示したいPCのみIPアドレスを登録してみて、同様にMZで画像が表示されるならそれで運用できるかもしれません。
FTPサーバへの画像アップロードにつきましては、一般的なネットワークシステムとお使いの製品の機能なので、ご自身でお調べいただけますでしょうか。例えばWindows10のPCをFTPサーバにすることもできると思います。
MZ側で対応できる機能の例としては、MZアプリが動作するPC上のフォルダや参照可能なネットワーク共有フォルダに、特定の画像ファイルが定期的に保存または更新されている状況であれば、それをMZアプリの画面に表示して、タイマーでその表示を更新することができます。画像ファイルの表示はチュートリアル等にありますので、あとはそのファイルパスを自動でどのように指定するかがポイントになります。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
お教えいただいたページを参考にWindows通知領域にアイコンを表示させるアプリケーションを作ってみました。ただし、あくまでアイコンを表示させるだけで、通知を表示させたりは現状ではできません。現状ある機能で考えると、(1)フレームサイズの最小化「iconify()」、(2)フレームアイコンの設定、(3)メッセージダイアログの表示などの機能を組み合わせて、例えば起動直後に最小化し、何かイベント発生時にアイコンを変化させたり、ダイアログを表示したりということになるかと思います。
最小化はタスクバーの起動されているアプリケーションを表示する領域へのアイコン化となります。MZアプリケーションファイルへのショートカットをWindowsスタートアップに追加すれば、Windows起動時に自動的にファイルも起動します。
以上、ご希望に沿う形でなく申し訳ございませんが、ご検討いただき、ご質問等ございましたら、ご連絡いただければ幸いです。
- この返信は4年、 1ヶ月前にMZPlatformユーザー会が編集しました。
添付ファイル:
MZPlatformユーザー会キーマスター機種の情報をお知らせいただきありがとうございます。
一般的に、市販のネットワークカメラの映像をWebブラウザや専用ソフト以外に表示することは難しいと思います。お使いの製品も、初期設定ではWebブラウザで接続してユーザ名とパスワードを入力することで、Webブラウザに別途インストールしたプラグインを介してカメラ映像を表示するようです。
MZプラットフォーム(3.6)の標準機能のみで、ネットワークカメラの映像を表示する方法は一応ありますが、それが可能かどうかは実際に試していただく必要があります。
お試しいただく場合は、添付のサンプルアプリをお使いください。サンプルアプリはテキストフィールドにURLを記入して、「パネル表示」ボタンを押すとその画面をMZのパネルに表示し、「Webブラウザ表示」ボタンを押すとそのPC標準のWebブラウザに表示します。
まず必要な条件は、ネットワークカメラにURLのみの指定で接続できるかどうかです。お使いの機種は初期設定でユーザ認証が必要なので、それをOFFにしてネットワーク内で誰でも接続可能な状態に変更します。そのカメラに接続して画像を表示するURLを記入して、「Webブラウザ表示」を押して表示されることを確認し、続いて「パネル表示」でMZ画面に表示されれば、その方法でMZアプリに画面を組み込めることになります。
表示できない理由はいろいろありますので、できない場合は別の方法をご検討ください。また、これでできてもセキュリティ上の問題が残りますので、やはり慎重にご検討ください。
なお、お使いの製品はFTPサーバに画像を定期アップロードする機能がありますので、FTPサーバにアップロードされた画像ファイルを定期的に表示更新するようなMZアプリを作成することはできると思います。
添付ファイル:
MZPlatformユーザー会キーマスターはい。環境によるかと思いますが、連続で多数回接続・切断を繰り返すのは高い負荷が掛かり、推奨されないようです。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
一点確認させていただきたいのですが、繰返しSQLを実行するということですが、その都度MySQLへの接続→SQL実行→切断を繰り返しているでしょうか。連続して接続・切断を多数回繰り返すと、JDBCを介したMySQLへの接続時にエラーが発生する可能性があります。
-
投稿者投稿