適用於: 畫布應用
建立或更新目前畫面中的 上下文變數。
概觀
使用函數 UpdateContext 建立上下文變量,該變數暫時保存一條信息,例如使用者選擇按鈕的次數或資料操作的結果。
上下文變數的範圍侷限在畫面控制項中,這表示您無法組建參考另一個畫面控制項上的上下文變數公式。 如果您已用過其他程式設計工具,您可以將上下文變數看成類似於本機變數。 使用 Set 函式 搭配整個應用程式內皆可使用的全域變數。
Power Apps 是建立在使用者與應用程式互動時自動重新計算的公式基礎上。 上下文變數並不會提供這項好處,因此會讓您的應用程式變得更難建立與理解。 在使用上下文變數之前,請先檢閱 搭配變數使用。
描述
若要建立或更新環境定義變數,請將單一 記錄 傳遞至 UpdateContext 函數。 在每一筆記錄中,指定 欄位 名稱定義或比對變數名稱,以及您想要為該變數設定的值。
- 如果您指定先前定義的變數名稱, UpdateContext 則會將變數的值設定為您指定的值。
- 如果您指定尚不存在的變數名稱, UpdateContext 則會建立具有該名稱的變數,並將該變數的值設定為您指定的值。
- 如果您先前已定義變數,但未在此特定 UpdateContext 公式中指定該變數,則其值將保持不變。
內容變數是使用 or Navigate 函數隱UpdateContext含地建立。 不需要明確宣告。 如果您移除環境定義變數的所有 和 UpdateContextNavigate 參考,則該環境定義變數將不復存在。 若要清除變數,將其值設為 Blank 函式 的結果。
您可以在撰寫環境中 File 功能表底下的變數視圖查看變數值、定義和使用情況。
您可以使用變數的欄位名稱參考公式中的上下文變數。 例如, UpdateContext( { ShowLogo: true } ) 建立名為 ShowLogo 的內容變數,並將其值設定為 true。 您接著可以藉由在公式中使用 ShowLogo 名稱的方式使用此上下文變數的值。 您可以將 ShowLogo 寫入作為映像控制項之 Visible 屬性公式,然後根據上下文變數值是否為 true 或 false 來顯示或隱藏該控制項。
如本主題稍後的範例所示,上下文變數可以保留幾種資訊,包含下列幾種︰
- 單一值
- 記錄
- 資料表
- 物件參考
- 來自公式的任何結果
上下文變數會將值保留起來直到應用程式關閉為止。 如果您定義上下文變數,並將其值設定在特殊畫面控制項上,該資訊會原封不動即使使用者切換到不同畫面控制項亦然。 一旦關閉應用程式,上下文變數值將會遺失,必須再載入應用程式才能重新建立。
每個上下文變數的範圍都侷限在一個畫面控制項中。 如果您想要在一個畫面控制項上定義上下文變數,並從另一個畫面控制項修改該變數,您必須組建以 Navigate 函式為基礎的公式。 或使用全域變數。
UpdateContext 沒有傳回值,而且您只能在 行為公式內使用它。
語法
UpdateContext(更新 記錄 )
- UpdateRecord –必需。 一筆至少包含一個欄位名稱和欄位值的記錄。 您所指定的每個欄位和值都會建立或更新上下文變數。
UpdateContext( { ContextVariable1: Value1 [, ContextVariable2: Value2 [, ... ] ] } )
- ContextVariable1 - 必需。 要建立或更新上下文變數的名稱。
- Value1 - 必需。 要指派給上下文變數的值。
- ContextVariable2: Value2,... - 可選。 要建立或更新的其他上下文變數與這些變數值。
範例
| 公式 | 描述 | 結果 |
|---|---|---|
| UpdateContext( { 計數器:1 } ) | 建立或修改上下文變數 Counter,並將其值設定為 1。 | Counter 的值為 1。 您可以在公式中使用名稱 Counter 參考該變數。 |
| UpdateContext( { 計數器:2 } ) | 將前一個範例之 Counter 上下文變數的值設定為 2。 | Counter 的值為 2。 |
| UpdateContext( { 姓名:“莉莉”,分數:10 } ) | 建立或修改上下文變數 Name 和 Score,並將其值分別設定為 Lily 和 10。 | Name 的值為 Lily,Score 的值為 10。 |
| UpdateContext( { person: { name: “milton”, 地址: “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( { person: patch( person, {address: “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( { 姓名:“莉莉”,分數:10 } )