第123回 文字数によって文字サイズを変更する
こんにちは。エヌ・ケイ・カスタマイズの沖田です。
このブログも123回もの回数を重ねて参りました。余談ではありますが、私の生年月日は1月23日です。123回目のブログ担当と重なるあたり、何かの縁を感じます。
最近の出来事といえば、ゴルフを先月から始めました。やればやるほど奥が深いスポーツだと実感する今日この頃です。今は打ちっぱなしでの練習のみですが、今年中にコースデビューをしたいです。
今回は、文字数によって文字サイズを変更する方法を学んでいきましょう。
この考え方は使用する場面は結構あります。よくあるのが、住所などの印刷表示についてです。
入力画面で枠を設けていても、印刷時は、印刷する紙に文字が切れないように調整する必要があります。このような時に、文字サイズを可変的にできれば便利ですね。では実装していきます。
考え方
レイアウトに配置したフィールドが何文字表示できるか数えて、書式設定関数で文字サイズを小さくします。
実装
(1)住所録テーブルを作成し、住所フィールドおよび印刷用住所フィールドを作成します。
※印刷用住所フィールドが計算式となっており、今回は、let関数とcase関数を利用しております。
上記は、入力された住所の文字数に応じて、
文字数26文字より多い → 文字サイズを6にする。
文字数23文字より多い → 文字サイズを7にする。
文字数20文字より多い → 文字サイズを8にする。
文字数18文字より多い → 文字サイズを9にする。
文字数16文字より多い → 文字サイズを10にする。
文字数15文字より多い → 文字サイズを11にする。
上記に該当しない場合は、標準の文字サイズ
となります。case文は上から比較していき、該当した箇所で決定されます。(case文を抜ける)
実行例
実際に動きを確認してみます。レイアウトに「住所」フィールドと「印刷用住所」フィールド、また文字数確認用に文字数を表示するフィールドを配置しました。
「住所」フィールドでは文字サイズがデフォルトのサイズですが、「印刷用住所」フィールドでは、文字サイズが11に変換されて、枠内に収まるようになっております。
またフィールドを増やさないで対応したい場合や、文字サイズのみでなく色も変更したいなど、多岐に渡る要件が出てきた場合などは、条件付き書式を使用することでも同じようなことが再現可能です。
まとめ
いかがでしたでしょうか?
Filemakerにおいても、実現したいことを再現するためには色々な方法があります。文字サイズの可変対応は良く使用する事例がございます。私もこれまでは、条件付き書式を利用することが多かったのですが、別の方法でも実現できることを体験することができました。今後のApp開発にも生かしていければと思っております。
それでは、来週もお楽しみに!
参考文献:Claris FileMaker 公式トレーニング教材 から、「FileMaker 関数・スクリプトガイド」等を参考にしています
https://content.claris.com/fmb19_reg-ja