開発者向け機能:サーバスクリプト:elements.DisplayType
## 概要
[サーバスクリプト](/ja/manual/table-management-server-script)で「ナビゲーションメニュー」、「コマンドボタン」、[プロセス](/ja/manual/process)で追加したボタンの表示状態を制御します。
## 制限事項
1. 画面上部の「ナビゲーションメニュー」、画面下部の「コマンドボタン」、[プロセス](/ja/manual/process)で追加したボタンに適用可能です。
1. 戻るボタンには適用できません。
1. ナビゲーションメニューに「2:無効」を設定することはできません。
1. サーバスクリプトの[条件](/ja/manual/server-script-conditions)が「画面表示の前」の場合に有効となります。
## 構文
```
elements.DisplayType(id, displayType);
```
## パラメータ
|パラメータ|型|必須|概要|
|:----------|:----------|:---:|:---------------------------|
|id|string|○|HTMLのID属性|
|displayType|int|○|0:標準/1:無し/2:無効/3:非表示|
## 戻り値
戻り値はありません。
## 使用例①
以下の例ではdisplayTypeに1を指定することで、ヘルプメニューのHTMLが出力されません。
##### JavaScript
```
elements.DisplayType('HelpMenuContainer',1);
```
## 使用例②
以下の例ではdisplayTypeに2を指定することで、削除ボタンが無効化されます。
##### JavaScript
```
elements.DisplayType('DeleteCommand',2);
```
## 使用例③
以下の例ではdisplayTypeに3を指定することで、[プロセス](/ja/manual/process)で追加したボタン(ID:1)が非表示となります。
##### JavaScript
```
elements.DisplayType('Process_1',3);
```
## サンプルコード
<details>
<summary>1. 複合条件判定によるボタン表示制御</summary>
組織・グループの所属状況を複合判断し、ボタン表示を制御するサンプルコードです。
##### 機能要件
1. 以下条件で、ボタンの表示を制御します。
<table border="1">
<thead>
<tr>
<th>部門(組織)</th>
<th>役職(グループ)</th>
<th>承認</th>
<th>更新</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3">営業部</td>
<td>部長</td>
<td>表示</td>
<td>表示</td>
</tr>
<tr>
<td>課長</td>
<td>非表示</td>
<td>表示</td>
</tr>
<tr>
<td>一般社員</td>
<td>非表示</td>
<td>非表示</td>
</tr>
<tr>
<td rowspan="3">開発部</td>
<td>部長</td>
<td>非表示</td>
<td>表示</td>
</tr>
<tr>
<td>課長</td>
<td>非表示</td>
<td>表示</td>
</tr>
<tr>
<td>一般社員</td>
<td>非表示</td>
<td>非表示</td>
</tr>
</tbody>
</table>
2. 部門、役職を以下のように定義します。
|種類|ID|組織/グループ|
|---|---|:---:|
|営業部|6|組織|
|開発部|7|組織|
|部長|3|グループ|
|課長|2|グループ|
※一般社員は、グループ所属無しの想定
3. ボタン制御
- 承認:プロセスで設定
- 更新:標準の更新ボタン
これらを、elements.DisplayType で制御します。
##### JavaScript
条件:画面表示の前
```javascript
// ===== 設定 =====
const deptSales = 6; // 営業部
const deptDev = 7; // 開発部
const groupManager = 3; // 部長
const groupSecManager = 2; // 課長
// ボタンごとの表示条件:
// 「depts のいずれか」かつ「groups のいずれか」に所属していれば表示。
// 配列を空 [] にすると、その軸は「問わない(全員可)」を意味する。
const buttonRules = [
{
id: 'Process_1',
depts: [deptSales],
groups: [groupManager]
}, // 承認:営業部 × 部長
{
id: 'UpdateCommand',
depts: [deptSales, deptDev],
groups: [groupManager, groupSecManager],
}, // 更新:営業/開発 × 部長/課長
];
// ===== エンジン:基本は触らない =====
const SHOW = 0; // DisplayType 0:標準(表示)
const HIDE = 1; // DisplayType 1:無し(非表示)
function isUserInDept(deptId, userId) {
const dept = depts.Get(deptId);
if (!dept) return false;
return Array.from(dept.GetMembers()).some(function (m) {
return m.UserId === userId;
});
}
function isUserInGroup(groupId, userId) {
const group = groups.Get(groupId);
if (!group) return false;
return group.ContainsUser(userId);
}
// 軸(部門 or 役職)の判定: 未指定(空配列)なら無条件 true、そうでなければいずれかに一致
function matchesAny(ids, isMemberOf) {
return ids.length === 0 || ids.some(isMemberOf);
}
const userId = context.UserId;
buttonRules.forEach(function (rule) {
const visible =
matchesAny(rule.depts, function (id) {
return isUserInDept(id, userId);
}) &&
matchesAny(rule.groups, function (id) {
return isUserInGroup(id, userId);
});
elements.DisplayType(rule.id, visible ? SHOW : HIDE);
});
```
</details>
## 関連情報
<div id="ManualList"><ul><li><a href="/ja/manual/process">テーブルの管理:プロセス</a><span>2026/02/10 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>2026/05/12 up</span></li>
<li><a href="/ja/manual/server-script-conditions">開発者向け機能:サーバスクリプト:条件</a><span>2026/02/09 up</span></li></ul></article>
<ul><li><a href="/ja/manual/advanced-operations-process">応用編:プロセスと状況による制御</a><span>2023/08/25 up</span></li></ul></article>
<ul><li><a href="/ja/manual/faq-condition-mode-range">FAQ:プロセスなどの条件タブで数値や日付の条件を範囲指定したい</a><span>2024/05/29 up</span></li>
<li><a href="/ja/manual/faq-process-comment-required">FAQ:更新時に必ずコメントを入力させたい</a><span>2024/07/12 up</span></li></ul></article>
<ul><li><a href="/ja/manual/faq-process-workflow">FAQ:稟議申請などのワークフロー(承認プロセス)をプロセス機能で実現する</a><span>2024/07/12 up</span></li></ul></article></div><input id="SearchTextHidden" type="hidden" value="" />



