初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2015-12-17 11:47:07

nakayama
Guest

スクリプトで検索を行い、対象レコードがなかった場合に元の状態へ戻したい

FM13 Ad / WIN7

お世話になっております。
タイトルの件について、ご相談させてください。


現在、日付の期間を指定する検索を行うために、開始と終了を入力するための
グローバルフィールド(日付)を用意し、そこに入力してから実行ボタンを
押すと該当項目に「yyyy/mm/dd...yyyy/mm/dd」と入力され、
対象レコードが表示されるようになっております。

その際に、対象レコードがなかった場合はグローバルフィールドに値が入力されないために、
表示されるレコードが0件で表示がされてしまうので、全レコードを表示を追加しました。
ですが、この処理だとユーザー側の使い勝手が悪いとの事で、対象レコードがなかった場合は
その前に作業を行っていた状態へ戻したいと考えております。

そのようなことは可能になりますでしょうか。

例)
仮に○○項目で1.「2015/12/01...2015/12/07」で検索をした場合に20件がヒット
次に同項目で2.「2015/12/18...2015/12/31」で検索をした場合は0件
この場合に1.の状態へ戻したいです。

どなたかよろしくお願いします。

#2 2015-12-17 13:08:24

チポ
Member

Re: スクリプトで検索を行い、対象レコードがなかった場合に元の状態へ戻したい

方法1
  別ウインドウで検索

方法2
  検索前に対象レコードにフラグをたてておいて、
  検索結果0だったらそのフラグで検索

他にも方法が有りそうですが。。

Offline

#3 2015-12-17 13:11:11

旅人
Member

Re: スクリプトで検索を行い、対象レコードがなかった場合に元の状態へ戻したい

エラー処理をオフにしてキャンセルするのが手っ取り早いかも。

Offline

#4 2015-12-17 13:28:58

nakayama
Guest

Re: スクリプトで検索を行い、対象レコードがなかった場合に元の状態へ戻したい

チポ wrote:

方法1
  別ウインドウで検索

方法2
  検索前に対象レコードにフラグをたてておいて、
  検索結果0だったらそのフラグで検索

他にも方法が有りそうですが。。

チポさま

ご返事ありがとうございます。

2の方法に関しましては絞った件数に対して裏で対象レコード分に全置換で
フラグを立てるということでいいでしょうか?
件数が多い場合はやはり動きはもっさりしますか?

#5 2015-12-17 13:32:34

nakayama
Guest

Re: スクリプトで検索を行い、対象レコードがなかった場合に元の状態へ戻したい

旅人 wrote:

エラー処理をオフにしてキャンセルするのが手っ取り早いかも。

旅人さま

ご返事ありがとうございます。

やはりデフォルトのダイアログのキャンセルを押したほうが早いですか・・・。
ご年配の方が多いため、自動でできれば一番良いのですが・・・。

#6 2015-12-17 13:42:54

チポ
Member

Re: スクリプトで検索を行い、対象レコードがなかった場合に元の状態へ戻したい

全置換になりますね、
レコード数が多いとそれなりに時間がかかりますね。


こんなのは
方法3
  日付入力のグローバルフィールドと、範囲のリレーションをして検索の代わりに
  関連レコード移動
  とする。

これなら移動の前に関連レコードの有無を確かめられますね。

Offline

#7 2015-12-17 15:50:39

AMD
Guest

Re: スクリプトで検索を行い、対象レコードがなかった場合に元の状態へ戻したい

検索結果を手動でいじったりしないのであれば、
あたらしく検索する前に過去の検索条件を変数に保存して
結果がゼロなら過去条件で再検索してやるというのはどうでしょう。

#8 2015-12-17 15:57:14

旅人
Member

Re: スクリプトで検索を行い、対象レコードがなかった場合に元の状態へ戻したい

エラー処理 オン
ウインドウの固定
新規ウインドウ 名前「ダミー」
検索モードに切り替え
フィールド設定 期間条件を
検索実行
If Get(最終エラー)≠401
  ウインドウを選択 元のウインドウ
  検索モードに切り替え
  フィールド設定 期間条件を
  検索実行
Else
  (カスタムダイアログを表示 OK)
End If
ウインドウを閉じる 「ダミー」

としたらいいみたい。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.037 seconds, 9 queries executed - Memory usage: 519.09 KiB (Peak: 523.63 KiB) ]