過去の桐井戸端BBS (桐ver.8)
18785 レポートで1レコードを複数枚印刷するときその1枚1枚に連番をつけたい しゅん 2003/02/02-11:56
桐ver8をつかってます。
本当に初心者なので教えてください。
レポートを、白紙から設計して作成するんですが、たとえば、1つのレコードを10枚印刷させる時に
カウンタみたいに1〜10まで数字を表示させて印刷したいのですが、
頁番号だと、すべて1で印刷されます(当然?)。
ヘッダー、フッダーを使わず、なるべくテキストボックスかラベルを貼り付けて出来るようにしたいのですが、
どうすれば良いですか?
18794 Re:レポート印刷時連番をつける方法 ONnoji 2003/02/03-13:23
記事番号18785へのコメント
しゅんさん、こんにちは。

#明細連番 という関数を試してみたらいかがでしょうか?

外していたら、すいません。

*--------------------------*
【桐ver.8のトピックの検索より引用】

#明細連番

明細レコードの連番を設定します。各ページの先頭の明細レコードは、つねに 1 になります。

ノート

この関数が使用できるのは、レポートとフォームのテキスト オブジェクト(一覧表形式または伝票形式のみ)だけです。
*--------------------------*

18795 Re:レポート印刷時連番をつける方法 ONnoji 2003/02/03-13:28
記事番号18794へのコメント
しゅんさん、こんにちは。

#連番 という関数もありました。

外していたら、すいません。

*----------------------------------*
【桐ver.8トピックの検索より引用】

#連番

1 から始まり、1 ずつ増える連番を設定します。

ノート

この関数は置換コマンドの計算式、レポートのテキストボックスと集計オブジェクトで使用できます
フォームとレポートのヘッダとフッタに指定した場合の結果は不定です。
レポートの集計オブジェクトでは、グループ内の連続番号を設定します。
*----------------------------------*

18796 Re:レポート印刷時連番をつける方法 しゅん 2003/02/03-13:52
記事番号18795へのコメント
>ONnojiさんありがとうございます。
#連番で挑戦しましたが駄目でした。
3枚プリントしたんですが、3枚とも1になってしまいます。
レコードを1件として考えてます。

18797 Re:レポート印刷時連番をつける方法 ONnoji 2003/02/03-14:35
記事番号18796へのコメント
>レポートを、白紙から設計して作成するんですが、

しゅんさん、こんにちは。

レポートにも色々種類がありますよね。

[白紙 -> レポート定義]で作成したレポートですが、

・単票
・一覧表
・伝票
・タックシール
・複合

のどの種類を選びましたか?

これが判らないとなかなかリプライが付かないと思いますよ。

※複合ならば、詳しくオブジェクトを教えていただく必要があります。

ということで、失礼いたしました。

18798 Re:レポート印刷時連番をつける方法 しゅん 2003/02/03-15:53
記事番号18797へのコメント
>ONnojiさん、説明不足ですいません。

[白紙 -> レポート定義]の複合です。
たとえば、何件かのレコードがあって、1件のレコードを1万3千枚プリントしないといけない感じです。
レコードによってはプリント枚数が少ないものもあるんですが、

 得意先  得意先毎の総頁数  各頁に印字するのは
あいう     13000枚     1/13000 2/13000・・ 
かきく     2000枚     1/2000 2/2000・・・

 こんな感じで、1つのレコードを複数枚印刷するときに、
連番みたいなものを付けたいのですが、アドバイスを下さい。
18799 Re:レポート印刷時連番をつける方法 ONnoji 2003/02/03-17:00
記事番号18798へのコメント
しゅんさん、こんにちは。

桐ver.8の複合レポートですかぁ〜〜。

自慢ですが…私はレポートが得意ではありません。

レポートをご存知の皆様、しゅんさんにリプライをお願い致します。m(__)m

お役に立てなくてスイマセン。
それでは私は退散仕ります。(^^)/~~~

18809 印複数部印刷時に連番 佐田 守弘 2003/02/03-23:40
記事番号18785へのコメント
しゅんさん
質問の主旨を再確認させて下さい。
主旨は、同じデータを指定ページ数繰り返して印刷する、
つまり同一データで複数部印刷する際に、同じ内容のデータについて
上から順に連番を打ちたいという意味に理解して宜しいでしょうか。
この前提で話を進めます。

●連番を生成する一般的な方法
例えば、#set(秒,&秒+1) の様な計算式を使います。
ここでは組込変数の&秒を使っていますが、この変数に1を加えた値を同じ変数に代入し、
その値を戻す関数の計算式です。
実際に使うには、予め使用する変数に初期値として0を代入します。
これは一括やイベントで行えばよいでしょう。
その後はレポート印刷を行うために、1ずつインクリメントされるはずです。

●プリンタによっては根本的に不可能
桐から(他のアプリでも同じ)同じデータ内容の複数部印刷を行なう場合、
単に1ページだけ出力し、あとはプリンタの複写機能を使ってプリンタ側
で指定ページ数の印刷を行う場合が有ります。
特に高級なページプリンタではそうなっているはずです。
ここで「そうなっている」とは、プリンタドライバがその様に作られているという意味です。
そうであるかどうかは試してみるしか方法はないと思います。
従ってこの様な場合には、上記の方法を使っても、桐が出力するのは
1ページだけなので、同じ番号で複数ページのコピー印刷が行われます。

●最後の手段として
力技になりますが、印刷するレコードを印刷部数だけコピーした表を作り、
この表を印刷して下さい。この際に、別途連番号の項目を設けておけば、
その値で連番号の印刷ができます。
なお、必要レコード数だけのコピーは、一括やイベントなどのコマンドを使って、
作業用の表に対して行うのが良いでしょう。
多分、ご質問の件は、この方法しかないだろうと思います。

佐田守弘(KS-00119)
18890 Re:レポート印刷時連番をつける方法 しぼうかん 2003/02/09-11:24
記事番号18785へのコメント
しゅんさんこんにちは

実は私も似たような件で悩んだ事がありました。
確か過去のログに似たような質問があり悲しげさんがお答えになっていたような?気がします。
イベントは使えますか。
もし使えるのであれば、自分が実際に使っているイベントから質問内容に関係の無い部分を編集して書いてみます。
佐田先生が最後に説明してらっしゃる方法だと思います。
但し1レコードに付き1万3千枚もの印刷はやった事が無いので、
とんでも無く時間がかかるかもしれませんが使い物にならなかったらすいません。

入力用の1つのフォームA.frmとその編集対象表のテーブルA.tbl以外にA.tblと
全く同じ項目を持つB.tblを使います。
伝票.rptに[回数]のオブジェクトを配置すればそこに頁番号が印刷されると思います。
A.tblとB.tblには[回数]と[個口]という項目を作って置きます。

手続き定義開始 頁番号印刷()
変数宣言 共通 長整数{&回数,&個口} 
表 "頁番号用",モード=専有
行削除 *,圧縮
終了 表 編集対象表
絞り込み 行数=1
&個口 = [個口]
繰り返し &回数=1,&個口,1
置換 [回数]=&回数
書き出し 表,条件名 = "頁番号用へ追加書き出し"
繰り返し終了
表 "頁番号用"
レポート印刷 "伝票.rpt"
終了 表 編集対象表
絞り込み解除 1
ジャンプ 行マーク = 1
行マーク解除 1
手続き定義終了

最後にこの問題は桐V9では新しい関数が増えて
>#条件選択(#頁番号 = #全頁数, "最終頁", 1, #連結(#文字列(#頁番号),
 "/", #文字列(#全頁数)))
の計算式をレポートに書くだけで出来る様になったみたいですよ。
18892 Re:レポート印刷時連番をつける方法 しぼうかん 2003/02/09-12:17
記事番号18890へのコメント
NO18800に同じ様なツリーが有るのに気づかず、見落としてしまいました。
過去ログに整理された時に投稿が別れてしまうと利用される方が読みづらいと思うのでこちらに投稿させて頂きます。
(この掲示板の柱石の方々に割り込むのは恥ずかしいというのも有ります)
NO18800で皆さんがおっしゃっている通り1枚に1件を印刷するのではとんでも無く時間がかかってしまい実用にならないと思います。
ただ1件あたりの印刷内容が少ないので有ればタックシール印刷で32分割のタックシール用紙
またはもっと多分割の用紙(探したことはありませんがもし売って居なければタックシール用紙を買って
専門の業者にスリッターを入れてもらう事になります。)に印刷すると考えればもしかしたら、
うまくいく可能が有るような無いようなような気がします。(^^;
自信がない〜
18800 1つのレコードを複数枚印刷するときに連番をつける方法 しゅん 2003/02/03-18:18
少し前にも書いたのですが、もう一度教えてください。
桐ver7もしくわ8を使っています。
レポートの印刷での事でお聞きします。


[白紙 -> レポート定義]の複合で、
たとえば、何件かのレコードがあって、1件のレコードを1万3千枚プリントしないといけない感じです。
レコードによってはプリント枚数が少ないものもあるんですが、

業者名  印刷枚数      
あいう  13000枚      
かきく  2000枚 
 ・     ・
 ・     ・

こんな感じのデータなんです。
13000件の同じレコードを作れば済む事なんですが、それだとかなりの手間がかかってしまいます。

 1/13000 2/13000・・
 @/2000  A/2000・・・
 
 ↑       ↑
この部分を何とかレポートで設計したいのです。

こんな感じで、1つのレコードを複数枚印刷するときに、連番みたいなものを付けたいのですが、アドバイスを下さい。

18802 Re:1つのレコードを複数枚印刷するときに連番をつける方法 悲しげ 2003/02/03-19:18
記事番号18800へのコメント
これは当該テキストのソースに、多分次のような計算式を使って、力技でやることになるのではないかと思います。

#条件選択([業者名]<>&業者名
      ,#計算(#代入(&業者名,[業者名]),#代入(&番号,1),&番号)
     ,1,#計算(#代入(&番号,&番号+1),&番号)
     )

