(現在 過去ログ84 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

No12548 の記事


■12548 / )  Re[1]: 繰り返し
□投稿者/ ONnoji -(2020/08/11(Tue) 17:54:26)
    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
    └繰り返し終了
     表


返信 [メール受信/OFF] 削除キー/


Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -