コンテンツにスキップ

view.OnSelectingWhere

概要

viewオブジェクトのOnSelectingWhereです。サーバスクリプトで拡張SQLのOnSelectingWhereを動的に指定する際に使用します。

使用例

以下の例では、ユーザID 3 以外のユーザに Name が SelectingWhereName の拡張SQLを適用します。

JavaScript
1
2
3
if (context.UserId !== 3) {
    view.Filters.OnSelectingWhere = 'SelectingWhereName';
}
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 以降 機能追加

関連情報