活頁簿參數
藉由使用參數,您可以從取用者處收集輸入,並在活頁簿的其他部分加以參考。 它通常用來設定結果集的範圍或設定正確的視覺效果。 您可以使用此重要功能來組建互動式報表和體驗。
使用活頁簿時,您可以控制參數控制項呈現給取用者的方式。 這些方式包括文字方塊與下拉式清單、單選與複選,以及來自文字、JSON、KQL 或 Azure Resource Graph 的值。
支援的參數類型包括:
- 時間:允許您從預先填入的時間範圍中選取,或選取自訂範圍
- 下拉式選單:允許您從一個值或一組值中選取
- 選項群組:允許您從已知集合中選取一個值
- 文字:允許您輸入任意文字
- 準則:允許您根據先前指定的參數定義一組準則,這些參數將受到評估來提供動態值
- 資源:允許您選取一或多個 Azure 資源
- 訂閱:允許您選取一或多個 Azure 訂閱資源
- 多重值:允許您設定一個或多個任意文字值
- 資源類型:允許您選取一個或多個 Azure 資源類型值
- 位置:允許您選取一個或多個 Azure 位置值
參考參數
您可以使用繫結或值擴充來參考活頁簿其他部分中的參數值。
使用資料繫結來參考參數
此範例示範如何使用資料繫結參考時間範圍參數:
選取 [新增查詢] 以新增查詢控制項,然後選取 Application Insights 資源。
開啟 [時間範圍] 下拉式功能表,然後從底部的 [參數] 區段中選取 [時間範圍] 選項:
- 此選項會將時間範圍參數繫結至圖表的時間範圍。
- 目前,範例查詢的時間範圍是過去 24 小時。
執行查詢以查看結果。
使用 KQL 參考參數
此範例示範如何使用 KQL 參考時間範圍參數:
選取 [新增查詢] 以新增查詢控制項,然後選取 Application Insights 資源。
在 KQL 中,使用
| where timestamp {TimeRange}
參數輸入時間範圍篩選:- 此參數會將查詢評估時間展開為
| where timestamp > ago(1d)
。 - 此選項是該參數的時間範圍值。
- 此參數會將查詢評估時間展開為
執行查詢以查看結果。
使用文字來參考參數
此範例示範如何使用文字參考時間範圍參數:
- 將文字控制項新增至活頁簿。
- 在 Markdown 中,輸入
The chosen time range is {TimeRange:label}
。 - 選取 [完成編輯]。
- 文字控制項會顯示「選擇的時間範圍為過去 24 小時」字樣。
參數格式選項
每個參數類型均有各自的格式化設定選項。 使用 [編輯參數] 窗格的 [預覽] 區段,查看參數的格式化擴充選項。
您可以使用這些選項,為時間範圍選擇器之外的所有參數類型設定格式。 如需設定時間格式的範例,請參閱時間參數選項。
其他參數類型包括:
- 資源選擇器:設定資源識別碼格式。
- 訂閱選擇器:設定訂閱值格式。
將 toml 轉換為 json
語法:{param:tomltojson}
原始值:
name = "Sam Green"
[address]
state = "New York"
country = "USA"
已設定格式的值:
{
"name": "Sam Green",
"address": {
"state": "New York",
"country": "USA"
}
}
逸出 JSON
語法:{param:escapejson}
原始值:
{
"name": "Sam Green",
"address": {
"state": "New York",
"country": "USA"
}
}
已設定格式的值:
{\r\n\t\"name\": \"Sam Green\",\r\n\t\"address\": {\r\n\t\t\"state\": \"New York\",\r\n\t\t\"country\": \"USA\"\r\n }\r\n}
將文字編碼為 base64
語法:{param:base64}
原始值:
Sample text to test base64 encoding
已設定格式的值:
U2FtcGxlIHRleHQgdG8gdGVzdCBiYXNlNjQgZW5jb2Rpbmc=
使用 JSONPath 格式化參數
針對 JSON 內容的字串參數,您可以在參數格式字串中使用 JSONPath。
例如,您可能有名為 selection
的字串參數,這是視覺效果中具有下列值的查詢或選取結果:
{ "series":"Failures", "x": 5, "y": 10 }
使用 JSONPath,您可以從該物件取得個別值:
格式 | 結果 |
---|---|
{selection:$.series} |
Failures |
{selection:$.x} |
5 |
{selection:$.y} |
10 |
注意
如果參數值不是有效的 JSON,則格式結果將為空值。
參數樣式
參數可使用下列樣式。
膠囊
膠囊樣式是預設樣式。 參數看起來像文字,需要使用者選取一次才能進入編輯模式。
標準
在標準樣式中,控制項始終可見且其上方帶有標籤。
橫式表單
在橫式表單樣式中,控制項始終可見且控制項左側具有標籤。
直式表單
在直式表單中,控制項始終可見且控制項上方具有標籤。 與標準樣式不同,一列中僅有一個標籤或控制項。
注意
在標準、橫式和直式表單版面配置中,沒有直接編輯的概念。 控制項一律處於編輯模式。
全域參數
既然您已了解參數的運作方式,也了解只能在設定位置的「下游」使用參數的限制;現在可以開始認識何謂全域參數,這些參數會改變這些規則。
使用全域參數時,必須先宣告參數才能使用它。 但是,將值設為該參數的任何步驟都會影響活頁簿中該參數的所有執行個體。
注意
因為變更全域參數有這種「全部更新」行為,所以只應針對需要此行為的參數開啟全域設定。 相依於彼此的全域參數組合,可以建立循環或震盪,而競爭的全域參數會反覆相互變更。 為避免循環,您無法「重新宣告」已宣告為全域的參數。 具有相同名稱之參數的任何後續宣告,都會建立無法在該位置編輯的唯讀參數。
全域參數的常見用法:
同步處理許多圖表之間的時間範圍:
- 如果沒有全域參數,圖表中的任何時間範圍區段的選取都只能在該圖表之後匯出。 因此,選取第三個圖表中的時間範圍便只會更新第四張圖表。
- 透過全域參數,您可以建立全域的 timeRange 參數、提供預設值,並讓其他所有圖表都使用該參數做為其繫結時間範圍和時間區段選取輸出。 此外,也可以設定 [只在範圍區段選取時匯出參數]。 任何圖表中的任何時間範圍的變更都會更新活頁簿頂端的全域 timeRange 參數。 此功能可用來讓活頁簿像儀表板一樣運作。
允許透過連結或按鈕變更連結步驟中選取的索引標籤:
- 若沒有全域參數,連結步驟僅會輸出所選索引標籤的參數。
- 使用全域參數,您可以建立全域的 selectedTab 參數。 然後,您可以在連結步驟的索引標籤選取項目中使用該參數名稱。 您可以從連結或使用另一個按鈕或連結,將該參數值傳遞至活頁簿,以變更選取的索引標籤。以這種方式使用連結步驟中的按鈕可以產生類似精靈的體驗,其中步驟底部的按鈕可能會影響其上方可見的區段。
建立全域參數
您在參數步驟中建立參數時,請使用 [進階設定] 中的 [將此參數視為全域] 選項。 建立全域參數的唯一方法即是使用參數步驟來宣告。 建立參數的其他方法 (藉由選取項目、區段選取、連結、按鈕和索引標籤) 只能更新全域參數。 因此無法自行宣告參數。
參數將可供使用,並如同正常參數一樣運作。
更新現有全域參數的值
在圖表範例中,更新全域參數最常見的方式是使用時間區段選取。
在此範例中,會宣告 timerange 參數為全域。 在下方的查詢步驟中,建立並執行查詢,該查詢會使用該 timerange 參數,並傳回時間圖表結果。 在查詢步驟的 [進階設定] 中,啟用時間範圍區段選取設定。 使用與時間區段選取參數輸出相同的參數名稱。 另外,選取 [只在範圍區段選取時匯出參數] 選項。
每當在此圖表中區段選取時間範圍時,也會更新此查詢上方的 timerange 參數,以及查詢步驟本身,因為這也是取決於 timerange。
區段選取之前:
- 時間範圍會顯示為過去一小時。
- 圖表會顯示最後一個小時的資料。
區段選取期間:
- 時間範圍仍為過去一小時,且界定了區段選取範圍。
- 沒有參數變更。 在您放開區段選取範圍後,就會更新時間範圍。
區段選取後:
- 時間區段選取所指定的時間範圍是由此步驟所設定。 這會覆寫全域值。 timerange 下拉式清單現在會顯示該自訂時間範圍。
- 因為頂端的全域值已變更,且因為此圖表依賴 timerange 作為輸入,所以圖表中使用的查詢時間範圍也會更新。 因此,查詢和圖表會更新。
- 活頁簿中依賴於時間範圍的其他步驟也會更新。
注意
如果您未使用全域參數,timerange 參數值只會在此查詢步驟下方變更。 此步驟以外的部分或這個項目本身不會更新。