แชร์ผ่าน


การใช้ Power Fx กับคำสั่ง

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

  • รองรับฟังก์ชันกระแสข้อมูลที่มีอยู่ทั้งหมด กระแสข้อมูลคืออะไร
  • รองรับฟังก์ชันที่จำเป็นที่ทำงานกับข้อมูล
  • รองรับฟังก์ชันที่จำเป็นสำหรับ Confirm และ Notify อย่างง่าย
  • สำหรับรายการฟังก์ชันที่ไม่รองรับ ไปที่ ฟังก์ชันที่ไม่รองรับ

หมายเหตุ

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

OnSelect

กำหนดตรรกะที่จะดำเนินการเมื่อเลือกปุ่มภายในแอป

Visible

กำหนดตรรกะสำหรับการซ่อนหรือแสดงปุ่มเมื่อเรียกใช้แอป

การกำหนดตรรกะการมองเห็น ให้เลือกคำสั่ง จากนั้นเลือก การมองเห็น บนบานหน้าต่างคุณสมบัติคำสั่งด้านขวา และเลือก แสดงตามเงื่อนไขจากสูตร คุณสามารถเลือก Visible ทางด้านซ้ายของแถบสูตร จากนั้นเขียนนิพจน์ Power Fx โดยใช้แถบสูตร

คุณสมบัติที่เลือก

เขตข้อมูล ชนิด คำอธิบาย
Item เรกคอร์ดของแหล่งข้อมูล หนึ่งในเรกคอร์ดที่เลือกจากแหล่งข้อมูล
AllItems ตารางเรกคอร์ดจากแหล่งข้อมูล เรกคอร์ดทั้งหมดที่เลือกจากแหล่งข้อมูล
State Enum สถานะของตัวควบคุมที่เลือก แก้ไข (=0) ใหม่ (=1) ดู (=2)
Unsaved แบบบูลีน ส่งกลับค่าจริงหาก Selected หรือ SelectedItems มีการเปลี่ยนแปลงที่ยังไม่ได้บันทึก ส่งกลับค่าเท็จ ส่งกลับค่าเท็จเสมอ หากตั้งค่าบันทึกอัตโนมัติเป็นจริง (ตัวเลือกเริ่มต้น) ภายในไลบรารีคอมโพเนนต์คำสั่ง
  • คุณสมบัติ Selected จัดเตรียมโดยโฮสต์ของคำสั่ง
  • ชื่อ Item และ AllItems ค่อนข้างสอดคล้องกับตัวควบคุมกล่องคำสั่งผสมและตัวควบคุมแกลเลอรี แต่นี่เป็นรูปแบบใหม่
  • หากไม่มีการเลือกเรกคอร์ด Item คืนค่า ว่าง (IsBlank คืนค่าจริง) และ AllItems คืนค่าตารางว่าง (IsEmpty คืนค่าจริง)
  • แหล่งข้อมูล Null สำหรับการอ้างอิงเรกคอร์ด (ชนิดของเรกคอร์ดโพลีมอร์ฟิก) ฟังก์ชันทั่วไปสามารถเรียกใช้ได้ เช่น บันทึก หรือสามารถใช้ IsType/AsType
  • Item จะเว้นว่างเสมอถ้า SelectionMax <> 1 ซึ่งจะป้องกันการเขียนสูตรไปยังรายการเดียวและไม่ขยายเป็นมากกว่าหนึ่งรายการ

บันทึกอัตโนมัติ

  • คำสั่ง JavaScript จำนวนมากเริ่มต้นด้วยการบันทึกบัฟเฟอร์ของฟอร์ม เนื่องจากทำให้โค้ดที่เหลือทำงานได้ง่ายขึ้น
  • ตามค่าเริ่มต้น บัฟเฟอร์ของฟอร์มจะถูกบันทึกในนามของผู้สร้างแอป
    • ฟอร์มจะถูกบันทึกก่อนเริ่มคำสั่ง
    • ปัญหาใด ๆ ที่เกิดขึ้นระหว่างการบันทึกจะได้รับการจัดการภายใน UI ของฟอร์ม

ฟังก์ชัน Patch

ปรับปรุง (อัปเดต) เรกคอร์ดที่เลือกในปัจจุบัน

Patch(Accounts, Self.Selected.Item, {'Account Name': "Changed Account name"})

หมายเหตุ

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

Patch(Tasks,Defaults(Tasks),{Regarding:Self.Selected.Item},{Subject:"Subject of the Task"})

ตรวจสอบและแก้ไขคุณสมบัติวันที่

If(Self.Selected.Item.'Last Date Included in Campaign'>DateAdd(Now(),-3), Patch(Accounts,Self.Selected.Item,{'Last Date Included in Campaign':Date(2021,10,19)}))

คุณสมบัติที่มองเห็นได้: แสดงเฉพาะคำสั่งถ้าเลือกอย่างน้อยหนึ่งเรกคอร์ดในมุมมองกริด

CountRows(Self.Selected.AllItems) > 0

ควบคุมการมองเห็นตามข้อมูลเรกคอร์ด

//Button will be visible for accounts with Account Rating > 20
Self.Selected.Item.'Account Rating'>20

หมายเหตุ

สำหรับตัวเลือกเพิ่มเติม โปรดดูที่การอ้างอิง API ของไคลเอ็นต์เพื่อใช้ JavaScript ข้อมูลเพิ่มเติม: navigateTo (การอ้างอิง API สำหรับไคลเอ็นต์)

เมื่อต้องการนำทางไปยังหน้าพื้นที่ทำงานแบบกำหนดเองภายในแอปแบบจำลอง ให้ส่งชื่อหน้าเป็นอาร์กิวเมนต์แรก

