แชร์ผ่าน


ตัวดำเนินการและตัวระบุ

หมายเหตุ

Microsoft Power Fx เป็นชื่อใหม่สำหรับภาษาสูตรของแอปพื้นที่ทำงาน บทความเหล่านี้คืองานที่อยู่ระหว่างดำเนินการ ในขณะที่เราแยกภาษาจากแอปพื้นที่ทำงาน รวมเข้ากับผลิตภัณฑ์ Microsoft Power Platform อื่นๆ และทำให้พร้อมใช้งานในรูปแบบโอเพนซอร์ส เริ่มต้นด้วย ภาพรวมของ Microsoft Power Fx สำหรับการแนะนำภาษา

ตัวดำเนินการใน Microsoft Power Fx อธิบายไว้ด้านล่าง ตัวดำเนินการเหล่านี้บางตัวจะขึ้นกับภาษาของผู้เขียน ดูที่ แอปส่วนกลาง สำหรับข้อมูลเพิ่มเติม

สัญลักษณ์ ชนิด ไวยากรณ์ รายละเอียด
. ตัวเลือกคุณสมบัติ Slider1.Value
Color.Red
แยกคุณสมบัติจาก ตารางตัวควบคุม หรือการแจกแจง สำหรับความเข้ากันได้แบบย้อนหลัง ! สามารถนำมาใช้ด้วยเช่นกัน
.
ขึ้นอยู่กับภาษา
ตัวคั่นทศนิยม 1.23 ตัวคั่นระหว่างตัวเลขทั้งหมดและตัวเลขเศษส่วน อักขระขึ้นกับภาษา
( ) เครื่องหมายวงเล็บ Filter(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 ไม่เท่ากับ
& ตัวเชื่อมสตริงเข้าด้วยกัน "hello" & " " & "world" ทำให้สตริงหลายรายการปรากฏขึ้นแบบต่อเนื่องกัน
&& หรือ และ ตัวดำเนินการทางตรรกะ ราคา < 100 && Slider1.Value = 20
หรือ ราคา < 100 And Slider1.Value = 20
การเชื่อมโยงเชิงตรรกะ ซึ่งเทียบเท่ากับฟังก์ชัน And
|| หรือ Or   ราคา < 100 || Slider1.Value = 20 หรือ ราคา < 100 Or Slider1.Value = 20 การแบ่งแยกเชิงตรรกะ ซึ่งเทียบเท่ากับฟังก์ชัน Or
! หรือ Not   !(ราคา < 100) หรือ Not (ราคา < 100) ค่าลบเชิงตรรกะ ซึ่งเทียบเท่ากับฟังก์ชัน Not
exactin ตัวดำเนินการการเป็นสมาชิก Gallery1.Selected exactin SavedItems ซึ่งเป็นของ คอลเลกชัน หรือตาราง
exactin   "exactin" ของWindows “เมื่อต้องการแสดงหน้าต่างในระบบปฏิบัติการ Windows...” การทดสอบสตริงย่อย (ตรงตามตัวพิมพ์ใหญ่-เล็ก)
ใน   Gallery1.Selected in SavedItems ซึ่งเป็นของคอลเลกชัน หรือตาราง
ใน   ในแป้นพิมพ์ " in " และจอภาพ..." การทดสอบสตริงย่อย (ไม่ตรงตามตัวพิมพ์เล็ก-ใหญ่)
@ ตัวดำเนินการแก้ไขความคลุมเครือ MyTable[@fieldname] การแก้ไขความคลุมเครือของฟิลด์
@   [@MyVariable] การแก้ไขความคลุมเครือส่วนกลาง
,
[ขึ้นอยู่กับภาษา]
ตัวคั่นรายการ If( X < 10, "ต่ำ", "ดี" )
{ X: 12, Y: 32 }
[ 1, 2, 3 ]
คั่น: อักขระนี้ขึ้นกับภาษา
;
[ขึ้นอยู่กับภาษา]
การเกี่ยวโยงของสูตร Collect(T, A); Navigate(S1, "") แยกคำขอของฟังก์ชันในคุณสมบัติลักษณะการทำงาน ตัวดำเนินการเกี่ยวโยงจะขึ้นอยู่กับภาษา
เป็น เป็นตัวดำเนินการ ลูกค้าทั้งหมดเป็นลูกค้า การแทนที่ ThisItem และ ThisRecord ในแกลเลอรีและฟังก์ชันขอบเขตเรกคอร์ด เป็น มีประโยชน์ในการระบุชื่อที่ดีขึ้นและเฉพาะเจาะจงและมีความสำคัญอย่างยิ่งในสถานการณ์ที่ซ้อนกัน
ตนเอง ตัวดำเนินการ Self Self.Fill การเข้าถึงคุณสมบัติของตัวควบคุมปัจจุบัน
รายการหลัก ตัวดำเนินการหลัก Parent.Fill เข้าถึงคุณสมบัติของคอนเทนเนอร์ตัวควบคุม
ThisItem ตัวดำเนินการ ThisItem ThisItem.FirstName เข้าถึงฟิลด์ของแกลเลอรี หรือตัวควบคุมฟอร์ม
ThisRecord ตัวดำเนินการ ThisItem ThisRecord.FirstName เข้าถึงเรกคอร์ดที่สมบูรณ์และแต่ละฟิลด์ของเรกคอร์ดภายใน ForAllผลรวมกับ และฟังก์ชันขอบเขตเรกคอร์ดอื่นๆ สามารถแทนที่ด้วย เป็น ตัวดำเนินการ

ตัวดำเนินการ in และ exactin

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

  1. สร้างหรือนำเข้าคอลเลกชันที่มีชื่อว่า Inventory แล้วแสดงในแกลเลอรี ตามกระบวนการแรกใน แสดงรูปภาพและข้อความในแกลเลอรี ที่อธิบายไว้

  2. ตั้งค่าคุณสมบัติ Items ของแกลเลอรีให้สูตรนี้:
    Filter(Inventory, "E" in ProductName)

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

  3. เปลี่ยนคุณสมบัติ Items ของแกลเลอรีให้สูตรนี้:
    Filter(Inventory, "E" exactin ProductName)

    แกลเลอรีแสดงเฉพาะ Europa เนื่องจากชื่อของผลิตภัณฑ์มีตัวอักษรที่คุณระบุตามตัวพิมพ์ที่คุณระบุ

ThisItem, ThisRecord และ เป็นตัวดำเนินการ

การควบคุมและฟังก์ชันบางอย่างใช้สูตรกับแต่ละเรกคอร์ดของตาราง หากต้องการอ้างถึงเรกคอร์ดแต่ละรายการในสูตร ให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้:

ตัวดำเนินการ นำไปใช้กับ รายละเอียด
ThisItem ตัวควบคุม Gallery
ตัวควบคุม Edit form
ตัวควบคุม Display form
ชื่อเริ่มต้นสำหรับเรกคอร์ดปัจจุบันในตัวควบคุม แกลเลอรี หรือตัวควบคุมฟอร์ม
ThisRecord ForAll, Filter, With, Sum และฟังก์ชันอื่นๆ ของ ขอบเขตเรกคอร์ด ชื่อเริ่มต้นสำหรับเรกคอร์ดในปัจจุบัน ForAll และฟังก์ชันขอบเขตเรกคอร์ดอื่นๆ
เนื่องจากชื่อ ตัวควบคุม Gallery
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

ThisRecord เป็นทางเลือกและทางโดยนัยโดยใช้ฟิลด์โดยตรง ตัวอย่างเช่น ในกรณีนี้เราสามารถเขียน:

Filter( Employees, StartsWith( 'First Name', "M" ) )

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

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

With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
      ForAll( InactiveEmployees, 
              Patch( Employees, ThisRecord, { Status: 'Status (Employees)'.Active } ) ) )

