ユーザマニュアル

プリザンター10周年記念イベントアーカイブ公開中 プリザンター×MCPサーバ 「プリザンターをもっと活用するために」資料ダウンロード 「プリザンター入門」発売中!

2026/03/17

MANUAL

開発者向け機能:サーバスクリプト:columns

## 概要 [サーバスクリプト](/ja/manual/table-management-server-script)で[項目](/ja/manual/table-management-what-is-items)の設定を取得、編集します。 [一覧画面](/ja/manual/table-grid)の[セルCSS](/ja/manual/table-management-extended-cell-css)の設定や[エディタ](/ja/manual/table-editor)の[フィールドCSS](/ja/manual/table-management-extended-field-css)、[拡張HTML](/ja/manual/table-management-extended-html)の設定などが可能です。 ## プロパティ |No|Name|Get|Set|Type|Description| |:----|:----|:----|:----|:----|:----| |1|ExtendedCellCss|○|○|string|[セルCSS](/ja/manual/table-management-extended-cell-css)| |2|ExtendedFieldCss|○|○|string|[フィールドCSS](/ja/manual/table-management-extended-field-css)| |3|ExtendedControlCss|○|○|string|[コントロールCSS](/ja/manual/table-management-extended-control-css)| |4|ExtendedHtmlBeforeField|○|○|string|[拡張HTML](/ja/manual/table-management-extended-html)のフィールドの前| |5|ExtendedHtmlBeforeLabel|○|○|string|[拡張HTML](/ja/manual/table-management-extended-html)のラベルの前| |6|ExtendedHtmlBetweenLabelAndControl|○|○|string|[拡張HTML](/ja/manual/table-management-extended-html)のラベルとコントロールの間| |7|ExtendedHtmlAfterControl|○|○|string|[拡張HTML](/ja/manual/table-management-extended-html)のコントロールの後| |8|ExtendedHtmlAfterField|○|○|string|[拡張HTML](/ja/manual/table-management-extended-html)のフィールド後| |9|Hide|○|○|bool|[非表示](/ja/manual/table-management-hide)、一覧画面では値が表示されない他、ExtendedCellCssおよびRawTextが無視されます。| |10|ValidateRequired|○|○|bool|[入力必須](/ja/manual/table-management-required)| |11|RawText|○|○|string|一覧画面の項目の値を置換| |12|ReadOnly|○|○|bool|[読取専用](/ja/manual/table-management-readonly)| ## メソッド |No|Name|Description| |:----|:----|:----| |1|[AddChoiceHash](/manual/server-script-columns-add-choice-hash)|[項目](/ja/manual/table-management-what-is-items)の[選択肢一覧](/ja/manual/table-management-choices-text)を動的に設定します。| |2|[ClearChoiceHash](/manual/server-script-columns-clear-choice-hash)|[項目](/ja/manual/table-management-what-is-items)の[選択肢一覧](/ja/manual/table-management-choices-text)をクリアします。| ## 使用例① 以下の例では、ClassA(分類A)を非表示にします。 ##### JavaScript(サーバスクリプト) ``` columns.ClassA.Hide = true; ``` ## 使用例② 以下の例では、DescriptionA(説明A)を読取専用にします。 ##### JavaScript(サーバスクリプト) ``` columns.DescriptionA.ReadOnly = true; ``` ## 使用例③ 以下の例では[一覧画面](/ja/manual/table-grid)の分類Aのセルに赤字でABCと出力します。条件に行表示の前を指定する必要があります。HTMLのタグを挿入可能です。 ##### JavaScript(サーバスクリプト) ``` columns.ClassA.RawText = '<font color="red">ABC</font>'; ``` ## サンプルコード <details> <summary>1. ログインユーザの属性と状況による画面項目制御</summary> ログインユーザの属性(context.HasPrivilege、context.Groupsで判定)と、状況により画面項目の制御(columns.ReadOnly,Hideで制御)を行います。サンプルコードでは以下のような仕様で実装しています。 <table class="matrix"> <caption>制御パターン判定</caption> <thead> <tr> <th>ユーザ種類</th> <th>状況</th> <th>制御パターン</th> </tr> </thead> <tbody> <tr> <td>特権ユーザ</td> <td>-</td> <td>パターンA</td> </tr> <tr> <td>管理者グループ所属ユーザ(ID1,2)</td> <td>-</td> <td>パターンB</td> </tr> <tr> <td rowspan="2">上記以外のユーザ</td> <td>完了(900) or 保留(910)</td> <td>パターンC</td> </tr> <tr> <td>以外</td> <td>パターンD</td> </tr> </tbody> </table> <table class="matrix"> <caption>画面項目制御</caption> <thead> <tr> <th colspan="2">画面項目</th> <th>パターンA</th> <th>パターンB</th> <th>パターンC</th> <th>パターンD</th> </tr> </thead> <tbody> <tr> <tr> <td>タイトル</td><td>Title</td> <td>編集可</td><td>編集可</td><td>読取専用</td><td>編集可</td> </tr> <tr> <td>内容</td><td>Body</td> <td>編集可</td><td>編集可</td><td>読取専用</td><td>編集可</td> </tr> <tr> <td>状況</td><td>Status</td> <td>編集可</td><td>編集可</td><td>読取専用</td><td>編集可</td> </tr> <tr> <td>分類A</td><td>ClassA</td> <td>編集可</td><td>編集可</td><td>読取専用</td><td>編集可</td> </tr> <tr> <td>分類B</td><td>ClassB</td> <td>編集可</td><td>読取専用</td><td>非表示</td><td>非表示</td> </tr> <tr> <td>日付A</td><td>DateA</td> <td>編集可</td><td>読取専用</td><td>読取専用</td><td>編集可</td> </tr> <tr> <td>説明A</td><td>DescriptionA</td> <td>編集可</td><td>編集可</td><td>非表示</td><td>非表示</td> </tr> </tbody> </table> ##### JavaScript 条件:画面表示の前 ```javascript // 設定 const ADMIN_GROUP_IDS = new Set([1, 2]); const STATUS_PATTERN_C = new Set([900, 910]); // 完了/保留 const PATTERN_RULES = { // パターンA: 何もしない(全編集可) A: [], // パターンB: ClassB, DateA を読取専用 B: [ ['ClassB', 'ReadOnly'], ['DateA', 'ReadOnly'], ], // パターンC: タイトル/内容/状況/分類A/日付Aは読取専用、ClassB/説明Aは非表示 C: [ ['Title', 'ReadOnly'], ['Body', 'ReadOnly'], ['Status', 'ReadOnly'], ['ClassA', 'ReadOnly'], ['DateA', 'ReadOnly'], ['ClassB', 'Hide'], ['DescriptionA', 'Hide'], ], // パターンD: ClassB, DescriptionA を非表示 D: [ ['ClassB', 'Hide'], ['DescriptionA', 'Hide'], ], }; const DEBUG = true; // 判定(業務ルール) function decidePattern() { if (context.HasPrivilege) return 'A'; // context.Groups は Iterable のため Set化して判定をシンプルに const userGroupIds = new Set(context.Groups); const isAdminGroupUser = [...ADMIN_GROUP_IDS].some((id) => userGroupIds.has(id) ); if (isAdminGroupUser) return 'B'; // 上記以外のユーザ return STATUS_PATTERN_C.has(model.Status) ? 'D' : 'C'; } // 適用(UI制御) function applyPattern(pattern) { const rules = PATTERN_RULES[pattern] ?? []; for (const [columnName, control] of rules) { // サンプルとして:列が存在しない場合も落とさずスキップ if (!columns[columnName]) continue; columns[columnName][control] = true; } } // 実行 const pattern = decidePattern(); if (DEBUG) context.Log(`pattern=${pattern}`); applyPattern(pattern); ``` ##### 実行結果 ``` (Info):pattern=C ``` </details> <details> <summary>2. 数値項目をスター記号で表示</summary> 数値項目に入力された数値に応じスター記号で表示します。 以下のようなイメージで"4.5"といった値にも対応しています。 ![image](https://pleasanter.org/binaries/1bd8affc6f074cab8633279d217b3dad) 本サンプルコードでは、最大5個までのスター表示に対応しています。 ##### JavaScript 条件:行表示の前 ```javascript const maxStars = 5; function toStarHtml(score) { const s = Math.max(0, Math.min(maxStars, Number(score) || 0)); const pct = (s / maxStars) * 100; // 0〜100% return ` <span style=" display: inline-block; position: relative; line-height: 1; font-size: 20px; letter-spacing: -0.2em; " > <span style="color: #ccc">★★★★★</span> <span style="position:absolute; left:0; top:0; width:${pct}%; overflow:hidden; white-space:nowrap; color:#f60;" > ★★★★★ </span> </span> `.trim(); } columns.NumA.RawText = toStarHtml(model.NumA); ``` </details> ## 対応バージョン |対応バージョン|内容| |:--|:--| |1.1.38.0 以降|ExtendedHtmlBeforeLabelの追加<br>ExtendedHtmlBetweenLabelAndControlの追加<br>ExtendedHtmlAfterFieldの追加| |1.2.15.0 以降|ValidateRequiredの追加| ## 関連情報 <div id="ManualList"><ul><li><a href="/ja/manual/table-grid">テーブル機能:レコードの一覧画面</a><span>2025/10/21 up</span></li> <li><a href="/ja/manual/table-editor">テーブル機能:レコードのエディタ画面</a><span>2023/04/12 up</span></li></ul></article> <ul><li><a href="/ja/manual/table-management-what-is-items">テーブルの管理:項目</a><span>2025/10/24 up</span></li></ul></article> <ul><li><a href="/ja/manual/table-management-editor">テーブルの管理:エディタ</a><span>2026/02/10 up</span></li> <li><a href="/ja/manual/table-management-editor-columns">テーブルの管理:エディタ:エディタの設定</a><span>2025/12/09 up</span></li> <li><a href="/ja/manual/table-management-required">テーブルの管理:エディタ:項目の詳細設定:入力必須</a><span>2024/12/19 up</span></li> <li><a href="/ja/manual/table-management-readonly">テーブルの管理:エディタ:項目の詳細設定:読取専用</a><span>2023/04/25 up</span></li> <li><a href="/ja/manual/table-management-choices-text">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧</a><span>2025/11/27 up</span></li> <li><a href="/ja/manual/table-management-choices-text-depts">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:組織</a><span>2023/04/25 up</span></li> <li><a href="/ja/manual/table-management-choices-text-groups">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:グループ</a><span>2023/04/25 up</span></li> <li><a href="/ja/manual/table-management-choices-text-users">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:ユーザ</a><span>2023/04/25 up</span></li> <li><a href="/ja/manual/table-management-hide">テーブルの管理:エディタ:項目の詳細設定:非表示</a><span>2023/04/25 up</span></li> <li><a href="/ja/manual/table-management-extended-field-css">テーブルの管理:エディタ:項目の詳細設定:フィールドCSS</a><span>2024/04/09 up</span></li> <li><a href="/ja/manual/table-management-extended-control-css">テーブルの管理:エディタ:項目の詳細設定:コントロールCSS</a><span>2024/04/09 up</span></li> <li><a href="/ja/manual/table-management-extended-html">テーブルの管理:エディタ:項目の詳細設定:拡張HTML</a><span>2024/05/30 up</span></li></ul></article> <ul><li><a href="/ja/manual/table-management-extended-cell-css">テーブルの管理:一覧画面:項目の詳細設定:セルCSS</a><span>2025/10/24 up</span></li></ul></article> <ul><li><a href="/ja/manual/table-management-server-script">テーブルの管理:サーバスクリプト</a><span>2026/02/10 up</span></li></ul></article> <ul><li><a href="/ja/manual/server-script">開発者向け機能:サーバスクリプト</a><span>2025/11/27 up</span></li> <li><a href="/ja/manual/server-script-columns-add-choice-hash">開発者向け機能:サーバスクリプト:columns.AddChoiceHash</a><span>2026/02/02 up</span></li> <li><a href="/ja/manual/server-script-columns-clear-choice-hash">開発者向け機能:サーバスクリプト:columns.ClearChoiceHash</a><span>2023/06/21 up</span></li></ul></article> <ul><li><a href="/ja/manual/faq-grid-cell-color-by-num-range">FAQ:一覧画面で数値の範囲によってセルの色を変えたい</a><span>2026/02/24 up</span></li></ul></article></div><input id="SearchTextHidden" type="hidden" value="" />
TOP