MZ Platformとは › 掲示板 › MZプラットフォームユーザー会掲示板 › 帳票印刷について
- このトピックは、 12 返信、 2 投稿者 です。最終更新日: 5 年, 7 ヶ月 前 1261s-tateyama
-
著者投稿
-
2019年4月3日 at 11:13 AM #56081261s-tateyama一般参加者
お世話になります。
帳票印刷についてですが、印刷した用紙に手書きで内容を追加するためA4横で5行・13列で印刷しようと思いテーブル描画設定で縦余白を最大の20ポイントに設定しましたが5行の幅が狭くもっと行幅を広げたいので印刷プレビュー画面で行の幅を広げるとそれ以降はその幅で印刷されるのですが翌日もしくは何かのタイミングで元に戻ってしまいます。
縦余白を20ポイントにしているのが問題でしょうか?
自分的には、繰り返し印刷表示行数を『5』に設定したら、帳票レイアウト編集で設定している
エリアに5行設定されると良いのですが?
A4横で5行・13列で印刷をするにはどこを設定すれば良いのでしょうか?
御教授お願いします2019年4月3日 at 11:54 AM #5610MZPlatformユーザー会サイト管理者現状の機能では、縦余白を増やす以外に行高さを増やすことはできないようです。
また、印刷プレビュー画面でテーブルの高さを増やした場合は、最後の行の高さだけが増えると思いますが、それでも良いでしょうか。いずれにしろ、上記の設定変更を実施する場合は、ビルダー上で設定を変更した後にMZアプリを保存しないと実行終了時にその設定が失われますので、ご注意ください。
2019年4月3日 at 1:27 PM #56111261s-tateyama一般参加者お世話になります。
縦余白を増やす以外に行高さを増やすことができないなら
縦余白は20ポイント以上入力することは出来ないのでしょうか?
これに関連して、この縦余白とテーブル描画設定の文字位置『中央』にした場合の関係は
どの様になっていますか?
印刷プレビュー画面で、最後の行の高さだけが増えるのも困ります
5行全部が増えてもらいたいです。
念のためにMZPFバージョンは3.6です。以上よろしくお願いします。
2019年4月3日 at 1:46 PM #5612MZPlatformユーザー会サイト管理者現状の機能(3.6)では、縦余白は20ポイントが上限で、テーブル高さの変更は最後の行高さだけが増えます。
テーブル描画設定の文字位置の上下方向については、ラベルの場合に意味を持つ選択肢がそのまま表示されていますが、テーブルでは特に変わりがないようです。
2019年4月3日 at 2:20 PM #56131261s-tateyama一般参加者お世話になります。
縦余白が『20』ポイントが上限なら私がやりたいA4横5行(エリアに5行)はテーブル描画設定ではできないようですね
もし他の方法がありましたら御教授お願いします。2019年4月3日 at 2:40 PM #5614MZPlatformユーザー会サイト管理者これまでの回答から、行高さの変更について訂正します。混乱をさせてしまい、申し訳ありません。
再度確認したところ、各行とも独立に高さを変更することが可能でした。縦余白を増やさずとも、テーブルの各行の境界の罫線をドラッグすることで、上側の行高さを増やすことができます。その際、「テーブル高さ自動調整」にチェックが入っていると、テーブルの高さも同時に増えます。
なお、行高さを変更すると、文字位置の上下方向も意味を持つようです。合わせて訂正します。
問題点としては、マウスカーソルを罫線上に移動しても上下方向の矢印に変わらないことがあるため、行高さが変えられるかどうかがわからない状態になっています。列幅変更も同じ状況でした。適切な場所でドラッグをすると、行高さが変わると思いますので、お試しいただけますでしょうか。
2019年4月4日 at 11:14 AM #56171261s-tateyama一般参加者お世話になります。
1回帳票プレビュー画面で行高さ、列幅を調整し印刷確認しファイルを保存しても何かのタイミングで列幅が均等に行高さはセルの中の文字数に応じて変わってしまい 帳票プレビューのカラム描画設定が全てデフォルト描画に戻っています。プログラムの作り方に問題があるように思えますが原因が解りません。どの様な処理をした時にこの様な事象になるのでしょうか?2019年4月4日 at 1:38 PM #5618MZPlatformユーザー会サイト管理者ご指摘の問題について、こちらでも確認できました。
列幅や行高さの設定は、対象とするテーブルデータの列数や行数が異なった場合に一度クリアされてしまうようです。例えば、テーブルデータが空の状態で一度でも印刷プレビュー画面を表示するとご指摘のような状態になると思います。
列設定のクリアを回避するには、作成している処理の状態に応じて下記のような工夫をお願いします。もし列数が常に変わる状態であれば、別の工夫が必要になります。
帳票のテーブル要素に表示するデータが画面のテーブルであれば、データをクリアするときの処理を「全行列を削除する()」から「全行を削除する()」に変更すると、列数の変化を回避できます。テーブル格納変数から取得していれば、空のテーブルが設定されてから列の追加まで確実に実行されるようにすると、列数を維持できます。その他の場合であれば、具体的にご質問ください。
一方、行設定のクリアを回避するのは難しそうです。おそらく、行数は常に変化して、繰り返し印刷でページ数も変わりますよね。その場合は、かなり面倒ですが帳票要素の動的設定を使うしかありません。帳票コンポーネントの日本語化されていないメソッドで、「setEditPaperElement(int)」と「setEditTableElementRowHeight(int,float)」を使います。
サンプルを修正した添付のZIPファイルを展開して、ビルダーで処理をご覧ください。
ビルダーで帳票編集画面を開き、テーブル要素を選択すると、要素の左上に数字が出ます。これが帳票要素のインデックスになります。「setEditPaperElement(int)」に対して帳票要素のインデックスを指定すると、その帳票要素が編集対象に設定されます。その後、編集対象に対する適切なメソッドを起動すると、帳票要素を動的に編集できます。「setEditTableElementRowHeight(int,float)」で行位置と行高さを指定することで、実行時に行高さを指定できます。添付の処理では、繰り返し計算で複数行の行高さを指定しています。
ただし、この方法でも繰り返し印刷では後ろのページで正しく反映されない場合があるようです。プレビュー画面を一度閉じて再度実行するとうまくいくようですが、まずはお試しいただけますでしょうか。
添付ファイル:
2019年4月5日 at 1:46 PM #56211261s-tateyama一般参加者お世話になります。
サンプルプログラムでは、行高さは変わるのは確認できましたがこのプログラムを自分のプログラムに移植してもうまく動作しないのですがサンプルプログラムのサブルーチン『開始処理』『終了処理』は必須でしょうか?帳票レイアウト編集画面でにテーブルは1回削除して再セットしたのですが帳票コンポーネント『SetEdditTableElementRowHeight』のFloatの数値を変えてもプレビュー画面の行高さが変化しません
その他にテーブルデータを帳票にセットするところがあるのでしょうか?
念のためにプログラム添付いたしますよろしくお願いいたします。
2019年4月5日 at 4:33 PM #5623MZPlatformユーザー会サイト管理者まずはsetEditPaperElement(int)のところで、適切な帳票テーブル要素のIDを指定する必要があります。こちらのサンプルでは2か所あったので1と5でしたが、送っていただいたファイルでは19になっていましたので、19と入力してください。テーブル要素が1つだけなので、繰り返し制御も1回だけでよいです。また、テーブルが5行なので、繰り返し回数は5回にしないとエラーが出ると思います。
-
著者投稿
- このトピックに返信するには、ログインしてください。