過去の桐井戸端BBS (桐ver.9)
18066 タイルレポート印刷で奇数、偶数で開始位置を指定したい まさき 2002/11/27-08:05
桐V9のレポート印刷でご指導ください。

新機能として、タイル印刷開始位置が指定できるようになったようですが、
奇数、偶数で、開始位置を指定したいのですが
奇数、偶数の条件をどのように設定すればいいのでしょうか?
18067 Re:タイルレポート印刷 まさき 2002/11/27-08:10
記事番号18066へのコメント
表  "印刷"
&部数=[部数]

&部数が奇数であれば 名札1へ移動
&部数が偶数であれば 名札2へ移動としたい。

名札 1
 レポート印刷 "タック",繰り返し数=&部数,タイル開始位置=1

名札 2
  レポート印刷 "タック",繰り返し数=&部数

この一括の
&部数が奇数であれば 名札1へ移動
&部数が偶数であれば 名札2へ移動としたい。
部分をご指導ください。
よろしくお願いします。

18073 Re:タイルレポート印刷 うにん 2002/11/27-12:34
記事番号18067へのコメント
>表  "印刷"
>&部数=[部数]
>
>&部数が奇数であれば 名札1へ移動
>&部数が偶数であれば 名札2へ移動としたい。
>
>名札 1
> レポート印刷 "タック",繰り返し数=&部数,タイル開始位置=1
>
>名札 2
>  レポート印刷 "タック",繰り返し数=&部数

偶数とは、2で割ると余りが0という意味なので、
分岐 (#MOD(&部数,2)=0)) 名札2

ですが、もしこれだけなら、開始位置を変数にしたほうが分岐しなくていいので簡単かもしれません。

開始位置=1だと指定する意味がありませんが?
例えば「部数が奇数のときだけ1枚分空ける」ような場合

&開始位置=#MOD(&部数,2)+1
*偶数なら1,奇数なら2になる
レポート印刷 "タック",繰り返し数=&部数,タイル開始位置=&開始位置

でできるんじゃないでしょうか。

18074 Re:タイルレポート印刷 まさき 2002/11/27-15:10
記事番号18073へのコメント

>&開始位置=#MOD(&部数,2)+1
>*偶数なら1,奇数なら2になる
>レポート印刷 "タック",繰り返し数=&部数,タイル開始位置=&開始位置

うにんさん、ありがとうございます。
ご指導いただいた上記の内容にし、印刷しましたところ

1行目に印刷部数1枚
2行目に印刷部数2枚
3行目に印刷部数3枚 と入力したところ

1行目は 1行空で送り、2枚目に印刷
2行目は 続けて2枚印刷しました。
3行目は 1行空送りし、3枚印刷しました。
以上のようになりました。
が1行目と3行目の空を無くすことはできるのでしょうか?
よろしくご指導ください。

18075 Re:印刷出力結果 正木守 2002/11/27-15:33
記事番号18074へのコメント
この印刷結果はこちら↓

18076 Re:タイルレポート印刷 うにん 2002/11/27-15:43
記事番号18074へのコメント
>1行目に印刷部数1枚
>2行目に印刷部数2枚
>3行目に印刷部数3枚 と入力したところ
>
>1行目は 1行空で送り、2枚目に印刷
>2行目は 続けて2枚印刷しました。
>3行目は 1行空送りし、3枚印刷しました。
>以上のようになりました。
>が1行目と3行目の空を無くすことはできるのでしょうか?

「タイル開始位置」というのは、空きをつくるためのパラメータですから??
たまたま横分割のないレポートなので「1行」空送りになってるのだと思いますが。
開始位置=1で1枚印刷したあと、「同じ用紙に」開始位置=2で3枚印刷すると無駄がない、
というような使い方を想定した機能のはずです。
「同じ用紙に」印刷するのには、レーザープリンタならもう一度同じ紙を通したり、
ドットプリンタなら巻き戻したりを「手作業」でやるのはどうにもならないと思います。

本当に「1枚」だけ印刷したいならしょうがないですが、「1枚」印刷するレコードが何件もあるなら、
まとめて印刷すれば無駄が出るのはレコード数が奇数だった場合だけ(確率は1/2+α?)なので、妥協してはどうでしょうか(^^;

本当に「1枚」だけなら、桐でなく任意サイズの指定できるワープロか何かにデータを書き出して
印刷した方が楽かも。差込印刷って今でもあるのかな?

18079 Re:他の印刷方法(ご参考) MSF 2002/11/27-19:37
記事番号18066へのコメント
まさきさん、はじめまして。
No.18029のツリーからずっとみて、やりたいことを整理しますと、
タックシール(荷札かな?)で、横1面の連続用紙があって、
そこへ、レコード毎に指定した枚数で印刷をしていきたい。
しかし、天地40ミリのタックシールなので、送りサイズは、
最低、縦2面付のレポートとして定義しなければならない。
とすると、指定した印刷枚数が、偶数の時はよいが、
奇数になると、どうしても空白のシール途中にできてしまう。
これがもったいない。・・・といった感じでしょうか?

上記のような場合、
レコードの並び順は、個数(印刷指定枚数)がランダムに並んでいて、
複数件のレコードの荷札印刷を、先頭レコードより順に、
印刷していくような流れになっていると思われますが、
このレコードの並び順は、重要ですか?
たとえば、送り状とセットにするのに順番が狂うとまずいとか?

単純に思いつくのは、うにんさんも書かれている通り、
個数で絞り込んで、レコード毎ではなく、その個数毎に印刷を掛ける方法。
補集合で順次絞り込んで、レコードが無くなったら終了する。
この場合、レコードの総個数が奇数の場合、
各個数の最後の1枚だけが空白となりますし、個数毎に絞り込みますから、
当然レコードの順番も狂うことになってしまいます。

他の方法として、別に作業表を用意する方法もあります。
印刷したい個数分のレコードを、追加書き出しした表を印刷対象にして、
一気に印刷を掛ける方法です。
ただしこの方法ですと、レコードの印刷数によっては、
膨大なディスク容量が必要となる可能性もありますし、
処理速度も遅くなるであろうと思われます・・、
(最近のパソコンはスペック高いですから問題ないかとも思いますが・・)

たとえば、

Aを1個
Bを2個
Cを3個
Dを1個
Eを3個
と印刷したい場合、

[データ][個数]
  A    1
  B    2
  B    2
  C    3
  C    3
  C    3
  D    1
  E    3
  E    3
  E    3

といった具合に順に追加で印字データを書き出した作業表を作成し、
全レコードを、繰り返し数=1で印刷指定する方法です。
これだと、シールの無駄はなくなるかと思われますが・・・、
いかがでしょうか?

それでは。


18081 Re:他の印刷方法(ご参考) まさき 2002/11/27-20:56
記事番号18079へのコメント
MSFさん、ありがとうございます。
私も、今チャレンジしている方法がだめなら
印刷部数レコードを出力する方法でないと・・・・。
と考えていました。

やはりMSFさんからご指導いただいた方法に切り替えた方がいいようですね!
検討します。

戻る