はじめに

この記事では、文字列(複数行)フィールドに入力された文字列の行数をカウントしたり、行数に制限をかける方法をご紹介します。


行数ではなく文字列をカウント、制限したい場合には「文字数をチェックする」を使用することで解決できます。


想定するアプリ

今回はシンプルに以下の 3 つのフィールドでカスタマイズを行います。画像内の説明の通り、「文字列(複数行)」が行数を数えた時に、制限をかけたいフィールドです。「文字数カウント用」と「行数」フィールドは文字数を数える処理のために必要なフィールドです。




行数をカウントする処理

まず、行数をカウントする部分の処理を作成します。1番のアクションでは、やること「複数行文字列を1行に変換する」、条件「レコードを保存する直前(削除時は除く)」を指定します。

パラメータの文字列(複数行)フィールドには「文字列(複数行)」フィールドを、結果をセットするフィールドには「文字数カウント用」フィールドを指定し、区切り文字には「aa」(aを2文字)と指定します。



このアクションのみでカスタマイズを実行すると、以下のように登録されます。



続いて、2番のアクションにはやること「フィールドに値をセットする」、条件「他のアクションの実行が完了した時」を指定します。


フィールドには「行数」フィールド、値には「= count( 文字数カウント用 ) - count( 文字列__複数行_ ) + 1」と入力します。



このカスタマイズを実行すると以下のように「行数」フィールドに「文字列(複数行)」フィールドの行数が入力されます。



このカスタマイズで何を行っているかを簡単に説明すると、1番のアクションにて「文字列(複数行)」フィールドに入っている改行(1文字)を「aa」(2文字)という文字列に置き換え、2番のアクションでその差を比較しています。

その結果、「文字列(複数行)」フィールドの行数を数えることができます。


行数に制限をかけたい場合

ここまでの設定で行数を数える事が実現できました。もうすこし応用的なカスタマイズとして、例えば入力できる行数に制限をかけたい場合は、追加で以下の設定を行います。


以下の設定の例では「行数」フィールドが3より大きい時(つまり、4行以上入力されている時)にエラーとなります。



動かしてみると、以下のようにエラーが表示されます。


これで行数のカウント、制限がともに実現できたかと思います。


最後に作成したカスタマイズをまとめて記載します。



まとめ

文字列(複数行)の行数を数えたい場合は、やること「複数行文字列を1行に変換する」を用いる事で、行数を数える事ができます。

お試しいただいてご不明な点がございましたら、チャットでお気軽にお問合せください。