使用具有命令的 Power Fx
本文介紹特定命令的 Power Fx 部分。 目前在畫布應用程式中所使用的許多其他函數也可以使用。 請記住,因為命令是針對模型導向應用程式,所以有不同的區別。
注意
發佈 Power Fx 命令可能需要幾分鐘的時間。 即使發佈作業看起來已完成,但背景作業仍在執行,這可能並不明顯。 發佈後可能需要等待幾分鐘,然後重新整理應用程式才能看到您所做的變更。 第一次為應用程式發佈 Power Fx 命令時通常會花費較長的時間。
OnSelect
定義當您在應用程式中選取按鈕時,會執行的邏輯。
可見
定義在執行應用程式時隱藏或顯示按鈕的邏輯。
若要定義可見度邏輯,請選取命令。 然後在右側命令屬性窗格中選取可見度,然後選擇公式的顯示條件。 您可以在資料編輯列的左側選取可見度,然後使用公式列來撰寫 Power Fx 運算式。
已選取的屬性
欄位 | 類型 | 描述 |
---|---|---|
項目 | DataSource 的記錄 | 從 DataSource 選取的其中一個記錄。 |
AllItems | DataSource 中的記錄表格 | 從 DataSource 選取的所有記錄。 |
狀態 | 列舉 | 所選控制項的狀態。 Edit (=0)、New (=1)、View (=2) |
未儲存 | 布林值 | 如果 Selected 或 SelectedItems 有未儲存的變更,則傳回 True。 否則傳回 False。 如果命令元件庫中的自動儲存設為 True (預設選項),則一律傳回 False。 |
- 選取屬性是由命令的主機所提供。
- 項目和 AllItems 名稱與組合方塊控制項和資源庫控制項有一致性,但這是一種新的模式。
- 如果未選取任何記錄,則 Item 會傳回 Blank (IsBlank 傳回 true),而 AllItems 將傳回空白表格 (IsEmpty 傳回 true)。
- 記錄參考資料的 Null DataSource (多態記錄類型)。 可以呼叫一般函數,例如:可以使用 Save 或 IsType/AsType。
- 如果 SelectionMax <> 1,則項目一律為空白。 這能避免將公式只寫入一個項目,而無法擴充至多個項目。
自動儲存
- 許多 JavaScript 命令都是以儲存表單緩衝區開始。 這是因為這會讓其餘的代碼更方便使用。
- 根據預設,會以應用程式製作者名義儲存表單緩衝。
- 在命令開始前會儲存表單。
- 儲存作業期間發生的任何問題都會在表單的 UI 中進行處理。
Patch 函數
修補 (更新) 目前選取的記錄
Patch(Accounts, Self.Selected.Item, {'Account Name': "Changed Account name"})
建立相關記錄
注意
如果相關表格尚未存在於命令元件庫中,則需要在畫布工作室中將其打開,並在該處新增資料來源。
Patch(Tasks,Defaults(Tasks),{Regarding:Self.Selected.Item},{Subject:"Subject of the Task"})
檢查並編輯日期屬性
If(Self.Selected.Item.'Last Date Included in Campaign'>DateAdd(Now(),-3), Patch(Accounts,Self.Selected.Item,{'Last Date Included in Campaign':Date(2021,10,19)}))
可見屬性:如果在格線檢視中選取一或多個記錄,則只顯示命令
CountRows(Self.Selected.AllItems) > 0
記錄資料的控制項可見度
//Button will be visible for accounts with Account Rating > 20
Self.Selected.Item.'Account Rating'>20
瀏覽
注意
有關其他選項,請參閱用戶端 API 參考以使用 JavaScript。 其他資訊:navigateTo (用戶端 API 參考資料)
瀏覽到自訂頁面
若要瀏覽到模型導向應用程式中的自訂畫布頁面,請將頁面名稱做為第一個參數傳遞。
Navigate( myCustomPage )
瀏覽至表格的預設檢視
若要瀏覽至表格的預設檢視表,請將表格名稱當作第一個引數來傳遞。
Navigate( Accounts )
瀏覽至表格的指定系統檢視
若要瀏覽至表格的特定系統檢視,請傳遞表格的 Views
列舉。
Navigate( 'Accounts (Views)'.'My Active Accounts' )
瀏覽至表格的預設表單
若要瀏覽到表格的預設表單,請將紀錄作為第一個引數來傳遞。
Navigate( Gallery1.Selected )
在建立模式下瀏覽至表格的預設表單
若要瀏覽至表格的預設表單,請傳遞由預設函數所建立的 Dataverse 記錄。 這會以新的記錄的方式開啟預設表單。 預設函數會採用表格名稱以建立記錄。
Navigate( Defaults( Accounts ) )
使用資料來源和記錄資訊來最佳化使用者體驗
使用 DataSourceInfo 函數和 RecordInfo 函數提供關於顯示和操作中資料的資訊,以最佳化使用者體驗。
例如,使用 RecordInfo 判斷目前使用者是否具有修改記錄,以及使用其 Visible 屬性適當地顯示或隱藏編輯按鈕的權限:
EditButton.Visible =
RecordInfo( Gallery1.Selected, RecordInfo.EditPermission )
例如,使用 DataSourceInfo 來決定目前使用者是否有權建立記錄,並使用其 Visible 屬性適當地顯示或隱藏「建立」按鈕:
CreateButton.Visible =
DataSourceInfo( Accounts, DataSourceInfo.CreatePermission )
在執行動作之前要求確認
使用 Confirm 函數在目前畫面上方顯示對話方塊。
Notify( Confirm( "Are you sure?",
{ ConfirmButton: "Yes", CancelButton: "No" }
)
)
如果按下是按鈕,則顯示通知 true ,如果按下否按鈕,則顯示通知 false。
通知使用者
您可以呼叫通知功能,向應用程式使用者顯示通知。
注意
目前不支援 NotificationType.Success
,並將產生資訊通知類型。
Notify( "Model-driven app notification message" )
其他範例
啟動 URL
Launch("https://www.bing.com");
存取 1:N 屬性
Self.Selected.Item.'Recurring Appointments'
檢查相關記錄的屬性
Self.Selected.Item.'Parent Account'.'Account Name'="parent"
命令功能可用
有關模型驅動應用中命令支援的公式的資訊,請轉到 公式參考 - 模型驅動應用。
不支援函數
模型驅動應用中的命令目前不支援 Power Fx 以下 函數 。
- Back()
- Clear()
- Collect()
- Copy()
- Disable()
- Enable()
- Exit()
- InvokeControl()
- Language()
- LoadData()
- Param()
- 列印()
- ReadNFC()
- RequestHide()
- ResetForm()
- Revert()
- SaveData()
- ScanBarcode()
- Set()
- SubmitForm()
- UpdateContext()
- User()
- ViewForm()
不支援列舉
- Align
- AlignInContainer
- BarcodeType
- BorderStyle
- Color
- Direction
- DisplayMode
- Font
- FontWeight
- FormPattern
- GridStyle
- ImagePosition
- ImageRotation
- LabelPosition
- Layout
- LayoutAlignItems
- LayoutDirection
- LayoutJustifyContent
- LayoutMode
- LayoutOverflow
- ListItemTemplate
- MapStyle
- Overflow
- PDFPasswordState
- PenMode
- RemoveFlags
- ScreenTransition
- TeamsTheme
- TextFormat
- TextMode
- TextPosition
- Themes
- Transition
- VerticalAlign
- VirtualKeyboardMode
- Zoom
其他不支援的區域
- 加速
- 應用程式
- 指南針
- 連線
- Dataverse檔案類型欄
- 環境
- 主機
- 配置
- 位置
- ScreenSize