現代命令概觀

命令推動模型導向應用程式的核心應用程式行為。 它們是使用者在使用應用程式時與之互動的按鈕,以及在選擇按鈕時執行的結果動作。 每個命令都是相對於其他命令進行定位,並綁定至應用程式中的命令列位置。

命令列

在較高層級,命令自訂會符合下列類別。 每個類別中都存在各種功能,其在新式命令文件中會更加深入地說明:

  • 顯示。 按鈕的顯示方式以及它在應用程式中的位置。 例如,按鈕的標籤、圖示及協助工具標籤,以及命令列位置和命令列中的位置。
  • 動作。 選擇按鈕時執行的邏輯。 例如,建立和更新資料,或與應用程式中的各種控制項和頁面互動。
  • 可見度。 指定按鈕對使用者的可見或隱藏邏輯條件。 例如,您可能想要讓部分使用者看到按鈕,而對其他使用者隱藏該按鈕。 或者,只有在符合特定的資料記錄準則時,才會顯示按鈕。

命令列位置

  • 主要格線。 使用應用程式的左側導覽查看此資料表中的整頁記錄清單時,顯示命令列。

    主要格線上的命令列

  • 主要表單。 該資料表的主要表單上顯示的命令列。 這會出現在表單的頂端,而不會與表單的不同區域中顯示的相關檢視表或子格線檢視相同。

    主表單

  • +子格線檢視。 命令列會顯示在其他資料表的表單上,這些資料表會在子格中呈現該資料表的資料。 例如,客戶主要表單有一個子格線控制項,其中列出了與客戶記錄相關的連絡人記錄。 若要編輯下列命令列,請編輯連絡人資料表的命令列,然後按一下子格線檢視。

    子格檢視

  • 相關檢視。 查看此資料表中的相關資料時,命令列會顯示在上層資料表的表單上。 例如,從客戶記錄的主要表單中選取相關索引標籤,然後選取相關的資料表 (如連絡人)。

    相關檢視表

  • 快速動作。 快速動作會與主要格線位置相關聯。 若要新增或編輯快速動作及主要格線位置的命令,請從新式應用程式設計工具中選取所需的資料表,然後編輯命令列並選擇主要格線位置。 在使用應用程式時,根據排序決定的前五個命令也會顯示為快速動作。

    在連絡人表格上設定的快速動作範例

注意

命令設計工具不支援不常自訂的命令列位置。 有關自訂這些位置命令的詳細資訊,請參閱全域命令列和其他功能區區段。

命令的類型

  • 命令。 標準按鈕。 選取時,執行動作。 也可以嵌套在下拉式功能表和分割按鈕中的群組。 請注意,這些在傳統命令中稱為飛出視窗。
  • 下拉式清單。 建立功能表,您可以組織群組內的命令
  • 群組。 為嵌套在下拉式清單和分割按鈕中的命令群組新增標題。
  • 分割按鈕。 類似於下拉式清單,但是有主要命令。 選取 [分割] 按鈕時,會執行主要命令的動作。 如果選取展開箭號,則不會執行主要命令。 而是會展開清單,以顯示其他群組、飛出視窗及命令。

命令類型

傳統和新式命令之間的主要區別

傳統命令 (先前稱為功能區) 無法使用低代碼進行自訂。 使用程式碼時,命令自訂相當困難、單調乏味,也容易發生錯誤。 為了將命令降低至低代碼,以及使用自訂頁面來集中畫布和模型導向應用程式,改造命令並重建基礎結構至關重要。

新式命令提供許多新功能,而且用法更為簡單。