Navigate( myCustomPage )

ในการนำทางไปยังมุมมองเริ่มต้นของตาราง ให้ส่งชื่อตารางเป็นอาร์กิวเมนต์แรก

Navigate( Accounts )

หากต้องการนำทางไปยังมุมมองของระบบเฉพาะของตาราง ให้ส่ง enum ชนิด Views ของตาราง

Navigate( 'Accounts (Views)'.'My Active Accounts' )

เมื่อต้องการนำทางไปยังฟอร์มเริ่มต้นของตาราง ให้ส่งเรกคอร์ดเป็นอาร์กิวเมนต์แรก

Navigate( Gallery1.Selected )

หากต้องการนำทางไปยังฟอร์มเริ่มต้นของตาราง ให้ส่งเรกคอร์ด Dataverse ที่สร้างขึ้นจากฟังก์ชัน Defaults ซึ่งจะเปิดฟอร์มเริ่มต้นที่มีเรกคอร์ดเป็นเรกคอร์ดใหม่ ฟังก์ชัน Defaults ใช้ชื่อตารางเพื่อสร้างเรกคอร์ด

Navigate( Defaults( Accounts ) )

ปรับประสบการณ์ของผู้ใช้ให้เหมาะสมที่สุดด้วยแหล่งข้อมูลและข้อมูลเรกคอร์ด

ใช้ ฟังก์ชัน DataSourceInfo และ ฟังก์ชัน RecordInfo เพื่อปรับประสบการณ์ผู้ใช้ให้เหมาะสมด้วยข้อมูลเกี่ยวกับข้อมูลที่แสดงและจัดการ

ตัวอย่างเช่น ให้ใช้ RecordInfo เพื่อตรวจสอบว่าผู้ใช้ปัจจุบันมีสิทธิ์ในการแก้ไขเรกคอร์ดหรือไม่ และแสดงหรือซ่อนปุ่ม "แก้ไข" อย่างเหมาะสมโดยใช้คุณสมบัติ มองเห็นได้:

EditButton.Visible = 
   RecordInfo( Gallery1.Selected, RecordInfo.EditPermission )

ตัวอย่างเช่น ใช้ DataSourceInfo เพื่อตรวจสอบว่าผู้ใช้ปัจจุบันมีสิทธิ์ในการสร้างเรกคอร์ดและแสดงหรือซ่อนปุ่ม "สร้าง" อย่างเหมาะสมโดยใช้ Visible ที่มองเห็นได้:

CreateButton.Visible = 
   DataSourceInfo( Accounts, DataSourceInfo.CreatePermission )

ขอคำยืนยันก่อนดำเนินการ

ใช้ ฟังก์ชัน Confirm เพื่อแสดงกล่องโต้ตอบที่ด้านบนของหน้าจอปัจจุบัน

Notify( Confirm( "Are you sure?", 
                 { ConfirmButton: "Yes", CancelButton: "No" } 
        ) 
)

แสดงการแจ้งเตือน จริง หากกดปุ่ม ใช่ และการแจ้งเตือนเป็น เท็จ หากกดปุ่ม ไม่

แจ้งผู้ใช้

การแจ้งเตือนสามารถแสดงให้ผู้ใช้แอปเห็นได้โดยเรียกใช้ ฟังก์ชัน Notify

หมายเหตุ

NotificationType.Success ไม่ได้รับการสนับสนุนในขณะนี้ และจะส่งผลให้มีชนิดการแจ้งเตือนที่ให้ข้อมูล

Notify( "Model-driven app notification message" )

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

เปิดใช้ URL

Launch("https://www.bing.com");

การเข้าถึงคุณสมบัติ 1:N

Self.Selected.Item.'Recurring Appointments'
Self.Selected.Item.'Parent Account'.'Account Name'="parent"

ฟังก์ชันที่ไม่รองรับ

ฟังก์ชัน Power Fx ต่อไปนี้ยังไม่รองรับการสั่งงานในแอปแบบจำลอง

  • Back()
  • Clear()
  • Collect()
  • Copy()
  • Disable()
  • Enable()
  • Exit()
  • InvokeControl()
  • Language()
  • LoadData()
  • Param()
  • ReadNFC()
  • RequestHide()
  • ResetForm()
  • Revert()
  • SaveData()
  • ScanBarcode()
  • Set()
  • SubmitForm()
  • UpdateContext()
  • User()
  • ViewForm()

Enum ที่ไม่รองรับ

  • Align
  • AlignInContainer
  • BarcodeType
  • BorderStyle
  • Color
  • Direction
  • DisplayMode
  • Font
  • FontWeight
  • FormPattern
  • GridStyle
  • ImagePosition
  • ImageRotation
  • LabelPosition
  • Layout
  • LayoutAlignItems
  • LayoutDirection
  • LayoutJustifyContent
  • LayoutMode
  • LayoutOverflow
  • ListItemTemplate
  • MapStyle
  • Overflow
  • PDFPasswordState
  • PenMode
  • RemoveFlags
  • ScreenTransition
  • TeamsTheme
  • TextFormat
  • TextMode
  • TextPosition
  • Themes
  • Transition
  • VerticalAlign
  • VirtualKeyboardMode
  • Zoom

ส่วนอื่นๆ ที่ไม่รองรับ

  • Acceleration
  • App
  • Compass
  • Connection
  • คอลัมน์ชนิดไฟล์ Dataverse
  • Environment
  • Host
  • Layout
  • ตำแหน่ง
  • ScreenSize

ดูเพิ่มเติม

ทำความเข้าใจสูตรลักษณะการทำงาน

การอ้างอิงสูตร

ภาพรวมของ Power Fx