view.AlwaysGetColumns
概要¶
viewオブジェクトの「AlwaysGetColumns」です。サーバスクリプトで「modelオブジェクト」を使用する際に、画面上に無い項目を取得する際に使用します。
メソッド¶
| No | Name | Description |
|---|---|---|
| 1 | Add | 読み込む項目のカラム名を指定します。 |
使用例¶
以下の例では、画面上にない状況項目をmodelオブジェクトで取得可能にします。条件は「ビュー処理時」を指定します。
サンプルコード¶
1. 一覧に出していない予算と比べて、予算を超えた行を目立たせる
案件管理の一覧には実績金額を出し、予算は出しません。「ビュー処理時」にview.AlwaysGetColumns.Addで予算を読み込み、「行表示の前」で実績金額が予算を超えた行の背景と、実績金額の文字を赤くします。
実務での使いどころ¶
一覧の列を増やさずに、予算を超えた案件を目立たせられます。一覧のセルCSSは項目ごとに決まったCSSを当てるもので、値によって変えることはできません。値によって色を変えるにはサーバスクリプトを使いますが、「行表示の前」のmodelでは、一覧に出していない項目の値が取れません(undefinedになります)。view.AlwaysGetColumnsで、一覧に出していない項目も読み込みます。
事前準備¶
1:「案件管理」テーブル(期限付きテーブル)で、以下の項目を設定してください。
| 項目コード | 内容 |
|---|---|
| 数値A(NumA) | 実績金額。一覧に出す |
| 数値B(NumB) | 予算。編集画面のみに出し、一覧には出さない |
2:スタイルを登録します。
2-1:「テーブルの管理 > スタイル」タブで「新規作成」を選択する。
2-2:タイトル: 任意の名前(例:overBudget)
2-3:スタイル: 下記のCSSを貼り付け
2-4:出力先:「すべて」のチェックを外し、「一覧」にチェック
CSS¶
/* 予算を超えた案件の行 */
.grid tr.over-budget td {
background-color: #fdecea;
}
/* 予算を超えた案件の実績金額 */
.grid td.over-budget-amount {
color: #c62828;
font-weight: bold;
}
3:サーバスクリプトを登録します。
3-1:「テーブルの管理 > サーバスクリプト」タブで「新規作成」を選択する。
3-2:タイトル: 任意の名前(例:highlightOverBudgetRows)
3-3:スクリプト: 下記サンプルコードを貼り付け
3-4:条件: 「ビュー処理時」と「行表示の前」の2つにチェック
JavaScript¶
// 実績金額(一覧に出す)と予算(一覧には出さない)の項目
const ACTUAL_COLUMN = 'NumA';
const BUDGET_COLUMN = 'NumB';
// 「ビュー処理時」:一覧に出していない予算も、「行表示の前」の model で読めるようにする
// (これが無いと、一覧に無い項目は model で undefined になる)
if (context.Condition === 'WhenViewProcessing') {
view.AlwaysGetColumns.Add(BUDGET_COLUMN);
}
// 「行表示の前」:予算が入っていて、実績金額が予算を超えた行を目立たせる
if (context.Condition === 'BeforeOpeningRow') {
const budget = model[BUDGET_COLUMN];
if (budget > 0 && model[ACTUAL_COLUMN] > budget) {
model.ExtendedRowCss = 'over-budget';
columns[ACTUAL_COLUMN].ExtendedCellCss = 'over-budget-amount';
}
}
注記¶
- 1つのスクリプトに2つの条件を付け、
context.Condition(WhenViewProcessing・BeforeOpeningRow)で処理を分けています。 - 「ビュー処理時」の条件を付け忘れると、予算が
undefinedになり、どの行にも色が付きません。 - 予算が空または0の案件は、色を付けません。
対応バージョン¶
| 対応バージョン | 内容 |
|---|---|
| 1.1.37.0 以降 | 機能追加 |
