過去の桐井戸端BBS (桐ver.8)
17869 タイル印刷で行(レコード)ごとに印刷部数を設定したい ばほん 2002/11/06-13:59
タイル印刷についてどうしてもわからないことが
ありますので書き込みします。

行ごとに部数を設定したいのですが?
どうすればいいのかと悩んでいます。

今は、3部あれば表の方でコピーして3行作っているのですが
例)
A番号 A名称 A日 A作者
A番号 A名称 A日 A作者   
A番号 A名称 A日 A作者

これを、表内に部数の項目を設けて
例)
A番号 A名称 A日 A作者 3

「3」をいれることによってタイルの方へ反映することができるようにしたいのです。
部数によっては、100部とかあったりしてわからなくなって、失敗したりするのです。
よろしくお願いします。
17872 Re:タイル印刷について 悲しげ 2002/11/06-19:31
記事番号17869へのコメント
どもっ、ばほんさん
これは一括処理を使うしかないように思えます。
特にタイルの場合は、会話処理でされているのと同様に行複写でデータを用意するのが無難でしょう。
と云う訳で、以下一例。
----------------------------------------------------
var 固有,長整数{&枚数,&i}
表 "某表.tbl",表番号=1
*表形式編集  /*枚数項目を訂正する場合とかで使える*/
書き出し 枠組み,"某作業表.tbl",終了状態=&実行リターン
表 "某作業表.tbl",表番号=2
編集表 1
繰り返し(.not #EOF)
 &枚数=[枚数]  /*枚数と云う項目があるとの仮定で*/
 行退避
 編集表 2
 繰り返し &i=1,&枚数
  行追加
  ジャンプ 行番号=最終
  行復旧 破棄=しない,終了状態=&実行リターン
 繰り返し終了
 編集表 1
 ジャンプ 行番号=+1
繰り返し終了
編集表 2    /*これは別表たる作業表です*/
*表形式編集  /*展開結果を確認したい場合とかで使える*/
レポート印刷 "某タイル.rpt",プレビュー=する,終了状態=&実行リターン
----------------------------------------------------
印刷は別表たる作業表から行わせています(元表のデータは不変)。
17876 Re:タイル印刷について ばほん 2002/11/07-09:02
記事番号17872へのコメント
悲しげさん
ありがとうございます。
早速参考にしたいと思います。

一括処理で、複数行を作るしかだめみたいですね。

複数行を作ると、件数が10万件とすぐに超えてしまい
処理が重くなるので100件を100行でするのではなく、
100件を1行にできる方法はないものでしょうか?

タイル印刷では、その1行が100件になって出てくるなんてあまいものはないですよね〜。
ほんと本が少ないしなかなか難しいですね。

ちなみに、桐Ver8SP6です。

17877 Re:タイル印刷について うにん 2002/11/07-12:37
記事番号17876へのコメント
>複数行を作ると、件数が10万件とすぐに超えてしまい
>処理が重くなるので100件を100行でするのではなく。
>100件を1行にできる方法はないものでしょうか?
>
>タイル印刷では、その1行が100件になって出てくるなんて
>あまいものはないですよね〜。

同じ枚数のものだけまとめてタイルの「繰り返し数」指定で印刷して、
それを枚数の種類だけ繰り返す一括処理を作ると、レコード数は元のままでできると思います。
半端になるところをどうにかしないと無駄な紙が多くなりますが、全体で10万件ならあんまり関係ないかも?
タイルの分割数にもよってきますが。

17878 Re:タイル印刷について 悲しげ 2002/11/07-13:42
記事番号17877へのコメント
どもっ、うにんさん

>同じ枚数のものだけまとめてタイルの「繰り返し数」指定で印刷して、
>それを枚数の種類だけ繰り返す一括処理を作ると、

なるほど、グーですね。と云う訳でちょっと試してみました。
----------------------------------------------
var 固有,長整数{&枚数,&i}
表 "某表.tbl"
表形式編集 ガイド="印刷枚数を変更可(且つ必要行を絞込みも可)"
&i=1
ジャンプ 行番号=1
繰り返し(.not #EOF)
 &枚数=#cond([枚数]>0,[枚数],1,1)
 絞り込み 行数=1
 レポート印刷 "某タイル.rpt",繰り返し数=&枚数,終了状態=&実行リターン
 絞り込み解除 1
 &i=&i+1
 ジャンプ 行番号=&i
繰り返し終了
----------------------------------------------
が、何だか全然うまく行きません。繰り返し数=部数として結果するみたいです。
どうして?
どうもこの辺りの仕組みが未だに判らないので、
私は単純に元データの行複写でこれまで対処してきたと云う。(^^;)
この際、この辺りの仕組みを知っておきたいです。

17879 Re:タイル印刷について natsu 2002/11/07-15:49
記事番号17876へのコメント
>一括処理で、複数行を作るしかだめみたですね。
>
>複数行を作ると、件数が10万件とすぐに超えてしまい
>処理が重くなるので100件を100行でするのではなく。
>100件を1行にできる方法はないものでしょうか?

大量の処理になれば、時間がかかるのはしょうがないのですが
印刷が多い場合の律速段階は、やはりプリンタでしょう

印刷する分だけのレコードを別表に書き出して
それを印刷している間に、次の印刷対象レコードを処理しておくと時間の節約にはなります。

次の一括ですが、(V8sp6です)
一括内のレポート印刷コマンドは編集対象表を印刷しますので
ここでは、"ラベル.rpt"にしてありますが、元々のレポートファイルを
指定してOKです。
一時処理用の表ファイルは、自動作成されます


変数宣言 固有,整数{&処理件数,&i,&j,&k=0}

表 "なんとか"
書き出し 枠組み,"ラベル"
&処理件数=#総件数

繰り返し &i=1,&処理件数
ジャンプ 行番号=&i
絞り込み 行数=1
分岐 ( [部数]=0 ),処理なし 
 繰り返し &j=1,[部数]
  書き出し 表,"ラベル",追加,* 
  &k=&k+1
    ケース開始
     ケース (&k=40)  /*40は、1枚の用紙中のタイル枚数です*/
      手続き実行 印刷処理()
      &k=0
      書き出し 枠組み,"ラベル"
     ケース その他
    ケース終了
 繰り返し終了
名札 処理なし
絞り込み解除
繰り返し終了
手続き実行 印刷処理()


手続き定義開始 印刷処理()
      表 "ラベル"
      レポート印刷 "ラベル",プレビュー=する
      中止 表 編集対象表
手続き定義終了



17883 Re:タイル印刷について うにん 2002/11/07-20:22
記事番号17878へのコメント
>>同じ枚数のものだけまとめてタイルの「繰り返し数」指定で印刷して、
>>それを枚数の種類だけ繰り返す一括処理を作ると、
>
>なるほど、グーですね。と云う訳でちょっと試してみました。
>----------------------------------------------
>var 固有,長整数{&枚数,&i}
>表 "某表.tbl"
>表形式編集 ガイド="印刷枚数を変更可(且つ必要行を絞込みも可)"
>&i=1
>ジャンプ 行番号=1
>繰り返し(.not #EOF)
> &枚数=#cond([枚数]>0,[枚数],1,1)
> 絞り込み 行数=1
> レポート印刷 "某タイル.rpt",繰り返し数=&枚数,終了状態=&実行リターン
> 絞り込み解除 1
> &i=&i+1
> ジャンプ 行番号=&i
>繰り返し終了
>----------------------------------------------

ちょっと私のイメージと違いまして、こんなようなものだったのですが

変数 整数{&枚数}
表 "tile"
繰り返し (.not #EOF)
  &枚数=[枚数]
  絞込み [枚数]=&枚数
  レポート印刷 "tile",繰り返し数=&枚数
  絞込み 補集合
繰り返し終了

>が、何だか全然うまく行きません。繰り返し数=部数として
>結果するみたいです。どうして?

これはちょっとわかりませんねえ。
こちらではちゃんと部数でなく繰り返し数になってますけど。
「行数=1」で絞り込んでるからではないでしょうか(^^ゞ

17885 Re:タイル印刷について 悲しげ 2002/11/08-12:48
記事番号17883へのコメント
どもっ、うにんさん
私、悩んでいます。(^^;)
うにんさんが挙げられた No.17883の記述の方で試してみても
やっぱり「繰り返し数」が生きません。
う〜ん、何が駄目なのだろう?
17886 Re:タイル印刷について hidetake 2002/11/08-13:04
記事番号17885へのコメント
>うにんさんが挙げられた No.17883の記述の方で試してみても
>やっぱり「繰り返し数」が生きません。

「繰り返し数」が生きません。って,実際に
印刷させてみての結果ですか? 
まさかプレビューで確認なんてしてないですよね?


17887 Re:タイル印刷について うにん 2002/11/08-13:14
記事番号17886へのコメント
>「繰り返し数」が生きません。って,実際に
>印刷させてみての結果ですか? まさかプレ
>ビューで確認なんてしてないですよね?

「する」を指定した場合、他のパラメータが無効になります。
なので、私もそれが怪しいと思いましたが、それだと部数も無効なはずなので...
私はこういう場合紙に印刷するのはいやなので、PDF出力するソフトで確認しています。
しかし、何で他のパラメータが無効なんですかねえ。不便ですよね。

17888 Re:タイル印刷について 悲しげ 2002/11/08-14:50
記事番号17886へのコメント
どもっ、hidetakeさん

>「繰り返し数」が生きません。って,実際に
>印刷させてみての結果ですか? まさかプレ
>ビューで確認なんてしてないですよね?

タイルのプレビューと実印刷との違いは(この度の試行で)了解できました。
が、それにしてもおかしい。
例えば次のような一括処理では空振りとなります(全く印刷されない)。
--------------
表 "某.tbl" /*レコード数は約5行*/
レポート印刷 "某タイル.rpt",繰り返し数=10
--------------

と、ここまで書いて、ハタと・・・・
原因は、例のとWin2000とエプソンLP*のプリンタドライバーの関係なのかもしれない、とか?
とすれば、この件は放置するしかありません。(^^;)

ちなみに、@桐ver8(sp6)です。
関係ないけど、今日ようやくバージョンアップの振込をしました、\18,900。
17889 Re:タイル印刷について 悲しげ 2002/11/08-15:03
記事番号17888へのコメント
補足します。

>とすれば、この件は放置するしかありません。(^^;)

一括の方の記述を、敢えてプレビューまたは会話を「する」としておいて、
印刷指定のダイアログボックスにおいて「レコードの繰り返し数」を手動で
入力すると云う使い方をすることになりそうです。
(こうするとようやく「繰り返し数」が生きます)
17890 Re:タイル印刷について hidetake 2002/11/08-16:08
記事番号17889へのコメント
それって,前に悲しげさんも書いておりませんでしたっけ?
この場合,部数を1と明示的に設定してあげないと,桐君は印刷させてくれないようです。 (;_;)

>桐/hidetake ■2002年07月08日 月曜日 10時06分32秒
>
>桐のレポート印刷で,Windows2000 + エプソンの
>レーザープリンタドライバの環境下では悲しげ
>さんの前に書かれたとおり,直に印刷する場合,
>部数=1 を指定しないと印刷してくれないのです
>が,この場合も,実際にはスプールにデータは
>送られ,プリンタにもホンの数十バイトですが
>データも送られ,スプールのデータは印刷済み
>になるのですよね!
>
>でも,その後にスプールデータは削除されずに
>印刷済みのまま残ったままになってします.
>ページ数が 0 の場合の時はこうなっちゃので
>しょうか?
>
>出ないのは良いとして(良くないって! (--;) )
>いちいち消すのがメンドイ・・・
>


17891 Re:タイル印刷について hidetake 2002/11/08-16:11
記事番号17890へのコメント
>それって,前に悲しげさんも書いておりませんでしたっけ?
>この場合,部数を1と明示的に設定してあげないと,桐君は
>印刷させてくれないようです。 (;_;)

ちなみに,桐ver9 体験版では修正されているようで
正常に印刷されました。

17892 タイルの「繰り返し数」、解決 悲しげ 2002/11/08-19:22
記事番号17891へのコメント
「部数」と「繰り返し数」は全く別物と想像していました。
つまり、どうしても「繰り返し数=0」になってしまうのだと。
で、仰せのとおり、レポート印刷のパラメータに「部数=1」を加えたら、すんなり動きました。
例えば拙稿No.17878だと次のように。
------------------------------------------
var 固有,長整数{&枚数,&i}
表 "某表.tbl"
表形式編集 ガイド="印刷枚数を変更可(且つ必要行を絞込みも可)"
&i=1
ジャンプ 行番号=1
繰り返し(.not #EOF)
 &枚数=#cond([枚数]>0,[枚数],1,1)
 絞り込み 行数=1
 確認 [某ID的項目]+"の分を"+#str(&枚数)+"枚印刷します",&実行リターン
 cond(&実行リターン=1) \
  レポート印刷 "某タイル.rpt",部数=1,繰り返し数=&枚数
 絞り込み解除 1
 &i=&i+1
 ジャンプ 行番号=&i
繰り返し終了
------------------------------------------

ps
そうですか、V9ではなおってましたか。

17893 Re:タイルの「繰り返し数」、解決 うにん 2002/11/08-19:45
記事番号17892へのコメント
ところで、1行ずつ印刷するだけなら、レポート印刷コマンドで開始ページと終了ページを指定すれば、
絞り込みがいらなくなると思うのですが。

17894 Re:タイルの「繰り返し数」、解決 悲しげ 2002/11/08-23:20
記事番号17893へのコメント
どもっ、うにんさん

>ところで、1行ずつ印刷するだけなら、
>レポート印刷コマンドで開始ページと終了ページを指定すれば、
>絞り込みがいらなくなると思うのですが。

な〜るほど、よく色んなこと思いつきますね。(^^)
絞り込みしない頁指定だと、他の行のデータも一緒に印刷できそうですから、
用紙節減にはよいかもしれませんですね。
私は、1つの頁内はすべて同じデータであるべき、との観念に囚われていましたが、
ま、この辺はケースバイケースで使い分けするのがベターでしょうね。

戻る