使用PowerApps快速構建基於主題的輕業務應用 —— 進階篇

做者:陳希章 發表於 2017年12月14日git

在上一篇 使用PowerApps快速構建基於主題的輕業務應用 —— 入門篇 中,我用了三個實際的例子演示瞭如何快速開始使用PowerApps構建輕業務應用,你可能已經發現,我都是使用默認生成的設置,沒有作任何修改。固然,那樣作出來的應用看起來不那麼酷,但已經能夠運行了,做爲一個起點,已經不錯了,不是嗎?github

但這樣自動生成的應用,估計也不能直接用於我們實際的工做中,爲了達到這個目的,你還多多少少須要掌握一些「高級」知識,而且要多一些練習。這一篇將從以下幾個方面展開介紹編程

  1. 佈局與控件
  2. 使用數據
  3. 使用網關
  4. 應用生命週期管理

佈局與控件

讓咱們再次回到以前自動生成好的基於Excel文件的訂單應用吧。安全

咱們先從左側開始來剖析一下這個應用。做爲一個給最終的業務用戶使用的應用,它是怎麼構建用戶界面的呢?這個應用雖然簡單,但其實已經包含了咱們常說的「增刪改查」的四項基本功能。PowerApps的應用是由一個一個的Screen(屏幕)組成的,一個屏幕一般表明了某一項功能,例如服務器

  1. BrowseScreen,這個通常是用來顯示數據列表的,對應的數據操做是「查詢列表」。
  2. DetailScreen,這個通常是用來顯示某條數據的詳細信息的,對應的數據操做是「查詢」。
  3. EditScreen,這個屏幕比較有意思,它通常用來新建數據,或者編輯數據,對應的數據操做是「插入」和「更新」。

值得注意的是,以上名稱只是推薦的作法,並不強制要求查詢的屏幕名稱必須叫BrowseScreen,也不要求你必需要上面三個屏幕。事實上,你隨時能夠添加本身須要的屏幕(Screen)。app

順便要提一下的是,PowerApps的應用天生就是面向移動設備來使用的,因此它默認是有兩種佈局:手機的佈局,和平板電腦的佈局。咱們此前自動生成應用的時候,是選擇「手機的佈局(Phone Layout),這個取決於模板的設置。但一旦熟悉以後,咱們徹底能夠本身選擇佈局,而後開始設計。編程語言

你能夠從零開始作,也能夠從一個模板開始作,但請注意此次選擇「Tablet Layout」ide

回到應用自己,咱們剛纔說了,PowerApps的應用是由一個一個屏幕組成的,那麼屏幕又是由什麼組成的呢?控件。函數

PowerApps的控件,整體來講,分爲兩大類,一類是容器控件,一類是普通控件。容器控件是能夠包含其餘控件的控件。主要包括下面兩類:工具

  1. Gallery 控件,這類控件主要用來顯示列表數據。
  2. Form 控件,這類控件主要用來顯示數據或編輯數據。

相比較而言,普通控件則更多,也更加有意思。整體來講,能夠分爲下面幾個類別,請注意粗體部分,這是PowerApps在移動優先這個目標之下的一些亮點功能。

  1. 文本
    1. 標籤(Label)
    2. 文本框(Text Input)
    3. HTML文本框(HTML text),支持用戶輸入HTML文本,顯示富文本內容,例如顯示連接 <a href="xxxx">文本</a>
    4. 手寫筆輸入框(Pen input),支持用戶經過手寫或者電子筆以前簽名,生成的圖片能夠保存起來。具體參考 https://docs.microsoft.com/en-us/powerapps/controls/control-pen-input
  2. 控件
    1. 按鈕(Button)
    2. 下拉框(Drop down)
    3. 組合框(Combo box)
    4. 日期選擇器(Date picker)
    5. 列表框(List box)
    6. 複選框(Check box)
    7. 單選框(Radio)
    8. 切換按鈕(Toggle)
    9. 滑動框(Slider)
    10. 評分按鈕(Rating)
    11. 計時器(Timer)
    12. 導入數據(Import)
    13. 導出數據(Export)
    14. PDF查看器(PDF Viewer)
    15. Power BI 磁貼 (Power BI Tile)
    16. 附件(Attachments)
    17. 數據表控件(Table)
  3. 多媒體空控件
    1. 圖片(Image)
    2. 攝像頭(Camera),詳情請參考 https://docs.microsoft.com/en-us/powerapps/controls/control-camera
    3. 碼掃描器(Barcode),能夠掃描一維碼和二維碼,詳情請參考 https://docs.microsoft.com/en-us/powerapps/scan-barcode
    4. 視頻播放器(Video)
    5. 音頻播放器(Audio)
    6. 麥克風(Microphone)
    7. 圖片選擇器(Add Picture)
  4. 圖形控件
    1. 餅圖(Pie chart)
    2. 柱狀圖(Column chart)
    3. 折線圖(Line chart)