เป็นตัวดำเนินการ

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

ตัวอย่างเช่น คุณสามารถแก้ไขคุณสมบัติ Items ของแกลเลอรีของเราเพื่อใช้ As ในการระบุว่าเรากำลังทำงานกับพนักงาน:

Employees As Employee

แกลเลอรีของพนักงาน โดยใช้ตัวดำเนินการ As

สูตรสำหรับรูปภาพและชื่อถูกปรับให้ใช้ชื่อนี้สำหรับเรกคอร์ดปัจจุบัน:

Employee.Picture

รูปภาพของพนักงานที่ใช้ชื่อพนักงานที่ตั้งค่าด้วยตัวดำเนินการ As

Employee.'First Name' & " " & Employee.'Last Name'

ชื่อและนามสกุลของพนักงานที่ใช้ชื่อพนักงานที่ตั้งค่าด้วยตัวดำเนินการ As

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 ให้การเข้าถึงง่ายๆ ไปยังตัวควบคุมปัจจุบัน

ตัวอย่างเช่น Self.Fill หมายถึงสีสำหรับการเติมของตัวควบคุมปัจจุบัน
ตัวดำเนินการ หลัก ตัวควบคุมบางตัวโฮสต์ตัวควบคุมอื่นๆ เช่น ตัวควบคุม Screen และตัวควบคุม Gallery เราเรียกตัวควบคุมที่โฮสต์ของตัวควบคุมภายในนั้นว่า parent เช่นเดียวกับตัวควบคุม Self ตัวควบคุม Parent ให้อ้างอิงง่ายๆ ที่สัมพันธ์กันไปยังตัวควบคุมคอนเทนเนอร์

