濁音や拗音の違いを考慮したカナ検索

最終更新日: 2022年3月8日
R8 | R9

この設定を行っておくことで濁音、清音のいずれでも検索ができます。
ここでは顧客名「山田」のカナ名が「ヤマダ」か「ヤマタ」か不明な場合でも、ひとまずいずれかで登録しておき、どちらでも検索できる例を示します。

氏名「山田 太郎」、カナ氏名「ヤマダ タロウ」と登録します。

顧客詳細表示画面

カナ氏名「ヤマダ」で検索します。

「ヤマダ」で検索

カナ氏名に「ヤマタ」と指定して検索しても、同じデータを見つけることができます。

「ヤマタ」で検索

定義方法

  1. 定義のポイントは「カナ氏名」を2項目用意することです。
    「customerkana」は通常の入力及び一覧表示用です。もう一方の「customerkana2」は検索条件用とし、入力画面では隠し項目とします。
    モデル項目一覧

    両項目の関係は下図の通りです。

    customerkana項目とcustomerkana2項目の関係
  2. customerkana2は、入力画面で隠し項目とします。
    「入力制御 > 隠し項目」で、「全画面」にチェックを入れます。
    cutomerkana2を隠し項目とする
  3. 同様に、出力画面でも隠し項目とします。
    「出力制御 > 詳細画面 > 共通」で、「隠し項目にする」にチェックを入れます。
    出力時に隠し項目とする

    ワンポイント

    CSVダウンロード機能を有効にした場合は、「出力制御 > その他」より「CSVに出力する」のチェックをはずしてください。
    これにより、CSVダウンロード出力時にこの項目が含まれなくなります。

    CSV出力を行わない
  4. 「詳細」タブを開き、以下の自動計算式を設定をします。
    また、「値をデータベースに保存する」は有効にします。(標準では有効になっています)
    JPKANANORM(${customerkana})
    自動計算の設定

    入力された customerkana の値を JPKANANORM 関数を使って濁音や拗音を正規化します。
    また、この customerkana2 項目で検索を行うため、データベースに保存します。

  5. 検索の初期値として、検索画面で入力された文字(検索条件文字列)を清音化します。
    これにより、検索欄に入力された文字列も同じように清音化されるため、必ずヒットするようになります。
    JPKANANORM(${customerkana2})
    「初期値」の設定