Appearance
URLからの指定
外部でリンクを作成するときに、URL へパラメータを付けると、既存のパラメータ値を上書きできます。
対象機能
次の機能で URL からパラメータを指定できます。これらの機能では、パラメータを変更するたびに URL が更新され、URL を共有するとパラメータ値も共有できます。
- ノートブックのバージョン
- レポート
- 対象は インタラクティブレポート です
- 自動実行 を有効にしている場合、URL 指定のパラメータをマージしたあとに自動実行されます
- パラメータのデフォルト値を使用 を有効にしている場合でも、URL で指定したパラメータが優先されます(いったんデフォルトへリセットしたあと、URL 指定が反映されます)
指定方法
パラメータは URL の cdm.params クエリパラメータと同期します。形式は次のとおりです。
typescript
// ページ遷移後も保持するため、ページ ID ごとにパラメータを持つ
type Params = { [pageId: string]: { [paramId: string]: string } };
// 各値は JSON.stringify した文字列を指定する
// pageId / paramId は実際には 68783eb9c4b4b71483a1d617 のような ID
const params: Params = {
page1: {
param1: JSON.stringify('value1'),
param2: JSON.stringify(123),
},
page2: {
param3: JSON.stringify(true),
param4: JSON.stringify(['value1', 'value2']),
},
};
const query = `?cdm.params=${encodeURIComponent(JSON.stringify(params))}`;ショートカット形式
cdm.params を直接組み立てにくい場合は、cdm.params.${paramId} 形式でも指定できます。両方ある場合は cdm.params.${paramId} が優先され、マージされた新しい cdm.params が URL に反映されます。
typescript
const paramId = 'param1';
// ショートカット形式では JSON.stringify は不要(encodeURIComponent は必要)
const value = 'string_value';
const query = `?cdm.params.${paramId}=${encodeURIComponent(value)}`;
// 空文字を指定すると、そのパラメータを空の状態にできる
const queryEmpty = `?cdm.params.${paramId}=`;値の指定方法
パラメータの種類ごとの指定方法は次のとおりです。ショートカット形式では JSON.stringify は不要ですが、URL へ載せる際の encodeURIComponent は必要です。
| 種類 | cdm.params での指定 | ショートカット形式 |
|---|---|---|
| テキスト入力 / テキスト選択 | JSON.stringify("string_value") | string_value |
| テキスト複数入力 / テキスト複数選択 | JSON.stringify(["item1", "item2"]) | item1,item2 |
| 数値入力 / 数値選択 | JSON.stringify(123) | 123 |
| 日付入力 | JSON.stringify("2025-01-01") | 2025-01-01 |
| 日付範囲 | JSON.stringify(["2025-01-01", "2025-01-02"]) | 2025-01-01,2025-01-02 |
| チェックボックス | JSON.stringify(true) または JSON.stringify(false) | true または false |
- 配列型は、ショートカット形式では
,区切りで指定します - 日付入力・日付範囲は
YYYY-MM-DD形式で指定します - 無効な値が指定された場合はエラー画面になります