Hàm UpdateContext

Áp dụng cho: Ứng dụng canvas

Tạo hoặc cập nhật biến bối cảnh của màn hình hiện tại.

Tổng quan

Sử dụng hàm UpdateContext để tạo biến bối cảnh. Biến này tạm thời giữ một phần thông tin, chẳng hạn như số lần người dùng đã chọn một nút hoặc kết quả của thao tác với dữ liệu.

Các biến bối cảnh được đặt trong một màn hình. Điều đó có nghĩa là bạn không thể tạo công thức tham chiếu đến một biến bối cảnh trên màn hình khác. Nếu đã sử dụng một công cụ lập trình khác, thì bạn có thể nghĩ về một biến bối cảnh tương tự như biến cục bộ. Sử dụng hàm Set để thao tác với các biến chung có sẵn trong ứng dụng của bạn.

Power Apps dựa trên các công thức tự động tính toán lại khi người dùng tương tác với một ứng dụng. Các biến bối cảnh không mang đến lợi ích này và có thể khiến ứng dụng khó tạo và khó hiểu hơn. Trước khi bạn sử dụng một biến bối cảnh, hãy xem lại phần thao tác với các biến.

Mô tả

Để tạo hoặc cập nhật một biến bối cảnh, hãy truyền một bản ghi đến hàm UpdateContext. Trong mỗi bản ghi, hãy chỉ định tên của một cột để xác định hoặc khớp với tên của biến và giá trị mà bạn muốn đặt cho biến đó.

  • Nếu chỉ định tên của một biến mà bạn đã xác định trước đó, hàm UpdateContext sẽ đặt giá trị của biến thành giá trị mà bạn chỉ định.
  • Nếu bạn chỉ định tên của một biến chưa tồn tại, thì hàm UpdateContext sẽ tạo một biến có tên đó và đặt giá trị của biến đó thành giá trị mà bạn chỉ định.
  • Nếu trước đây bạn đã xác định một biến nhưng không chỉ định biến đó trong công thức UpdateContext cụ thể này, thì giá trị của biến đó vẫn giữ nguyên.

Biến bối cảnh được tạo hoàn toàn bằng cách sử dụng hàm UpdateContext hoặc Navigate. Không cần khai báo rõ ràng. Nếu bạn loại bỏ tất cả các tham chiếu UpdateContextNavigate đến một biến bối cảnh, thì biến bối cảnh đó sẽ không còn tồn tại. Để xóa một biến, hãy đặt giá trị của biến đó theo kết quả của hàm Blank.

Bạn có thể thấy các giá trị, định nghĩa và cách sử dụng của biến bằng dạng xem Variables (Biến) trong menu File (Tệp) trong môi trường tạo.

Bạn tham chiếu đến một biến ngữ cảnh trong công thức bằng cách sử dụng tên cột của biến đó. Ví dụ: UpdateContext( { ShowLogo: true } ) tạo một biến bối cảnh có tên ShowLogo và đặt giá trị của biến đó thành true. Sau đó, bạn có thể sử dụng giá trị của biến bối cảnh này bằng cách sử dụng tên ShowLogo trong một công thức. Bạn có thể viết ShowLogo dưới dạng công thức cho thuộc tính Visible (Hiển thị) của một công cụ điều khiển là hình ảnh và hiện hoặc ẩn công cụ điều khiển đó dựa trên giá trị của biến bối cảnh là true hay false.

Như các ví dụ sau trong chủ đề này cho thấy, các biến bối cảnh có thể chứa một số loại thông tin, bao gồm:

  • một giá trị duy nhất
  • một bản ghi
  • một bảng
  • một tham chiếu đối tượng
  • bất kỳ kết quả nào từ một công thức

Một biến bối cảnh giữ giá trị của nó cho đến khi bạn đóng ứng dụng. Nếu bạn xác định một biến bối cảnh và đặt giá trị của biến đó trên một màn hình cụ thể, thông tin đó vẫn còn nguyên ngay cả khi người dùng chuyển sang một màn hình khác. Sau khi đóng ứng dụng, giá trị của biến bối cảnh sẽ bị mất và bạn phải tạo lại giá trị đó khi tải lại ứng dụng.

Mỗi biến bối cảnh được đặt trong một màn hình. Nếu bạn muốn xác định một biến bối cảnh trên một màn hình và sửa đổi biến đó từ một màn hình khác, bạn phải tạo một công thức dựa trên hàm Navigate. Hoặc sử dụng một biến chung.

Hàm UpdateContext không trả về giá trị và bạn chỉ có thể sử dụng hàm này trong công thức hành vi.

