使用集合來儲存可用於應用程式中的資料。 集合是一組類似的項目。 例如,您建立 MyImages 集合來儲存公司所有銷售產品的圖片。 您可以在 PowerApps 中新增 MyImages 集合,並建立應用程式來顯示這些產品的所有圖片。 在另一個範例中,您可以建立 PriceList 集合,列出產品和每個產品的價格。

您可以在 PowerApps 中建立及使用集合。 讓我們開始吧。

必要條件

  • 註冊 PowerApps、加以安裝、予以開啟,然後以您註冊時所使用的認證登入。
  • 在 PowerApps 中建立應用程式或開啟現有的。
  • 了解如何在 PowerApps 中設定控制項
  • 這些步驟使用 PriceList.zip 檔案做為範例輸入資料。 此 zip 檔包含一個可以轉換成 Excel 的 XML 檔案。 否則,PowerApps 會自動讀取.zip 檔中的檔案,並成功匯入檔案。 您可以下載並使用此範例資料,或匯入您自己的資料。

建立單一資料行的集合

下列步驟示範如何使用 Collect 函式在您的應用程式中建立集合,以及如何將項目加入集合。

  1. 開啟您的應用程式。
  2. 在 [插入] 索引標籤上,選取 [文字],然後選取 [文字輸入]:

  3. 在左上角,選取 [文字1],並將此控制項重新命名為 Destination

  4. 在 [插入] 索引標籤上,選取 [按鈕] 將按鈕控制項加入您的設計工具。 下拉式清單中會列出 OnSelect 屬性。 將它設定為下列函式︰

    Collect(Destinations, Destination!Text)

    它看起來應該像這樣︰

  5. 選取按鈕文字,然後輸入 Add

  6. 選取 [Add] 按鈕,並將它移到文字控制項之下。 您可以移動到任何位置︰

在這些步驟中,您使用 Collect 函式建立名為 Destinations 的集合。 您也加入按鈕控制項,然後選取它並將新的項目加入集合。 現在,看看您建立了什麼:

  1. 選取 [預覽]:

  2. 在方塊中輸入城市名稱,然後選取 [Add] 按鈕。

  3. 再輸入一些別的城市名稱,每一個都要選取 [Add] 按鈕。

  4. 按下 Esc 鍵以關閉 [預覽] 視窗。

  5. 看看 Destinations 集合和您輸入的文字值。 在 [檔案] 索引標籤上,選取 [集合]。 您輸入的文字都列出來了︰

進階

現在,讓我們將 Destinations 集合繫結至清單方塊︰

  1. 回到您的設計工具。
  2. 在 [插入] 索引標籤上,選取 [控制項],然後選取 [清單方塊]:

  3. 移動清單方塊至您可以看到它的地方。 將其 Items 屬性設定為下列運算式:
    Destinations!Value

    當您這樣做時,清單方塊會自動填入您先前在 Destinations 集合中輸入的項目︰

預覽變更: 。 在清單方塊中,您可以看到您輸入的不同城市。 在文字輸入控制項中,輸入新城市,然後選取 [新增] 按鈕。 清單方塊會自動更新以包含您剛輸入的新城市。

建立多資料行的集合

下列步驟示範如何使用 Collect 函式在您的應用程式中建立集合,以及如何在集合中加入多個資料列。

  1. 在 [常用] 索引標籤上,開啟新畫面。
  2. 在 [插入] 索引標籤上,選取 [文字],然後選取 [文字輸入]。
  3. 將文字控制項重新命名為 City

  4. 插入另一個文字輸入控制項,並將它重新命名為 States

  5. 移動 City 和 State 文字控制項到您可以看到它們的地方︰

    注意︰您可以將 [文字輸入] 取代為 'City'、'State' 等等,如我們在圖中所進行。

  6. 在 [插入] 索引標籤中,選取 [按鈕]。 將其 OnSelect 屬性設定為下列函式:
    Collect(Destinations, {Cities:City!Text, States:States!Text})

    它看起來應該像這樣︰

    附註︰您可以使用同樣這個函式在這個集合中加入更多資料行。 例如,您可以新增另一個文字輸入控制項 Country 來新增 Countries 資料行︰

    Collect(Destinations, {Cities:City!Text, States:States!Text}, {Countries:Country!Text})

  7. 將按鈕控制項重新命名為 AddCityStateButton,並將其 Text 屬性設定為 Add City and State:

在這些步驟中,您已在 Destinations 集合中加入 City 資料行和 State 資料行。 按鈕控制項將這些新文字項目加入集合。 現在,看看您建立了什麼:

  1. 選取 [預覽]:

  2. 在 [City] 和 [State]方塊中輸入一些文字,然後選取 Add City and State 按鈕。
  3. 再加入幾個城市和州。
  4. 按下 Esc 鍵以關閉 [預覽] 視窗。
  5. 若要查看您已加入 Destinations 集合的項目,選取 [檔案] 索引標籤,然後選取 [集合]:

將資料行加入集合

本逐步解說分成幾個部份。 完成時,您會知道如何將資料匯入集合、建立可顯示價目表資料的資源庫、以及使用滑桿控制項來決定產品數量。

匯入價目表並建立集合

  1. 下載 PriceList zip 檔案。
  2. 在 [常用] 索引標籤上,開啟新畫面。
  3. 在 [插入] 索引標籤上,選取 [控制項],然後選取 [匯入]:

  4. 在 [動作] 索引標籤上,選取 [OnSelect]。 輸入下列函式︰

    Collect(PriceList, Import1!Data)

  5. 預覽您的應用程式。 選取 [匯入資料] 按鈕,選取 PriceList.zip 檔案,然後選取 [開啟]。

  6. 關閉 [預覽] 視窗。

  7. 在 [檔案] 索引標籤上,選取 [集合]。 會列出您匯入的 PriceList 項目︰

加入可顯示集合項目的資源庫

  1. 回到您的設計工具。
  2. 在 [插入] 索引標籤中,選取 [資源庫],捲動至 [自訂資源庫],然後選取 [直向]:

  3. 將資源庫重新命名為 PriceGallery,並將 Items 屬性設定為 PriceList

  4. 將 PriceList 資源庫移到 [匯入資料] 控制項下方。 選取資源庫框線,以按一下並拖曳的方式調整資源庫大小庫,讓三個方塊皆顯示在此。
  5. 在資源庫中,選取第一個方塊中,並加入三個標籤 ( [插入] 索引標籤 > [標籤])。
  6. 調整大小,將標籤排列在第一個方塊頂端附近的資料列。 您的資源庫看起來會像這樣:
  7. 將每個標籤的 Text 屬性設定為下列運算式︰

    標籤 Text 屬性設定為
    Label1 ThisItem!Name
    Label2 Text(ThisItem!Price, "$#")
    Label3 ThisItem!Maker

    當您這樣做時,標籤會自動更新為 PriceList 集合中的 name、price、maker 值。

  8. 調整標籤和資源庫大小,以移除任何多餘的空間。 您的畫面看起來會像這樣︰

加入數量滑桿並更新集合

  1. 在 [插入] 功能表上,選取 [控制項],然後選取 [滑桿]。 將滑桿重新命名為 OrderQty,並將它移到資源庫下方。
  2. 加入按鈕,將其 Text 屬性設定為 Add,並且將它移到 OrderQty 滑桿下。 您的應用程式看起來會像這樣:
  3. 將 [Add] 按鈕的 OnSelect 屬性設為下列運算式:

    Collect(OrderList, {Name:PriceGallery!Selected!Name, Qty:OrderQty!Value, Cost:OrderQty!Value*LookUp(PriceList, PriceGallery!Selected!Name in Name, Price)});SaveData(OrderList, "orderfile")

    附註:當您在此程序稍後選取此按鈕時,您將建立並儲存 OrderList 集合。 此集合將包含您在資源庫中輸入的產品名稱、您使用滑桿選擇的數量,以及由數量乘以產品價格計算出來的總成本。

  4. 選取 [畫面] 索引標籤,將 OnVisible 屬性設為下列運算式︰

    If(IsEmpty(PriceList), LoadData(PriceList, "pricefile"));If(IsEmpty(OrderList), LoadData(OrderList, "orderfile"))

現在,看看您建立了什麼:

  1. 開啟 [預覽]。
  2. 選取資源庫中的產品,移動滑桿到您所要的數量,然後選取 [Add] 按鈕。

    重要事項:

    您選取產品時,該產品不會反白顯示來表示您選取它。 當我們建立資源庫時,我們並未加入這項功能。 請記得按一下產品就會選取它。

  3. 重複這些步驟來加入一些其他的產品。 按下 ESC 鍵以關閉 [預覽] 視窗。

  4. 在 [檔案] 索引標籤上,選取 [集合] 以預覽您建立的 OrderList 集合︰

秘訣

若要移除訂單清單中的所有項目,新增按鈕,將其 Text 屬性設為 Clear,並將其 OnSelect 屬性設為下列運算式:
Clear(OrderList);SaveData(OrderList, "orderfile")
若要一次移除一個項目,在資源庫中顯示 OrderList 集合,並將資訊庫中標籤的 OnSelect 屬性設為下列運算式︰
Remove(OrderList, ThisItem);SaveData(OrderList, "orderfile")

秘訣與技巧

  • 您隨時可以選取 [預覽] 按鈕 ( ) 檢視您的圖表,並看看它們加入資料後看起來如何。
  • 在設計您的應用程式時,您可以調整控制項的大小,並以按一下並拖曳方式移動它們。

您的收獲

在本主題中,您可以:

  • 使用 Collect() 函式在用程式中建立集合。
  • 加入按鈕控制項,然後選取它並將新的項目加入集合。
  • 使用清單方塊將項目加入集合。
  • 加入滑桿控制項來更新集合中的項目。