6 返信 最新の回答 日時: Aug 20, 2015 11:03 PM ユーザー:Haluna

    フィールド入力を一時的に許可する

    Haluna

      タイトル

      フィールド入力を一時的に許可する

      フォーラムに投稿

      基本、ブラウズモードではフィールド入力不可だが、ボタンか何かを押すと一時的に入力可能になる。
      というようなことはできますか?

      私の知識で思いつく方法としては、
      そのフィールドをボタンにしておいて、ボタンのスクリプトは、レコード確定など、何も変わらない設定にしておく。→クリックしても入力できない。
      そのフィールドの端っこに小さなボタンを作り、押すと、そのフィールドに移動するように設定する。→編集可能になる。
      です。

      何かもっと効率的な方法があったら、教えてください。

      FileMaker Pro 14 Advanced を使っています。

        • 1. Re: フィールド入力を一時的に許可する
          user14047

          onObjectEnter のスクリプトトリガで、フィールド移動[] してしまえば、キャレットを入れた瞬間に外れてしまうので入力できなくなります。

          そのスクリプトを If[条件] で条件が真ならなにもしない、偽ならフィールド移動[]というようにすれば、ある条件の時だけ入力が可能になります。

          スクリプトトリガを使う方が、ボタンでフィールドを覆うより後々のメンテナンスはしやすいかと思います。

          • 2. Re: フィールド入力を一時的に許可する
            sago350@未来Switch

            お好みで。
            個人的には4)が好きです。見た目も解りやすいので。
             

            1)入力不可設定のフィールドを配置しておく。
            その横にポップオーバーを配置して、その中のフィールドは入力出来るようにしておく。

            2)フィールド単位のアクセス権限で、何かのフィールドに値が入ると編集出来るようにする。

            3)フィールド入力不可に設定してある同じレイアウトもう1つ作る。
            何かのフィールドに値が入るとレイアウトを切り替わるようにする。

            4)入力不可と入力可のフィールドを重ねて配置して、"隠す"設定で切り替える。
            何かのフィールドに値が入ると編集出来るように条件付けする。

            5)画面全体をWebビューアで覆ってしまう。
            ※Webビューアが上にあると入力できない。
            何かの条件でWebビューアが隠れるように条件付けする。
            Webビューアは黒の透過80%ぐらいにしておくと、レイアウトが見れますし、灰色になるので、入力できない様な画面になる。

            • 3. Re: フィールド入力を一時的に許可する
              Haluna

              Chamoさま、sago350さま、
              早速の回答ありがとうございます。
              勉強になります。

              Chamoさま、

              なるほど!入ったらすぐ移動させてしまえばいいのですね。
              カスタムダイアログで、変更しますか?などと出してもいいですね。

              sago350さま、

              たくさんの方法、ありがとうございます。
              迷ってしまいます。
              たしかに4)が1番良さそうですが、1)のポップオーバーも小細工が必要なくていいですね!

              ちなみに、変更はできないけど、そのフィールドのデータを選択してコピーすることはできるようにする方法はありますか?
              フィールドタイプは、テキストや数字です。

              • 4. Re: フィールド入力を一時的に許可する
                user14047

                下図のようなフィールド設定にしておけば、フラグフィールドが「0」(false)の場合、値の変更ができなくなります。

                (入力はできるけど、強制的に復帰させられる)

                スクリプトトリガも要りませんし、レイアウト上にオブジェクトを重ねる必要もありません。
                ただ、レコード復帰を促すダイアログが鬱陶しいのであまり好きな方法ではないですが、この状態なら、フィールドに入ることはできるので、テキストをコピーすることはできます。

                もし、全てのフィールドを同じ状態にしたいというのであれば、アクセス権でレコードをカスタムアクセス権にして、「編集」のところの制限をかけた方が楽かもしれませんね。

                 

                • 5. Re: フィールド入力を一時的に許可する
                  sago350@未来Switch

                  簡単な方法だと、レコードの何もない箇所を右クリックして、「レコードのコピー」を選ぶと、レイアウトに配置されているフィールドの内容をコピーしてくれます。
                  Excelに貼り付けると、ちゃんとフィールド毎にセルに張り付きます。

                  • 6. Re: フィールド入力を一時的に許可する
                    Haluna

                    画像付きでありがとうございます!

                    右クリックの方法、知りませんでした。お恥ずかしい…それで十分でした。

                    ありがとうございました。