一.概要
1.応用シーン
特定のフィールドで書き込まれたデータが重複しているかを確認する必要がある場合があります。重複していれば、検証エラーメッセージが表示され、送信は許可されません。
2.考え方
検証式が組み込まれたセルに入力し、拡張する必要がある場合は、トラバーサル判断します。この機能により、セルの拡張されたすべての値を文字列として使用し、検証式で配列と処理した後、GREPARRAY()関数により配列から現在値をトラバーサルフィルタリングして、その個数を判断します。数値が1より大きい場合は、値が重複していることを意味します。
二.例示
1.データの準備
クエリデータセットds1を作成してください。SQLステートメントはSELECT* FROM総売上
2.テンプレートの設計
書込帳票を設定し、営業者と総売上フィールドをそれぞれセルA2とB2にドラッグし、テキストウィジェットを追加します。セルA3で式=JOINARRAY([A2],",")を書き込み、セルA2で拡張されたすべての値を配列として取得することに用いられます。最後に、3行目を非表示にします。
3.送信の設定
メニューバーのテンプレート>書込属性をクリックし、ビルトインSQLを追加し、送信します(下図参照)。
4.データ検証の設定
メニューバーのテンプレート>書込属性>データ検証をクリックし、ビルトイン検証を追加します(下図参照)。
検証式:len(GREPARRAY(split(A3,","),item=A2))<=1
この式の意味は、A2の拡張された各値をトラバーサルフィルターリングし、配列されたA3文字列をフィルタリングし、各A2値の出現回数を取得することです。数値が1より大きい場合は、値が重複していることを意味します。
注:上記の式はnull値を検出しません。null値を検出したいと考える場合は、式をlen(GREPARRAY(split(A3,","),item=A2))=1に置き換えることができます。
5.プレビュー
帳票を保存し、書込プレビューを使用します。営業者フィールドに重複するデータがある場合、検証は失敗します(下図参照)。