過去の桐井戸端BBS (桐ver.9)
22007 繰り返しコマンドの中で併合処理をしたら「作業ファイルが作れません」というエラーが出た 村瀬幸雄 2003/08/25-22:31
村瀬です。始めてです。
ご教授願えませんか。

一括処理で繰り返しコマンドの中に、併合をさせたいのですが
「作業ファイルが作れません。」というエラーメッセージがでてとまってしまいます。
このエラーはどうすれば回避できるのでしょうか?


22010 繰り返しコマンドの中の併合とは 佐田 守弘 2003/08/25-23:46
記事番号22007へのコメント
村瀬幸雄さん
これだけでは具体的にどの様な事を去れようとしているのかが、良く分りません。

●併合のしかた
繰り返しコマンドと併合の部分だけで結構ですから、その部分の一括処理を記載してみて下さい。
推定としてですが、例えば次の様な形でしょうか。
=============================================
表 年集計
繰り返し (&番号=1,12)
 代入 &表名称="売上"+#文字列(&番号,2)
 併合 &表名称,<併合パラメータ>
繰り返し終了
=============================================
あと、繰り返しの1回目からエラーになるのか、ある回数でエラーになるのかもお知らせ下さい。

●作業ファイルに関して
表があるドライブの残り容量についても調べてみて下さい。
容量が足りなくて、併合ができないという事も考えられます。

佐田守弘(KS-00119)
22012 Re:繰り返しコマンドの中の併合とは 村瀬幸雄 2003/08/26-09:03
記事番号22010へのコメント
佐田 守弘さんご指導ありがとうございます。
一括処理は、下記です。
---------------------------------------------

