コンテンツにスキップ

view.AlwaysGetColumns

概要

viewオブジェクトの「AlwaysGetColumns」です。サーバスクリプトで「modelオブジェクト」を使用する際に、画面上に無い項目を取得する際に使用します。

メソッド

No Name Description
1 Add 読み込む項目のカラム名を指定します。

使用例

以下の例では、画面上にない状況項目をmodelオブジェクトで取得可能にします。条件は「ビュー処理時」を指定します。

view.AlwaysGetColumns.Add('Status');

サンプルコード

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 以降 機能追加

関連情報