如今你對於PowerApps所支持的一些圖形化界面元素都有了一個基本的瞭解,接下來就是怎麼真正地使用好它們了。你不須要去學一門編程語言,只須要知道這些控件的使用無外乎兩個方面

  1. 爲控件的屬性賦值。通常是選中一個控件後,在右側會有一個屬性面板,列出了全部能夠設置的屬性。固然,若是你已經比較熟悉的話,則能夠在工具欄下面的編輯欄中直接輸入屬性名和值,快速來完成設置。

  2. 爲控件的事件綁定表達式。除了純粹顯示數據的控件,大部分控件都是能夠交互式操做的,例如接受用戶的點擊等。如何爲這種行爲作出響應呢?在編程中,咱們的專業術語叫編寫事件處理程序。PowerApps不須要編碼,因此它提供了一些特殊的表達式來實現簡單的事件處理邏輯。例以下面是一個最多見的按鈕事件,當用戶點擊後,它會從第一個屏幕切換到第二個屏幕。這裏用的是navigate函數(另外還有Back,Forward函數來表示後退和前進)。你其實不須要記住這些東西,選擇你的控件後,在頂部的Action菜單中,通常會列出來該控件支持的常見的操做。Navigate是一個導航的功能,Collect是一個收集數據的功能(我在下一節會介紹),Remove則是刪除數據的操做,跟Collect對應。Flows可以發起一個外部流程,這裏先不作展開,後續有專門的文章介紹。

請注意,你能夠在事件表達式中定義多個操做,只要用分號將他們分開便可,例如 Collect(TestData,Dropdown1.Selected);Navigate(Screen2, ScreenTransition.Fade)

在這裏,我建議你們花個半天的時間,逐一地瞭解這些控件,理解常見的屬性以及事件,只要大體作過一次,我相信對於你往後使用PowerApps將有極大的幫助。

使用數據

接下來要談一談數據。你們知道,界面只是一個表象,真正用戶在交互的實際上是數據。我在 入門篇 中已經介紹了Excel文件,SharePoint List,Dynamics 365的業務實體做爲數據的場景。今天要進一步深刻探討一下。

首先,你要知道的是,一個PowerApps的應用可使用多個數據源,一個數據源反過來也能夠用於多個PowerApp的應用中。在頂部菜單中找到View,點擊Data Source能夠查看到當前這個應用中能用到的全部數據源,固然也能夠添加你須要的其餘數據源。

其次,你須要掌握幾個常見的數據篩選函數。雖然一個應用中能支持多個數據源,可是它沒有辦法像PowerBI 那樣在這些數據源創建映射和關係。那麼,當我但願根據用戶的選擇,決定對某個數據集合進行篩選、排序等操做時應該怎麼辦呢?答案是使用數據篩選函數。PowerApps提供了三個很是強大的函數:Filter、Search 和 LookUp。我很是推薦你們要詳細閱讀 https://docs.microsoft.com/zh-cn/powerapps/functions/function-filter-lookup 這篇文章而且進行實際的操做來加深瞭解,這是你從會作一個Hello world這樣的應用到一個實際能用在工做中的應用必需要學會的。

最後,你須要瞭解如何在屏幕傳遞數據。若是咱們須要從一個屏幕切換到另一個屏幕,如何將前一個屏幕的數據傳遞過來呢?PowerApps提供了上下文變量的概念,並且在不少函數中都自帶了這個功能,例如Navigate函數,就能夠在第三個參數定義要傳遞下去的變量和值。下圖定義了一個Language的變量,僅在這個Navigate的生命週期內有效。

你還能夠經過下面的功能查看全部的變量,以及它們被使用的狀況

關於PowerApps的上下文變量的細節,請參考 https://docs.microsoft.com/zh-cn/powerapps/functions/function-updatecontext

若是想要定義在整個應用程序都能用的全局變量,請參考Collect函數 https://docs.microsoft.com/en-us/powerapps/functions/function-clear-collect-clearcollect

對於絕大部分數據源來講,每次都是以當前用戶的身份去訪問的。因此無論你是一個Excel文件放在OneDrive for Business,仍是一個SharePoint List,在分享給同事們以前,你須要確保他們是有權限訪問到的。

PowerApps也提供了一個專門的函數(User),用來獲取當前用戶的郵箱,顯示名稱,我的頭像這三個數據。

使用網關

PowerApps默認支持上百種數據源,尤爲是對於雲端的SaaS應用有極好的支持。可是,假設你的數據不在支持列表中,或者你的數據是在公司內部的服務器,可否同樣享受到PowerApps帶來的好處呢?答案是能夠,PowerApps經過一個網關(gateway)的技術,能夠在你受權的狀況下安全地鏈接到你私有的數據。

點擊右上角的New Gateway按鈕,你將被引導到一個下載界面

下載完成後雙擊安裝,最後輸入你能登陸到PowerApps的帳號進行身份認證

若是你看到下面這樣的界面,則表示配置成功了。咱們發現PowerApps,Microsoft Flow,Power BI是共用Gateway這個基礎設施的,無需配置三套。

那麼怎麼使用這個網關呢?咱們仍是要回到網關的管理界面,你看到如今多出來一個gatewaydemo的網關

接下來,你在新建鏈接的時候,選擇你的數據源類型(例如SQL Server)後,在具體配置的時候,選擇使用Connect using on-premises data gateway

詳細步驟你還能夠參考 這篇文章

應用生命週期管理

本文的結束,我想要給你們介紹關於PowerApps的應用生命週期管理的概念。PowerApps是面向業務用戶、快速開發和迭代的一個平臺,只有這樣才能知足隨需應變的業務需求。因此,你會快速開始工做,發佈你的應用,而後在使用過程當中,根據反饋再快速調整設計,而後又從新發布。這樣就帶來一個版本管理(或者再往大里說——應用生命週期管理)的問題。

PowerApps會爲每次發佈保存一個版本,例以下圖能夠看到個人AppTest這個應用,目前兩個版本,而版本2是目前在使用的(Live)

若是你發現版本2並非很穩定,或者某些功能並非你所預期的那樣正常工做,你徹底能夠在這裏回滾到版本1,經過點擊版本1的Restore按鈕便可。

相關文章
相關標籤/搜索