可覆寫的設定參數可讓您選擇讓報表編輯者修改資料來源中的預設值。將設定參數定義為可覆寫,可讓資料來源更有彈性,也能讓使用者建立可由使用者設定的報表範本。
例如,提供天氣資料的連接器可以包含位置參數,讓報告檢視者使用與預設值不同的地區要求提供天氣報告。
本文件說明如何定義和啟用可覆寫的參數,以及報表使用者如何修改參數值。如要進一步瞭解參數在 Looker Studio 中的使用方式,請參閱「資料來源參數」。
角色
整份文件中參照的使用者角色:
角色 | 定義 |
---|---|
連接器開發人員 | 已建立社群連接器的使用者。 |
資料來源擁有者 | 建立並擁有資料來源的使用者。 |
報表編輯器 | 擁有報表編輯模式的使用者。 |
報告檢視者 | 擁有報表的檢視模式存取權的使用者。 |
定義可覆寫的參數
連接器開發人員在社群連接器的 getConfig()
函式中定義設定參數。如要將設定參數定義為可覆寫的連接器,請呼叫 setAllowOverride(true)
。
以下範例定義了 2 個可覆寫的參數:zipcode
和 units
,以及 1 個無法覆寫的參數:days-to-forcecast
。
function getConfig(request) {
var config = cc.getConfig();
// A
config
.newTextInput()
.setId("zipcode")
.setName("ZIP Code")
.setAllowOverride(true);
// B
config
.newSelectSingle()
.setId("units")
.setName("Units")
.addOption(
config
.newOptionBuilder()
.setLabel("Metric")
.setValue("metric")
)
.addOption(
config
.newOptionBuilder()
.setLabel("Imperial")
.setValue("imperial")
)
.setAllowOverride(true);
// C
config
.newTextInput()
.setId("days-to-forecast")
.setName("Days to forecast")
.setAllowOverride(false);
return config.build();
}
避免將參數定義為可覆寫的時機
建議您參閱 Looker Studio 如何連結資料一文,瞭解連接器、資料來源和報表彼此間的運作方式。
避免在下列情況中將參數定義為可覆寫:
- 參數值影響結構定義時。
- 如果使用者變更參數值,且傳回的新資料結構定義與資料來源中的定義不同,任何依附於資料來源的報表可能會因為缺少欄位而中斷。
- 參數值控制機密資料。例如:選取帳戶。
- 如要避免意外查看或分享機密資料,請勿將參數定義為可覆寫。
為報表使用者啟用參數
資料來源擁有者可控制報表編輯者能修改哪些可覆寫的參數。同樣地,「報表編輯器」可控制「報表檢視者」可修改哪些參數。
允許報表編輯器修改參數值
「資料來源擁有者」可控管哪些參數能在報表中修改。此設定是在建立或編輯資料來源時設定,僅適用於連接器開發人員定義為可覆寫的參數。啟用後,報表編輯器即可修改報表中的參數。
在以下範例中,連接器有 2 個可覆寫的參數:zipcode
和 units
。資料來源擁有者只允許在報表中修改 zipcode
。在報表中,報表編輯器可選擇修改 zipcode
參數值。
允許報表檢視者修改參數值
報表編輯器控制報表檢視者可修改哪些參數。接著,任何報表檢視者都能透過報表網址修改參數值。
舉例來說,假設連接器中有 2 個參數定義為可覆寫:zipcode
和 units
(圖 1)。如果資料來源擁有者允許在報表中修改 zipcode
(圖 2),則報表編輯者將只能允許報表檢視者修改 zipcode
。報表編輯器沒有存取權或瀏覽權限,因此無法允許報表檢視者修改 units
參數。
網址參數
若要允許報表檢視者透過報表網址編輯參數值:
- 編輯報表。
- 依序選取「資源」->「管理報表網址參數」。
- 勾選「Allow to beModified in the report URL」(允許在報表網址中修改) 核取方塊,即可允許或禁止在報表網址中修改參數值。系統會自動儲存變更。
- 按一下右上角的「關閉」。
修改參數值
報表編輯器可使用報表屬性面板修改參數值,報表檢視者則可以透過報表網址修改參數值。
報表屬性面板
如要瞭解報表編輯器如何設定參數值,請參閱「在報表中修改參數」一文。
報表網址參數
對於可在報表網址中修改的參數,這些值可透過資料檢視模式,附加在報表網址的 JSON 物件中設定。
如何建立網址設定:
收集參數名稱
- 編輯報表。
- 依序選取「資源」->「管理報表網址參數」。
- 記下您要透過報表網址設定的參數名稱。
例如,在下圖中,參數名稱是
ds0.zipcode
。建立參數物件
參數是透過 JSON 物件定義。參數值的鍵是參數名稱。
{ "parameterName": parameterValue }
參數值類型為
STRING
、NUMBER
或BOOLEAN
。針對接受多個值的參數 (例如複選下拉式選單),使用值的陣列。舉例來說,如果參數名稱是
ds0.zipcode
,如要將 ZIP 程式碼設為94094
,JSON 會如下所示:{ "ds0.zipcode": "94094" }
將網址物件編碼
建立參數物件後,請使用 JSON.stringify() 將其轉換為字串,然後使用 [encodeURIComponent] 進行網址編碼。
var params = { "ds0.zipcode": "94094" }; var paramsAsString = JSON.stringify(params); var encodedParams = encodeURIComponent(paramsAsString)
這會產生下列編碼字串:
"%7B%22ds0.zipcode%22%3A%2294094%22%7D"
建立報表網址
取得網址編碼參數物件後,請使用
params
查詢參數,將物件附加至報表資料檢視網址。https://lookerstudio.google.com/reporting/REPORT_ID/page/PAGE_ID?params=%7B%22ds0.zipcode%22%3A%2294094%22%7D
請務必將「REPORT_ID」REPORT_ID和「PAGE_ID」REPORT_ID替換為報表和網頁的值。
使用網址
報表網址會根據參數沿用,覆寫 JSON 參數物件中定義的參數。
參數物件範例
下列參數物件說明如何設定多個參數。此外也會說明如何為不同輸入類型設定參數值。
ds0.includeToday
為核取方塊輸入ds0.units
是單選輸入ds1.countries
為複選輸入ds1.labelName
是文字輸入內容。
{
"ds0.includeToday": true,
"ds0.units": "Metric",
"ds1.countries": ["Canada", "Mexico"],
"ds1.labelName": "Population"
}
參數繼承
用於參數的值會根據參數設定位置的優先順序。優先順序較高的位置設定的參數會覆寫較低優先順序位置的參數。優先順序 (從最低到最高) 為:
- 資料來源 (預設)
- 報表網址
- 報表屬性面板,遵守資料來源的參數沿用規則。