ตัวดำเนินการและตัวระบุ
หมายเหตุ
Microsoft Power Fx เป็นชื่อใหม่สำหรับภาษาสูตรของแอปพื้นที่ทำงาน บทความเหล่านี้คืองานที่อยู่ระหว่างดำเนินการ ในขณะที่เราแยกภาษาจากแอปพื้นที่ทำงาน รวมเข้ากับผลิตภัณฑ์ Microsoft Power Platform อื่นๆ และทำให้พร้อมใช้งานในรูปแบบโอเพนซอร์ส เริ่มต้นด้วย ภาพรวมของ Microsoft Power Fx สำหรับการแนะนำภาษา
ตัวดำเนินการใน Microsoft Power Fx อธิบายไว้ด้านล่าง ตัวดำเนินการเหล่านี้บางตัวจะขึ้นกับภาษาของผู้เขียน ดูที่ แอปส่วนกลาง สำหรับข้อมูลเพิ่มเติม
สัญลักษณ์ | ชนิด | ไวยากรณ์ | รายละเอียด |
---|---|---|---|
- | ตัวเลือกคุณสมบัติ | สไลเดอร์1.ค่า Color.Red |
แยกคุณสมบัติจาก ตารางตัวควบคุม หรือการแจกแจง สำหรับความเข้ากันได้แบบย้อนหลัง ! สามารถนำมาใช้ด้วยเช่นกัน |
- ขึ้นอยู่กับภาษา |
ตัวคั่นทศนิยม | 1.23 | ตัวคั่นระหว่างตัวเลขทั้งหมดและตัวเลขเศษส่วน อักขระขึ้นกับภาษา |
- | เครื่องหมายวงเล็บ | ตัวกรอง(T, A < 10) (1+2) * 3 |
บังคับใช้ลำดับความสำคัญ และจัดกลุ่มนิพจน์ย่อยในนิพจน์ที่มีขนาดใหญ่กว่า |
+ | ตัวดำเนินการทางคณิตศาสตร์ | 1 + 2 | การบวก |
- | 2 - 1 | การลบและสัญลักษณ์ | |
* | 2 * 3 | การคูณ | |
/ | 2 / 3 | การหาร (เรียกว่าฟังก์ชัน Mod ) | |
^ | 2 ^ 3 | การยกกำลัง ซึ่งเทียบเท่ากับฟังก์ชัน Power | |
% | 20% | เปอร์เซ็นต์ (เทียบเท่ากับ "* 1/100") | |
= | ตัวดำเนินการเปรียบเทียบ | ราคา = 100 | เท่ากับ |
> | ราคา > 100 | มากกว่า | |
>- | ราคา >= 100 | มากกว่าหรือเท่ากับ | |
< | ราคา < 100 | น้อยกว่า | |
<- | ราคา <= 100 | น้อยกว่าหรือเท่ากับ | |
<> | ราคา <> 100 | ไม่เท่ากับ | |
& | ตัวเชื่อมสตริงเข้าด้วยกัน | “สวัสดี” & “” & “โลก” | ทำให้สตริงหลายรายการปรากฏขึ้นแบบต่อเนื่องกัน |
&& หรือ และ | ตัวดำเนินการทางตรรกะ | ราคา < 100 && Slider1.Value = 20 หรือ ราคา < 100 And Slider1.Value = 20 |
การเชื่อมโยงเชิงตรรกะ ซึ่งเทียบเท่ากับฟังก์ชัน And |
|| หรือ หรือ | ราคา < 100 || Slider1.Value = 20 หรือ ราคา < 100 หรือ Slider1.Value = 20 | การแบ่งแยกเชิงตรรกะ ซึ่งเทียบเท่ากับฟังก์ชัน Or | |
! หรือ Not | !(ราคา < 100) หรือ ไม่ (ราคา < 100) | ค่าลบเชิงตรรกะ ซึ่งเทียบเท่ากับฟังก์ชัน Not | |
เอ็กแซกติน | ผู้ดำเนินการด้านสมาชิก | Gallery1.เลือกรายการที่บันทึกไว้อย่างถูกต้อง | ซึ่งเป็นของ คอลเลกชัน หรือตาราง |
เอ็กแซกติน | "Windows" ถูกต้อง "เพื่อแสดงหน้าต่างในระบบปฏิบัติการ Windows..." | การทดสอบสตริงย่อย (ตรงตามตัวพิมพ์ใหญ่-เล็ก) | |
ใน | Gallery1.เลือกไว้ในรายการที่บันทึกไว้ | ซึ่งเป็นของคอลเลกชัน หรือตาราง | |
ใน | “สิ่งนั้น” ใน “แป้นพิมพ์และจอภาพ…” | การทดสอบสตริงย่อย (ไม่ตรงตามตัวพิมพ์เล็ก-ใหญ่) | |
@ | ตัวดำเนินการแก้ความกำกวม | ตารางของฉัน[@ชื่อฟิลด์] | การแก้ไขความคลุมเครือของฟิลด์ |
@ | [@ตัวแปรของฉัน] | การแก้ไขความคลุมเครือส่วนกลาง | |
- [ขึ้นอยู่กับภาษา] |
ตัวคั่นรายการ | ถ้า(X < 10, “ต่ำ”, “ดี”) { เอ็กซ์: 12, วาย: 32 } [ 1, 2, 3 ] |
คั่น: อักขระนี้ขึ้นกับภาษา |
- [ขึ้นอยู่กับภาษา] |
การเกี่ยวโยงของสูตร | Collect(T, A); Navigate(S1, "") | แยกคำขอของฟังก์ชันในคุณสมบัติลักษณะการทำงาน ตัวดำเนินการเกี่ยวโยงจะขึ้นอยู่กับภาษา |
เช่น | ในฐานะผู้ปฏิบัติงาน | ลูกค้าทั้งหมดในฐานะลูกค้า | การแทนที่ ThisItem และ ThisRecord ในแกลเลอรีและฟังก์ชันขอบเขตเรกคอร์ด เช่น มีประโยชน์สำหรับการให้ชื่อที่เฉพาะเจาะจงยิ่งขึ้น และมีความสำคัญอย่างยิ่งในสถานการณ์แบบซ้อนกัน |
ตัวเอง | ผู้ปฏิบัติงานด้วยตนเอง | เติมตัวเอง | การเข้าถึงคุณสมบัติของตัวควบคุมปัจจุบัน |
พ่อแม่ | ผู้ประกอบการหลัก | ผู้ปกครอง.กรอก | เข้าถึงคุณสมบัติของคอนเทนเนอร์ตัวควบคุม |
รายการนี้ | ผู้ดำเนินการรายการนี้ | รายการนี้.ชื่อจริง | เข้าถึงฟิลด์ของแกลเลอรี หรือตัวควบคุมฟอร์ม |
บันทึกนี้ | ผู้ดำเนินการรายการนี้ | บันทึกนี้.ชื่อจริง | เข้าถึงเรกคอร์ดที่สมบูรณ์และแต่ละฟิลด์ของเรกคอร์ดภายใน ForAll ผลรวม กับ และฟังก์ชันขอบเขตเรกคอร์ดอื่นๆ สามารถแทนที่ด้วย เป็น ตัวดำเนินการ |
ตัวดำเนินการ in และ exactin
ใช้ตัวดำเนินการ ใน และ ที่แม่นยำใน เพื่อค้นหาสตริงใน แหล่งข้อมูล เช่น คอลเลกชันหรือตารางที่นำเข้ามา ตัวดำเนินการ in ระบุรายการที่ตรงกันโดยไม่คำนึงถึงตัวพิมพ์ และตัวดำเนินการ exactin ระบุรายการที่ตรงกัน แม้ว่าจะเปลี่ยนเป็นตัวพิมพ์ใหญ่แบบเดียวกัน ตัวอย่างมีดังนี้:
สร้างหรือนำเข้าคอลเลกชันที่มีชื่อว่า Inventory แล้วแสดงในแกลเลอรี ตามกระบวนการแรกใน แสดงรูปภาพและข้อความในแกลเลอรี ที่อธิบายไว้
ตั้งค่าคุณสมบัติ Items ของแกลเลอรีให้สูตรนี้:
ตัวกรอง (สินค้าคงคลัง, "E" ในชื่อผลิตภัณฑ์)แกลเลอรีแสดงผลิตภัณฑ์ทั้งหมดยกเว้น Callisto เนื่องจากชื่อของผลิตภัณฑ์ดังกล่าวเป็นชื่อเดียวที่ไม่มีตัวอักษรที่คุณระบุ
เปลี่ยนคุณสมบัติ Items ของแกลเลอรีให้สูตรนี้:
ตัวกรอง (สินค้าคงคลัง, "E" ตรงกับชื่อผลิตภัณฑ์)แกลเลอรีแสดงเฉพาะ Europa เนื่องจากชื่อของผลิตภัณฑ์มีตัวอักษรที่คุณระบุตามตัวพิมพ์ที่คุณระบุ
ThisItem, ThisRecord และ เป็นตัวดำเนินการ
การควบคุมและฟังก์ชันบางอย่างใช้สูตรกับแต่ละเรกคอร์ดของตาราง หากต้องการอ้างถึงเรกคอร์ดแต่ละรายการในสูตร ให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้:
ตัวดำเนินการ | นำไปใช้กับ | รายละเอียด |
---|---|---|
รายการนี้ | แกลเลอรี่ ควบคุม แก้ไขแบบฟอร์ม ควบคุม แบบฟอร์มแสดง ควบคุม |
ชื่อเริ่มต้นสำหรับเรกคอร์ดปัจจุบันในตัวควบคุม แกลเลอรี หรือตัวควบคุมฟอร์ม |
บันทึกนี้ | สำหรับทุกคน - กรอง - กับ - ผลรวม และอื่นๆ ขอบเขตการบันทึก ฟังก์ชั่น | ชื่อเริ่มต้นสำหรับเรกคอร์ดในปัจจุบัน ForAll และฟังก์ชันขอบเขตเรกคอร์ดอื่นๆ |
เช่น ชื่อ | แกลเลอรี่ ควบคุม ฟังก์ชัน ForAll, Filter, With, Sum และขอบเขตระเบียนอื่นๆ |
กำหนด ชื่อ สำหรับเรกคอร์ดปัจจุบันแทนที่ค่าเริ่มต้น ThisItem หรือ ThisRecord ใช้ เป็น เพื่อทำให้สูตรเข้าใจง่ายขึ้นและแก้ไขความคลุมเครือเมื่อซ้อนกัน |
ตัวดำเนินการ ThisItem
ตัวอย่างเช่น การควบคุม แกลเลอรี ต่อไปนี้ คุณสมบัติ รายการ ถูกตั้งค่าเป็นแหล่งข้อมูล พนักงาน (เช่น ไฟล์เอนทิตี พนักงาน ที่รวมอยู่ใน ตัวอย่าง Northwind Traders):
Employees
รายการแรกในแกลเลอรีคือเทมเพลตที่จำลองสำหรับพนักงานแต่ละคน ในเทมเพลตจะใช้สูตรสำหรับรูปภาพ ThisItem เพื่ออ้างถึงรายการปัจจุบัน:
ThisItem.Picture
ในทำนองเดียวกันสูตรสำหรับชื่อยังใช้ ThisItem:
ThisItem.'First Name' & " " & ThisItem.'Last Name'
ตัวดำเนินการ ThisRecord
ThisRecord ใช้ในฟังก์ชันที่มี ขอบเขตระเบียน ตัวอย่างเช่น เราสามารถใช้ฟังก์ชัน Filter กับคุณสมบัติ Items ของแกลเลอรีเพื่อแสดงเฉพาะชื่อที่อยู่กับ M:
Filter( Employees, StartsWith( ThisRecord.Employee.'First Name', "M" ) )
ThisRecord เป็นทางเลือกและโดยนัยแล้วจะใช้ฟิลด์โดยตรง เช่น ในกรณีนี้ เราสามารถเขียนได้ดังนี้:
Filter( Employees, StartsWith( 'First Name', "M" ) )
แม้ว่าจะเป็นทางเลือก การใช้ไฟล์ ThisRecord สามารถทำให้สูตรเข้าใจง่ายขึ้นและอาจต้องใช้ในสถานการณ์ที่คลุมเครือซึ่งชื่อฟิลด์อาจเป็นชื่อความสัมพันธ์ด้วย ThisRecord เป็นทางเลือก ในขณะที่ ThisItem จำเป็นเสมอ
ใช้ ThisRecord เพื่ออ้างอิงทั้งเรกคอร์ดด้วย Patch Collect และฟังก์ชันขอบเขตเรกคอร์ดอื่นๆ ตัวอย่างเช่น สูตรต่อไปนี้ตั้งค่าสถานะสำหรับพนักงานที่ไม่ได้ใช้งานทั้งหมดเป็นใช้งานอยู่:
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees,
Patch( Employees, ThisRecord, { Status: 'Status (Employees)'.Active } ) ) )
เป็นตัวดำเนินการ
ใช้ตัวดำเนินการ เป็น เพื่อตั้งชื่อเรกคอร์ดในแกลเลอรี่หรือฟังก์ชันขอบเขตเรกคอร์ด แทนที่ค่าเริ่มต้น ThisItem หรือ ThisRecord การตั้งชื่อเรกคอร์ดสามารถทำให้สูตรของคุณเข้าใจง่ายขึ้นและอาจจำเป็นในสถานการณ์ซ้อนเพื่อเข้าถึงเรกคอร์ดในขอบเขตอื่นๆ
ตัวอย่างเช่น คุณสามารถแก้ไขคุณสมบัติ Items ของแกลเลอรีของเราเพื่อใช้ As ในการระบุว่าเรากำลังทำงานกับพนักงาน:
Employees As Employee
สูตรสำหรับรูปภาพและชื่อถูกปรับให้ใช้ชื่อนี้สำหรับเรกคอร์ดปัจจุบัน:
Employee.Picture
Employee.'First Name' & " " & Employee.'Last Name'
As ยังสามารถใช้ร่วมกับฟังก์ชันขอบเขตระเบียนเพื่อแทนที่ชื่อเริ่มต้น ThisRecord ได้อีกด้วย เราสามารถใช้สิ่งนี้กับตัวอย่างก่อนหน้าของเราเพื่อชี้แจงเรกคอร์ดที่เรากำลังดำเนินการ:
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees As Employee,
Patch( Employees, Employee, { Status: 'Status (Employees)'.Active } ) ) )
เมื่อซ้อนแกลเลอรีและฟังก์ชันขอบเขตเรกคอร์ด ThisItem และ ThisRecord ให้อ้างถึงขอบเขตส่วนใหญ่ภายในเสมอโดยปล่อยให้มีเรกคอร์ดในขอบเขตด้านนอกไม่พร้อมใช้งาน ใช้ เป็น เพื่อทำให้ขอบเขตเรกคอร์ดทั้งหมดพร้อมใช้งานโดยตั้งชื่อที่ไม่ซ้ำกัน
ตัวอย่างเช่น สูตรนี้สร้างรูปแบบกระดานหมากรุกเป็นสตริงข้อความโดยการซ้อนสองฟังก์ชัน ForAll:
Concat(
ForAll( Sequence(8) As Rank,
Concat(
ForAll( Sequence(8) As File,
If( Mod(Rank.Value + File.Value, 2) = 1, " X ", " . " )
),
Value
) & Char(10)
),
Value
)
การตั้งค่าตัวควบคุม ป้ายชื่อ คุณสมบัติ Text เป็นสูตรนี้แสดงถึง:
มาดูกันว่ามีอะไรเกิดขึ้นที่นี่:
- เราเริ่มต้นด้วยการทำซ้ำตารางที่ไม่มีชื่อของ 8 เรกคอร์ดหมายเลขจากฟังก์ชัน Sequence การวนรอบนี้ใช้สำหรับแต่ละแถวของกระดาน ซึ่งโดยทั่วไปจะเรียกว่า ลำดับ ดังนั้นเราจึงตั้งชื่อนี้
- สำหรับแต่ละแถว เราจะวนซ้ำตารางที่ไม่มีชื่ออีก 8 คอลัมน์ และให้ชื่อสามัญ ไฟล์
- ถ้า Rank.Value + File.Value เป็นจำนวนคี่ สี่เหลี่ยมจะได้รับ X มิฉะนั้นจะเป็นจุด ส่วนของสูตรนี้เป็นการอ้างอิงทั้งสองการวนรอบของ ForAll ทำได้โดยใช้ตัวดำเนินการ เป็น
- Concat ถูกใช้สองครั้ง ครั้งแรกสำหรับประกอบคอลัมน์ และครั้งที่สองสำหรับประกอบแถว โดยมี Char(10) เพิ่มเข้ามาเพื่อสร้างบรรทัดใหม่
ตัวอย่างที่คล้ายกันนี้เป็นไปได้ด้วยตัวควบคุม แกลเลอรี ที่ซ้อนกันแทนฟังก์ชัน ForAll เริ่มต้นด้วยแกลเลอรีแนวตั้งสำหรับไฟล์ ลำดับ ตัวควบคุมแกลเลอรี่นี้จะมีสูตร รายการ ของ:
Sequence(8) as Rank
ภายในแกลเลอรีนี้เราจะวางแกลเลอรีแนวนอนสำหรับ ไฟล์ ที่จะถูกจำลองแบบสำหรับแต่ละ ลำดับ ด้วยคุณสมบัติ Items ของ:
Sequence(8) as File
และสุดท้ายภายในแกลเลอรีนี้เราจะเพิ่มตัวควบคุม ป้ายชื่อ ที่จะถูกจำลองสำหรับแต่ละ ไฟล์ และแต่ละคน ลำดับ เราจะปรับขนาดให้เต็มช่องว่างและใช้คุณสมบัติ Fill ในการให้สีด้วยสูตรนี้:
If( Mod( Rank.Value + File.Value, 2 ) = 1, Green, Beige )
ตัวดำเนินการ Self และ Parent
มีสามวิธีในการอ้างถึงตัวควบคุมและคุณสมบัติของตัวควบคุมภายในสูตร:
วิธีการ | คำอธิบาย |
---|---|
โดยชื่อตัวควบคุม | สามารถอ้างอิงตัวควบคุมใดๆ โดยชื่อได้จากทุกที่ภายในแอป ตัวอย่างเช่น Label1.Fill อ้างถึงคุณสมบัติการเติมของตัวควบคุมที่ชื่อ Label1 |
ผู้ปฏิบัติงานตนเอง | มักจะสะดวกในการอ้างอิงคุณสมบัติอื่นของตัวควบคุมเดียวกัน เมื่อเขียนสูตร แทนที่จะใช้การอ้างอิงแบบสัมบูรณ์ตามชื่อ การใช้การอ้างอิงแบบสัมพัทธ์กับ ตนเอง ง่ายกว่าและสะดวกมากกว่า ตัวดำเนินการ Self ให้การเข้าถึงง่ายๆ ไปยังตัวควบคุมปัจจุบัน ตัวอย่างเช่น Self.Fill หมายถึงสีสำหรับการเติมของตัวควบคุมปัจจุบัน |
ผู้ปกครอง ผู้ดำเนินการ | ตัวควบคุมบางตัวโฮสต์ตัวควบคุมอื่นๆ เช่น ตัวควบคุม Screen และตัวควบคุม Gallery เราเรียกตัวควบคุมที่โฮสต์ของตัวควบคุมภายในนั้นว่า parent เช่นเดียวกับตัวควบคุม Self ตัวควบคุม Parent ให้อ้างอิงง่ายๆ ที่สัมพันธ์กันไปยังตัวควบคุมคอนเทนเนอร์ ตัวอย่างเช่น Parent.Fill อ้างถึงคุณสมบัติการเติมของตัวควบคุมที่เป็นคอนเทนเนอร์สำหรับตัวควบคุมปัจจุบัน |
ตนเอง และ ผู้ปกครอง เป็นตัวดำเนินการและไม่ใช่คุณสมบัติในตัวควบคุมเอง ไม่รองรับการอ้างถึง Parent.Parent Self.Parent หรือ Parent.Self
ชื่อตัวระบุ
ชื่อของตัวแปร แหล่งข้อมูล คอลัมน์ และวัตถุอื่นๆ สามารถมี Unicode ได้
ใช้เครื่องหมายอัญประกาศเดี่ยว ล้อมรอบชื่อที่มีช่องว่างหรืออักขระพิเศษอื่นๆ
ใช้เครื่องหมายอัญประกาศเดี่ยวสองตัวพร้อมกัน เพื่อเป็นตัวแทนของเครื่องหมายอัญประกาศเดียวในชื่อ ชื่อที่ไม่มีอักขระพิเศษไม่จำเป็นต้องใช้เครื่องหมายอัญประกาศเดี่ยว
นี่คือตัวอย่างชื่อคอลัมน์ที่คุณอาจพบในตาราง และวิธีที่แสดงในสูตร:
ชื่อคอลัมน์ในฐานข้อมูล | การอ้างอิงคอลัมน์ในสูตร |
---|---|
SimpleName | SimpleName |
NameWith123Numbers | NameWith123Numbers |
ชื่อที่มีช่องว่าง | 'Name with spaces' |
ชื่อที่มีเครื่องหมายอัญประกาศ "คู่" | 'Name with "double" quotes' |
ชื่อที่มีเครื่องหมายอัญประกาศ 'เดี่ยว' | 'Name with ''single'' quotes' |
ชื่อที่มีเครื่องหมาย @ | 'Name with an @ at sign' |
ใช้เครื่องหมายอัญประกาศคู่ กำหนดสตริงข้อความ
ชื่อที่แสดงและชื่อตรรกะ
บางแหล่งข้อมูล เช่น SharePoint และ Microsoft Dataverse มีสองชื่อที่ต่างกัน เพื่ออ้างถึงตารางหรือคอลัมน์ข้อมูลเดียวกัน:
ชื่อตรรกะ - ชื่อที่รับประกันว่าไม่ซ้ำ ไม่เปลี่ยนแปลงหลังจากที่สร้างขึ้น โดยปกติไม่อนุญาตให้มีช่องว่างหรืออักขระพิเศษอื่นๆ และไม่ถูกแปลเป็นภาษาอื่น เป็นผลให้ชื่อสามารถกำกวมได้ ชื่อเหล่านี้ถูกใช้โดยนักพัฒนามืออาชีพ ตัวอย่างเช่น cra3a_customfield ชื่อนี้อาจเรียกว่า ชื่อ Schema หรือเพียงแค่ ชื่อ
ชื่อที่แสดง - ชื่อที่เป็นมิตรกับผู้ใช้และมีวัตถุประสงค์ให้ผู้ใช้ปลายทางเห็น ชื่อนี้อาจไม่ซ้ำกัน อาจมีการเปลี่ยนแปลงเมื่อเวลาผ่านไป อาจมีช่องว่างและอักขระ Unicode ใดๆ และอาจมีการแปลเป็นภาษาอื่น อาจสอดคล้องกับตัวอย่างด้านบน ชื่อที่แสดงอาจเป็น ฟิลด์ที่กำหนดเอง ที่มีช่องว่างระหว่างคำ
เนื่องจากชื่อที่แสดงเข้าใจง่ายขึ้น Power Fx จะแนะนำเป็นตัวเลือกและไม่แนะนำชื่อเชิงตรรกะ แม้ว่าจะไม่แนะนำให้ใช้ชื่อทางตรรกะ แต่ยังสามารถใช้หากพิมพ์ทางอ้อม
ตัวอย่างเช่น สมมติว่าคุณได้เพิ่ม ฟิลด์ที่กำหนดเอง ไปยังเอนทิตีใน Dataverse ชื่อตรรกะจะมอบหมายให้กับคุณโดยระบบ ซึ่งคุณสามารถแก้ไขได้เฉพาะเมื่อสร้างฟิลด์เท่านั้น ผลลัพธ์จะคล้ายกับ:
เมื่อสร้างการอ้างอิงไปยังฟิลด์ของบัญชี ข้อเสนอแนะจะใช้ 'ฟิลด์ที่กำหนดเอง' เนื่องจากนี่คือ ชื่อที่แสดง ต้องใช้เครื่องหมายคำพูดเดี่ยวเนื่องจากชื่อนี้มีช่องว่าง:
หลังจากเลือกคำแนะนำ 'ฟิลด์ที่กำหนดเอง' จะปรากฏในแถบสูตร และข้อมูลจะถูกดึง:
แม้ว่าจะไม่แนะนำ แต่เราสามารถใช้ชื่อตรรกะสำหรับฟิลด์นี้ได้ ซึ่งจะส่งผลให้มีการดึงข้อมูลเดียวกัน ไม่จำเป็นต้องมีเครื่องหมายคำพูดเดียวเนื่องจากชื่อนี้ไม่มีช่องว่างหรืออักขระพิเศษ:
เบื้องหลัง การแมปจะคงอยู่ระหว่างชื่อที่แสดงที่เห็นในสูตรและชื่อตรรกะพื้นฐาน เนื่องจากชื่อตรรกะต้องถูกใช้เพื่อโต้ตอบกับแหล่งข้อมูล การแมปนี้ใช้เพื่อแปลงจากชื่อที่แสดงปัจจุบันเป็นชื่อตรรกะโดยอัตโนมัติ และนั่นคือสิ่งที่เห็นในปริมาณการใช้เครือข่าย การแมปนี้ยังใช้เพื่อแปลงกลับเป็นชื่อเชิงตรรกะเพื่อเปลี่ยนเป็นชื่อที่แสดงใหม่ เช่น หากชื่อที่แสดงเปลี่ยนแปลงหรือผู้สร้างในภาษาอื่นแก้ไขแอป
หมายเหตุ
ชื่อตรรกะไม่ถูกแปล เมื่อย้ายแอประหว่างสภาพแวดล้อม สำหรับชื่อฟิลด์และเอนทิตีของระบบ Dataverse นี้ไม่ควรเป็นปัญหา เนื่องจากชื่อตรรกะมีความสอดคล้องกันในสภาพแวดล้อมต่างๆ แต่ฟิลด์ที่กำหนดเองใดๆ เช่น cra3a_customfield ในตัวอย่างข้างต้น อาจมีคำนำหน้าสภาพแวดล้อมที่แตกต่างกัน (cra3a ในกรณีนี้) ชื่อที่แสดงเป็นที่ต้องการ เนื่องจากสามารถจับคู่กับชื่อที่แสดงในสภาพแวดล้อมใหม่ได้
การแก้ไขความคลุมเครือชื่อ
เนื่องจากชื่อที่แสดงไม่ซ้ำกัน ชื่อที่แสดงเดียวกันอาจปรากฏมากกว่าหนึ่งครั้งในเอนทิตีเดียวกัน เมื่อสิ่งนี้เกิดขึ้น ชื่อตรรกะจะถูกเพิ่มที่ส่วนท้ายของชื่อที่แสดงในเครื่องหมายวงเล็บสำหรับชื่อที่ขัดแย้งกันอีกชื่อหนึ่ง การสร้างตามตัวอย่างข้างต้น หากมีฟิลด์ที่สองที่มีชื่อที่แสดงของ ฟิลด์ที่กำหนดเอง เหมือนกันด้วยชื่อตรรกะของ cra3a_customfieldalt คำแนะนำจะแสดง:
สตริงการแก้ไขความคลุมเครือชื่อจะถูกเพิ่มในสถานการณ์อื่นๆ ที่เกิดความขัดแย้งของชื่อ เช่น ชื่อของเอนทิตี ชุดตัวเลือก และรายการ Dataverse อื่นๆ
ตัวดำเนินการแก้ไขความคลุมเครือ
บางฟังก์ชันจะสร้าง ขอบเขตของเรกคอร์ด สำหรับเข้าถึงฟิลด์ของตาราง ขณะที่ประมวลผลแต่ละเรกคอร์ด เช่น Filter, AddColumns และ Sum ชื่อฟิลด์ที่เพิ่มด้วยขอบเขตของเรกคอร์ดจะแทนที่ชื่อเดียวกันจากที่อื่นในแอป เมื่อเกิดสิ่งนี้ขึ้น คุณยังสามารถเข้าถึงค่าจากภายนอกขอบเขตเรกคอร์ดได้ด้วยตัวดำเนินการการแก้ไขความคลุมเครือ @ ได้:
- เมื่อต้องการเข้าถึงค่าจากขอบเขตของเรกคอร์ดที่ซ้อนกัน ให้ใช้ตัวดำเนินการ @ ที่มีชื่อของตารางที่กำลังดำเนินการโดยใช้รูปแบบนี้
ตาราง[@ชื่อฟิลด์] - เมื่อต้องการเข้าถึงค่าส่วนกลาง เช่น แหล่งข้อมูล คอลเลกชัน และตัวแปรบริบท ให้ใช้รูปแบบ [@ObjectName] (โดยไม่ต้องกำหนดตาราง)
สำหรับข้อมูลและตัวอย่างเพิ่มเติม ดูที่ ขอบเขตของเรกคอร์ด