はじめに
この記事では、文字列(複数行)フィールドに入力された文字列の行数をカウントしたり、行数に制限をかける方法をご紹介します。
行数ではなく文字列をカウント、制限したい場合には「文字数をチェックする」を使用することで解決できます。
想定するアプリ
今回はシンプルに以下の 3 つのフィールドでカスタマイズを行います。画像内の説明の通り、「文字列(複数行)」が行数を数えた時に、制限をかけたいフィールドです。「文字数カウント用」と「行数」フィールドは文字数を数える処理のために必要なフィールドです。
行数をカウントする処理
まず、行数をカウントする部分の処理を作成します。1番のアクションでは、やること「複数行文字列を1行に変換する」、条件「レコードを保存する直前(削除時は除く)」を指定します。
パラメータの文字列(複数行)フィールドには「文字列(複数行)」フィールドを、結果をセットするフィールドには「文字数カウント用」フィールドを指定し、区切り文字には「aa」(aを2文字)と指定します。
このアクションのみでカスタマイズを実行すると、以下のように登録されます。
続いて、2番のアクションにはやること「フィールドに値をセットする」、条件「他のアクションの実行が完了した時」を指定します。
フィールドには「行数」フィールド、値には「= count( 文字数カウント用 ) - count( 文字列__複数行_ ) + 1」と入力します。
このカスタマイズを実行すると以下のように「行数」フィールドに「文字列(複数行)」フィールドの行数が入力されます。
このカスタマイズで何を行っているかを簡単に説明すると、1番のアクションにて「文字列(複数行)」フィールドに入っている改行(1文字)を「aa」(2文字)という文字列に置き換え、2番のアクションでその差を比較しています。
その結果、「文字列(複数行)」フィールドの行数を数えることができます。
行数に制限をかけたい場合
ここまでの設定で行数を数える事が実現できました。もうすこし応用的なカスタマイズとして、例えば入力できる行数に制限をかけたい場合は、追加で以下の設定を行います。
以下の設定の例では「行数」フィールドが3より大きい時(つまり、4行以上入力されている時)にエラーとなります。
動かしてみると、以下のようにエラーが表示されます。
これで行数のカウント、制限がともに実現できたかと思います。
最後に作成したカスタマイズをまとめて記載します。
まとめ
文字列(複数行)の行数を数えたい場合は、やること「複数行文字列を1行に変換する」を用いる事で、行数を数える事ができます。
お試しいただいてご不明な点がございましたら、チャットでお気軽にお問合せください。