はじめに
この記事はFileMakerで作成したフィールドに文字を入力する際に、字数制限をスクリプトによって機能させようという趣旨のものです。
システムを組んでいる上で、特定のフィールドに字数制限をしたいのですが、FileMakerにもともとついている機能を使うと都合よく動きません。また、ここでそれに該当する記事を探したのでなかったので、スクリプトで自作しました。
動作環境
MacBook Pro
OX X 10.12.1
FileMakerPro14 Advanced
※2017/12/26:FileMakerPro16 Advancedでの動作を確認
FileMakerの字数制限
FileMakerの機能を使えば字数制限自体は可能である。しかし、ポップアップが出たのちに、そのデータのまま入力を続けることができてしまいます。これでは、帳票に出力した際に、字数オーバーしたデータが出力されない事態が発生してしまいます。これでは都合が悪いので、どうしても字数オーバーできないようにしたいです。


ここでは、半角、全角が同居していても文字数を判断したいため、バイトで判断するようにしています。
バイトで文字数をカウントするためには、「lengthb」を、バイトで文字数をカウントしてleft関数と同様の働きをさせるには「leftb」をそれぞれ用意する必要があります。
それらの関数は、ここに乗っています。
また、この関数を設置する個所として、スクリプトトリガのOnObjectSaveを選択し、スクリプト引数に最大文字数(バイトなので、基本全角最大文字数*2)を入力する。
そして、スクリプトを設定したフィールドで文字数を超過すると、以下のような表示が出ます。

表示が出たのち、OKを押すと文字数制限を超えた分だけの文字列が削除されます。
最後に
FileMakerはリファレンスが充実していないので、もっぱらcommunityを利用しているのですが、qiitaとかでももっと記事が増えた方がいろんな人が使えていいなと思いました。
自分も、FileMakerでいくつか記事を書いてみようかな。
何か、質問点・問題点があれば教えてください。