功能 傳統 新式
支援模型導向應用程式執行階段 .是 是,另外也支援 Power Fx 執行階段。
自訂使用 手動編輯解決方案檔案中的 XML 或使用協力廠商工具。 解決方案匯出和匯入作業可能非常耗時。 命令設計工具和 Dataverse API 支援。
支援 Power Fx。 有。 動作和可見度。
自訂所需的時間 緩慢、易出錯。 快速
可靠性和效能 容易犯錯。 不良的自訂以及範圍不足通常會影響應用程式效能 內嵌錯誤處理可防止錯誤發生。 已最佳化 Power Fx 提升執行階段效能。
共用 標準 Dataverse 角色型安全性。 非 Power Fx 命令使用標準 Dataverse 角色型安全性。 除了具有適當的資訊安全角色之外,Power Fx 命令目前還需要共用命令元件庫。
解決方案和 ALM 行為 不一致且有問題的解決方案層,不會存在於解決方案介面中。 許多標準的解決方案行為不受支援,例如修補程式、分割、解決方案升級、受管理的屬性。 標準的解決方案層會針對 Dataverse 中的多個解決方案物件類型進行集中管理。 出現在解決方案介面中。 支援所有標準解決方案行為。
當地語系化 非標準 對整個解決方案使用匯出和匯入翻譯進行標準化。
資料模型 複雜。 針對傳統功能區最佳化,且包含許多不再需要的屬性。 簡單、最佳化,適用於現今的模型導向應用程式命令列。
使用 JavaScript 是。 現在變得更簡單。 請注意:相同的 JavaScript 可用於傳統和新式命令。
自訂現成命令 遷移至新式框架後,命令就可以在命令設計工具中進行編輯。
應用程式特定命令 是。 使用新式命令設計工具可確保命令只在選取的應用程式中可見。
將在包含該資料表的所有應用程式中顯示的特定資料表命令 是。 需要修改解決方案檔案中的 appaction 定義。
將針對指定命令列位置的所有資料表和應用程式顯示的全域命令 是。 需要修改解決方案檔案中的 appaction 定義。
建立分割按鈕、飛出視窗及群組
使用程式碼動態填入飛出視窗 否。 建議以宣告方式建立命令。
自訂全域應用程式標題命令
為其他/不常見或過時命令列位置自訂命令
執行新式流程或工作流程 使用 JavaScript 使用 JavaScript。 也支援使用自訂頁面。

傳統與新式可見度規則比較

傳統可見度規則通常對每個案例都有特定規則。 使用 Power Fx,宣告式函數會取代許多傳統規則。 而且使用起來也要簡單得多。

請注意,傳統命令也將很快支援傳統可見度規則。 但是,需要對傳統規則的支援才能將傳統命令可靠地遷移到新式命令,並且不支援命令設計工具中的傳統規則自訂。 建議您繼續使用 Power Fx。

使用案例 傳統規則 傳統選項 Power Fx 顯示屬性
根據資料值顯示/隱藏 CustomRule 使用 JavaScript !IsBlank(Self.Selected.Item.Email)
根據資料表權限顯示/隱藏 EntityPrivilegeRule 多個 DataSourceInfo()
根據記錄權限顯示/隱藏 RecordPrivilegeRule 多個 RecordInfo()
參考主要和相關資料表的控制項內容 EntityRule PrimaryEntity. SelectedEntity Self.Selected
參考控制項內容 EntityRule Form. HomePageGrid. SubGridStandard. SubGridAssociated Self.Selected
資料表中繼資料屬性 EntityPropertyRule DataSourceInfo()
根據表單狀態顯示/隱藏。 例如,為建立表單顯示 FormStateRule Create. Existing. ReadOnly. Disabled. BulkEdit Self.Selected.State = FormMode.New
在格線中選取 1 個以上的記錄時顯示 SelectionCountRule CountRows(Self.Selected.Items) > 1
在多型查詢中顯示/隱藏相關資料表。 例如,檢查查詢是否為使用者或團隊 CustomRule PrimaryEntityTypeCode IsType(), AsType
參考環境屬性 (Org) CustomRule OrgName. OrgLcid. UserLcid 目前無法使用

常見問題

  • 為何在設計器中看不到我在應用程式中所見的命令?
    • 有幾項理由。 有時有一些可見度邏輯,能在執行應用程式時隱藏命令。 其他時候,這些命令在執行時會透過自訂 JavaScript 動態注入並且不可設定。
  • 為何在設計師中看不到重複的命令?
    • 這是經典命令所使用的一般模式。 這兩種命令不會顯示在執行時間中,因為它們是由可見規則所控制。 命令設計師會顯示所有命令,無論可見度規則如何。

另請參閱

使用命令設計工具自訂命令列
管理解決方案中的命令
現代化命令已知限制