Filter คือ ฟังก์ชันที่ใช้ค้นหา record ในตาราง ถ้าข้อมูลไหนที่ตรงกับสูตร (formula) ก็จะนำข้อมูลนั้นมาแสดง ข้อมูลไหนที่ไม่ตรงก็จะไม่แสดง เช่น ให้หาคำว่า “chocolate”
ผลลัพธ์ที่ return กลับมาจะเป็นตารางที่มี record ที่ตรงกับเงื่อนไข ในกรณีที่ไม่มี record ไหนที่ตรงกับสูตรจะ return empty

Search คือ ฟังก์ชันที่ใช้ค้นหา record ในตาราง ที่มีข้อความ (string) ตรงกับคอลัมน์ โดยที่ข้อความนั้นจะอยู่ส่วนไหนในคอลัมน์ก็ได้ เช่น ให้หาคำว่า “choc” ฟังก์ชัน Search เป็น case-insensitive
ผลลัพธ์ที่ return กลับมาจะเป็นตารางที่มี record ที่ตรงกับเงื่อนไข ในกรณีที่ไม่มี record ไหนที่ตรงกับข้อความจะ return empty

Lookup คือ ฟังก์ชันที่ใช้ค้นหา record แรกในตาราง ถ้าข้อมูลไหนที่ตรงกับสูตร (formula) ก็จะนำข้อมูลนั้นมาแสดง ข้อมูลไหนที่ไม่ตรงก็จะไม่แสดง ผลลัพธ์ที่ return กลับมาจะมีแค่ record แรกที่ตรงกับเงื่อนไข ในกรณีที่ไม่มี record ไหนที่ตรงกับสูตรจะ return blank

วันนี้จะลองเขียนตามตัวอย่างของไมโครซอฟท์
สร้างตารางตามเอกสารของไมโครซอฟท์ใน SharePoint (ในบทความนี้เพ็ญจะเพิ่มรูปภาพเข้าไปด้วย เพื่อเขียนใน Gallery)

สร้าง Canvas app แล้ว connect data ไปที่ SharePoint

Insert Control ที่ต้องการ เช่น Gallery, Data Table
สมมุติว่าใช้ Gallery อาจจะเลือกเป็น Vertical gallery แล้วจัดองค์ประกอบตามที่ต้องการ


สมมุติว่าใช้ Data table ก็ลบ column ที่ไม่ใช้ออก (สามารถสลับตำแหน่ง Column ได้, เปลี่ยน Header Text ได้)


ตัวอย่างการใช้ Filter
ที่ Item properties ของ control (Gallery หรือ Table) ลองใส่สูตร
Filter(IceCream, OnOrder > 0)
หมายถึง ในตาราง IceCream ให้กรองข้อมูลที่ OnOrder มีค่ามากกว่า 0


ตัวอย่างการใช้ Search
ที่ Item properties ของ control (Gallery หรือ Table) ลองเปลี่ยนสูตรเป็น
Search(IceCream, "choc", Flavor)
หมายถึง ในตาราง IceCream ให้ค้นหาข้อมูลที่ Flavor มีคำว่า choc


ส่วนใครที่ต้องการใช้ Search แบบที่ไม่มี Delegation Warning ให้ไปดูคลิปของ Matthew ได้ ที่นี่
ตัวอย่างการใช้ Lookup
สำหรับ Lookup จะคล้ายกับการใช้ VLOOKUP() ใน Excel คือ ถ้ามีข้อมูลที่ตรงกับเงื่อนไขหลายอันจะเลือกข้อมูลที่เจออันแรกมาแสดง
LookUp(IceCream, Quantity > 150, Quantity + OnOrder)
หมายถึง ในตาราง IceCream ให้ค้นหาข้อมูลที่ Quantity มีค่ามากกว่า 150 แล้วให้เอาค่าใน Quantity บวกกับค่าใน OnOrder


หรือถ้าเปลี่ยนสูตรเป็น
LookUp(IceCream, Flavor = "Chocolate", Quantity)
หมายถึง ในตาราง IceCream ให้ค้นหาข้อมูลที่ Flavor เท่ากับ Chocolate แล้วให้เอาค่าใน Quantity มาแสดง

ตัวอย่างการนำไปใช้
1. Text Input Control กับ Search function
จากในตัวอย่างที่เราใส่สูตรลงไปใน Table หรือ Gallery ตรงๆ ด้วยคำที่ตัวอย่างให้มา เช่น
Search(IceCream, "choc", Flavor)
ก็ให้เราเปลี่ยนตรงคำค้นหาให้ไปอ่านจากค่าใน control แทน เช่น ถ้าจะใช้ Search กับ control “Text Input” ให้ใส่สูตรไว้ที่ Tabl หรือ Gallery ว่า
Search(IceCream,txtFlavor.Text,Flavor)

2. Drop down control กับ Filter function
จากตัวอย่างของไมโครซอฟท์ที่เขียนสูตรลงไปด้วยข้อความตรงๆ เช่น
Filter(IceCream, "chocolate" in Lower(Flavor ))
ก็ให้เราเปลี่ยนตรงคำค้นหาให้ไปอ่านจากค่าใน control แทน เช่น ถ้าจะใช้ Filter กับ control “Drop down” ให้ใส่สูตรไว้ที่ Tabl หรือ Gallery ว่า
Filter(IceCream, drpFlavor.SelectedText.Flavor = Flavor)

3. Combo box control กับ Filter function
จากตัวอย่างของไมโครซอฟท์ที่เขียนสูตรลงไปด้วยข้อความตรงๆ เช่น
Filter(IceCream, "chocolate" in Lower(Flavor ))
ก็ให้เราเปลี่ยนตรงคำค้นหาให้ไปอ่านจากค่าใน control แทน เช่น ถ้าจะใช้ Filter กับ control “Combo box” ให้ใส่สูตรไว้ที่ Tabl หรือ Gallery ว่า
Filter(IceCream, Flavor in ComboBox1.SelectedItems.Flavor)

Video


Leave a comment