表  &出荷作業4,表番号=15
並べ替え {[並順]昇順}
ジャンプ 行番号=先頭
繰り返し(.not#終端行)
  &伝番=[伝票番号]
  &枝番=[枝番]
  絞り込み [枝番]&枝番
  ジャンプ 行番号=最終
  &No2=[No2]
  絞り込み解除 *
  表  &出荷作業2,表番号=10
  並べ替え {[枝番]昇順}
  置換 [並順]=#連番
  絞り込み [枝番]&枝番
  &品番=[品番]
  &色番=[色番]
  表  &出荷印刷作業 ,表番号=12
  置換 [並順]=#表引き([伝票番号],=,&出荷合計,[伝票番号],[並順]),[No]=#連番
  並べ替え {[並順]昇順}
  絞り込み [伝票番号]&伝番
  絞り込み [枝番]&枝番
  絞り込み [No2]&No2
  併合  &出荷作業2, 置換, {[伝票番号]照合[伝票番号],[反合計]複写[数量],[数量合計]複写[合計数量M]}
  置換  [データ7]=#文字列([反合計]),[データ8]=#文字列([数量合計])
  絞り込み解除 *
  編集表 15
  &枝番=&枝番+1
  ジャンプ 行番号=&枝番 
繰り返し終了

-----------------------------------------------------------------
1回目は併合していますが
2回目でエラーとなります。
「併合」の処理をとりましたが、エラーになります。
よろしくお願いいたします。

桐v9 WinXPです。

22013 Re:繰り返しコマンドの中の併合とは 宮城 2003/08/26-10:48
記事番号22012へのコメント
村瀬幸雄さん、こんにちは。

>繰り返し(.not#終端行)
>  &伝番=[伝票番号]
>  &枝番=[枝番]
>  絞り込み [枝番]&枝番
>  ジャンプ 行番号=最終
>  &No2=[No2]
>  絞り込み解除 *
>! 表  &出荷作業2,表番号=10
>  並べ替え {[枝番]昇順}
>  置換 [並順]=#連番
>  絞り込み [枝番]&枝番
>  &品番=[品番]
>  &色番=[色番]
>! 表  &出荷印刷作業 ,表番号=12
>  置換 [並順]=#表引き([伝票番号],=,&出荷合計,[伝票番号],[並順]),[No]=#連番

上記「!」のところ、2回目からはすでに開いてる表をさらに開けってことになりますよね。これかな〜?

必要な表は繰り返しループに入る前に開き、上記の場所では「編集表」コマンドにする。

ざっと斜めにみただけですが。

22014 Re:繰り返しコマンドの中の併合とは 村瀬幸雄 2003/08/26-12:00
記事番号22013へのコメント
宮城さんありがとうございます。
早々に訂正してみます。
ありがとうございました。
うまくいかなかったらまた書き込みしますのでよろしくお願いいたします。

22022 やはりだめでした 村瀬幸雄 2003/08/26-21:52
22007で質問しました村瀬です。
宮城様のご指導で下記のように変更しましたが
同じように、「作業ファイル・・・・」のエラーが出ます。


表  &出荷作業2,表番号=10
表  &出荷印刷作業,表番号=12
表  &出荷作業4,表番号=15
並べ替え {[並順]昇順}
ジャンプ 行番号=先頭
繰り返し(.not#終端行)
  &伝番=[伝票番号]
  &枝番=[枝番]
  絞り込み [枝番]&枝番
  ジャンプ 行番号=最終
  &No2=[No2]
  絞り込み解除 *
  編集表  10
  並べ替え {[枝番]昇順}
  置換 [並順]=#連番
  絞り込み [枝番]&枝番
  &品番=[品番]
  &色番=[色番]
  編集表 12
  置換 [並順]=#表引き([伝票番号],=,&出荷合計,[伝票番号],[並順]),[No]=#連番
  並べ替え {[並順]昇順}
  絞り込み [伝票番号]&伝番
  絞り込み [枝番]&枝番
  絞り込み [No2]&No2
  併合  &出荷作業2, 置換, {[伝票番号]照合[伝票番号],[反合計]複写[数量],[数量合計]複写[合計数量M]}
  置換  [データ7]=#文字列([反合計]),[データ8]=#文字列([数量合計])
  絞り込み解除 *
  編集表 15
  &枝番=&枝番+1
  ジャンプ 行番号=&枝番 
繰り返し終了


よろしくお願いいたします。
22024 Re:やはりだめでした 今村 誠 2003/08/27-00:05
記事番号22022へのコメント
村瀬幸雄さんこんにちは、本当に2回目でエラーになっているのでしょうか。
途中に確認を入れて何回目でエラーになったか
数えてみてはいかがでしょうか。

例えばこんなコマンドを入れてみては


表  &出荷作業2,表番号=10
表  &出荷印刷作業,表番号=12
表  &出荷作業4,表番号=15
並べ替え {[並順]昇順}
ジャンプ 行番号=先頭
繰り返し(.not#終端行)

確認 "行番号は"+#STR(#行番号)+"枝番は"+#STR(&枝番)

  &伝番=[伝票番号]
  &枝番=[枝番]
  絞り込み [枝番]&枝番
22025 Re:やはりだめでした 村瀬幸雄 2003/08/27-00:36
記事番号22024へのコメント
今村 誠さん、こんばんは
ご指導ありがとうございます。

やってみました。
やっと理由がわかりました。
同じ行でリピートして
まったく前に行っていませんでした。

ありがとうございました。


22028 Keyごとに作業させたいとき 宮城 2003/08/27-08:45
記事番号22025へのコメント
エラーメッセージでなくなったか、変わって、「やはりだめ」じゃなかったはずですけど。(^_^;;

こういう[枝番]のような Keyがあってそれ1件ずつについて作業させたいけど、
同一 Keyのデータが複数件あるとき、私の流儀ではコントロール用の表を書き出します。

> 表  &出荷作業4,表番号=15
> 並べ替え {[並順]昇順}

(ここが謎。なんで[枝番順]でないんだろ?)

表  &出荷作業4,表番号=15
並べ替え {[枝番]昇順}
絞り込み 単一化={[枝番]}
書き出し 表,"コントロール",{[枝番]}
絞込み解除
表 "コントロール"

で、この先頭行にジャンプさせといて繰り返しループ。ループの最後で
編集表をこの表に戻しておいて、次行にジャンプ。

そもそも1行ずつ順に処理したい表自身を絞り込んだりしたら、
解除したとき先頭行に戻っちゃうからだめですよ。

22029 Re:Keyごとに作業させたいとき うにん 2003/08/27-09:10
記事番号22028へのコメント
宮城さん

>エラーメッセージでなくなったか、変わって、「やはりだめ」じゃなかった
>はずですけど。(^_^;;

解決したのかどうかがわかりませんし、全体的に流れがよくわかりませんが、

>そもそも1行ずつ順に処理したい表自身を絞り込んだりしたら、解除したとき
>先頭行に戻っちゃうからだめですよ。

絞り込む条件が繰り返し毎に変わるようになっていればいいわけなんですが。
なので、ループの最後を
>  *&枝番=&枝番+1
>  検索 [枝番]>&枝番 
>繰り返し終了
みたいにするとか。[枝番]がどういうものなのか不明なのですが、ジャンプが適合するケースはまれでしょう。

22052 Re:やはりだめでした 佐田 守弘 2003/08/27-23:26
記事番号22025へのコメント
村瀬幸雄さん
掲載された一括処理を見ている内に他の方からのコメントで解決された様ですね。
さて、既にコメントがあり、気がつかれた様に、表のデータを順に見ながら
これをパラメータとした繰り返し処理を行う場合には、絞り込みや解除をしてしまうと、
レコード位置がトップに戻ってしまいます。

しかしその前に行番号を変数に取得し、解除した後に行番号を1つ増やし、
そのレコード番号にジャンプさせているので、好ましい方法ではないが、
何とか動くはずではないかと読んでいたのですが、外れていたみたいです。

追加的なコメントですが、表の項目値を繰り返しのパラメータとする時には、
繰り返しコマンドに入る前に、必要なレコードだけに絞り込んだり、
並べ替えを行っておいて下さい。
そして繰り返しのループの中では、パラメータ値を得る表は、
その状態を維持しながら、「ジャンプ 行番号=+1」で行を1行ずつ進めながら
繰り返し処理を行います。

佐田守弘(KS-00119)

戻る