フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
こちらでも確認できました。他の事例で列を隠すことはよくありますが、行を隠すことは今まで試していませんでした。ご指摘ありがとうございます。
調べたところ、現状としてMZではなくJava側の制約でテーブルの行高さを0に設定することができないようです。メッセージ通りで1は設定可能ですので、それでもよければ1としてください。もしくは、隠さず行を塗りつぶすなど、他に代替案があればお試しください。
やはりどうにかして特定の行を表示しないようにしたい場合、行高さを0にできない現状では、画面に表示するテーブルと実際に扱いたいテーブルデータを別にして、隠したい行を削除したデータを画面に表示するという方法が考えられます。別に管理するには、データを変数などに入れておいて、それから複製したデータを画面に表示して行を削除するという流れになります。
以上、ご検討いただけますでしょうか。
MZPlatformユーザー会キーマスター上記で回答した通りで、ご覧いただいた資料がJavadocと言いまして、ソースコードのコメントから自動出力される資料です。Javadocではprotectedメソッドも出力されてしまっていますが、ビルダーからそれを呼び出すことはできません。他のメソッドの使用をご検討ください。
MZPlatformユーザー会キーマスターお知らせ頂いた件、データベースへ接続する際の文字コード指定が不適切であったために発生した動作不正と考えられます。
金型履歴管理システム起動後、画面右上の「データベース接続設定…」ボタンをクリックすると、接続設定画面が表示されます。そのURL欄の末尾の「SJIS」を「MS932」と書き換えて「接続」ボタンをクリックし、動作をご確認ください。
この動作不正は常に発生するわけではないということもあり、これまで見過ごしておりました。ご報告くださいましたこと、感謝いたします。
さて、イベント番号の使い方等につきましては、複合コンポーネントチュートリアルに記載がございます。また、金型履歴管理システムを改造してお使いになりたいということであれば、金型履歴管理システム作成手順書をご覧になるのがよろしいかと存じます。こちらは、サンプルとほぼ同等機能のアプリケーションを作成するチュートリアルとなっております。このほか、購買管理システムアプリケーション作成チュートリアルも参考になると思います。
MZPlatformユーザー会キーマスターマニュアルとはJavadocでしょうか。Javadocではprotectedメソッドが自動的に記載されてしまいますが、MZでビルダーから呼び出せるメソッドはpublicメソッドのみになります。
リスト格納変数で要素が取り出せるかどうかは、要素位置が0以上要素数未満であることを調べることになります。
MZPlatformユーザー会キーマスター残念ながら、逆のメソッドは作成しておりません。
現状の機能でできるかどうかは、送りたい2バイトデータの状況次第と思います。固定のデータであれば、前述の「setPacketValueAt(int,String)」で別々に設定していただければ送れます。
固定でなくとも、最終的に文字列としてFFとAAに分解さえできれば、同様に送れます。使えそうな機能として整数(Integer)格納変数には「toHexString(int)」メソッドがありますが、先頭の0が出てこないなど、あまり使いやすくありません。関連する掲示板での投稿が下記リンク先にあります。
https://ssl.monozukuri.org/mzplatform/forums/topic/整数と16進数の変換メールより転載/また、各変数コンポーネントからバイト配列が取得できることがわかりましたので、サンプルを添付します。この方法も、値によっては1バイトになるなど、あまり使いやすくありません。一方、1文字からのバイト値変換はこれでできることがわかりました。ご確認いただけますでしょうか。
添付ファイル:
MZPlatformユーザー会キーマスターご提案の通り、スクリプト実行を使えば可能ですので、現状ではそれが最善と思います。
取り急ぎテストしてみましたが、今後追加するメソッドは下記のようになると思います。
void setPacketValueAt(int, char)MZPlatformユーザー会キーマスター残念ながら、現状は文字による値指定ができません。今後の機能追加を検討します。
現状は文字コード表で対応する整数を指定をするしかないので、大文字のXであれば88になるかと思います。
MZPlatformユーザー会キーマスターご質問の意図から少々外れてしまいますが、もし送信先がバイト配列でデータを受け取るときと、バイト値を連続で受け取るときで反応が同じであれば、バイト値を連続で送信する方が簡単です。つまり、メソッド「ポートにバイトデータを出力する(int)」を複数回呼ぶということです。このメソッドは引数がintなので、その変換だけは必要になります。
ここから本題ですが、バイト配列データを出力するメソッドは日本語化されていますが、そのバイト配列を作成するためのメソッドは日本語化されていません。全メソッド対象にするとお選びいただけます。メソッド「makePacketToSend(int)」でサイズを指定してバイト配列を作成します。このメソッド戻り値がバイト配列になっているので、この後でメソッド「ポートにバイト配列データを出力する(byte[])」の起動で引数にメソッド処理結果を渡します。また、出力する前に配列の中身を与えるメソッド「setPacketValueAt(int,int)」か「setPacketValueAt(int,String)」を必要回数実行します。最初の引数は配列のインデックスで、次の引数が値を指定します。値をintで指定する場合は、前述と同様です。値をStringで指定する場合は、16進数の文字列表現を与えます。例えば「02」や「A0」など2文字の16進数文字列を指定すると、内部で変換して配列に入れてくれます。
わかりにくいと思いますので、ご不明な点があれば再度お問い合わせください。
MZPlatformユーザー会キーマスターご指摘の通りなのですが、現状は残念ながらフォントを一括で変更する機能を提供できておりません。状況に応じてフォント変更の手間を減らす方法が変わりますので、個別にご質問いただければ検討して回答いたします。
例として、同種のコンポーネントを作成するたびに属性情報設定でフォントを変更するのが手間だと思います。同じフォントのラベルをたくさん作る場合は、一つ作成してフォントを設定して、そのコンポーネントをコピーペーストで増やしていくと多少手間が減らせると思います。
MZPlatformユーザー会キーマスターご質問への回答としては、正規表現で「(」は単なる文字ではなく意味を持つので、単なる文字として使用するために「\(」と書く必要があります。同様に「)」も「\)」と書く必要がありまして、これをエスケープと呼びます。正規表現で意味を持つ記号は他にもあるので、エラーが出たらエスケープをお試しください。
正規表現は難解なので、使いこなすのは簡単でありません。他にもご不明な点があればお問い合わせください。
-
投稿者投稿