แชร์ผ่าน


ฟังก์ชัน AddColumns, DropColumns, RenameColumns และ ShowColumns

ใช้กับ: แอป Canvas โฟลว์เดสก์ท็อป แอปที่ขับเคลื่อนโดยโมเดล Power Platform CLI

จัดรูปร่าง ตาราง โดยการเพิ่ม การทิ้ง การเปลี่ยนชื่อ และการเลือก คอลัมน์

ฟังก์ชัน **ForAll ยังสามารถใช้เพื่อจัดรูปร่างตารางได้ โดยการส่งคืนตารางของเรกคอร์ดใหม่ที่สร้างจากคอลัมน์ที่มีอยู่

ภาพรวม

ฟังก์ชันเหล่านี้จัดรูปร่างตาราง โดยการปรับเปลี่ยนคอลัมน์:

  • ลดตารางที่ประกอบด้วยหลายคอลัมน์ลงเหลือคอลัมน์เดียวสำหรับใช้กับฟังก์ชันคอลัมน์เดียว เช่น Lower หรือ Sqrt
  • เพิ่มคอลัมน์ที่มีการคำนวณลงในตาราง (ตัวอย่างเช่น คอลัมน์ ราคารวม ที่แสดงผลลัพธ์ของการคูณ ปริมาณ กับ ราคาต่อหน่วย)
  • เปลี่ยนชื่อคอลัมน์เป็นชื่อที่สื่อความหมาย สำหรับแสดงให้ผู้ใช้ หรือใช้ในสูตร

ตารางคือค่าใน Power Apps ซึ่งก็เหมือนกับสตริงหรือตัวเลข คุณสามารถระบุตารางเป็นอาร์กิวเมนต์ในสูตร และฟังก์ชันสามารถส่งกลับตารางเป็นผลลัพธ์

หมายเหตุ

ฟังก์ชันที่หัวข้อนี้อธิบายไม่มีการปรับเปลี่ยนตารางต้นฉบับ แต่ ฟังก์ชันเหล่านี้รับตารางนั้นเป็นอาร์กิวเมนต์ และส่งกลับตารางใหม่ที่ผ่านการแปลงแล้ว สำหรับข้อมูลเพิ่มเติม โปรดดู การทำงานกับตาราง

คุณไม่สามารถปรับเปลี่ยนคอลัมน์ของ แหล่งข้อมูล โดยใช้ฟังก์ชันเหล่านี้ได้ คุณต้องปรับเปลี่ยนข้อมูลที่แหล่งข้อมูลโดยตรง คุณสามารถเพิ่มคอลัมน์ไปยัง คอลเลกชัน ด้วยฟังก์ชัน Collect ได้ สำหรับข้อมูลเพิ่มเติม โปรดดู การทำงานกับแหล่งข้อมูล

Description

ฟังก์ชัน AddColumns เพิ่มคอลัมน์ลงในตาราง และสูตรกำหนดค่าในคอลัมน์นั้น คอลัมน์ที่มีอยู่แล้วยังคงไม่เปลี่ยนแปลง

สูตรถูกประเมินสำหรับแต่ละเรกคอร์ดของตาราง

ฟิลด์ของเรกคอร์ดที่กำลังประมวลผลอยู่สามารถใช้งานได้ภายในสูตร ใช้ ตัวดำเนินการ ThisRecord หรือเพียงแค่อ้างอิงชื่อของฟิลด์เหมือนที่คุณทำกับค่าอื่น ตัวดำเนินการ Asยังสามารถใช้เพื่อตั้งชื่อเรกคอร์ดที่กำลังประมวลผล ซึ่งสามารถช่วยให้สูตรของคุณง่ายต่อการเข้าใจมากขึ้น และทำให้สามารถเข้าถึงเรกคอร์ดที่ซ้อนกันได้ สำหรับข้อมูลเพิ่มเติม ดูตัวอย่างด้านล่างและ การทำงานกับขอบเขตเรกคอร์ด

ฟังก์ชัน DropColumns ไม่รวมคอลัมน์จากตาราง คอลัมน์อื่นๆ ทั้งหมดยังคงไม่เปลี่ยนแปลง DropColumns ไม่รวมคอลัมน์ และ ShowColumns รวมคอลัมน์

