| 2020/08/11(Tue) 19:31:04 編集(投稿者) 2020/08/11(Tue) 18:04:25 編集(投稿者)
> 桐verは10sです。うんともすんとも言わないのですが何処がおかしいでしょうか?
提示された一括処理(.cmx)の内容を制御構造だけで表すと次のようになります。
┌繰り返し │ ┌if (#空ファイル=0) /*それが空で無いなら*/ │ │ **if (#空ファイル=0) /*それが0なら*/ │ ├else if (#空ファイル=1) /*差額0が無い空ファイル状態なら*/ │ │ ┌ケース開始 │ │ ├─ケース (#空ファイル=0) /*真の空ファイルになったらここで終了*/ ←─┼─┼───繰り返し中止 │ │ ├─ケース (&差額金額<0) /*貸方の金額が大きい時は*/ │ │ ├─ケース (&差額金額>=0) /*以下は貸方と逆のパターン*/ │ │ ├─ケース (#空ファイル=1) /*貸借が0のものは移動させてるので空になるまで繰り返し*/ │ │ └ケース終了 │ └end └繰り返し終了
[繰り返し] ... [繰り返し終了]のループになっているのですが、[繰り返し]コマンドには条件が付加されていません。
つまり、無条件ループなので、必ず[繰り返し] ... [繰り返し終了]のループに入っているハズです。
この「うんともすんとも言わない」という表現が微妙で曖昧なのですが、
考えられるのは、
・無限ループに入って一括処理が止まらなくなった状態 ※無限ループに陥った場合には、Ctrl + Shift + PauseBrake で一括処理を中断できる場合があります
・[繰り返し中止]コマンドが実行されて、 直ちに[繰り返し] ... [繰り返し終了]のループから脱出している状態
→ もしも、無限ループに陥っているのであれば、正しく[繰り返し] ... [繰り返し終了]のループから脱出するようにしてください。
→ もしも、無限ループに陥らずに、一括処理が直ちに終了しているのであれば、一括処理の制御構造を見直してください。
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇
参考のために以下に全行を示します。なお、字下げ(インデント)は拙作:整形ユーティリティで自動的にしたものです。
変数宣言 共通,文字列{ &いつ,&伝票NO,&借方コード,&借方科目,&借方補助コード,&借方補助科目,&貸方コード,&貸方科目,&貸方補助コード,&貸方補助科目} 変数宣言 共通,数値{&借方本体金額, &貸方本体金額,&差額金額,&残額} ┌繰り返し │ 表 ”01022-3資金繰仕訳.tbx” │ 絞り込み [借方貸方差額]{=0} /*借方、貸方同じ額のものを選んで*/ │ **絞り込み [借方貸方差額]{=0} /*借方から貸方引いて*/ │ ┌if (#空ファイル=0) /*それが空で無いなら*/ │ │ **if (#空ファイル=0) /*それが0なら*/ │ │ 表 ”01022-4資金繰仕訳.tbx” /*この表に読み込み*/ │ │ 読み込み条件登録 表,条件名="","01022-3資金繰仕訳.tbx",ファイル名変更=しない,編集表=する,* │ │ 読み込み 表,条件名="" │ │ 編集表 ”01022-3資金繰仕訳.tbx” │ │ 行削除 * /*読み終えたら要らないのでその分は削除*/ │ │ 絞り込み解除 1 /*最初の状態へ*/ │ │ 表形式編集 │ ├else if (#空ファイル=1) /*差額0が無い空ファイル状態なら*/ │ │ 絞り込み解除 1 /*解除で最初の状態へ*/ │ │ 代入 &いつ=[日付変換] │ │ 代入 &伝票NO=[伝票No.] │ │ 代入 &差額金額=[借方貸方差額] │ │ 検索条件登録 "日付伝票",{[日付変換]{&いつ},[伝票No.]{&伝票NO}} │ │ 絞り込み 条件名="日付伝票" │ │ 絞り込み 行数=1 │ │ ┌ケース開始 │ │ ├─ケース (#空ファイル=0) /*真の空ファイルになったらここで終了*/ ←─┼─┼───繰り返し中止 │ │ ├─ケース (&差額金額<0) /*貸方の金額が大きい時は*/ │ │ │ 代入 &貸方コード=[貸方勘定科目コード] │ │ │ 代入 &貸方科目=[貸方勘定科目名] │ │ │ 代入 &貸方補助コード=[貸方補助科目コード] │ │ │ 代入 &貸方補助科目=[貸方補助科目名] │ │ │ 代入 &貸方本体金額=[貸方本体金額] │ │ │ 絞り込み 補集合 │ │ │ 検索 [借方本体金額]{ <>0,<>#U } │ │ │ 絞り込み 行数=1 /*借方の1行を呼び出し*/ │ │ │ 代入 &借方本体金額=[借方本体金額] │ │ │ 代入 &残額=&貸方本体金額×-1-&借方本体金額 │ │ │ 置換 [貸方勘定科目コード]=&貸方コード /*以下、空白になっている行に貸方の同じ値を複写*/ │ │ │ 置換 [貸方勘定科目名]=&貸方科目 │ │ │ 置換 [貸方補助科目コード]=&貸方補助コード │ │ │ 置換 [貸方補助科目名]=&貸方補助科目 │ │ │ 置換 [貸方本体金額]=&借方本体金額 /*貸方が大きかったので借方の額に合わせる*/ │ │ │ 絞り込み解除 1 │ │ │ 絞り込み解除 1 │ │ │ 置換 [貸方本体金額]=&残額 /*最初の大きかった額から借方分を除いた残額に*/ │ │ ├─ケース (&差額金額>=0) /*以下は貸方と逆のパターン*/ │ │ │ 代入 &借方コード=[借方勘定科目コード] │ │ │ 代入 &借方科目=[借方勘定科目名] │ │ │ 代入 &借方補助コード=[借方補助科目コード] │ │ │ 代入 &借方補助科目=[借方補助科目名] │ │ │ 代入 &借方本体金額=[借方本体金額] │ │ │ 絞り込み 補集合 │ │ │ 検索 [貸方本体金額]{ <>0,<>#U } │ │ │ 絞り込み 行数=1 │ │ │ 代入 &貸方本体金額=[貸方本体金額] │ │ │ 代入 &残額=&借方本体金額-&貸方本体金額 │ │ │ 置換 [借方勘定科目コード]=&借方コード │ │ │ 置換 [借方勘定科目名]=&借方科目 │ │ │ 置換 [借方補助科目コード]=&借方補助コード │ │ │ 置換 [借方補助科目名]=&借方補助科目 │ │ │ 置換 [借方本体金額]=&貸方本体金額 │ │ │ 絞り込み解除 1 │ │ │ 絞り込み解除 1 │ │ │ 置換 [借方本体金額]=&残額 │ │ ├─ケース (#空ファイル=1) /*貸借が0のものは移動させてるので空になるまで繰り返し*/ │ │ └ケース終了 │ └end └繰り返し終了 表
|