แชร์ผ่าน


ฟังก์ชัน Blank, Coalesce, IsBlank และ IsEmpty

ใช้กับ: แอปพื้นที่ทำงาน โฟลว์เดสก์ท็อป คอลัมน์สูตร Dataverse แอปแบบจำลอง Power Platform CLI

ทดสอบว่าค่านั้นเป็นค่าว่าง หรือ ตาราง ไม่มี เรกคอร์ด และแสดงวิธีการสร้างค่า ว่าง

ภาพรวม

Blank คือพื้นที่สำรองไว้สำหรับ "ไม่มีค่า" หรือ "ค่าที่ไม่รู้จัก" ตัวอย่างเช่น ตัวควบคุม กล่องคำสั่งผสม ของคุณสมบัติ Selected คือ ว่างเปล่า หากผู้ใช้ยังไม่ได้ทำการเลือก แหล่งข้อมูลหลายรายการ สามารถจัดเก็บและส่งกลับค่า NULL ซึ่งแสดงอยู่ใน Power Apps เป็น ว่าง

คุณสมบัติหรือค่าจากการคำนวณใดๆ ใน Power Apps สามารถเป็น ว่าง ได้ ตัวอย่างเช่น ค่าบูลีนโดยปกติมีได้หนึ่งในสองค่า: จริง หรือ เท็จ แต่นอกเหนือจากสองสิ่งนี้ ยังสามารถเป็น ว่าง การระบุว่าไม่ทราบสถานะ ซึ่งคล้ายกับ Microsoft Excel ที่เซลล์เวิร์กชีตเริ่มต้นเป็นว่างเปล่าไม่มีเนื้อหา แต่สามารถเก็บค่า TRUE หรือ FALSE ได้ (ในรายการอื่นๆ) เนื้อหาของเซลล์สามารถถูกล้างอีกครั้งได้ตลอดเวลา ทำให้กลับไปเป็นสถานะ ว่างเปล่า

สตริงว่าง อ้างถึงสตริงที่ไม่มีอักขระ ฟังก์ชันLen ส่งกลับค่าศูนย์สำหรับสตริงดังกล่าว และสามารถเขียนในสูตรเป็นสองอัญประกาศคู่ โดยไม่มีอะไรคั่น "" ตัวควบคุมและแหล่งข้อมูลบางตัวใช้สตริงที่ว่างเพื่อระบุเงื่อนไข "ไม่มีค่า" การสร้างแอปอยางง่าย ฟังก์ชัน IsBlank และ Coalesce ทดสอบ ทั้งค่า ว่าง หรือสตริงที่ว่างเปล่า

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

หมายเหตุ

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

ว่างเปล่า

ใช้กับ: แอปพื้นที่ทำงาน แอปแบบจำลอง คอลัมน์สูตร Dataverse

ฟังก์ชัน Blank ส่งกลับค่า ว่าง ใช้ฟังก์ชันนี้เพื่อเก็บค่า NULL ในแหล่งข้อมูลที่สนับสนุนค่าเหล่านี้ ซึ่งเท่ากับการเอาทุกค่าออกจากฟิลด์

IsBlank

ใช้กับ: แอปพื้นที่ทำงาน แอปแบบจำลอง