ใช้ฟังก์ชัน RenameColumns เพื่อเปลี่ยนชื่ออย่างน้อยหนึ่งคอลัมน์ในตาราง โดยมีอาร์กิวเมนต์อย่างน้อยหนึ่งคู่ที่ระบุชื่อของคอลัมน์ที่ตารางมี (ชื่อเดิม ซึ่งคุณต้องการแทนที่) และชื่อของคอลัมน์ที่ตารางไม่มี (ชื่อใหม่ ซึ่งคุณต้องการใช้) ชื่อเดิมต้องมีอยู่แล้วในตาราง และต้องไม่มีชื่อใหม่ ชื่อแต่ละคอลัมน์อาจปรากฏเพียงครั้งเดียวในรายการอาร์กิวเมนต์เป็นชื่อคอลัมน์เดิมหรือชื่อคอลัมน์ใหม่ เปลี่ยนชื่อคอลัมน์เป็นชื่อคอลัมน์ที่มีอยู่ โดยอันดับแรกให้วางคอลัมน์ที่มีอยู่โดยใช้ DropColumns หรือเปลี่ยนชื่อคอลัมน์ที่มีอยู่ออกไปโดยการซ้อนฟังก์ชัน RenameColumns ภายอีกคอลัมน์หนึ่ง

ฟังก์ชัน ShowColumns รวมคอลัมน์ของตาราง และทิ้งคอลัมน์อื่นๆ ที่เหลือทั้งหมด คุณสามารถใช้ ShowColumns เพื่อสร้างตารางคอลัมน์เดียวจากตารางหลายคอลัมน์ได้ ShowColumns รวมคอลัมน์ และ DropColumns ไม่รวมคอลัมน์

สำหรับฟังก์ชันเหล่านี้ทั้งหมด ผลลัพธ์คือตารางใหม่ที่ถูกแปลงแล้ว ตารางต้นฉบับไม่มีการเปลี่ยนแปลง คุณไม่สามารถปรับเปลี่ยนตารางที่มีสูตรที่มีได้ SharePoint, Microsoft Dataverse, SQL Server และแหล่งข้อมูลอื่นๆ มีเครื่องมือสำหรับแก้ไขคอลัมน์ของรายการ ตาราง และตาราง ซึ่งมักเรียกว่าสคีมา ฟังก์ชันในบทความนี้แปลงตารางป้อนเข้า โดยไม่ต้องปรับเปลี่ยนต้นฉบับ เป็นตารางผลลัพธ์สำหรับการใช้งานเพิ่มเติม

อาร์กิวเมนต์ของฟังก์ชันเหล่านี้รองรับการมอบสิทธิ์ ตัวอย่างเช่น ฟังก์ชัน Filter ที่ใช้เป็นอาร์กิวเมนต์เพื่อดึงเรกคอร์ดที่เกี่ยวข้องค้นหารายการทั้งหมด แม้ว่าแหล่งข้อมูล '[dbo].[AllListings]' มีหนึ่งล้านแถว:

AddColumns( RealEstateAgents,
   Listings,
   Filter(  '[dbo].[AllListings]', ListingAgentName = AgentName )
)

อย่างไรก็ตาม การส่งออกของฟังก์ชันเหล่านี้จะขึ้นอยู่กับ ข้อจำกัดเรกคอร์ดที่มอบสิทธิ์ไม่ได้ ในตัวอย่างนี้ มีเพียง 500 เรกคอร์ดเท่านั้นที่ส่งกลับ แม้ว่าแหล่งข้อมูล RealEstateAgents มีเรกคอร์ดมากกว่า 501 รายการ

