การใช้ 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