ฟังก์ชัน IsBlank ทดสอบค่า ว่าง หรือสตริงว่าง การทดสอบรวมถึงสตริงว่างเพื่อความสะดวกในการสร้างแอป เนื่องจากแหล่งข้อมูลและตัวควบคุมบางตัวใช้สตริงว่างเมื่อไม่มีค่าอยู่ เพื่อทดสอบโดยเฉพาะสำหรับค่า ว่าง ใช้คุณค่า if( Value = Blank(), ... แทน IsBlank ฟังก์ชัน IsBlank ถือว่าตารางว่างไม่ว่างเปล่า และควรใช้ IsEmpty ในการทดสอบตาราง

เมื่อเปิดใช้งานการจัดการข้อผิดพลาดสำหรับแอปที่มีอยู่ ให้พิจารณาเปลี่ยน IsBlank กับ IsBlankOrError เพื่อรักษาลักษณะการทำงานของแอปที่มีอยู่ ก่อนที่จะเพิ่มการจัดการข้อผิดพลาด ค่า ว่างเปล่า ถูกใช้เพื่อแสดงทั้งค่า null จากฐานข้อมูลและค่าความผิดพลาด การจัดการข้อผิดพลาดแยกการตีความทั้งสองนี้ออกจาก ว่างเปล่า ซึ่งสามารถเปลี่ยนแปลงลักษณะการทำงานของแอปที่มีอยู่ซึ่งยังคงใช้งาน IsBlank ต่อไปได้

ค่าที่ส่งกลับ IsBlank เป็นบูลีน จริง หรือ เท็จ

Coalesce

ใช้กับ: แอปพื้นที่ทำงาน แอปแบบจำลอง

ฟังก์ชัน Coalesce คำนวณอาร์กิวเมนต์ของตนตามลำดับ และส่งกลับค่าแรกที่ไม่ใช่ ว่าง หรือสตริงว่าง ใช้ฟังก์ชันนี้เพื่อแทนที่ค่า ว่าง หรือสตริงว่างที่มีค่าแตกต่างกัน แต่ปล่อยให้ค่า ไม่ใช่ว่าง และสตริงที่ไม่ว่าง ไม่เปลี่ยนแปลง ถ้าอาร์กิวเมนต์ทั้งหมดเป็น ว่างเปล่า หรือสตริงว่าง ฟังก์ชันจะส่งคืน ว่างเปล่า ทำให้ Coalesce เป็นวิธีที่ดีในการแปลงสตริงว่างเป็นค่า ว่างเปล่า

Coalesce( value1, value2 ) มีความกระชับมากกว่า If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) และไม่ต้องการ value1 และ value2 ที่จะประเมินสองครั้ง ฟังก์ชัน If ส่งกลับ ว่าง หากไม่มีสูตร "อื่น" ตามที่เป็นอยู่ที่นี่

อาร์กิวเมนต์ทั้งหมดของ Coalesce ต้องเป็นชนิดเดียวกัน ตัวอย่างเช่น คุณไม่สามารถผสมสตริงตัวเลขกับสตริงข้อความได้ ค่าส่งคืนจาก Coalesce เป็นชนิดทั่วไปนี้

IsEmpty

ใช้กับ: แอปพื้นที่ทำงาน แอปแบบจำลอง

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

ค่าที่ส่งกลับ IsEmpty เป็นบูลีน จริง หรือ เท็จ

ไวยากรณ์

Blank()

Coalesce( Value1 [, Value2, ... ] )

  • Value(s) - จำเป็นต้องมี ค่าสำหรับทดสอบ แต่ละค่าจะได้รับการประเมินตามลำดับจนกว่าจะมีค่าที่ไม่ได้ ว่าง และไม่พบสตริงว่าง ค่าหลังจากจุดนี้จะไม่ได้รับการประเมิน

IsBlank( Value )

  • ค่า - จำเป็น ค่าที่จะทดสอบหาค่า ว่าง หรือสตริงว่าง

IsEmpty( Table )

  • Table - จำเป็น ตารางสำหรับทดสอบหาเรกคอร์ด

ตัวอย่าง

ว่างเปล่า

หมายเหตุ

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

  1. สร้างแอปตั้งแต่เริ่ม และเพิ่มตัวควบคม Button

  2. ตั้งค่าคุณสมบัติ OnSelect ของปุ่มเป็นสูตรดังนี้:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. แสดงตัวอย่างแอปของคุณ คลิกหรือแตะปุ่มที่คุณเพิ่ม จากนั้นปิดการแสดงตัวอย่าง

  4. บนเมนู ไฟล์ คลิกหรือแตะ คอลเลกชัน

    คอลเลกชัน Cities จะปรากฏ โดยแสดงหนึ่งเรกคอร์ดที่มี "Seattle" และ "Rainy"

    คอลเลกชันแสดงซีแอตเทิลมีสภาพอากาศฝนตก

  5. คลิกหรือแตะลูกศรย้อนกลับ เพื่อกลับไปยังพื้นที่ทำงานเริ่มต้น

  6. เพิ่มตัวควบคุม ป้ายชื่อ แล้วตั้งค่าคุณสมับติ Text เป็นสูตรนี้:

    IsBlank( First( Cities ).Weather )
    

    ป้ายกำกับแสดง เท็จ เนื่องจากฟิลด์ สภาพอากาศ มีค่า ("Rainy")

  7. เพิ่มปุ่มที่สอง แล้วตั้งคุณสมบัติ OnSelect เป็นสูตรดังนี้:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. แสดงตัวอย่างแอปของคุณ คลิกหรือแตะปุ่มที่คุณเพิ่ม จากนั้นปิดการแสดงตัวอย่าง

    ฟิลด์ สภาพอากาศ ของเรกคอร์ดแรก ใน Cities ถูกแทนที่ด้วย ว่าง โดยเอา "Rainy" ที่เคยอยู่ในนั้นออกไป

    คอลเลกชันแสดงซีแอตเทิลที่มีฟิลด์สภาพอากาศว่าง

    ป้ายกำกับแสดง จริง เนื่องจากฟิลด์ สภาพอากาศ ไม่มีค่าอีกต่อไป

