5 返信 最新の回答 日時: Sep 3, 2014 11:53 PM ユーザー:rody

    かな入力のバッファークリアについて

    rody

      タイトル

      かな入力のバッファークリアについて

      フォーラムに投稿

           初めて投稿させて頂きます。
           宜しくお願いします。
            
           FileMaker Pro 11を使用しています。OSはWindows7です。
            
           かな入力のバッファーが意図せずフィールドに反映されることが
           あり困っています。
            
           キーボードがかな入力の状態でどのフィールドにもカーソル
           当てていない時に何かキーを打つと、モニタの左上に変換前の
           テキストが表示されますよね。
            
           【ケース1】
           この状態で新規レコードを作成すると、シリアル番号設定されている
           フィールドに先ほど入力したテキストが追加された。
           (例)
           メニューの「新規レコード」は使用せず、スクリプトで新規作成。
           noフィールドはタブ順の1に設定。
            
           【ケース2】
           特定のフィールド内容をコピーするスクリプトを実行すると
           コピーするフィールドにかな入力のバッファーが反映されてしまう。
           (例)
            コピー [選択; カタログ::no]
            フィールドへ移動[]
            
           他にも変更したくないフィールドにバッファーが反映されて
           しまうケースがあるかもしれないと不安に思っています。
           皆さんはどのように対処していますか?
            

      10.png

        • 1. Re: かな入力のバッファークリアについて
          sago350@未来Switch

               コピーじゃなくて、変数に格納すればいいんじゃないかと。

          • 2. Re: かな入力のバッファークリアについて
            rody

                 sago35様

                 早速のご返信ありがとうございます。
                 WordやExcelのような他のアプリケーションにデータをコピーしたい
                 ことがあるので、クリップボードにデータを置きたいのです。

                 変数を使ってクリップボードに格納できれば確かにいいのですが
                 やり方がわかりませんでした。

                 一応、自分なりに試してみたところ、ダミーのグローバルフィールドを
                 1つ作っておいて、そこを経由してから目的のフィールドをコピーと
                 やれば、ダミーにバッファーが落ちてうまくいきました。
                 しかし、この方法だと必ずレイアウト中にダミーフィールドを置かなければ
                 なりません。そこで、ブランクのレイアウトを1つ追加してダミーを置き、
                 そこを経由してからにすれば、全てのレイアウトを直さずに済みますが
                 もう少しスマートな方法があればと思い、引き続き検討中です。。

            • 3. Re: かな入力のバッファークリアについて
              Shin

                   シリアル番号の件は、データ入力後の値変更の禁止、にしておけばいいでしょう。

                   通常のフィールドの場合は、フィールドへ移動する前に、SendKeyでCRを一つ送っておく、BSをいくつか送っておく、などを行っておけばいいかもしれません。(未検証)

              • 4. Re: かな入力のバッファークリアについて
                rody

                     Shin様

                     アドバイスありがとうございます。
                     シリアル番号のフィールドで値変更の禁止にチェックをしたところ、解決致しました。
                     ずいぶん単純なところを見落としておりました。

                     値変更を禁止したフィールドであれば、コピーのスクリプト実行時も不具合がありませんでした。

                     通常フィールドの場合について、Eventを送信でSendKeyを試しましたがうまくいきませんでした。。
                     もう少し試してみます。

                • 5. Re: かな入力のバッファークリアについて
                  rody

                  通常フィールドのコピーに関して、FM11限定ですが、プラグインでクリップボードへの格納ができました。
                  FM10も使用していますが、FM10ではそのプラグインが使用できないため、以下のようにしてとりあえず対処しました。

                  【スクリプト】
                  変数を設定 [$data; 値:Get (アクティブフィールド名)]
                  レコード/検索条件復帰 [ダイアログなし]
                  Event を送信 [ファイル/アプリケーションを開く; "cmd.exe /c set /p<NUL=\"" & GetField ($data) & "\"|clip"]

                  フィールドは入力可能にしておき、スクリプトトリガのOnObjectEnterに上記スクリプトをセット

                  フィールド指定してCMDでクリップボードセットだけでも問題なかったのですが、
                  どうせなら汎用性のある方がいいと思い、上記のようにしてみました。
                  カーソルが指マークに変わらないのが玉に瑕ですが、これでしばらく使い勝手をみてみます。