UpdateContext 函式
適用於: 畫布應用
建立或更新目前畫面中的 上下文變數。
概觀
使用 UpdateContext 函式建立上下文變數,此變數可暫時存放一項資訊,例如使用者選取按鈕的次數或資料作業的結果。
上下文變數的範圍侷限在畫面控制項中,這表示您無法組建參考另一個畫面控制項上的上下文變數公式。 如果您已用過其他程式設計工具,您可以將上下文變數看成類似於本機變數。 使用 Set 函式 搭配整個應用程式內皆可使用的全域變數。
Power Apps 是建立在使用者與應用程式互動時自動重新計算的公式基礎上。 上下文變數並不會提供這項好處,因此會讓您的應用程式變得更難建立與理解。 在使用上下文變數之前,請先檢閱 搭配變數使用。
描述
若要建立或更新上下文變數,請傳遞單筆 記錄 到 UpdateContext 函式。 在每一筆記錄中,指定 欄位 名稱定義或比對變數名稱,以及您想要為該變數設定的值。
- 如果您指定先前已定義過的變數名稱,UpdateContext 會將變數值設定為您指定的值。
- 如果您指定的變數名稱尚未存在,UpdateContext 會以該名稱建立變數,並將該變數值設定為您指定的值。
- 如果您先前定義過變數,但未將它指定在這個特殊的 UpdateContext 公式,其值會保持不變。
內容變數會使用 UpdateContext 或 Navigate 函式 隱式建立。 不需要明確宣告。 如果移除上下文變數的所有 UpdateContext 和 Navigate 參考,該變數將無法存在。 若要清除變數,將其值設為 Blank 函式 的結果。
您可以在撰寫環境中 File 功能表底下的變數視圖查看變數值、定義和使用情況。
您可以使用變數的欄位名稱參考公式中的上下文變數。 例如,UpdateContext( { ShowLogo: true }) 會建立名為 ShowLogo 的上下文變數,並將它的值設定為 true。 您接著可以藉由在公式中使用 ShowLogo 名稱的方式使用此上下文變數的值。 您可以將 ShowLogo 寫入作為映像控制項之 Visible 屬性公式,然後根據上下文變數值是否為 true 或 false 來顯示或隱藏該控制項。
如本主題稍後的範例所示,上下文變數可以保留幾種資訊,包含下列幾種︰
- 單一值
- 記錄
- 資料表
- 物件參考
- 來自公式的任何結果
上下文變數會將值保留起來直到應用程式關閉為止。 如果您定義上下文變數,並將其值設定在特殊畫面控制項上,該資訊會原封不動即使使用者切換到不同畫面控制項亦然。 一旦關閉應用程式,上下文變數值將會遺失,必須再載入應用程式才能重新建立。
每個上下文變數的範圍都侷限在一個畫面控制項中。 如果您想要在一個畫面控制項上定義上下文變數,並從另一個畫面控制項修改該變數,您必須組建以 Navigate 函式為基礎的公式。 或使用全域變數。
UpdateContext 沒有返回值,您只能在行為公式中使用 它。
語法
UpdateContext( UpdateRecord )更新
- UpdateRecord –必需。 一筆至少包含一個欄位名稱和欄位值的記錄。 您所指定的每個欄位和值都會建立或更新上下文變數。
UpdateContext( { ContextVariable1: Value1 [, ContextVariable2: Value2 [,... ] ] } )
- ContextVariable1 - 必需。 要建立或更新上下文變數的名稱。
- Value1 - 必需。 要指派給上下文變數的值。
- ContextVariable2: Value2,... - 可選。 要建立或更新的其他上下文變數與這些變數值。
範例
公式 | 描述 | 結果 |
---|---|---|
UpdateContext( { 計數器:1 } ) | 建立或修改上下文變數 Counter,並將其值設定為 1。 | Counter 的值為 1。 您可以在公式中使用名稱 Counter 參考該變數。 |
UpdateContext( { 計數器:2 } ) | 將前一個範例之 Counter 上下文變數的值設定為 2。 | Counter 的值為 2。 |
UpdateContext( { 名稱:“Lily”,分數:10 } ) | 建立或修改上下文變數 Name 和 Score,並將其值分別設定為 Lily 和 10。 | Name 的值為 Lily,Score 的值為 10。 |
UpdateContext( { person: { 姓名:“Milton”,address:“1 Main St” } } ) | 建立或修改上下文變數 Person,並將其值設定為記錄。 該記錄有兩個欄位,名為 Name 和 Address。 Name 欄位值為 Milton,而 Address 欄位值為 1 Main St。 | Person 的值為 { Name:“Milton”,Address:“1 Main St”。 } } 以名稱 Person 完整參考這筆記錄,或以 Person.Name 或 Person.Address 參考這筆記錄的個別欄位。 |
UpdateContext( { 人員:補丁(人員, {位址:“2 Main St” } ) } ) | 搭配 Patch 函式更新 Person 上下文變數,方法是將 Address 欄位值設定為 2 Main St。 | Person 現在具有記錄 { Name:“Milton”,Address:“2 Main St” } } 的值。 |
逐步說明範例 1
將預設畫面控制項命名為 Source,新增另一個畫面,並將它命名為 Target。
在 Source 畫面控制項上新增兩個按鈕,並設定其 Text 屬性,讓一個按鈕表示 English,另一個按鈕表示 Spanish。
將 English 按鈕的 OnSelect 屬性設定為下列運算式:
導航(target,ScreenTransition.Fade, {語言:“英語”)}將 Spanish 按鈕的 OnSelect 屬性設定為下列運算式:
導航(target,ScreenTransition.Fade, {語言:“西班牙文”)}在 Target 畫面控制項上新增標籤,並將其Text屬性設定為下列運算式:
if(language=“English”,“Hello!”,“Hola!”)在 Target 畫面控制項上,選取 Insert 索引標籤上的 Shapes,然後選取返回箭號。
將返回箭頭的 OnSelect 屬性設定為下列公式:
導航(源,ScreenTransition.Fade)從 Source 畫面控制項按 F5 鍵,然後選取任一語言的按鈕。
在 Target 畫面控制項上,標籤會以與您所選按鈕對應的語言顯示。
選取返回箭頭以返回 Source 畫面控制項,然後選取另一個語言的按鈕。
在 Target 畫面控制項上,標籤會以與您所選按鈕對應的語言顯示。
按下 Esc 鍵返回預設工作區。
逐步說明範例 2
- 開啟您要使用此公式的畫布應用程式。
- 從命令列選取新增畫面,以新增空白畫面。
- 新增一個按鈕,並將其 OnSelect 屬性設為此公式:
UpdateContext( { 名稱:“Lily”,分數:10 } )