みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
[OS:WIN10,VER:PRO14]
今、検索結果のリスト選択削除する方法を勉強しております。
[フィールド]
選択 数字
項目1 テキスト
項目2 テキスト
項目3 テキスト
[イメージ]※リスト形式
【選択削除】ボタン
選択 項目1 項目2 項目3
□選択 12345 S商店 りんご
□選択 24343 K事務所 いちご
□選択 12345 S商店 ばなな
□選択 24343 K事務所 みかん
□選択 12345 S商店 もも
↓
↓「12345」を検索実行する
【選択削除】ボタン
選択 項目1 項目2 項目3
□選択 12345 S商店 りんご
□選択 12345 S商店 ばなな
□選択 12345 S商店 もも
そこで りんごとももだけ選択し、【選択削除】ボタンをクリック→リスト削除したい。
【選択削除】ボタン
選択 項目1 項目2 項目3
☑選択 12345 S商店 りんご
□選択 12345 S商店 ばなな
☑選択 12345 S商店 もも
↓
【選択削除】ボタン
選択 項目1 項目2 項目3
□選択 12345 S商店 ばなな
スクリプトワークスペースの「選択削除」という名前で、下記に記述しました。
変数を設定[$i ; 値:1]
変数を設定[$cnt ; 値: Get (対象レコード数)]
Loop
Exit Loop If [$I > $cnt]
レコード/検索条件/ページへ移動 [ダイアログなし : $i]
If [テーブル::選択 = "選択"]
レコード/検索条件削除 [ダイアログなし]
End If
変数を設定 [$i ; 値: $i + 1]
End Loop
現在のスクリプト終了[]
上記のスクリプトを実行するとうまくできましたが、シンプル的なスクリプト記述は他にあればご教示いただきたいです。
私はもっと勉強したいし、役に立てることをしてあげたいと思います。
よろしくお願いいたします。
Offline
ほんとにうまくできてますか?
1行目を削除すると次に「残ったレコードの」2行目に移動するので、2行目が削除されないように見えます。
他で編集中だとロックされて削除できないことがあるので、エラー処理を入れた方がいいでしょう。
2レコード以上を連続でチェックした時に、期待している動きになりませんね。
loop 使って処理するのは結構面倒です。
新規ウインドウ
レコードの絞り込み[選択 ; "選択"]
If ( Get(最終エラー ) = 0 )
対象レコード削除
end If
ウインドウを閉じる
とするといいでしょう。
Last edited by Shin (2023-08-26 08:49:22)
Offline
ほんとにうまくできてますか?
1行目を削除すると次に「残ったレコードの」2行目に移動するので、2行目が削除されないように見えます。他で編集中だとロックされて削除できないことがあるので、エラー処理を入れた方がいいでしょう。
ありがとうございます。
例えば、1行目と3行目、4行目、6行目の選択にチェックを入れた状態で実行してみると、たしかに残りますね...。困りました。
確かにエラー処理を入れる必要があるんですね。最初にエラー処理[オン]、最後にエラー処理[オフ]を入れました。
Offline
2レコード以上を連続でチェックした時に、期待している動きになりませんね。
loop 使って処理するのは結構面倒です。
新規ウインドウ
レコードの絞り込み[選択 ; "選択"]
If ( G絵t(最終エラー ) = 0 0
対象レコード削除
end If
ウインドウを閉じる
とするといいでしょう。
ありがとうございます。
Loopを使って処理するのが面倒って、知りませんでした。
私のバージョンでは下記に記述します。
新規ウインドウ [スタイル: ドキュメント]
対象レコードの絞り込み [記憶する]
If [Get(最終エラー) = 0]
対象レコード削除 [ダイアログなし]
End if
ウインドウを閉じる [現在のウインドウ]
※対象レコードの絞り込みの内容
・検索条件の指定 処理:レコードの検索 条件:テーブル::選択: [="選択"]
※Shin先生が記述いただいた「Get(最終エラー ) = 0 0」ですが、その通りに入力すると「Get(最終エラー ) = 0 」になっておりました。
試しに実行しますと「このレコードは既に別のウインドウで変更中のため、このウインドウでは変更できません」というダイアログメッセージが出ております。
どうしたらよろしいでしょうか。ご教示お願い致します。
Offline
レコードがアクティブのままになっているのでしょう。最初に、レコードを確定 をいれておくといいです。
Offline
元のウィンドウでレコードが確定してないのでは。
絞り込みでエラーが出ることは通常はないと思います。
それよりも共有ファイルの場合は「対象レコード削除」しても他で編集中のレコードは削除できずに残るはずなので、削除後のエラーコード化、対象レコードが0件になってるか確認した方がいいでしょう。
レコードがアクティブのままになっているのでしょう。最初に、レコードを確定 をいれておくといいです。
Shin先生、ご指摘の通りでございます。
レコード/検索条件確定 [ダイアログなし]
新規ウインドウ [スタイル: ドキュメント]
対象レコードの絞り込み [記憶する]
If [Get(最終エラー) = 0]
対象レコード削除 [ダイアログなし]
End if
ウインドウを閉じる [現在のウインドウ]
これを検証してみたところ問題ないことを確認できました。
すごく勉強になりました。ありがとうございました。
Offline
Pages: 1
[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 521.14 KiB (Peak: 525.68 KiB) ]