view.OnSelectingWhere
概要¶
viewオブジェクトのOnSelectingWhereです。サーバスクリプトで拡張SQLのOnSelectingWhereを動的に指定する際に使用します。
使用例¶
以下の例では、ユーザID 3 以外のユーザに Name が SelectingWhereName の拡張SQLを適用します。
JavaScript¶
JSON¶
{
"Name": "SelectingWhereName",
"SpecifyByName": true,
"OnSelectingWhere": true,
"CommandText": "([Issues].[Status]=900)"
}
サンプルコード¶
Note
コード内の【 ... 】は適宜修正してください。
1. 「予定超過」ビューを選んだとき、実績工数が予定工数を超えたタスクに絞る
タスク管理の一覧で「予定超過」ビューを選んだときのみ、view.OnSelectingWhereで拡張SQL「OverEstimate」を当て、実績工数が予定工数を超えたタスクに絞ります。
実務での使いどころ¶
一覧のフィルタは、項目に入っている値で絞るもので、「実績工数が予定工数より大きい」のように項目どうしを比べる条件は作れません。拡張SQLの条件を、ビューを選んだときのみ当てれば、利用者はビューを切り替えて、予定を超えたタスクを見られます。
事前準備¶
1:プリザンターのサーバのApp_Data/Parameters/ExtendedSqlsの下に、下記の拡張SQLのJSONファイルを置き、プリザンターを再起動してください(拡張SQL)。拡張SQLは、画面からは設定できません。
JSON(ExtendedSqls/OverEstimate.json)¶
{
"Name": "OverEstimate",
"Description": "実績工数(NumA)が予定工数(NumB)を超えたタスク(PostgreSQL)",
"SpecifyByName": true,
"OnSelectingWhere": true,
"CommandText": "(\"Issues\".\"NumA\" > \"Issues\".\"NumB\")"
}
2:「タスク管理」テーブル(期限付きテーブル)で、以下の項目を有効化してください。
| 項目コード | 内容 |
|---|---|
| 数値A(NumA) | 実績工数 |
| 数値B(NumB) | 予定工数 |
3:「ビュー」タブで「予定超過」ビューを作成し、ビューのIDを控えてください。
4:サーバスクリプトを登録します。
4-1:「テーブルの管理 > サーバスクリプト」タブで「新規作成」を選択する。
4-2:タイトル: 任意の名前(例:overEstimateView)
4-3:スクリプト: 下記サンプルコードを貼り付け、【 】を3で控えたビューのIDにする
4-4:条件: 「ビュー処理時」にチェック
JavaScript¶
// 「予定超過」ビューのID(テーブルの管理の「ビュー」タブで確かめる)
const OVER_ESTIMATE_VIEW_ID = 【「予定超過」ビューのID】;
// 「予定超過」ビューを選んだときのみ、拡張SQL「OverEstimate」の条件(実績工数 > 予定工数)で絞り込む
// 一覧のフィルタでは、項目どうしを比べる条件は作れない
if (view.Id === OVER_ESTIMATE_VIEW_ID) {
view.OnSelectingWhere = 'OverEstimate';
}
注記¶
- 拡張SQLのJSONは、PostgreSQLの書き方です。SQL Serverの場合は、
CommandTextを([Issues].[NumA] > [Issues].[NumB])のように書きます。記録テーブルの場合は、IssuesをResultsにします。 SpecifyByNameをtrueにした拡張SQLは、view.OnSelectingWhereで名前を指定したときのみ当たります。- 拡張SQLのJSONを変えたときは、プリザンターの再起動が必要です。
- 同じ比べ方を、項目を変えていくつも使う場合は、view.AddColumnPlaceholderで項目を差し込む形にすると、拡張SQLを1つにまとめられます。
対応バージョン¶
| 対応バージョン | 内容 |
|---|---|
| 1.2.2.0 以降 | 機能追加 |
