作成した返信
-
著者投稿
-
MZPlatformユーザー会サイト管理者
大変失礼いたしました。
[コンボボックス]のメソッドの「transferFocusUpCycle()」処理を設定してください。
お手数をお掛けして申し訳ありません。MZPlatformユーザー会サイト管理者訂正させてください。
前回の投稿で、『[コンボボックス]の選択イベントに[確認ダイアログ]のメソッド「transferFocusUpCycle()」の処理を設定する』と書いてしまいましたが、『[コンボボックス]のメソッド「transferFocusUpCycle()」』でフォーカスを移動させます。
大変失礼いたしました。MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
まず、メソッド「ダイアログを表示する(Component)」の引数ですが、これはダイアログを表示するときの基準位置を指定するものです。引数にコンポーネントを指定した場合は親に指定したコンポーネントを基準にして重なるようにダイアログが表示され、Null値を指定した場合は画面中央に表示されます。さて、ご質問いただいた現象は[コンボボックス]を選択するとき[コンボボックス]にフォーカスが当たっていますが、ダイアログが表示されたときにフォーカスの移動がなく、[コンボボックス]の選択エリアがダイアログの前面に出てきて見えてしまうようです。
これを回避するためにフォーカスの移動をしたいので、ダイアログを表示する処理の直前に、[コンボボックス]の選択イベントに[確認ダイアログ]のメソッド「transferFocusUpCycle()」の処理を設定してみてください。
以上お試しいただいても改善されない場合には、再度ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。MZPlatformユーザー会サイト管理者ご連絡ありがとうございます。
データを返す先が不定なので、データ取得時と同じように一旦[コンポーネント格納変数]に入れて、メソッドを起動します。
今回はメソッドに引数があるので、「起動メソッドに引数を追加する(String,Object)」の処理も設定します。
ファイルに処理を追加してみましたので、ご参考になれば幸いです。
ご不明な点がございましたら、どうぞ再度ご返信ください。よろしくお願いいたします。MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
「SetOutputFileName(String)」で、ファイル名だけでなくパスごと指定すれば目的のフォルダに保存することができます。
また、現在は印刷プレビュー、印刷ダイアログを表示させているということですが、メソッド「printpaper(String,String)」で上記を表示しなくてもファイル出力することができます。WindowsでプリンタにMicrosoft Print to PDF等PDF化するプリンタを選んだ場合は、出力ファイルの形式はPDFになります。どのファイル形式でも拡張子は自動的には付きませんので、ファイル名には拡張子を付けた方が良いかと思います。
上記動作確認のため、簡単なサンプルファイルを作りましたので、添付いたします。
ご参考になれば幸いです。ご不明な点がございましたら、どうぞ再度ご連絡ください。- この返信は、 MZPlatformユーザー会 により、 3 年, 1 ヶ月 前 に編集されました。
MZPlatformユーザー会サイト管理者ご連絡ありがとうございます。
お送りいただいたファイルを参考に簡単にサンプルファイルを作ってみました。
前回ご紹介したメソッド「「条件指定で下位のコンポーネントを取得する(String,String)」はタブ上の部品がパネルでも、また、パネル上のコンポーネント数が不定でも使えますが複雑になりますので、複合コンポーネントのメソッドを公開する処理にしてあります。
ご参考になれば幸いです。ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
かなり複雑になりますが、例えば[タブ]のメソッド「getPanelAt(int)」で、各タブに配置されているパネル(今回はGUI複合コンポーネント)を取得することができます。
取得した複合コンポーネントを[コンポーネント格納変数]に設定し、メソッド「条件指定で下位のコンポーネントを取得する(String,String)」で引数1に[テーブル]のクラス名である「jp.go.aist.dmrc.platform.beans.gui.table」を設定し、[テーブル]コンポーネントを取得します。
さらに、この取得したコンポーネントを新しい[コンポーネント格納変数]に設定し、メソッド「起動メソッド名を設定する(String)」(引数はgetObjectTable)、「起動メソッドを実行する()」でテーブルデータを取得します。
表示ボタンの階層とタブのある階層は分かれていますから、以上の処理をまとめて、公開メソッドを設定し、タブの数の分繰り返し、処理を行います。実を申しますと、動的にコンポーネントを生成するのも、階層を深く分けるのも、処理が複雑になり、あまりお勧めいたしません。
タブの複製数が10を超えないのであれば、初めから複合コンポーネントを必要数用意しておき、必要に応じて画面へ追加、削除する方が簡単です。動的に生成すると、生成したコンポーネントを[コンポーネント格納変数]等に入れてデータを取得する処理が余分に生じます。アプリケーション開発中に同じ画面配置で複数の複合コンポーネントを作成したい場合には、複合コンポーネントの外部参照をお勧めしています。詳しくは『アプリケーションビルダー操作説明書p118-p120をご覧ください。
以上ご検討いただき、ご不明な点があれば再度ご連絡いただければ幸いです。
よろしくお願い申し上げます。- この返信は、 MZPlatformユーザー会 により、 3 年, 1 ヶ月 前 に編集されました。
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/ -
著者投稿