Coalesce

สูตร คำอธิบาย ผลลัพธ์
Coalesce( Blank(), 1 ) ทดสอบค่าส่งกลับจากฟังก์ชัน Blank ซึ่งคืนค่า ว่าง เสมอ เนื่องจากอาร์กิวเมนต์แรกเป็น ว่าง การคำนวณจึงดำเนินต่อไปยังอาร์กิวเมนต์ถัดไปจนกว่าจะพบค่าที่ไม่ใช่-ว่าง และสตริงที่ไม่ว่าง 1
Coalesce( "", "2" ) ทดสอบอาร์กิวเมนต์แรกซึ่งเป็นสตริงว่าง เนื่องจากอาร์กิวเมนต์แรกเป็นสตริงว่าง การคำนวณจึงดำเนินต่อไปยังอาร์กิวเมนต์ถัดไปจนกว่าจะพบค่าที่ไม่ใช่--ว่าง และสตริงที่ไม่ว่าง 2
Coalesce( Blank(), "", Blank(), "", "3", "4" ) Coalesce เริ่มต้นที่จุดเริ่มต้นของรายการอาร์กิวเมนต์ และคำนวณทีละอาร์กิวเมนต์ จนกว่าจะพบค่าที่ไม่ใช่-ว่าง และสตริงที่ไม่ว่าง ในกรณีนี้ สี่อาร์กิวเมนต์แรกส่งกลับ ว่าง หรือสตริงว่าง ทั้งหมด การคำนวณจึงดำเนินต่อไปยังอาร์กิวเมนต์ที่ห้า อาร์กิวเมนต์ที่ห้าไม่ใช่-ว่าง และสตริงที่ไม่ว่างเปล่า ดังนั้นการประเมินจึงหยุดที่นี่ ค่าของอาร์กิวเมนต์ที่ห้าถูกส่งกลับ และอาร์กิวเมนต์ที่หกไม่ถูกคำนวณ 3
Coalesce( "" ) ทดสอบอาร์กิวเมนต์แรกซึ่งเป็นสตริงว่าง เนื่องจากอาร์กิวเมนต์แรกเป็นสตริงว่างและไม่มีข้อโต้แย้งเพิ่มเติม ฟังก์ชันจึงส่งกลับ ว่าง ว่างเปล่า

IsBlank

  1. สร้างแอปตั้งแต่เริ่มต้น เพิ่มตัวควบคุมการป้อนข้อความ และตั้งชื่อว่า FirstName

  2. เพิ่มป้ายชื่อ และตั้งค่าคุณสมบัติ Text เป็นสูตรนี้:

    If( IsBlank( FirstName.Text ), "First Name is a required field." )
    

    ตามค่าเริ่มต้น คุณสมบัติ Text ของตัวควบคุมข้อความถูกตั้งเป็น "การป้อนข้อความ" เนื่องจากคุณสมบัติมีค่า จึงไม่ใช่ค่าว่าง และป้ายกำกับจะไม่แสดงข้อความใดๆ

  3. เอาอักขระทั้งหมดออกจากตัวควบคุมการป้อนข้อความ รวมถึงช่องว่าง

    เนื่องจากคุณสมบัติ Text ไม่มีอักขระใดอีกต่อไป จึงเป็นสตริงว่าง และ IsBlank( FirstName.Text ) จะเป็น จริง ข้อความฟิลด์ที่จำเป็นจะถูกแสดง

