過去の桐井戸端BBS (桐ver.8)
3959 レポートで1ページに収める 大谷 1999/12/24-16:42
V8を使っています。
職員名簿で、職名、氏名、住所、電話番号等をレポートで印刷したいのですが、
データ行が何行であっても、1ページ以内に収めるっていう方法はないものでしょうか。

いくつかの支店で共通して使用したいのですが、支店によって職員の数が違います。
(30人くらいから120人くらい)
それぞれの支店でレポートの「行の高さ」を調節すれば問題ないのですが、桐に長けていない人もいるので、
システム(一括処理やレポートのなかで)で作れないかと思っています。
(120人印刷できるレポートに30人しか印刷しないと紙の下がだいぶん余ってしまうので。)

何種類かの行の高さの違うレポートを作って、職員数を計算して、30人まで
なら「名簿0030.rpt」、50人までなら「名簿0050.rpt」、80人までなら「
名簿0080.rpt」を使うというやりかたにしたんですが、

たとえば、
条件 (&件数<30) &レポート名="名簿0030.rpt"
条件 (&件数<50) &レポート名="名簿0050.rpt"
条件 (&件数<80) &レポート名="名簿0080.rpt"
レポート印刷 &レポート名

長い住所など2行にまたがってしまうと、件数だけで計算しても思うように印
刷されません。(住所だけならなんとか計算できるかもしれませんが、たまに
名前(外国人)や役職名なども長くなる。)

「過去のBBSの『総頁数をだすには』」あたりを拝見するに、ちょっと難し
いかなと思っていますが。
いい方法がありましたら教えて下さい。

3960 Re:レポートで1ページに収める 悲しげ 1999/12/24-17:20
記事番号3959へのコメント
どもっ、大谷さん、
おそらくは一覧表rptだと思うのですが、要するに1枚分が、あふれ
改行含めて何行になるか、と云うことですよね。
1)1件にデフォルトで何行割り当てているかは判りませんが、1件
当たりの最小行数を1行としておきます。
2)禁則処理は無いものと仮定します。
3)あふれ改行が発生する可能性がある項目を[住所]とします。
4)使用フォントは非プロポーショナルフォントとします。そのフォ
ントで[住所]をrptに定義した際に、最大n桁入るものと仮定します。
5)項目[行数]を増設します。項目計算式は
    #ceil(#桁数([住所])/n)
こうしておくと、[行数]には、n桁以内ならば1、それを超えると2以上
の値が入ります。あとは、この[行数]の合計を出せば総行数が出ると
思います。
なお、[住所]が空の場合には0行と出るかもしれませんので、そのよう
な場合には[住所]にスペースを1個入れておく等の手立てが必要かも。

あふれ改行が発生する項目がもうひとつあるとすれば、その項目につい
ても同様に[行数2]項目などで算出し、最後に#大関数で大きい方を取
り出します。
#文字数ではなく#桁数を使っているのは、番地等で半角文字があるかも
しれないからです。

次なる方法としては、[住所]の印字において、フォントを小さくすれば
1行に収まりそうなら、オブジェクト属性で印字属性式を設定し、桁数
に応じてフォントサイズを変更するやり方もありそうです。

3977 Re:レポートで1ページに収める 佐田 守弘 1999/12/26-02:25
記事番号3960へのコメント
大谷さん
悲しげさんから詳しいコメントがありますが、私もほぼ同じ様な事を考えてみ
ました。
その前にですが、一般的な方法として、レコード数にかかわらず常に1ページ
に収めるような印刷をする事は、不可能です。ですから、大谷さんも書かれて
いる通り、レコード数に応じてレポートを使い分けるしかありません。

●「#表示幅行数」関数
あまり見向きもされていない関数ですが、「#表示幅行数」という関数がありま
す。これは、ある文字列を指定した桁数で印刷する時の行数を返す関数です。
ただし、この関数は完璧なものではありません。
Windows環境で「桁数とは何なのか?」がやや不明な事と、強制改行文字やあ
ふれ改行文字も考慮してくれない様です。ですから、求められる値は、悲しげ
さんが書かれている方法で行数を求めるのと変わりないと思います。

●桁数の計算
固定ピッチフォントであれば、文字フォントのポイント数
テキストオブジェクトのサイズは、レポートの定義画面で[表示]のタブで調べ
られます。固定ピッチフォントであれば、フォント数で割る事により、桁数が
研鑽できます。ポイント数とミリ数との関係は、確か1point=0.31mmだったと
思います。少し前の過去ログで、デジタル版組み技術の専門家の平田さんのコ
メントがありました。

佐田守弘(KS-00119)

3979 訂正:ポイント数とミリ数 佐田 守弘 1999/12/26-03:45
記事番号3977へのコメント
前述のコメントで、ポイント数とミリ数の換算値が間違っておりました。訂正し
ます。

1Pointとは、72分の1inchで、約0.3527mmに相当します。
ただし、日本で採用されている「アメリカンポイント」では、1Pointは
0.3514mmだそうです。

詳細は、平田さんの「デジタル時代の組版術」
 http://www2.itjit.ne.jp/~hirata/index.html
と、その中の「(資料) 文字サイズ換算早見表」
 http://www2.itjit.ne.jp/~hirata/tips2_size.htm
に掲載されています。

佐田守弘(KS-00119)

3980 Re:訂正:ポイント数とミリ数 しましま 1999/12/26-04:38
記事番号3979へのコメント
>1Pointとは、72分の1inchで、約0.3527mmに相当します。
>ただし、日本で採用されている「アメリカンポイント」では、1Pointは
>0.3514mmだそうです。


桐ver.8のオンラインマニュアル(APPENDIX - 単位)にも記載してありました。
そこに掲載されている単位換算表によると、

1(point)=0.035277(cm)

との事です。

3993 Re:レポートで1ページに収める 大谷 1999/12/27-14:28
記事番号3960へのコメント
皆さんありがとうございました。
下記の方法で解決することにしました。

複数の行数のレポートを用意し、行数が2行にまたがるものについては、フォントを小さくする。

これからもよろしくお願いします。


戻る