過去の桐井戸端BBS (桐ver.9)
31174 一括処理で表形式編集の終わらせ方はどうすればいいのでしょうか とまと 2006/02/18-12:47
とまとです。またお世話になります。v9-2004sp3です。

一括処理において暦日表のなかのデータで水曜日と祝日が重なった行を検索し、
その後の最初の平日のデータに手作業で書き込みをするため、次の一括処理を実行しました。

検索条件登録 条件名="水曜と祝日の重複を検索",{[曜日]"水",[日区分]"土日祝"}
ジャンプ 行番号=先頭
繰り返し
 検索 ↓ 条件名="水曜と祝日の重複を検索",終了状態=&終了
 行マーク定義 1
 ジャンプ 行マーク=1
 表形式編集
 行マーク解除 1
 条件(#終端行) 繰り返し中止
繰り返し終了

その結果、表形式編集の画面を終了することができません。最後の検索行で行
マークが表示されたままで、×ボタンをクリックしても反応しません。

どのようにすれば正常に動くのでしょうか?
また、表形式編集コマンドを使うのは初めてなもので、さらによい一括処理の
記述方法をも含めてご教示いただけないでしょうか。

とまと
31175 Re:検索の終了状態判断 悲しげ 2006/02/18-13:18
記事番号31174へのコメント
試してませんが(^^;)、以下の記述ではどうでしょう?

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
検索条件登録 条件名=・・・・
ジャンプ 行番号=先頭
繰り返し
 検索 ∨ 条件名="水曜と祝日の重複を検索",終了状態=&終了
 条件(&終了=-1) 繰り返し中止
 表形式編集
繰り返し終了
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

>表形式編集の画面を終了することができません。・・・・
>・・・・・×ボタンをクリックしても反応しません。

反応しないのではなく、反応して終了しても再度表形式編集が繰り返されているからでしょう。つまり繰り返しが無限ループになって
いる(終端行ではないので)。
と云う訳でタイトル変えました。
本件は「表形式編集の終わらせ方」ではなく、検索コマンドの「終了状態」の判断(による繰り返しループの抜け方)の問題だと思わ
れるからです。

31176 Re:検索行の次行を連続処理 悲しげ 2006/02/18-13:42
記事番号31174へのコメント
あるいは

>一括処理において暦日表のなかのデータで水曜日と祝日が重なった行を検索
>し、その後の最初の平日のデータに手作業で書き込みをするため、

趣旨をよく理解できている訳ではありませんが、例えば次のようなやり方
なんか思いつきました。

数値系のフラグ用項目[tmp]があるとして、まず該当行に一括してフラグを付
けて、次にフラグ有りの行を絞り込んでからじっくり手動訂正。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
置換 [tmp]=""
繰り返し
 検索 ↓ 条件名="水曜と祝日の重複を検索",終了状態=&終了
 条件(&終了=-1) 繰り返し中止
 ジャンプ 行番号=+1
 条件(#eof) 繰り返し中止
 行訂正 [tmp]=1
繰り返し中止
絞り込み [tmp]=1
if(&選択件数>0)
 表形式編集 ガイド="手動訂正して下さい。"
else
 確認 "該当データがありません。"
end
絞り込み解除
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
なお、この場合に検索コマンドの「∨」と「↓」、どちらを使うべきか、委細未検証なので、あとはよろしく。(^^;)

31177 Re:検索行の次行を連続処理 悲しげ 2006/02/18-14:15
記事番号31176へのコメント
余計なことかもしれませんが、前回処理済みのデータについては手動訂正
不要で、今回新たに発生した該当データだけを処理したいような場合。
 [tmp]=1 水曜と祝日の重複行
 [tmp]=2 前回処理済の行
 [tmp]=3 今回処理の対象とする行

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
置換 [tmp]=#cond([曜日]"水" .and [日区分]="土日祝",1,[tmp]=3,2)
繰り返し
 検索 ↓ [tmp]=1,終了状態=&終了
 条件(&終了=-1) 繰り返し中止
 ジャンプ 行番号=+1
 if(#eof)
  繰り返し中止
 else if([tmp]<>2)
  行訂正 [tmp]=3
 end
繰り返し中止
絞り込み [tmp]=3
if(&選択件数>0)
 表形式編集 ガイド="手動訂正して下さい。"
else
 確認 "該当データがありません。"
end
絞り込み解除
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
挙動未確認。
31178 Re:検索の終了状態判断 とまと 2006/02/18-14:19
記事番号31175へのコメント
悲しげさん、ありがとうございます。

悲しげさんの記述に改めて実行したところ途中で止まったので、次のように加筆しました。結果は正常に終了しました。
>
>〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
>検索条件登録 条件名=・・・・
>ジャンプ 行番号=先頭
>繰り返し
> 検索 ∨ 条件名="水曜と祝日の重複を検索",終了状態=&終了
> 条件(&終了=-1) 繰り返し中止
ジャンプ 行番号=+1             /* 加筆部分 */
> 表形式編集
>繰り返し終了
>〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
>
31176は、これから検証してみることにします。まずはお礼まで。

とまと
31181 Re:検索行の次行を連続処理 とまと 2006/02/18-15:36
記事番号31176へのコメント
悲しげさん、ありがとうございます。
>
>>一括処理において暦日表のなかのデータで水曜日と祝日が重なった行を検索
>>し、その後の最初の平日のデータに手作業で書き込みをするため、
>
>趣旨をよく理解できている訳ではありませんが、例えば次のようなやり方
>なんか思いつきました。

実は、31145の投稿と関連するのですが、施設の予約状況をホームページで開示するための作業を行なっています。
そして、予約状況に「休館」を表示するために、この暦日表を利用しようと考えています。
施設の休館日は基本的には水曜日ですが、水曜日と祝日が重なった場合には、その後
に到来する最初の平日が振り替え休館日となります。
したがって、この場合の休館日は検索日の翌日とは限らないため、水曜と祝日が重なる日を検索し、
表形式編集でその後の最初の平日に「休館」と書き込むことを思い立ちました。

お示しいただいた例は、
ジャンプ 行番号=+1
と、検索日の翌日にフラグをたてられていますので、これはまた別の機会に利用させていただきたいと思います。

今、思ったのですが、
@ 水曜と祝日が重なる日を検索
A 平日を検索
B 行訂正 [ある項目]="休館”
を、試してみることにします。

とまと


31182 ありがとうございました とまと 2006/02/18-16:13
記事番号31181へのコメント
悲しげさん、ありがとうございます。

次の記述の一括処理を実行することによって、対象レコードを確認しながら、自動的に
「休館」を書き込むことができました。

確認 "暦日台帳に振り替え休館日を設定します"
検索条件登録 条件名="水曜と祝日の重複を検索",{[曜日]"水",[日区分]"土日祝"}
ジャンプ 行番号=先頭
繰り返し
 検索 ↓ 条件名="水曜と祝日の重複を検索",終了状態=&終了
 条件(&終了=-1) 繰り返し中止
 検索 ↓ [日区分]{"平日"},終了状態=&終了
 条件(&終了=-1) 繰り返し中止
 行訂正 [備考]="休館"
 表形式編集 画面消去=する,終了状態=&終了
繰り返し終了

とまと

31183 Re:ありがとうございました 悲しげ 2006/02/18-16:38
記事番号31182へのコメント
なるほど。
水曜と祝日が重なった日の翌日が(連休ではなく)平日であった場合に、
その日に「休館」の旨を自動的に記入し・・・と云うのが、行間に隠された主旨だったのですね。
ならば挙げられた記述でOKかと思いますが、でも最初からバーンとその
ように明記した方が諸々と話が早かったと思うのですが。(^^;)

31191 Re:ありがとうございました とまと 2006/02/18-21:23
記事番号31183へのコメント
言葉足らずで申し訳ありませんでした。
今後もお世話になることと思いますが、その際は具体的に記述するように心掛けることにします。

悲しげさん、ありがとうございました。
今後ともよろしくお願いします。

とまと

戻る