ちなみに、変数の&業者名と&番号は別途宣言済とします。
あるいは、それぞれを組み込み変数である&STRや&件数で代用させてもよいでしょう。

ちなみに2、
この手の計算式は私は不得手でして(^^;)、これだとうまく動かないはずです。
誰か得意な人、書き直して下さい。
上記は、雰囲気を判ってもらうため、一種の添削前の誤答例として挙げた、とご諒解下さい。(^^;)

補足
「1/13000」の左端「1」等のテキストソースが上記に当たります。
「13000」等は、その都度異なるとすれば、予め表の項目として
持たせておいて、その項目値をテキトスソースにするのがよいと思います。

補足2
印刷もダイアログボックスを出して会話処理的に行うとすれば、
「部単位で印刷」にはチェックを入れないことになりそうです。
ただし、「部数」を例えば13000として入れたら、
他のレコードもそれだけ印刷させることになりますから、
1レコードづつ絞りこんでから印刷させる必要もありそうです。
それやこれやで

>13000件の同じレコードを作れば済む事なんですが、それだとかなり
>の手間がかかってしまいます。

私なら、たかだか13000件くらいなら殆ど手間がかからないと思うので、
速攻で「同じレコードを作る」と思います。最も簡単・確実ですし。
一括処理で作れば数秒でできると思います。
作業表を使って、印刷終了後は削除してしまえば、
ディスク容量への負担も殆どないでしょうから。

18804 Re:1つのレコードを複数枚印刷するときに連番をつける方法 うにん 2003/02/03-19:57
記事番号18802へのコメント
レコードごとに違う部数を印刷したいらしいので、どっちみち

>印刷もダイアログボックスを出して会話処理的に行うとすれば、「部単位
>で印刷」にはチェックを入れないことになりそうです。ただし、「部数」
>を例えば13000として入れたら、他のレコードもそれだけ印刷させること
>になりますから、1レコードづつ絞りこんでから印刷させる必要もありそ
>うです。

「部単位で印刷」するわけにはいかないでしょう。
「部単位」でなく「部数」を指定した場合、プリンタの部数指定機能が使われる可能性が高く、
全部同じデータしか印刷できないでしょう。

それやこれやで

>私なら、たかだか13000件くらいなら殆ど手間がかからないと思うの
>で、速攻で「同じレコードを作る」と思います。最も簡単・確実ですし。

私もそう思います。

18807 Re:1つのレコードを複数枚印刷するときに連番をつける方法 しゅん 2003/02/03-20:42
記事番号18804へのコメント
>悲しげさん
>うにんさん

いろいろなアドバイス有難うございます。

やはり、確実な方法を取っていくしかないですね。
もう少し、自分なりに考えてみようと思います。何か見つかったら教えてください。

18808 Re:1つのレコードを複数枚印刷するときに連番をつける方法 たゆー 2003/02/03-23:01
記事番号18807へのコメント
ほとんど採用されないと思いますが・・・・・

繰り返しを1行ごとに行い、部数を取得。その変数を番号にしては?

繰り返し(1行進める・終端の判断)
  &部数=[部数]
  繰り返し &i=1,&部数
    レポート処理・・レポートで、&iを印刷する
  繰り返し終了
繰り返し終了


