過去の桐井戸端BBS (桐ver.8)
9467 項目内の数値の数だけタックシールを印刷したい HIRO3 2001/01/25-08:56
台帳の背表紙作成のケースでいきづまって困っています。
下の例でデータを登録していますが

名称  数量
あ   1         
い   3
う   4


ん   1
上記形式の表テーブルで数量の分だけタックシールを作成したいと考えています。
(あ1、い1、い2、い3、う1・・・という感じで)
多分一括作成が必要なんでしょうが、変数をうまくつかうか
一度他の表に展開する形でつくるのでしょうが思いつきません。
アイデアを教授ください        HIRO3
9486 Re:項目内の数値の数だけタックシールを印刷したい toshi-chan 2001/01/25-23:08
記事番号9467へのコメント
HIRO3さん、こんばんは。
似たようなことを私も考えたことがあります。
すこし複雑ですが、それを紹介します。
一括処理で繰り返しコマンドと書き出しコマンドを組み合わせます。

@[数量]で項目集計を実行します。このとき、組み込み変数「&最大」に代入された値をあとで使用します。
A 数量が1の行を絞り込みます。データの書き出しを1回実行します。
B 補集合をとります。
C 数量が2の行を絞り込みます。データの書き出し(追加)を2回実行します。
D 補集合をとります。
E 数量が3の行を絞り込みます。データの書き出し(追加)を3回実行します。
 ・・・・・以下、数量が「&最大」になるまで繰り返す。・・・・・

F 書き出された表を対象としてレポート印刷を実行します。

9491 Re:項目内の数値の数だけタックシールを印刷したい HIRO3 2001/01/26-08:37
記事番号9486へのコメント
 tosiさんアドバイスありがとうございます。
ファイルに書き出して印刷するのが簡単かもしれませんね。
ただ数量が100前後の台帳もあるのでちょっと大変か?

同じ内容のレコードを指定数分だけ作成する考え方はあるでしょうか?
HIRO3
9498 Re:項目内の数値の数だけタックシールを印刷したい 悲しげ 2001/01/26-15:39
記事番号9491へのコメント
どもっ、HIRO3さん
一括処理になってしまいますが、以下は、桐v5のリファレンスに載っていたものを(ある人が)一部書き換えたものです。
---------------------------------------------------
選択 [印刷枚数]>0
整列 枚数順,自動保守=する,重複=許可,{[印刷枚数]降順}
ケース開始
ケース (&選択件数>0)
 位置指定 行番号=最終
 行番号 &件数
 &i=0
 繰り返し &行番=1,&件数
  位置指定 行番号=&行番
  代入 &i=[印刷枚数]
  条件(&i>0) 帳票印刷 "某.FRM"\
       ,部数=&i,開始ページ=&行番\
       ,終了ページ=&行番,罫線印字=する,強制改行文字=某
 繰り返し終了
ケース終了
選択解除 * 
-----------------------------------------------------
1枚もの的なデータだとこれでもいいかもしれません。
が、タックシールのようなものになるとこれでいいのかどうかはちょいと未確認です。
とすれば、そのような場合、私なら次のように(作業表において)必要枚数分だけレコードを増やして、
印刷はその作業表を使うと思います。
-----------------------------------------------------
*某表が編集対象表だとして
書き出し 枠組み,"作業.TBL"
&i=1
ジャンプ 行番号=1
繰り返し (.NOT #EOF)
 絞り込み 行数=1
 &枚数=[枚数]
 if(&枚数>0)
  繰り返し &回数=1,&枚数
   書き出し 表,"作業.TBL",追加,*
  繰り返し終了
 end
 絞り込み解除
 &i=&i+1
 ジャンプ 行番号=&i
繰り返し終了
-----------------------------------------------------
(いずれも変数は宣言済とする)
9504 一括で挑戦してみます HIRO3 2001/01/27-10:04
記事番号9498へのコメント
悲しげさん ありがとうございます。

がんばって一括作成に挑戦してみます。
少し時間がかかりそう・・・?

9543 Re:項目内の数値の数だけタックシールを印刷したい HIRO3 2001/01/29-13:03
記事番号9498へのコメント
悲しげさんへありがとうございます。
>-----------------------------------------------------
>*某表が編集対象表だとして
>書き出し 枠組み,"作業.TBL"
>&i=1
>ジャンプ 行番号=1
>繰り返し (.NOT #EOF)
> 絞り込み 行数=1
> &枚数=[枚数]
> if(&枚数>0)
>  繰り返し &回数=1,&枚数
>   書き出し 表,"作業.TBL",追加,*
>  繰り返し終了
> end
> 絞り込み解除
> &i=&i+1
> ジャンプ 行番号=&i
>繰り返し終了
>-----------------------------------------------------
この一括でバッチリうごきました。

戻る