【FMP】入力文字列のスタイルを全部削除する – FileMaker Pro

FileMaker Proで、フィールド欄にコピペをすると
コピー元のスタイルが付いていて、鬱陶しい事がありませんか?
キーコンビネーションで、スタイルを全て無視して
プレーンなテキストのみペーストをすることもできますが、ちょっと面倒ですね。

フィールドにペーストしたら自動的にスタイルを全部削除してくれると便利だと思います。


「カスタム関数」のコード

コードだけ分かればよくて「説明などいらん」という人のために先に書いておきます。

関数の引数:項目

TextColorRemove ( 
    TextFontRemove ( 
        TextFormatRemove ( 
            TextSizeRemove ( 
                TextStyleRemove ( 
                    項目 ; すべてのスタイル
                )
            )
        )
    )
)

コードの解説

上記コードを大雑把に解説します。
FileMaker Proには「TextStyleRemove」関数が用意されています。
この「TextStyleRemove」関数は、2番目の引数に「AllStyles」を記述することで、
使用できるすべてのスタイルを簡単に取り除けると、ヘルプには記述されています。
(「AllStyles」と記述して保存すると「すべてのスタイル」という文字列に置き換わる)
しかし、どういうわけか、
全てのスタイルを削除しきってくれず、いくつかのスタイルが残ってしまうのです。
(バグかも知れない)
そこで、その残ってしまうスタイルを取り除く関数を全部入れ子にする事によって、
完全な関数にしています。(FileMaker Pro 15 Advancedで検証した)


定義の仕方と使い方

  • 「スクリプトトリガ設定」で、予め用意しておいたスクリプトを実行させる。
  • 計算フィールドに組み込む。
  • フィールドのオプションで「入力値の自動化」に組み込む。

などの使い方があります。
ただ、よく使う内容になりますので、あちこちに記述するのではなくて、
「カスタム関数」で定義しておいて、
必要に応じてスクリプトや計算フィールドから使う形が良いと思われます。
その方が、拡張性やメンテナンス性にも優れます。
ここでは、その「カスタム関数」の定義の仕方と使い方を、Macの場合で説明します。

「カスタム関数」の定義 – Mac

まず、FileMaker Proを起動しておきます。

  1. 画面上方のメニューバーから、
    「ファイル」→「管理」→「カスタム関数」
    と進みます。
  2. 現れたウインドウで、「新規」に作成します。
  3. 現れたウインドウで、各項目を入力していきます。
    「変数名」はなんでも構いませんが、ここでは「書式の全排除」としています。
  4. 「関数の引数」に引数の名前を入力して[+]ボタンを押します。
    引数の名前は何でも構いませんが、ここでは「項目」としています。
    この引数がカスタム関数に渡されるパラメーターになります。
  5. その下の大きなフィールドに計算式を記述します。
    今回は、先述したコードをコピペしてしまって構いません。
  6. すべて記述できたら、[OK]ボタンで保存終了します。

「カスタム関数」の使い方 – Mac

ここでは、使い方の例として、
フィールドに入力後、そのフィールドから移動したら、自動的にスタイル無しに置き換える
という機能を実装してみます。
まず、FileMaker Proでフィールドを作っておいてください。
「テーブル名」はなんでも構いませんが、ここでは「test」としています。
「フィールド名」はなんでも構いませんが、ここでは「test007」としています。
  1. 画面上方のメニューバーから、
    「ファイル」→「管理」→「スクリプト」
    と進みます。
  2. 現れたウインドウでスクリプトを定義します。
    「スクリプト名」はなんでも構いませんが、
    ここでは「書式をすべて排除する」としています。
  3. 右側のステップ一覧から「フィールド設定」を追加します。
  4. ターゲットフィールドの指定は先程作っておいた「test007」を選択します。
  5. 計算結果には、
    書式の全排除 ( test::test007 )
    と記述します。

    済んだら[OK]ボタンを押して保存終了します。
  6. 次に、「レイアウトの編集」で、フィールド「test007」を右クリックします。
    現れた選択肢から「スクリプトトリガ設定」を選択します。
  7. 現れたウインドウで、「OnObjectExit」にチェックをいれます。
  8. 「スクリプト」は、先程作っておいた「書式をすべて排除する」を選択します。
  9. [OK]ボタンで保存終了します。
  10. 右上にある[レイアウトの終了]ボタンを押してブラウズモードに戻ります。

これで終了です。
フィールド「test007」にスタイル付きのテキストをコピーしてみてください。
そして、例えば「tab」キーを押すなどして、そのフィールドから移動すると、
全てのスタイルが取り除かれてプレーンテキストになります。



お気に召しましたら、一票(ワンクリック)下さい。ランキングに参加しておりますゆえ。


人気ブログランキング

パソコンランキング

Macランキング



コメントを残す

メールアドレスが公開されることはありません。