สำหรับข้อมูลเกี่ยวกับวิธีดำเนินการตรวจสอบความถูกต้องโดยใช้เครื่องมืออื่น ให้ดูฟังก์ชัน Validate และ การทำงานกับแหล่งข้อมูล

ตัวอย่างอื่น:

สูตร คำอธิบาย ผลลัพธ์
IsBlank( Blank() ) ทดสอบค่าส่งกลับจากฟังก์ชัน Blank ซึ่งคืนค่า ว่าง เสมอ true
IsBlank( "" ) สตริงที่ไม่มีอักขระ true
IsBlank( "Hello" ) สตริงที่มีอย่างน้อยหนึ่งอักขระ false
IsBlank( AnyCollection ) เนื่องจากมี คอลเลกชัน อยู่ จึงไม่ใช่ค่าว่าง แม้จะไม่มีเรกคอร์ดใดๆ ก็ตาม การตรวจสอบหาคอลเลกชันที่ว่างเปล่า ให้ใช้ IsEmpty แทน false
IsBlank( Mid( "Hello", 17, 2 ) ) อักขระเริ่มต้นสำหรับ Mid อยู่เลยจุดสิ้นสุดของสตริงไป ผลลัพธ์จึงเป็นสตริงที่ว่างเปล่า true
IsBlank( If( false, false ) ) ฟังก์ชัน If ที่ไม่มี ElseResult เนื่องจากเงื่อนไขเป็น เท็จ ตลอดเวลา If นี้จึงส่งกลับ ว่าง เสมอ true

IsEmpty

  1. สร้างแอปตั้งแต่เริ่ม และเพิ่มตัวควบคม Button

  2. ตั้งค่าคุณสมบัติ OnSelect ของปุ่มเป็นสูตรดังนี้:

    Collect( IceCream, { Flavor: "Strawberry", Quantity: 300 }, { Flavor: "Chocolate", Quantity: 100 } )

  3. แสดงตัวอย่างแอปของคุณ คลิกหรือแตะปุ่มที่คุณเพิ่ม จากนั้นปิดการแสดงตัวอย่าง

    คอลเลกชันที่มีชื่อว่า IceCream ถูกสร้างขึ้นและประกอบด้วยข้อมูลนี้:

    ตารางที่มีรสสตรอว์เบอร์รี่และช็อกโกแลต จำนวน 300 และ 100

    คอลเลกชันนี้มีสองเรกคอร์ดและไม่ว่างเปล่า IsEmpty( IceCream ) ส่งกลับ เท็จ และ CountRows( IceCream ) ส่งกลับ 2

  4. เพิ่มปุ่มที่สอง แล้วตั้งคุณสมบัติ OnSelect เป็นสูตรดังนี้:

    Clear( IceCream )

  5. แสดงตัวอย่างแอปของคุณ คลิกหรือแตะปุ่มที่สอง จากนั้นปิดตัวอย่าง

    ขณะนี้คอลเลกชันว่างเปล่าแล้ว

    คอลเลกชันที่มีรสชาติและปริมาณเป็นคอลเลกชันที่ว่างเปล่า

    ฟังก์ชัน Clear เอาเรกคอร์ดทั้งหมดออกจากคอลเลกชัน ทำให้คอลเลกชันว่างเปล่า IsEmpty( IceCream ) ส่งกลับ จริง และ CountRows( IceCream ) ส่งกลับ 0

คุณยังสามารถใช้ IsEmpty เพื่อทดสอบว่าตารางจากการคำนวณว่างหรือไม่ ดังที่ตัวอย่างแสดงดังนี้:

สูตร คำอธิบาย ผลลัพธ์
IsEmpty( [ 1, 2, 3 ] ) ตารางแบบคอลัมน์เดียวมีสามเรกคอร์ด ดังนั้นจึงไม่ว่าง false
IsEmpty( [ ] ) ตารางแบบคอลัมน์เดียวไม่มีเรกคอร์ดจึงว่าง จริง
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) ตารางแบบคอลัมน์เดียวไม่มีค่าที่มากกว่า 5 ผลลัพธ์จากตัวกรองไม่มีเรกคอร์ดใดๆ และว่าง true