作成した返信
-
著者投稿
-
MZPlatformユーザー会サイト管理者
ご指摘の問題について、こちらでも確認できました。
列幅や行高さの設定は、対象とするテーブルデータの列数や行数が異なった場合に一度クリアされてしまうようです。例えば、テーブルデータが空の状態で一度でも印刷プレビュー画面を表示するとご指摘のような状態になると思います。
列設定のクリアを回避するには、作成している処理の状態に応じて下記のような工夫をお願いします。もし列数が常に変わる状態であれば、別の工夫が必要になります。
帳票のテーブル要素に表示するデータが画面のテーブルであれば、データをクリアするときの処理を「全行列を削除する()」から「全行を削除する()」に変更すると、列数の変化を回避できます。テーブル格納変数から取得していれば、空のテーブルが設定されてから列の追加まで確実に実行されるようにすると、列数を維持できます。その他の場合であれば、具体的にご質問ください。
一方、行設定のクリアを回避するのは難しそうです。おそらく、行数は常に変化して、繰り返し印刷でページ数も変わりますよね。その場合は、かなり面倒ですが帳票要素の動的設定を使うしかありません。帳票コンポーネントの日本語化されていないメソッドで、「setEditPaperElement(int)」と「setEditTableElementRowHeight(int,float)」を使います。
サンプルを修正した添付のZIPファイルを展開して、ビルダーで処理をご覧ください。
ビルダーで帳票編集画面を開き、テーブル要素を選択すると、要素の左上に数字が出ます。これが帳票要素のインデックスになります。「setEditPaperElement(int)」に対して帳票要素のインデックスを指定すると、その帳票要素が編集対象に設定されます。その後、編集対象に対する適切なメソッドを起動すると、帳票要素を動的に編集できます。「setEditTableElementRowHeight(int,float)」で行位置と行高さを指定することで、実行時に行高さを指定できます。添付の処理では、繰り返し計算で複数行の行高さを指定しています。
ただし、この方法でも繰り返し印刷では後ろのページで正しく反映されない場合があるようです。プレビュー画面を一度閉じて再度実行するとうまくいくようですが、まずはお試しいただけますでしょうか。
添付ファイル:
MZPlatformユーザー会サイト管理者MZでは、テーブルの列ごとにセルの選択リストを設定することができます。制限としては、同じ列に属する全てのセルが同じ選択リストを持つことになり、セルごとに個別の選択リストを設定することはできません。それで良ければ可能です。下記がその方法になります。
まず、データベースからSQL文の実行で取得した結果をテーブル格納変数に設定します。
続いて、テーブル格納変数のメソッド「列データリストを位置指定で取得する(int)」を使って、選択肢のリストを取得します。引数は0から始まる列位置で、SQL文で指定したフィールドの順に列が構成されているので、必要な位置を指定してください。
最後に、テーブルのメソッド「指定列に選択項目リストを設定する(PFObjectList,int)」を使って、上記の選択肢のリストを指定の列位置に設定します。
MZPlatformユーザー会サイト管理者これまでの回答から、行高さの変更について訂正します。混乱をさせてしまい、申し訳ありません。
再度確認したところ、各行とも独立に高さを変更することが可能でした。縦余白を増やさずとも、テーブルの各行の境界の罫線をドラッグすることで、上側の行高さを増やすことができます。その際、「テーブル高さ自動調整」にチェックが入っていると、テーブルの高さも同時に増えます。
なお、行高さを変更すると、文字位置の上下方向も意味を持つようです。合わせて訂正します。
問題点としては、マウスカーソルを罫線上に移動しても上下方向の矢印に変わらないことがあるため、行高さが変えられるかどうかがわからない状態になっています。列幅変更も同じ状況でした。適切な場所でドラッグをすると、行高さが変わると思いますので、お試しいただけますでしょうか。
MZPlatformユーザー会サイト管理者現状の機能(3.6)では、縦余白は20ポイントが上限で、テーブル高さの変更は最後の行高さだけが増えます。
テーブル描画設定の文字位置の上下方向については、ラベルの場合に意味を持つ選択肢がそのまま表示されていますが、テーブルでは特に変わりがないようです。
MZPlatformユーザー会サイト管理者現状の機能では、縦余白を増やす以外に行高さを増やすことはできないようです。
また、印刷プレビュー画面でテーブルの高さを増やした場合は、最後の行の高さだけが増えると思いますが、それでも良いでしょうか。いずれにしろ、上記の設定変更を実施する場合は、ビルダー上で設定を変更した後にMZアプリを保存しないと実行終了時にその設定が失われますので、ご注意ください。
MZPlatformユーザー会サイト管理者「前回まで」のところの質問が理解できませんので、回答できません。
「復元について」は、そもそもコマンドの内容が違うようです。
まずはそれぞれで生成されたファイルの内容を比較してみてください。こちらでは確認できません。MZPlatformユーザー会サイト管理者MZでJavaのヒープ領域を増やすためには、インストールフォルダ内etcフォルダのPlatform.iniを編集して、MaxHeapSize=2048mなどに変更して実行します。
しかし、32ビット版はJavaの制限でヒープサイズが1GB程度しか使えないので、実質変わりません。ヒープ領域を増やしたい場合は、64ビット版をお使いください。もちろん、PC側の実メモリの空きが充分にあることが必要です。
MZPlatformユーザー会サイト管理者コンポーネントの組み合わせで実現可能です。
添付は、コンポーネント格納変数で画面の画像を取得して、画像格納変数でクリップボードにコピーする例です。コピーした後は、Excel等でメニューやショートカットから貼り付け操作を実行すれば、画像が直接貼り付けられます。
MZPlatformユーザー会サイト管理者実はフレームのサイズ変更があまり簡単ではありません。
添付のように、寸法(Dimension)を作成してサイズを指定する「setPreferredSize(Dimension)」と「pack()」の組み合わせでサイズが変わります。同様に、他のコンポーネントも「setPreferredSize(Dimension)」でサイズを指定する必要があります。MZPlatformユーザー会サイト管理者新規作成する場合は、前述のビルダー操作説明書に記述されているように、上部のメニューから「ファイル>新規作成>Webアプリケーション」を選択します。
-
著者投稿