Cú pháp

UpdateContext( UpdateRecord )

  • UpdateRecord – Bắt buộc. Một bản ghi chứa tên của ít nhất một cột và một giá trị của cột đó. Một biến bối cảnh được tạo hoặc cập nhật cho từng cột và giá trị mà bạn chỉ định.

UpdateContext( { ContextVariable1: Value1 [, ContextVariable2: Value2 [, ... ] ] } )

  • ContextVariable1 - Bắt buộc. Tên của một biến bối cảnh cần tạo hoặc cập nhật.
  • Value1 - Bắt buộc. Giá trị để gán cho biến ngữ cảnh.
  • ContextVariable2: Value2, ... - Không bắt buộc. Các biến bối cảnh bổ sung cần tạo hoặc cập nhật và các giá trị của chúng.

Ví dụ

Công thức Mô tả Kết quả
UpdateContext( { Counter: 1 } ) Tạo hoặc sửa đổi biến bối cảnh Counter, đặt giá trị của biến thành 1. Counter có giá trị là 1. Bạn có thể tham chiếu đến biến đó bằng cách sử dụng tên Counter trong một công thức.
UpdateContext( { Counter: 2 } ) Đặt giá trị của biến chung bối cảnh Counter từ ví dụ trước thành 2. Counter có giá trị là 2.
UpdateContext( { Name: "Lily", Score: 10 } ) Tạo hoặc sửa đổi các biến bối cảnh Name (Tên) và Score (Điểm số), đặt giá trị của chúng lần lượt thành Lily (Hoa loa kèn) và 10. Name có giá trị là LilyScore có giá trị là 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Tạo hoặc sửa đổi biến bối cảnh Person (Người), đặt giá trị của biến thành một bản ghi. Bản ghi chứa 2 cột có tên là Name (Tên) và Address (Địa chỉ). Giá trị của cột NameMilton và giá trị của cột Address1 Main St. Person có giá trị của bản ghi { Name: "Milton", Address: "1 Main St" } }.

Tham chiếu đến toàn bộ bản ghi này với tên Person hoặc đề cập đến từng cột của hồ sơ này với tên Person.Name hoặc Person.Address.
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) Thao tác với hàm Patch để cập nhật biến bối cảnh Person bằng cách đặt giá trị của cột Address (Địa chỉ) thành 2 Main St. Person giờ đây có giá trị của bản ghi { Name: "Milton", Address: "2 Main St" } }.

Ví dụ chi tiết 1

  1. Đặt tên cho màn hình mặc định là Source (Nguồn), thêm một màn hình khác rồi đặt tên là Target (Đích).

  2. Trên màn hình Source, hãy thêm 2 nút rồi đặt thuộc tính Văn bản để một cho biết là English (Tiếng Anh) và một cho biết là Spanish (Tiếng Tây Ban Nha).

  3. Đặt thuộc tính OnSelect của nút English (Tiếng Anh) theo biểu thức sau:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})

  4. Đặt thuộc tính OnSelect của nút Spanish (Tiếng Tây Ban Nha) theo biểu thức sau:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})

  5. Trên màn hình Target, thêm nhãn và đặt thuộc tính Văn bản theo biểu thức sau:
    If(Language="English", "Hello!", "Hola!")

  6. Trên màn hình Target (Đích), hãy chọn Shapes (Hình dạng) trên tab Insert (Chèn) rồi chọn Mũi tên quay lại.

  7. Đặt thuộc tính OnSelect của Mũi tên quay lại theo công thức sau:
    Navigate(Source, ScreenTransition.Fade)

  8. Từ màn hình Source (Nguồn), hãy nhấn F5, sau đó chọn nút cho một trong hai ngôn ngữ.

    Trên màn hình Target (Mục tiêu), nhãn xuất hiện trong ngôn ngữ tương ứng với nút mà bạn đã chọn.

  9. Chọn Mũi tên quay lại để trở về màn hình Source (Nguồn), sau đó chọn nút cho ngôn ngữ khác.

    Trên màn hình Target (Mục tiêu), nhãn xuất hiện trong ngôn ngữ tương ứng với nút mà bạn đã chọn.

  10. Nhấn Esc để quay lại không gian làm việc mặc định.

Ví dụ chi tiết 2

  1. Mở ứng dụng canvas mà bạn muốn sử dụng công thức này.
  2. Thêm màn hình trống mới bằng cách chọn Màn hình mới từ thanh lệnh.
  3. Thêm một nút rồi đặt thuộc tính OnSelect của nút này thành công thức sau:
    UpdateContext( { Name: "Lily", Score: 10 } )