フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
ご不便をお掛けしております。
ご報告いただいた状況ですが、現在のところ手元で再現できておりません。他のユーザー様からのご報告も今までありませんでした。
保存ダイアログを使用するとき、MZに限らず他のアプリケーションでも、ファイル表示領域の部分をクリックするとフォーカスはファイル名入力フィールドから失われてしまいますが、マウスクリックで再度フォーカスが戻り入力キャレットが表示されます。
また、IMEとの兼ね合いで、入力小窓が別な場所に出てしまい目的の場所に入力できないこともありますが、小窓が表示されることで気づくかと思います。お手隙の際で結構なので、以下の点をご連絡いただけないでしょうか。大変お手数をお掛けして申し訳ございません。
(1)特定のPCのみで発生するか、複数のPCで発生しているか
(2)OS(例:Windows10pro)、MZplatformのバージョン(例3.6_64)
(3)MZアプリ内でフォーカスに関する処理や属性の設定をしているかどうか
(4)不具合発生後にマウスでクリックしたとき、そのフォームにフォーカスは戻っているか
(フォームにフォーカスがある時と無い時で、タイトルバーの色は変わります)
(5)長く(10分ほど)待てば入力できるようになったことはあるか大変ご不便をお掛けいたしますが、どうぞよろしくお願い申し上げます。
MZPlatformユーザー会キーマスターパネルのメソッド「setContainerLayout(int)」で配置方法を指定し、各コンポーネントのメソッド「setLocation(int,int)」で位置を指定することができます。これを[オブジェクトバッファ]で実行します。
また、オブジェクトを生成し都度位置を指定しということもできますが、属性の指定やコンポーネントの数が多ければ、雛形の[パネル]または[ラベル]や[テキストフィールド]を用意し、それを複製して追加していくことも考えられると思います。[コンポーネント格納変数]で「コンポーネントの完全な複製を取得する」ことができます。複製したパネルを追加した場合は、終了時に削除しないとエラーが発生しますので、終了時処理を設定してください。
前回と同様[オブジェクトバッファ」を使ったファイルと[コンポーネント格納変数]を使ったファイルを添付します。[コンポーネント格納変数]でも「起動メソッド名を設定する(String)」、「起動メソッドに引数を追加する(String,Object)」「起動メソッドを実行する()」が可能です。
ご参考になれば幸いです。ご不明な点がございましたら、どうぞ再度ご連絡ください。
MZPlatformユーザー会キーマスター方法は複数あると思いますが、一つはスマート製造ツールキットのIoTエッジ編の機能を用いる方法が考えられます。
本サイトの会員専用ダウンロードページから、
「MZ Platform IoT Toolkit (スマート製造ツールキット/MZ-EX/IoT化用コンテンツ集)」
のZIPファイルをダウンロードし、展開して内容を確認していただけますでしょうか。その中のedgeフォルダにIoTエッジ編の講習資料PDFとサンプルアプリが含まれています。
この内容を試すには自前でArduino等をご準備いただく必要がありますが、サンプルアプリのIoTEdgeAppを起動してArduinoと接続すれば、デジタル入力を取り込むことは可能です。また、デジタル入力の状態変化を適切にルール設定すれば、その結果をデータベースに保存することも可能です。ご不明な点があれば再度お問い合わせください。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
確認させていただきたいのですが、[フレーム]や[ダイアログ]等のウインドウを複数使っていて、一方のウインドウを閉じた後で、他のウィンドウの[テキストフィールド]に関して不具合が発生しますか。
それとも、一つのフレーム上で起こる現象でしょうか。また、入力不可になっている状態ではフォーカスは当たっていないかと推測しますが、マウスでクリックすればフォーカスが戻る状況でしょうか。それとも、入力不可になった後は解消することはできないでしょうか。
お気づきの点をもう少し詳しくお聞かせいただければ幸いです。
どうぞよろしくお願いいたします。MZPlatformユーザー会キーマスターお問い合せありがとうございます。方法としては2つあります。
一つは[オブジェクトバッファ]コンポーネントを使う方法です。[オブジェクト生成]で生成したオブジェクトを設定した後、メソッド名を指定して「メソッド起動」を行うことによって、そのコンポーネントクラスのメソッドを実行することができます。例えば[ラベル]コンポーネントを[パネル]に追加する場合には「addComponent」を起動します。
ただし、[オブジェクト生成]で生成したオブジェクトにはコンポーネントIDは自動的には付きませんので、重複しないIDを付けるには工夫が必要です。またあくまでオブジェクトの扱いですので、IDが0のままでも問題ないということになります。
サンプルファイルにパネルにラベルを追加する処理等を追加しましたので、ご参考になれば幸いです。もう一つは[動的アプリケーション構築]コンポーネントを使う方法です。こちらは「コンポーネントを生成する」と自動的にIDが振られ、アプリケーションビルダー編集画面上に生成したコンポーネントが表示されます。また、生成したコンポーネントへのイベントや起動メソッドの設定も可能です。サンプルの「DynamicApplicationSample.mzax」をどうぞご覧ください。
コンポーネント追加後上書き保存すると、[オブジェクト生成]で生成したオブジェクトは残りませんが、[動的アプリケーション構築]で生成したコンポーネントは残るのでお気を付けください。以上ご検討いただき、ご不明な点がございましたら、再度ご連絡いただければ幸いです。
MZPlatformユーザー会キーマスターお問い合せありがとうございます。
Bの方のアプリケーションでは、演算子のボタンを押したタイミングで表示が「0」になってしまいます。演算子のボタンを押すと複合コンポーネントの公開メソッド「××押下処理を呼び出す()」が実行されます.これは[××押下サブルーチン]のアクションイベントが発生し、[算術演算子格納変数]に「演算子を設定する」処理です.
[算術演算子格納変数(ID:33-21)]に「演算子を設定する」処理が行われると、データ設定イベントが発生し、処理が呼び出されますが、今回はこのデータ設定イベントに[KEY:初期化サブルーチン(ID:33-24)]が接続されていたため、「0」になっていました。正しくは[KEY:演算実行サブルーチン(ID33:23)]を接続します。今回はエラーが出ている訳ではないので、『デバッガー』を使っても見つけにくいかと思いますが、怪しい箇所、例えば「××押下処理を呼び出す()」の処理にブレークポイントを設定すると、
段階を追って確認することができます。デバッガーの詳しい使い方については\MZPlatform\3.6_64\docs\manualフォルダの中の『デバッガ操作説明書』をご覧ください。また、右側の接続先コンポーネント上で右クリックし、「接続コンポーネント宣言位置検索」を選ぶと、起動メソッドを 呼び出されている コンポーネントの宣言位置を検索して表示されます。左側コンポーネント上で右クリックして「メソッド起動位置検索」を選ぶと、一覧となってそのコンポーネントのメソッド起動の情報が表示されます。
以上ご参考になれば幸いです。ご不明な点等ございましたら、どうぞ再度ご連絡ください。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
[CSV出力]コンポーネントの「属性情報設定」画面を開くと、「Header Enabled」の項目があります。この項目の「true/false」を切り替えることによって、列ヘッダーを出力するかどうか設定することができます。また、メソッド「setHeaderEnabled(boolean)」でも設定が可能です。
以上、ご不明な点がございましたら、再度ご連絡ください。MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
ご連絡いただいたように[タイマー]は動作しているのですが、Webアプリケーションの場合、ユーザー操作に対して画面が再描画されるものの、内部の処理では再描画がされません。したがって、タイマーが動いても表示が変わらないという状態になります。大変ご不便をお掛けいたしますが、現在のところMZアプリのイベントによるWeb画面更新はできません。次善の策となりますが、Google chromeでは「Easy Auto Refresh」Microsoft Edgeでは「Auto refresh for Edge」といった、画面を定期的に自動で再描画するアドインを使うなど、Webブラウザー側で対処することが考えられます。
以上ご不明な点がございましたら、どうぞ再度ご連絡ください。よろしくお願い申し上げます。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
[タイマー]コンポーネントは開始すると他の処理とは別スレッドで動きますので、途中エラーが発生しても[タイマー]の処理は止まりません。
これを利用して、データベース接続直前に[タイマー]の開始、直後に[タイマー]を停止する処理を追加し、エラーが発生した場合は[タイマー]は動き続けるといった処理が考えられます。また、イベント接続先コンポ―ネントの「起動モード」には、「通常起動」「エラー発生時起動」のモードがあります。「エラー発生時起動」はエラーが起こった時のみに行いたい処理に設定します。ただし、「エラー発生時起動」を設定すると、同じイベントに繋がっている処理でエラーが発生しても、エラーダイアログが表示されません。
「Finally起動」はエラーの発生有無とは関係なく必ず行いたい処理を設定します。大変簡単ですが、データベースアクセスのサンプルファイルを基に、動作を確認するためのファイルを作成しましたので、ご覧ください。
ご不明な点がございましたら、再度ご連絡いただければ幸いです。
よろしくお願い申し上げます。MZPlatformユーザー会キーマスター遅くなりましたが、雛形のファイルを読み込んで出力する簡単なサンプルファイルを作成しましたので、ご覧ください。
一点お願いしたいのが、雛形のファイルに空白があり、かつ「標準」「文字列」以外のセル書式が設定されていると、XlSX形式のファイルではうまく読み込めない恐れがあります。
ご用意される雛形にダミーの値の設定をお願いいたします。
読み込み時に値をMZのテーブル上に設定しなければ、処理に影響は無いかと思います。
読込用の雛形ファイルも同梱いたしましたので、それでご確認ください。ご検討いただき、ご不明な点がございましたら、ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。 -
投稿者投稿