ブログ

2021/11/17
【プリザンター】 第122回)拡張フィールドを使って検索をもっと便利にする方法

拡張フィールドで検索をもっと便利に!

こんにちは、シーイーシーカスタマサービスの森山です。

普段、一覧画面で検索をする際は、「フィルタ」エリアの「検索対象の項目」を使って検索されていると思います。
この「検索対象の項目」が分類項目、且つ、選択肢が設定されている場合、チェックボックスでの選択となり文字列での検索はできません。
かと言って、通常の「検索」項目にて検索を行うと検索対象項目以外の項目も検索されてしまい、なかなか思うような検索結果が得られません。

そこで、バージョン1.2.1.0にて実装された「拡張フィールド機能」を使用すると、分類項目、且つ、選択肢が設定されている場合でも文字列での検索が可能となります!
もちろん、分類項目以外の項目でもお使いいただけます。
次にて、その設定方法についてご説明します。

拡張フィールドで検索を行うための設定方法

この機能を使用するには、以下の設定が必要となります。
①サーバスクリプト
②拡張フィールド
③拡張SQL

それでは、順にご説明していきます。

※この設定では、拡張SQLなどを使用します。
 記載ミスでエラーとなり、プリザンターに影響が出る場合があるため、十分に注意して下さい。
 また、何か問題が発生した場合には設定を戻せるよう、バックアップ等の対応を行ってください。

①サーバスクリプトの設定
設定したいテーブルの「サーバスクリプト」タブに以下を記載します。
※1行目「view.Filters.ExtendedField」の ExtendedField の部分は、
 ②拡張フィールドの設定 "Name" で指定したものとなります

※2行目「SelectingWehreTest」の部分は、③拡張SQLの"Name"で指定したものとなります。

なお、条件は「行表示の前」を選択します。


if(view.Filters.ExtendedField){
view.Filters.OnSelectingWhere = 'SelectingWhereTest';
}


②拡張フィールドの設定
C:\web\pleasanter\Implem.Pleasanter\App_Data\Parameters\ExtendedFields に、
以下の内容を記載した「.json」ファイルを格納します。
サイトIDには、①でサーバスクリプトを設定したテーブルのサイトIDを記載して下さい。
また、"LabelText"の値を変更することで、任意の表示名を設定できます。

{
"Name": "ExtendedField",
"SiteIdList": [ サイトID ],
"IdList": null,
"FieldType": "Filter",
"TypeName": "nvarchar",
"LabelText": "Extended field",
"SqlParam": true
}


③拡張SQLの設定
C:\web\pleasanter\Implem.Pleasanter\App_Data\Parameters\ExtendedSqls に、
以下の内容を記載した「.json」「.json.sql」ファイルを格納します。

「.json」ファイル(例:testSql.json)

{
"Name": "SlectingWhereTest",
"SiteIdList": null,
"OnSelectingWhere": true,
"OnSelectingWhereParams": [ "ExtendedField" ]
}


「.json.sql」ファイル(例:testSql.json.sql)
※ファイル名は上記で作成した.jsonファイルと同名.sqlとしてください
※下記は、記録テーブル(Results)の分類A(ClassA)を検索対象と指定しています

([Results].[ClassA] like '%' + @ExtendedField + '%')


最後に、IISを再起動してください。

まとめ

さて、いかがでしたか?

今まで思うように検索結果が得られなかった方には嬉しい機能かと思いますので、ぜひ一度チャレンジしてみてください!

導入の支援、スクリプト開発などでお困りの場合は、当社で支援もいたします。プリザンター逆引き辞典PDF版やスタイル・スクリプトサンプル集PDF版の販売もしております!

☆☆ブログ内容への質問や追加説明をご希望の方は
【問い合わせフォーム】 こちら からお気軽にお問い合わせください☆☆

PAGE TOP