6 返信 最新の回答 日時: Feb 9, 2017 1:26 AM ユーザー:shin

    バーコード入力

    watarunakagawa

      FileMaker11 + Win 7の環境での質問です。

      バーコードリーダを利用して、読み取った後次のフィールドに移動させようとしています。
      スクリプトトリガーの「OnObjectSave」イベントで、次のスクリプトを走らせようとしています。
      バーコードのレコードは11桁固定です。

      If [Length (「フィールド名」) > 10]
      レコード/検索条件確定[ダイアログなし]
      フィールドへ移動[「指定フィールド」]

      しかし、バーコードで読み取っても、入力フィールドにとどまったままで、移動して欲しいフィールドに行きません。

      私のスクリプトの作り方がまずいのでしょうか。
      それともFM11のスクリプトトリガーでは実現できないのでしょうか。
      最新のFM15なら、実現できるのでしょうか。

      よろしくお願いします。

        • 1. Re: バーコード入力
          shin

          OnObjectSave ですから、オブジェクトを保存する動作を行わないとトリガーされません。

          バーコードのポストフィックスに enter 等を追加して送信させるといいかと思います。

          • 2. Re: バーコード入力
            watarunakagawa

            shinさま、有り難う御座いました。

            私が持っているバーコードリーダは改行と改行せず、の設定しか出来ませんでした。

            データを確定するenterの機能がある機種を探してみます。

            • 3. Re: バーコード入力
              user14047
              • 4. Re: バーコード入力
                shin

                さらに OnObjectExit にしてみればいいかも。

                または、OnObjectModfy などを使って、桁数が決まっていれば確定させるなどもできるでしょう。

                • 5. Re: バーコード入力
                  watarunakagawa

                  user14047様

                   

                  おかげさまで解決しました。

                  「次のオブジェクトへの移動に使用するキー」の変更は思いつきませんでした。

                   

                  有り難う御座いました。

                   

                  shin様

                   

                  OnObjectModfyも試してみましたが、コード内容の1文字目が入力されたところで、次のフィールドに移動しました。

                  OnObjectExitも試しましたが、次のフィールドに行きませんでした。

                   

                  有り難う御座いました。

                  • 6. Re: バーコード入力
                    shin

                    OnObjectValidateの方が良いかもしれませんね。

                    これを使う時には、呼び出したスクリプトの終了方法を設定するとうまく行きます。

                    Modify の時は、このスクリプトを終了でスクリプトの結果に 0 を入れておくと、次の文字を読み取り、処理が続きます。11桁になって処理が終了したら、スクリプトを終了の結果を 1 にすると良いでしょう。

                    内部の処理は、全てスクリプトで作り込まないと行けませんので、ちょっと面倒です。