ถ้าคุณใช้ AddColumns ในลักษณะนี้ Filter ต้องทำการเรียกแยกกันไปที่แหล่งข้อมูล สำหรับแต่ละเรกคอร์ดแรก ใน RealEstateAgents ซึ่งมีผลต่อการสื่อสารของเครือข่ายจำนวนมาก หาก [dbo](.[AllListings] มีขนาดเล็กพอและไม่เปลี่ยนแปลงบ่อย คุณสามารถเรียกฟังก์ชัน Collect ใน OnStart เพื่อแคชแหล่งข้อมูลในแอปของคุณเมื่อเริ่มทำงาน อีกทางเลือกหนึ่งคือ คุณสามารถปรับโครงสร้างแอปของคุณเพื่อดึงเรกคอร์ดที่เกี่ยวข้องเฉพาะเมื่อผู้ใช้ถามหา

หมายเหตุ

ใน Power Apps ก่อนเวอร์ชัน 3.24042 ชื่อคอลัมน์ถูกระบุด้วยสตริงข้อความโดยใช้เครื่องหมายคำพูดคู่ และหากเชื่อมต่อกับแหล่งข้อมูล ชื่อคอลัมน์ก็จะต้องเป็นชื่อเชิงตรรกะด้วย ตัวอย่างเช่น ชื่อตรรกะ "cr43e_name" ที่มีเครื่องหมายคำพูดคู่ถูกนำมาใช้แทนชื่อที่แสดง ชื่อ ที่ไม่มีเครื่องหมายคำพูด สำหรับแหล่งข้อมูล SharePoint และ Excel ที่มีชื่อคอลัมน์ที่มีการเว้นวรรค แต่ละช่องว่างจะถูกระบุด้วย "_x0020_" เช่น "ชื่อคอลัมน์" เป็น "Column_x0020_Name" หลังจากเวอร์ชันนี้ แอปทั้งหมดได้รับการอัปเดตโดยอัตโนมัติเป็นไวยากรณ์ใหม่ที่อธิบายไว้ในบทความนี้

ไวยากรณ์

เพิ่มคอลัมน์( ตาราง, ชื่อคอลัมน์1, สูตร1 [, ชื่อคอลัมน์2, สูตร2, ... ] )

  • ตาราง - จำเป็นต้องมี ตารางสำหรับดำเนินการ
  • ColumnNames - จำเป็น ชื่อของคอลัมน์ที่จะเพิ่ม
  • สูตร - จำเป็น สูตรในการประเมินสำหรับแต่ละเรกคอร์ด ผลลัพธ์จะถูกเพิ่มเป็นค่าของคอลัมน์ใหม่ที่ตรงกัน คุณสามารถอ้างอิงคอลัมน์อื่นของตารางในสูตรนี้

DropColumns( ตาราง, ชื่อคอลัมน์1 [, ชื่อคอลัมน์2, ... ] )

  • ตาราง - จำเป็นต้องมี ตารางสำหรับดำเนินการ
  • ColumnNames - จำเป็น ชื่อของคอลัมน์ที่จะวาง

เปลี่ยนชื่อคอลัมน์( ตาราง, ชื่อคอลัมน์เก่า1, ชื่อคอลัมน์ใหม่1 [, ชื่อคอลัมน์เก่า2, ชื่อคอลัมน์ใหม่2, ... ] )

  • ตาราง - จำเป็นต้องมี ตารางสำหรับดำเนินการ
  • OldColumnNames - จำเป็น ชื่อของคอลัมน์ที่จะเปลี่ยนชื่อจากตารางต้นฉบับ องค์ประกอบนี้ปรากฏก่อนในคู่อาร์กิวเมนต์ (หรือก่อนในแต่ละคู่อาร์กิวเมนต์ หากสูตรมีมากกว่าหนึ่งคู่)
  • NewColumnNames - จำเป็น ชื่อทดแทน องค์ประกอบนี้ปรากฏสุดท้ายในคู่อาร์กิวเมนต์ (หรือสุดท้ายในแต่ละคู่อาร์กิวเมนต์ หากสูตรมีมากกว่าหนึ่งคู่)

แสดงคอลัมน์( ตาราง, ชื่อคอลัมน์1 [, ชื่อคอลัมน์2, ... ] )

  • ตาราง - จำเป็นต้องมี ตารางสำหรับดำเนินการ
  • ColumnNames - จำเป็น ชื่อของคอลัมน์ที่จะรวม

ตัวอย่าง

ตัวอย่างในส่วนนี้ ใช้แหล่งข้อมูล IceCreamSales ซึ่งประกอบด้วยข้อมูลในตารางนี้:

ตัวอย่างไอศกรีม

ตัวอย่างเหล่านี้ไม่ได้ปรับเปลี่ยนแหล่งข้อมูล IceCreamSales แต่ละฟังก์ชันแปลงค่าของแหล่งข้อมูลเป็นตาราง และส่งกลับค่าเป็นผลลัพธ์

สูตร Description Result
เพิ่มคอลัมน์(ยอดขายไอศกรีม, รายได้, ราคาต่อหน่วย * ปริมาณขาย) เพิ่มคอลัมน์ Revenue ไปยังผลลัพธ์ สำหรับแต่ละเรกคอร์ด UnitPrice * QuantitySold ถูกประเมิน และผลลัพธ์จะถูกวางในคอลัมน์ใหม่ ผลลัพธ์ที่ได้คือ สตรอว์เบอร์รี่ ช็อคโกแลต และวานิลลา
DropColumns(ยอดขายไอศกรีม,ราคาต่อหน่วย) ไม่รวมคอลัมน์ UnitPrice จากผลลัพธ์ ใช้ฟังก์ชันนี้เพื่อไม่รวมคอลัมน์ และใช้ ShowColumns เพื่อรวมคอลัมน์เข้ามา ผลลัพธ์ สตรอว์เบอร์รี่ ช็อคโกแลต วานิลลา มีเพียงคอลัมน์ QuantitySold
แสดงคอลัมน์(ยอดขายไอศกรีม,รสชาติ) รวมเฉพาะคอลัมน์ Flavor ในผลลัพธ์ ใช้ฟังก์ชันนี้รวมคอลัมน์ และใช้ DropColumns เพื่อไม่รวม คอลัมน์รสเท่านั้น
เปลี่ยนชื่อคอลัมน์(ยอดขายไอศกรีม, ราคาต่อหน่วย, ราคา) เปลี่ยนชื่อคอลัมน์ UnitPrice ในผลลัพธ์ ผลลัพธ์ที่มีรสชาติ ราคา และรายได้
เปลี่ยนชื่อคอลัมน์(ยอดขายไอศกรีม, ราคาต่อหน่วย, ราคา, จำนวนที่ขาย, จำนวน) เปลี่ยนชื่อคอลัมน์ UnitPrice และ QuantitySold ในผลลัพธ์ ผลลัพธ์พร้อม 3 IceCreams และคอลัมน์เป็น รส ราคา และกำไร
ดรอปคอลัมน์(
RenameColumns(
AddColumns(IceCreamSales, Revenue,
UnitPrice * QuantitySold),
UnitPrice, Price),
Quantity)
ดำเนินการแปลงตารางต่อไปนี้ตามลำดับ เริ่มต้นจากสูตรที่อยู่ภายใน:
  1. เพิ่มคอลัมน์ Revenue จากการคำนวณ UnitPrice * Quantity สำหรับแต่ละเรกคอร์ด
  2. เปลี่ยนชื่อ UnitPrice ไปเป็น Price
  3. ไม่รวมคอลัมน์ Quantity
ใบสั่งเป็นส่วนสำคัญ ตัวอย่างเช่น เราไม่สามารถคำนวณ UnitPrice ได้หลังจากที่คอลัมน์ถูกเปลี่ยนชื่อไปแล้ว
ตัวอย่าง IceCream สำหรับราคาต่อหน่วย

ทีละขั้นตอน

ลองตัวอย่างจากตัวอย่างก่อนหน้าในบทความนี้

  1. สร้างคอลเลกชันโดยการเพิ่มตัวควบคุม ปุ่ม และการตั้งค่าคุณสมบัติ OnSelect ในสูตรนี้:

    ClearCollect( IceCreamSales,
       Table(
           { Flavor: "Strawberry", UnitPrice: 1.99, QuantitySold: 20 },
           { Flavor: "Chocolate", UnitPrice: 2.99, QuantitySold: 45 },
           { Flavor: "Vanilla", UnitPrice: 1.50, QuantitySold: 35 }
       )
    )
    
  2. เรียกใช้สูตรโดยการเลือกปุ่ม ในขณะที่กดแป้น Alt ค้างไว้

  3. เพิ่มตัวควบคุม ปุ่ม ที่สอง ตั้งค่าคุณสมบัติ OnSelect ให้สูตรดังกล่าว และจากนั้นเรียกใช้:

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold )
    )
    
  4. บนเมนู ไฟล์ เลือก คอลเลกชัน จากนั้นเลือก IceCreamSales เพื่อแสดงคอลเลกชันนั้น

    ดังที่ภาพนี้แสดงให้เห็น สูตรที่สองไม่ได้ปรับเปลี่ยนคอลเลกชันนี้ ฟังก์ชัน AddColumns ที่ใช้ IceCreamSales เป็นอาร์กิวเมนต์แบบอ่านอย่างเดียว ฟังก์ชันไม่ได้ปรับเปลี่ยนตารางที่อาร์กิวเมนต์นั้นอ้างถึง

    ผู้ดูคอลเลกชันแสดงสามเรกคอร์ดของคอลเลกชันการขายไอศกรีมที่ไม่มีคอลัมน์รายได้

  5. เลือก FirstExample

    ดังที่ภาพนี้แสดง สูตรที่สองส่งกลับตารางใหม่พร้อมคอลัมน์เพิ่ม ฟังก์ชัน ClearCollect บันทึกตารางใหม่ในคอลเลกชัน FirstExample การเพิ่มบางสิ่งลงในตารางต้นฉบับขณะที่ผ่านฟังก์ชันโดยไม่ปรับเปลี่ยนแหล่งที่มา:

    ผู้ดูคอลเลกชันแสดงสามเรกคอร์ดของคอลเลกชันตัวอย่างแรกที่รวมคอลัมน์รายได้ใหม่

แมปคอลัมน์ในส่วนประกอบ

ดูที่ แมปคอลัมน์