作成した返信
-
著者投稿
-
MZPlatformユーザー会サイト管理者
ご質問内容の確認ですが、帳票に含まれるテーブル要素の各列の幅をテーブル格納変数に入れたいということでしょうか。
テーブル格納変数には、各列の幅を入れる機能がありません。理由としては、テーブル格納変数はテーブル形式のデータを入れてその内容を編集する用途であり、列幅はテーブルの表示に関するデータだからです。
もし帳票要素から表示に関するデータも含めて取り出して扱いたい場合は、画面のテーブルコンポーネントをお使いください。これを画面に表示せず、列幅を含めたデータを保持して処理することができると思います。
もしくは、列幅を保持するリスト格納変数を追加して、リストデータとして管理する方法も考えられます。
MZPlatformユーザー会サイト管理者Excel連携機能と呼んでいるものは「JDBC-ODBCブリッジ」と言いまして、最新のJavaからはすでに削除されていますため、MZプラットフォームの標準機能としては今後利用することができなくなります。JDBC-ODBCブリッジ機能を有するライブラリを購入すると利用できるかもしれません。
ところで、解決策をお試しいただいたようですが、前提が確認できておりません。
MZ Platform 3.6は32ビット版を使用しているでしょうか。32ビットと64ビットが混在しているとつながらない事例が多いようです。すべて32ビットにしてもつながらない場合は、32ビットのODBCが動作していないことが考えられますが、これ以上はこちらも経験があるわけではないので、調査に時間が必要となります。
MZPlatformユーザー会サイト管理者おそらく過去の質問と同じ状況だと思いますので、下記リンク先の内容をご確認いただけますでしょうか。解決できない場合は再度お問い合わせください。
https://ssl.monozukuri.org/mzplatform/forums/topic/エクセル連携導入%ef%bc%88派遣管理%ef%bc%89-%ef%bc%92のエラーについ/
なお、既存のExcelファイルを開く用途であれば、Excelファイルアクセスコンポーネントの方が良いので、そちらもご検討ください。Excel連携の機能は今後使えなくなる予定です。
MZPlatformユーザー会サイト管理者確かに、印刷プレビュー画面で編集可の状態にしている場合、テーブルの列幅が変更できて、もし変更すれば次回印刷時に変更後の列幅で表示されることになります。
残念ながら、印刷プレビュー画面表示中に、列幅を戻すような機能はありません。対処方法の一つとして、列幅が変更できる状態で常に列幅の初期値を設定してからプレビュー画面を表示することは可能です。帳票のサンプルを修正してテーブル列幅の初期値を設定する処理を追加したMZアプリのZIPファイルを添付しますので、ご参照ください。
帳票コンポーネントのメソッド「setEditPaperElement(int)」でメソッドによる編集対象をIDで指定して、それから「setEditTableElementColumnWidth(int,float)」で列位置と列幅を必要な数だけ指定すればそのような処理が実現できます。
指定する帳票要素のIDは、帳票編集画面で左側のツリー表示で上から0,1,2…の順の数字で、右側の画面で選択するとコンポーネントの左上にその番号が表示されます。
列幅は一つずつ指定して実行してみて、適切な値を調整することになります。添付ファイル:
MZPlatformユーザー会サイト管理者テーブルから列データをリスト形式で取得して、「基本統計処理(数値)」コンポーネントを使うと良いと思います。これはコンポーネント追加メニューの「処理部品>統計」に含まれています。渡した列データの型が数値でも文字列でも、数値に変換して無効な値は無視して計算してくれます。
基本統計処理(数値)コンポーネントの使い方は、「集計対象データを設定する(PFObjectList)」でデータを設定し、その後で必要なメソッドを呼び出します。ここでは「最大値を取得する()」と「最小値を取得する()」になります。
他への回答でその流れがわかるサンプルを添付してありますので、必要に応じて下記リンク先をご覧ください。
https://ssl.monozukuri.org/mzplatform/forums/topic/加算コンポーネントについて/#post-6023MZPlatformユーザー会サイト管理者こちらでも確認できました。他の事例で列を隠すことはよくありますが、行を隠すことは今まで試していませんでした。ご指摘ありがとうございます。
調べたところ、現状として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文字からのバイト値変換はこれでできることがわかりました。ご確認いただけますでしょうか。
添付ファイル:
-
著者投稿