18811 便乗質問 悲しげ 2003/02/04-00:27
記事番号18808へのコメント
たゆーさんの案は私もチラリと考えましたが、
桐v7または8と云うことで、
これを私はv6と誤読してしまって、一括処理は使えないな、
との誤解があったことに加えて(^^;)
1回のレポート印刷で13,000枚の印刷は有りうるのですが、
「レポート印刷」コマンドを
連続して13,000回呼び出すのが恐いと云うか、
何だかどこかがパンクしてしまいそうな感じもしていたのです。
そこで便乗質問です。(^^;)
私はそのようなこと(つまり「レポート印刷」コマンドを連続して
1万数千回呼び出す形での印刷)に挑戦したことは無いのですが、
この辺り、何でもないでしょうか?
経験者からの大丈夫とのコメントをいただけると心強いです。
18813 Re:便乗質問 うにん 2003/02/04-12:32
記事番号18811へのコメント
>私はそのようなこと(つまり「レポート印刷」
>コマンドを連続して1万数千回呼び出す形で
>の印刷)に挑戦したことは無いのですが、こ
>の辺り、何でもないでしょうか?

未経験者なので何ですが、
パソコン側でレンダリングするいわゆる
「Windowsプリンタ」の場合、1万数千ページ分一度に印刷しようとすると逆にパンクする可能性があります。
(内容によるでしょうが、メモリがどのくらいいるかな?手元のプリンタでファイルに保存してみると、
1ページ200kb位。1万ページだと2GBですね)

ネットワークで共有しているプリンタだと、一度に印刷しないと途中に
全然別のジョブが割り込む可能性があります。

18820 Re:便乗質問 悲しげ 2003/02/04-21:28
記事番号18813へのコメント
大量印刷の件、
なるほど、何となく・・・諒解です。
ありがとうございました。
18821 ホントにプリンタで出すんですか? 宮城 2003/02/04-22:34
記事番号18820へのコメント
本筋には関係ありませんが、13,000枚とは「印刷機」の領域のような気がするのですが。

毎分32枚のレーザープリンタで 6.7時間でしょう?
給紙も大変そうだし、トナーも当然そうだろうし、そんな連続時間動かしてプリンタ本体も大丈夫でしょうか?
18840 私もそう思います。 佐田 守弘 2003/02/05-21:09
記事番号18821へのコメント
私の言いたかった事を宮城さんが書かれております。
しゅんさんが始めの質問に書かれている内容を見ると、
桐のレコードごとに各レコード毎に指定した枚数で印刷するに際して、
それぞれの印刷枚数が数千から1万を超える様ですね。
おそらくトータルで数万以上、場合によっては10万ページを超える印刷になる様な気がします。

理屈の上では可能であっっても、実際にはそれは非現実的な様な気がするのですが。

●複写機と印刷機の境界
かつては100枚位と言われましたが、今では300枚位になっているかも知れません。
プリンタや複写機の単価がいくら安くなったとしても、
やはり1枚あたり3円とか5円はかかるのではないでしょうか。

●プリンタや複写機の能力の限界
家庭用ないしSOHOユーズのページプリンタでは、
5千枚程度でカセット交換になったと思います。
大規模事務所で使われている比較的大きな複合機でも、
多分数万枚程度でトナーカートリッジの交換やドラムのメンテナンスが必要になるはずです。
それにその様なオフィス用の機材でも、
紙をストックできる枚数はせいぜい数千枚程度ではないかと思います。
極めて大型で、高速の複写専用機もありますが、
それでも紙のストック枚数や1回のメンテナンスで使える枚数にはおのずと限界があります。

●ページプリンタの印刷速度
ほとんどのページプリンタは最初の1枚目が何秒、
その後1分間に何枚という様に能力が記載されていると思います。
これは複数部印刷する時、最初の1枚目で作成した「版」を使って、
プリンタ内部の複写機能で同じ内容を複写する仕組みになっているためです。

「印複数部印刷時に連番-佐田 守弘(2/3-23:40)No.18809」は、読まれましたでしょうか。
レポートの中に連番を生成する計算式を組み込んだとしても、
上記の機能によって、桐が出力する印刷内容は1ページ分であり、
その内容で指定部数コピーすると思われますから、連番号は印刷できないと思います。

従って、1ページずつの印刷を繰り返す事になるわけですが、
この時の印刷能力は、始めの1ページ分の印刷速度になるはずで、
かなり時間が掛ると思います。

●連番号を入れた商用印刷の機能を持っている所
通常の印刷所ではそういった機能はないと思います(多分)。
紙幣や株券など、連番号付きの印刷は、多くの場合、財務省の
印刷局に委託していると思います。

佐田守弘(KS-00119)

戻る