みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
連投での質問、申し訳ございません。
現在会社のシステムを勉強しながら作ってるのですが、以下の場合で悩んでおります。
環境MACにFMS13 , Windows7にPro12,13の混在
悩んでるのは、検索時の問題です。
経緯を記載しますと、
FM13の機能:次の場合にオブジェクトを隠す
・Get ( ウインドウモード ) = 1
・Get ( ウインドウモード ) = 0
を利用しながら、ツールバーの検索モード時にボタンやフィールドを隠したり表示させたりしてたのですが・・・
気づかなかったのですが、当たり前ながらFM12で見た場合、この機能が効かず・・・
表示されてしまいました。。
そこでツールバーの検索モードではなく、検索レイアウト・検索スクリプトを別に作る方向に切り替え
・表示レイアウト:検索ボタンを押す→検索レイアウト切替
・検索レイアウト:実行ボタンを押す→表示レイアウト切替
を用意しました。検索を実行して検索結果が1以上のレコードの場合は問題ないのですが
検索結果が0の場合、表示レイアウトでレコード0の状態で表示されてしまいます。
今までツールバーの検索モードを利用してたときは検索結果が0の場合、
この検索条件に一致するレコードがありません とダイアログがでて、キャンセルを押すと
検索前のレコード数を保持してくれてる状態になっていました。
そこで、上記スクリプト実行時に同様にするためにはどうすればいいのでしょうか?
if文でget (対象レコード) = 0の場合、
カスタムダイアログ:検索結果が0です。キャンセルしますか?入力しなおしますか?
とまでは判ったのですが、そこからなにをどうすればと固まっております。
アドバイス頂けますと助かります。
検索レイアウトになっているときに、検索モードになっていると思います。
モード切り替えかレイアウトの切り替えで、同様のスクリプトを起動させればいいでしょう。
Offline
スクリプトでないときは、「キャンセル」で元の検索状態に戻るのに、
スクリプトの時は、「キャンセル」だとスクリプトの中止になって、「続行」だと0件になる
ということでは。
「新規ウィンドウ」で状態を保存するか、検索条件を保存しておいて検索し直すか?
検索実行の前に
エラー処理 on
を入れておかないと検索結果が無い場合アラートがでます。
検索を別ウインドウで実行して、
対象レコードが0の場合そのウインドウを閉じる。
ならば検索以前の状態を維持できますが、
問題は、
検索結果が有る場合、ウインドウ名が変わってしまい、
元のウインドウが残ってしまいます。
これを避けるなら、
元のウインドウを閉じて、
新規ウインドウを元のウインドウ名で開き、
検索で開いたウインドウを閉じる。
こんな方法でしょうか。。
Offline
ああ、スクリプトステップ
ウインドウタイトルの設定
が有りましたね。
これを使えば前記の3ステップが2ステップで済みますね。
全く使ったことがなかったので忘れていました。
Offline
Shinさん、ありがとうございます。
私の説明不足ですいません、なんだか理解できませんでした。。
timさん、ありがとうございます。
仰るとおりでスクリプトで行うと、結果0のときに元に戻らないということが言いたかったです。
チポさん、ありがとうございます。
なんとなくイメージがわかりました。試してみます!
しかし皆さん、意外にこういう問題ないのでしょうか?
考え方が私は間違ってるのかもしれませんね。。
普通は、結果がなければ条件を変えて検索し直すだけなんで、0件でも困らない。
困るのは絞り込み検索をする場合ぐらい?
[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 512.23 KiB (Peak: 516.77 KiB) ]