みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
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.の状態へ戻したいです。
どなたかよろしくお願いします。
方法1
別ウインドウで検索
方法2
検索前に対象レコードにフラグをたてておいて、
検索結果0だったらそのフラグで検索
他にも方法が有りそうですが。。
Offline
エラー処理をオフにしてキャンセルするのが手っ取り早いかも。
Offline
方法1
別ウインドウで検索方法2
検索前に対象レコードにフラグをたてておいて、
検索結果0だったらそのフラグで検索他にも方法が有りそうですが。。
チポさま
ご返事ありがとうございます。
2の方法に関しましては絞った件数に対して裏で対象レコード分に全置換で
フラグを立てるということでいいでしょうか?
件数が多い場合はやはり動きはもっさりしますか?
エラー処理をオフにしてキャンセルするのが手っ取り早いかも。
旅人さま
ご返事ありがとうございます。
やはりデフォルトのダイアログのキャンセルを押したほうが早いですか・・・。
ご年配の方が多いため、自動でできれば一番良いのですが・・・。
全置換になりますね、
レコード数が多いとそれなりに時間がかかりますね。
こんなのは
方法3
日付入力のグローバルフィールドと、範囲のリレーションをして検索の代わりに
関連レコード移動
とする。
これなら移動の前に関連レコードの有無を確かめられますね。
Offline
検索結果を手動でいじったりしないのであれば、
あたらしく検索する前に過去の検索条件を変数に保存して
結果がゼロなら過去条件で再検索してやるというのはどうでしょう。
エラー処理 オン
ウインドウの固定
新規ウインドウ 名前「ダミー」
検索モードに切り替え
フィールド設定 期間条件を
検索実行
If Get(最終エラー)≠401
ウインドウを選択 元のウインドウ
検索モードに切り替え
フィールド設定 期間条件を
検索実行
Else
(カスタムダイアログを表示 OK)
End If
ウインドウを閉じる 「ダミー」
としたらいいみたい。
Offline
[ Generated in 0.037 seconds, 9 queries executed - Memory usage: 519.09 KiB (Peak: 523.63 KiB) ]