ตัวอย่างเช่น Parent.Fill อ้างถึงคุณสมบัติการเติมของตัวควบคุมที่เป็นคอนเทนเนอร์สำหรับตัวควบคุมปัจจุบัน

Self และ Parent เป็นตัวดำเนินการ และไม่ใช่คุณสมบัติในตัวควบคุมเอง ไม่รองรับการอ้างถึง Parent.ParentSelf.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 ชื่อตรรกะจะมอบหมายให้กับคุณโดยระบบ ซึ่งคุณสามารถแก้ไขได้เฉพาะเมื่อสร้างฟิลด์เท่านั้น ผลลัพธ์จะคล้ายกับ:

เอนทิตีลูกค้าองค์กรที่มีการเพิ่มฟิลด์ที่กำหนดเอง โดยแสดงชื่อที่แสดงเป็น

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

แถบสูตร Studio ที่แสดงคำแนะนำสำหรับชื่อฟิลด์ของลูกค้าองค์กรที่มีชื่อที่แสดง 'ฟิลด์ที่กำหนดเอง' ที่เน้น

หลังจากเลือกคำแนะนำ 'ฟิลด์ที่กำหนดเอง' จะปรากฏในแถบสูตร และข้อมูลจะถูกดึง:

แถบสูตร Studio ที่แสดงการใช้ชื่อที่แสดง 'ฟิลด์ที่กำหนดเอง' สำหรับฟิลด์

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

แถบสูตร Studio ที่แสดงการใช้ชื่อตรรกะ cr5e3_customfield สำหรับฟิลด์

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

หมายเหตุ

ชื่อตรรกะไม่ถูกแปล เมื่อย้ายแอประหว่างสภาพแวดล้อม สำหรับชื่อฟิลด์และเอนทิตีของระบบ Dataverse นี้ไม่ควรเป็นปัญหา เนื่องจากชื่อตรรกะมีความสอดคล้องกันในสภาพแวดล้อมต่างๆ แต่ฟิลด์ที่กำหนดเองใดๆ เช่น cra3a_customfield ในตัวอย่างข้างต้น อาจมีคำนำหน้าสภาพแวดล้อมที่แตกต่างกัน (cra3a ในกรณีนี้) ชื่อที่แสดงเป็นที่ต้องการ เนื่องจากสามารถจับคู่กับชื่อที่แสดงในสภาพแวดล้อมใหม่ได้

การแก้ไขความคลุมเครือชื่อ

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

แถบสูตร Studio ที่แสดงการใช้ชื่อตรรกะ cr5e3_customfieldalt เพื่อแยกความแตกต่างของ

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

ตัวดำเนินการแก้ไขความคลุมเครือ

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

  • เมื่อต้องการเข้าถึงค่าจากขอบเขตของเรกคอร์ดที่ซ้อนกัน ให้ใช้ตัวดำเนินการ @ ที่มีชื่อของตารางที่กำลังดำเนินการโดยใช้รูปแบบนี้
    ตาราง[@FieldName]
  • เมื่อต้องการเข้าถึงค่าส่วนกลาง เช่น แหล่งข้อมูล คอลเลกชัน และตัวแปรบริบท ให้ใช้รูปแบบ [@ObjectName] (โดยไม่ต้องกำหนดตาราง)

สำหรับข้อมูลและตัวอย่างเพิ่มเติม ดูที่ ขอบเขตของเรกคอร์ด