ฟังก์ชัน Blank, Coalesce, IsBlank และ IsEmpty
ใช้กับ: แอปพลิเคชัน Canvas โฟลว์เดสก์ท็อป Dataverse คอลัมน์สูตร แอปพลิเคชันที่ขับเคลื่อนด้วยโมเดล Power Pages Power Platform ซีแอลไอ
ทดสอบว่าค่านั้นเป็นค่าว่าง หรือ ตาราง ไม่มี เรกคอร์ด และแสดงวิธีการสร้างค่า ว่าง
ภาพรวม
ช่องว่าง คือตัวแทนสำหรับ "ไม่มีค่า" หรือ "ค่าที่ไม่รู้จัก" ตัวอย่างเช่น คุณสมบัติ กล่องรวม ที่เลือก ของตัวควบคุม จะ ว่างเปล่า หากผู้ใช้ไม่ได้ทำการเลือก แหล่งข้อมูลหลายรายการ สามารถจัดเก็บและส่งกลับค่า NULL ซึ่งแสดงอยู่ใน Power Apps เป็น ว่าง
คุณสมบัติหรือค่าจากการคำนวณใดๆ ใน Power Apps สามารถเป็น ว่าง ได้ ตัวอย่างเช่น ค่าบูลีนโดยปกติมีได้หนึ่งในสองค่า: จริง หรือ เท็จ แต่นอกเหนือจากสองสิ่งนี้ ยังสามารถเป็น ว่าง การระบุว่าไม่ทราบสถานะ ซึ่งคล้ายกับ Microsoft Excel ที่เซลล์เวิร์กชีตเริ่มต้นเป็นว่างเปล่าไม่มีเนื้อหา แต่สามารถเก็บค่า TRUE หรือ FALSE ได้ (ในรายการอื่นๆ) เนื้อหาของเซลล์สามารถถูกล้างอีกครั้งได้ตลอดเวลา ทำให้กลับไปเป็นสถานะ ว่างเปล่า
สตริงว่าง หมายถึงสตริงที่ไม่มีอักขระใดๆ ฟังก์ชันLen ส่งกลับค่าศูนย์สำหรับสตริงดังกล่าว และสามารถเขียนในสูตรเป็นสองอัญประกาศคู่ โดยไม่มีอะไรคั่น ""
ตัวควบคุมและแหล่งข้อมูลบางตัวใช้สตริงที่ว่างเพื่อระบุเงื่อนไข "ไม่มีค่า" การสร้างแอปอยางง่าย ฟังก์ชัน IsBlank และ Coalesce ทดสอบ ทั้งค่า ว่าง หรือสตริงที่ว่างเปล่า
ในบริบทของฟังก์ชัน IsEmpty ว่าง ถูกระบุเฉพาะกับตารางที่ไม่มีเรกคอร์ด โครงสร้างของตารางอาจครบถ้วน สมบูรณ์ด้วยชื่อ คอลัมน์ แต่ไม่มีข้อมูลอยู่ในตาราง ตารางอาจเริ่มต้นเป็นว่างเปล่า รับเรกคอร์ดมาและไม่ว่างอีกต่อไป จากนั้นเรกคอร์ดถูกลบออกและกลายเป็นว่างอีกครั้ง
หมายเหตุ
เราอยู่ในช่วงของการเปลี่ยนแปลง จนถึงตอนนี้ ว่าง ยังถูกใช้เพื่อรายงานข้อผิดพลาด ทำให้ไม่สามารถแยกแยะ "ไม่มีค่า" ที่ถูกต้อง จากข้อผิดพลาดได้ ด้วยเหตุผลนี้ ในตอนนี้ การจัดเก็บค่า ว่าง ได้รับการสนับสนุนสำหรับคอลเลกชันภายในเครื่องเท่านั้น คุณสามารถจัดเก็บค่า ว่างเปล่า ในแหล่งข้อมูลอื่นหากคุณเปิดคุณลักษณะทดลอง การจัดการข้อผิดพลาดระดับสูตร ภายใต้ การตั้งค่า>คุณลักษณะที่กำลังจะเกิดขึ้น>ทดลอง เรากำลังทำงานอย่างหนักเพื่อให้คุณสมบัตินี้เสร็จสมบูรณ์และทำการแยกให้ค่า ว่าง จากข้อผิดพลาด ได้อย่างสมบูรณ์
ว่างเปล่า
ใช้กับ: แอป Canvas แอปที่ขับเคลื่อนด้วยโมเดล Dataverse คอลัมน์สูตร
ฟังก์ชัน Blank ส่งกลับค่า ว่าง ใช้ฟังก์ชันนี้เพื่อเก็บค่า NULL ในแหล่งข้อมูลที่สนับสนุนค่าเหล่านี้ ซึ่งเท่ากับการเอาทุกค่าออกจากฟิลด์
IsBlank
ใช้กับ: แอป Canvas แอปที่ขับเคลื่อนด้วยโมเดล
ฟังก์ชัน IsBlank ทดสอบค่า ว่าง หรือสตริงว่าง การทดสอบรวมถึงสตริงว่างเพื่อความสะดวกในการสร้างแอป เนื่องจากแหล่งข้อมูลและตัวควบคุมบางตัวใช้สตริงว่างเมื่อไม่มีค่าอยู่ เพื่อทดสอบโดยเฉพาะสำหรับค่า ว่าง ใช้คุณค่า if( Value = Blank(), ...
แทน IsBlank ฟังก์ชัน IsBlank ถือว่าตารางว่างไม่ว่างเปล่า และควรใช้ IsEmpty ในการทดสอบตาราง
เมื่อเปิดใช้งานการจัดการข้อผิดพลาดสำหรับแอปที่มีอยู่ ให้พิจารณาเปลี่ยน IsBlank กับ IsBlankOrError เพื่อรักษาลักษณะการทำงานของแอปที่มีอยู่ ก่อนที่จะเพิ่มการจัดการข้อผิดพลาด ค่า ว่างเปล่า ถูกใช้เพื่อแสดงทั้งค่า null จากฐานข้อมูลและค่าความผิดพลาด การจัดการข้อผิดพลาดแยกการตีความทั้งสองนี้ออกจาก ว่างเปล่า ซึ่งสามารถเปลี่ยนแปลงลักษณะการทำงานของแอปที่มีอยู่ซึ่งยังคงใช้งาน IsBlank ต่อไปได้
ค่าที่ส่งกลับ IsBlank เป็นบูลีน จริง หรือ เท็จ
Coalesce
ใช้กับ: แอป Canvas แอปที่ขับเคลื่อนด้วยโมเดล
ฟังก์ชัน Coalesce คำนวณอาร์กิวเมนต์ของตนตามลำดับ และส่งกลับค่าแรกที่ไม่ใช่ ว่าง หรือสตริงว่าง ใช้ฟังก์ชันนี้เพื่อแทนที่ค่า ว่าง หรือสตริงว่างที่มีค่าแตกต่างกัน แต่ปล่อยให้ค่า ไม่ใช่ว่าง และสตริงที่ไม่ว่าง ไม่เปลี่ยนแปลง ถ้าอาร์กิวเมนต์ทั้งหมดเป็น ว่างเปล่า หรือสตริงว่าง ฟังก์ชันจะส่งคืน ว่างเปล่า ทำให้ Coalesce เป็นวิธีที่ดีในการแปลงสตริงว่างเป็นค่า ว่างเปล่า
Coalesce( value1, value2 )
เป็นค่าเทียบเท่าที่กระชับกว่าของ If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 )
และไม่จำเป็นต้องประเมิน ค่า1 และ ค่า2 สองครั้ง ฟังก์ชัน If ส่งกลับ ว่าง หากไม่มีสูตร "อื่น" ตามที่เป็นอยู่ที่นี่
อาร์กิวเมนต์ทั้งหมดของ Coalesce ต้องเป็นชนิดเดียวกัน ตัวอย่างเช่น คุณไม่สามารถผสมสตริงตัวเลขกับสตริงข้อความได้ ค่าส่งคืนจาก Coalesce เป็นชนิดทั่วไปนี้
IsEmpty
ใช้กับ: แอป Canvas แอปที่ขับเคลื่อนด้วยโมเดล
ฟังก์ชัน IsEmpty ทดสอบว่าตารางมีเรกคอร์ดใดหรือไม่ ซึ่งจะเหมือนกับการใช้ฟังก์ชัน CountRows และตรวจสอบหาศูนย์ คุณสามารถตรวจสอบข้อผิดพลาดในแหล่งข้อมูลได้ โดยรวมฟังก์ชัน IsEmpty กับ Errors
ค่าที่ส่งกลับ IsEmpty เป็นบูลีน จริง หรือ เท็จ
ไวยากรณ์
ว่าง()
รวมเข้าด้วยกัน( ค่า1 [, ค่า2, ... ] )
- ค่า – จำเป็น ค่าสำหรับทดสอบ แต่ละค่าจะได้รับการประเมินตามลำดับจนกว่าจะมีค่าที่ไม่ได้ ว่าง และไม่พบสตริงว่าง ค่าหลังจากจุดนี้จะไม่ได้รับการประเมิน
ว่างเปล่า( ค่า )
- ค่า – จำเป็น ค่าที่จะทดสอบหาค่า ว่าง หรือสตริงว่าง
ว่างเปล่า( ตาราง )
- ตาราง - จำเป็นต้องมี ตารางสำหรับทดสอบหาเรกคอร์ด
ตัวอย่าง
ว่างเปล่า
หมายเหตุ
ในตอนนี้ ตัวอย่างต่อไปนี้ใช้งานได้กับคอลเลกชันภายในเท่านั้น คุณสามารถจัดเก็บค่า ว่างเปล่า ในแหล่งข้อมูลอื่นหากคุณเปิดคุณลักษณะทดลอง การจัดการข้อผิดพลาดระดับสูตร ภายใต้ การตั้งค่า>คุณลักษณะที่กำลังจะเกิดขึ้น>ทดลอง เรากำลังทำงานอย่างหนักเพื่อให้คุณสมบัตินี้เสร็จสมบูรณ์ และทำการแยกค่า ว่าง จากข้อผิดพลาด ได้อย่างสมบูรณ์
สร้างแอปตั้งแต่เริ่ม และเพิ่มตัวควบคม Button
ตั้งค่าคุณสมบัติ OnSelect ของปุ่มเป็นสูตรดังนี้:
ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
แสดงตัวอย่างแอปของคุณ คลิกหรือแตะปุ่มที่คุณเพิ่ม จากนั้นปิดการแสดงตัวอย่าง
บนเมนู ไฟล์ คลิกหรือแตะ คอลเลกชัน
คอลเลกชัน Cities จะปรากฏ โดยแสดงหนึ่งเรกคอร์ดที่มี "Seattle" และ "Rainy"
คลิกหรือแตะลูกศรย้อนกลับ เพื่อกลับไปยังพื้นที่ทำงานเริ่มต้น
เพิ่มตัวควบคุม ป้ายชื่อ แล้วตั้งค่าคุณสมับติ Text เป็นสูตรนี้:
IsBlank( First( Cities ).Weather )
ป้ายกำกับแสดง เท็จ เนื่องจากฟิลด์ สภาพอากาศ มีค่า ("Rainy")
เพิ่มปุ่มที่สอง แล้วตั้งคุณสมบัติ OnSelect เป็นสูตรดังนี้:
Patch( Cities, First( Cities ), { Weather: Blank() } )
แสดงตัวอย่างแอปของคุณ คลิกหรือแตะปุ่มที่คุณเพิ่ม จากนั้นปิดการแสดงตัวอย่าง
ฟิลด์ สภาพอากาศ ของเรกคอร์ดแรก ใน Cities ถูกแทนที่ด้วย ว่าง โดยเอา "Rainy" ที่เคยอยู่ในนั้นออกไป
ป้ายกำกับแสดง จริง เนื่องจากฟิลด์ สภาพอากาศ ไม่มีค่าอีกต่อไป
Coalesce
สูตร | คำอธิบาย | ผลลัพธ์ |
---|---|---|
Coalesce(ว่างเปล่า(), 1 ) | ทดสอบค่าส่งกลับจากฟังก์ชัน Blank ซึ่งคืนค่า ว่าง เสมอ เนื่องจากอาร์กิวเมนต์แรกเป็น ว่าง การคำนวณจึงดำเนินต่อไปยังอาร์กิวเมนต์ถัดไปจนกว่าจะพบค่าที่ไม่ใช่-ว่าง และสตริงที่ไม่ว่าง | 1 |
รวมตัว( "", "2" ) | ทดสอบอาร์กิวเมนต์แรกซึ่งเป็นสตริงว่าง เนื่องจากอาร์กิวเมนต์แรกเป็นสตริงว่าง การคำนวณจึงดำเนินต่อไปยังอาร์กิวเมนต์ถัดไปจนกว่าจะพบค่าที่ไม่ใช่--ว่าง และสตริงที่ไม่ว่าง | 2 |
รวมตัว(ว่าง(), "", ว่าง(), "", "3", "4" ) | Coalesce เริ่มต้นที่จุดเริ่มต้นของรายการอาร์กิวเมนต์และประเมินอาร์กิวเมนต์แต่ละรายการตามลำดับ จนกระทั่งพบค่าที่ไม่ว่างและสตริงที่ไม่ว่าง ในกรณีนี้ สี่อาร์กิวเมนต์แรกส่งกลับ ว่าง หรือสตริงว่าง ทั้งหมด การคำนวณจึงดำเนินต่อไปยังอาร์กิวเมนต์ที่ห้า อาร์กิวเมนต์ที่ห้าไม่ใช่-ว่าง และสตริงที่ไม่ว่างเปล่า ดังนั้นการประเมินจึงหยุดที่นี่ ค่าของอาร์กิวเมนต์ที่ห้าถูกส่งกลับ และอาร์กิวเมนต์ที่หกไม่ถูกคำนวณ | 3 |
รวมตัว( " " ) | ทดสอบอาร์กิวเมนต์แรกซึ่งเป็นสตริงว่าง เนื่องจากอาร์กิวเมนต์แรกเป็นสตริงว่างและไม่มีข้อโต้แย้งเพิ่มเติม ฟังก์ชันจึงส่งกลับ ว่าง | ว่างเปล่า |
IsBlank
สร้างแอปตั้งแต่เริ่มต้น เพิ่มตัวควบคุมการป้อนข้อความ และตั้งชื่อว่า FirstName
เพิ่มป้ายชื่อ และตั้งค่าคุณสมบัติ Text เป็นสูตรนี้:
If( IsBlank( FirstName.Text ), "First Name is a required field." )
ตามค่าเริ่มต้น คุณสมบัติ Text ของตัวควบคุมข้อความถูกตั้งเป็น "การป้อนข้อความ" เนื่องจากคุณสมบัติมีค่า จึงไม่ใช่ค่าว่าง และป้ายกำกับจะไม่แสดงข้อความใดๆ
เอาอักขระทั้งหมดออกจากตัวควบคุมการป้อนข้อความ รวมถึงช่องว่าง
เนื่องจากคุณสมบัติ Text ไม่มีอักขระใดอีกต่อไป จึงเป็นสตริงว่าง และ IsBlank( FirstName.Text ) จะเป็น จริง ข้อความฟิลด์ที่จำเป็นจะถูกแสดง
สำหรับข้อมูลเกี่ยวกับวิธีดำเนินการตรวจสอบความถูกต้องโดยใช้เครื่องมืออื่น ให้ดูฟังก์ชัน Validate และ การทำงานกับแหล่งข้อมูล
ตัวอย่างอื่น:
สูตร | คำอธิบาย | ผลลัพธ์ |
---|---|---|
IsBlank(ว่าง()) | ทดสอบค่าส่งกลับจากฟังก์ชัน Blank ซึ่งคืนค่า ว่าง เสมอ | จริง |
ว่างเปล่า( " " ) | สตริงที่ไม่มีอักขระ | จริง |
IsBlank( "สวัสดี" ) | สตริงที่มีอย่างน้อยหนึ่งอักขระ | เท็จ |
IsBlank( คอลเลกชันใดก็ได้ ) | เนื่องจากมี คอลเลกชัน อยู่ จึงไม่ใช่ค่าว่าง แม้จะไม่มีเรกคอร์ดใดๆ ก็ตาม การตรวจสอบหาคอลเลกชันที่ว่างเปล่า ให้ใช้ IsEmpty แทน | เท็จ |
IsBlank( Mid( "สวัสดี", 17, 2 ) ) | อักขระเริ่มต้นสำหรับ Mid อยู่เลยจุดสิ้นสุดของสตริงไป ผลลัพธ์จึงเป็นสตริงที่ว่างเปล่า | จริง |
IsBlank( ถ้า(false, false) ) | ฟังก์ชัน If ที่ไม่มี ElseResult เนื่องจากเงื่อนไขเป็น เท็จ ตลอดเวลา If นี้จึงส่งกลับ ว่าง เสมอ | จริง |
IsEmpty
สร้างแอปตั้งแต่เริ่ม และเพิ่มตัวควบคม Button
ตั้งค่าคุณสมบัติ OnSelect ของปุ่มเป็นสูตรดังนี้:
เก็บ(ไอศกรีม, { รสชาติ: "สตรอเบอร์รี่", จำนวน: 300 }, { รสชาติ: "ช็อกโกแลต", จำนวน: 100 } )
แสดงตัวอย่างแอปของคุณ คลิกหรือแตะปุ่มที่คุณเพิ่ม จากนั้นปิดการแสดงตัวอย่าง
คอลเลกชันที่มีชื่อว่า IceCream ถูกสร้างขึ้นและประกอบด้วยข้อมูลนี้:
คอลเลกชันนี้มีสองเรกคอร์ดและไม่ว่างเปล่า IsEmpty( IceCream ) ส่งคืน false และ CountRows( IceCream ) ส่งคืน 2
เพิ่มปุ่มที่สอง แล้วตั้งคุณสมบัติ OnSelect เป็นสูตรดังนี้:
เคลียร์(ไอศกรีม)
แสดงตัวอย่างแอปของคุณ คลิกหรือแตะปุ่มที่สอง จากนั้นปิดตัวอย่าง
ขณะนี้คอลเลกชันว่างเปล่าแล้ว
ฟังก์ชัน Clear เอาเรกคอร์ดทั้งหมดออกจากคอลเลกชัน ทำให้คอลเลกชันว่างเปล่า IsEmpty( IceCream ) ส่งคืน true และ CountRows( IceCream ) ส่งคืน 0
คุณยังสามารถใช้ IsEmpty เพื่อทดสอบว่าตารางจากการคำนวณว่างหรือไม่ ดังที่ตัวอย่างแสดงดังนี้:
สูตร | คำอธิบาย | ผลลัพธ์ |
---|---|---|
ว่างเปล่า( [ 1, 2, 3 ] ) | ตารางแบบคอลัมน์เดียวมีสามเรกคอร์ด ดังนั้นจึงไม่ว่าง | เท็จ |
ว่างเปล่า( [ ] ) | ตารางแบบคอลัมน์เดียวไม่มีเรกคอร์ดจึงว่าง | จริง |
IsEmpty(ตัวกรอง( [ 1, 2, 3 ], ค่า > 5 ) ) | ตารางแบบคอลัมน์เดียวไม่มีค่าที่มากกว่า 5 ผลลัพธ์จากตัวกรองไม่มีเรกคอร์ดใดๆ และว่าง | จริง |