หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
นําไปใช้กับ: แอป
พื้นที่ทํางานแอปแบบจําลองข้อมูล
อัปเดต เรกคอร์ด ใน แหล่งข้อมูล
Description
ฟังก์ชัน Update
Updateใช้ฟังก์ชันเพื่อแทนที่ทั้งระเบียนในแหล่งข้อมูล ใน UpdateIf ทางตรงกันข้าม และฟังก์ชัน Patch จะปรับเปลี่ยนค่าอย่างน้อยหนึ่งค่าในเรกคอร์ด โดยให้ค่าอื่นเท่านั้น
สำหรับ คอลเลกชัน ทั้งเรกคอร์ดต้องตรงกัน คอลเลกชันอนุญาตให้ทำเรกคอร์ดซ้ำได้ หลายเรกคอร์ดจึงอาจตรงกัน คุณสามารถใช้อาร์กิวเมนต์ RemoveFlags.All เพื่ออัปเดตสำเนาของเรกคอร์ดทั้งหมด มิฉะนั้น จะอัปเดตสำเนาของเรกคอร์ดเดียวเท่านั้น
ถ้าแหล่งข้อมูลสร้างค่าของคอลัมน์โดยอัตโนมัติ ค่าของ คอลัมน์ นั้นต้องได้รับการยืนยันอีกครั้ง
ฟังก์ชัน UpdateIf
UpdateIfใช้ฟังก์ชันเพื่อปรับเปลี่ยนค่าอย่างน้อยหนึ่งค่าในระเบียนอย่างน้อยหนึ่งรายการที่ตรงกับเงื่อนไขอย่างน้อยหนึ่งข้อ เงื่อนไขสามารถเป็นสูตรใดก็ได้ที่ส่งผลให้เกิด จริง หรือ เท็จ และสามารถอ้างอิงคอลัมน์ของแหล่งข้อมูลตามชื่อ ฟังก์ชันจะประเมินเงื่อนไขสำหรับแต่ละเรกคอร์ด และปรับเปลี่ยนเรกคอร์ดใดๆ ที่ผลลัพธ์เป็น จริง
เมื่อต้องการระบุการปรับเปลี่ยน ให้ใช้เรกคอร์ดการเปลี่ยนแปลงที่มีค่าคุณสมบัติใหม่ ถ้าคุณระบุเรกคอร์ดการเปลี่ยนแปลงแบบอินไลน์นี้ภายในวงเล็บปีกกา สูตรของคุณสมบัติสามารถอ้างอิงคุณสมบัติของเรกคอร์ดที่ถูกปรับเปลี่ยน คุณสามารถใช้ลักษณะการทำงานนี้เพื่อปรับเปลี่ยนเรกคอร์ดโดยยึดตามสูตร
UpdateIfคล้ายกับ คุณยังสามารถใช้ฟังก์ชัน Patch เพื่อเปลี่ยนคอลัมน์ที่ระบุของระเบียนโดยไม่มีผลกระทบต่อคอลัมน์อื่นได้
ทั้งUpdateและUpdateIfส่งกลับแหล่งข้อมูลที่ปรับเปลี่ยนแล้วเป็นตาราง คุณต้องใช้ฟังก์ชันใดก็ได้ใน สูตรของลักษณะการทำงาน
การมอบหมาย
ฟังก์ชันเหล่านี้ไม่มอบหมายไปยังแหล่งข้อมูล อย่างไรก็ตาม UpdateIf และ RemoveIf ทํางานภายในเครื่องเพื่อจําลองการมอบหมายจนถึงขีดจํากัดของบันทึก 500/2000 รายการ พวกเขานําบันทึกเกินขีดจํากัดการรับมอบสิทธิ์ 500/2000 บันทึกอย่างต่อเนื่อง ระเบียนที่ตรงตามเงื่อนไข If จะถูกรวบรวม โดยทั่วไป จะมีการรวบรวมบันทึกสูงสุด 500/2000 รายการแยกต่างหาก จากนั้นจึงแก้ไขต่อการดําเนินการ อย่างไรก็ตาม อาจมีการอัปเดตเรกคอร์ดเพิ่มเติมหากแคชข้อมูลภายในเครื่องที่มีอยู่มีขนาดใหญ่ เนื่องจากฟังก์ชันอาจสามารถเข้าถึงเรกคอร์ดเพิ่มเติมสําหรับการประเมินได้ เฉพาะส่วนเริ่มต้นของแหล่งข้อมูลเท่านั้นที่จะถูกเรียกใช้ จากนั้นฟังก์ชันจะถูกนําไปใช้ ซึ่งอาจจะไม่แสดงภาพที่สมบูรณ์ คําเตือนอาจปรากฏขึ้นระหว่างการเขียนเพื่อเตือนคุณเกี่ยวกับข้อจํากัดนี้
ไวยากรณ์
Update(DataSource_, OldRecord, NewRecord [, RemoveFlags.All ] )
- DataSource – จำเป็น แหล่งข้อมูลที่มีเรกคอร์ดที่คุณต้องการแทนที่
- OldRecord – จำเป็น เรกคอร์ดที่จะแทนที่
- NewRecord – จำเป็น เรกคอร์ดแทนที่ นี่ไม่ใช่เรกคอร์ดที่มีการเปลี่ยนแปลง ทั้งระเบียนจะถูกแทนที่ และคุณสมบัติที่ขาดหายไปจะว่างเปล่า
- RemoveFlags.All – เลือกได้ ในคอลเลกชัน เรกคอร์ดเดียวกันอาจปรากฏขึ้นมากกว่าหนึ่งครั้ง ระบุอาร์กิวเมนต์ RemoveFlags.All เพื่ออัปเดตสำเนาของเรกคอร์ดทั้งหมด
UpdateIf(DataSource_, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )
- DataSource – จำเป็น แหล่งข้อมูลที่มีเรกคอร์ดที่คุณต้องการปรับเปลี่ยน
- จําเป็นต้องมี เงื่อนไข สูตรที่ประเมินเป็น จริง สำหรับเรกคอร์ดที่คุณต้องการปรับเปลี่ยน คุณสามารถใช้ชื่อคอลัมน์ว่า DataSource ในสูตรได้ ในกรณีที่ เงื่อนไขหลาย เงื่อนไขถูกส่งผ่าน เฉพาะ ChangeRecord ที่เกี่ยวข้องกับ เงื่อนไข แรกที่ประเมิน เป็น true จะถูกนําไปใช้
- ChangeRecord(s) - จำเป็น สำหรับแต่ละเงื่อนไขที่สอดคล้องกัน เรกคอร์ดที่มีการเปลี่ยนแปลงของค่าคุณสมบัติใหม่ที่จะนำไปใช้กับเรกคอร์ด DataSource ที่ตรงตามเงื่อนไข ถ้าคุณระบุเรกคอร์ดแบบอินไลน์โดยใช้พร้อมกับวงเล็บปีกกา ค่าคุณสมบัติของเรกคอร์ดที่มีอยู่จะสามารถใช้ในสูตรของคุณสมบัติได้
ตัวอย่าง
ในตัวอย่างเหล่านี้ คุณจะแทนที่หรือปรับเปลี่ยนเรกคอร์ดในแหล่งข้อมูลที่มีชื่อว่า IceCream และที่เริ่มต้นด้วยข้อมูลในตารางนี้:
| สูตร | Description | ผลลัพธ์ |
|---|---|---|
|
Update( ไอศกรีม, LookUp( IceCream, Flavor="Chocolate" ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } ) |
แทนที่เรกคอร์ดจากแหล่งข้อมูล |
แหล่งข้อมูล ไอศครีม ได้ถูกปรับเปลี่ยนแล้ว |
| UpdateIf( ไอศกรีม, ปริมาณ > 175, { ปริมาณ: ปริมาณ + 10 } ) | ปรับเปลี่ยนเรกคอร์ดที่มี ปริมาณ ที่มากกว่า 175 ฟิลด์ ปริมาณ จะถูกเพิ่มค่าครั้งละ 10 และจะไม่ปรับเปลี่ยนฟิลด์อื่น |
แหล่งข้อมูล ไอศครีม ได้ถูกปรับเปลี่ยนแล้ว |
|
Update( ไอศกรีม, LookUp( IceCream, Flavor="Strawberry" ), { ID: 3, รสชาติ: "สตรอเบอรี่ Swirl"} ) |
แทนที่เรกคอร์ดจากแหล่งข้อมูล คุณสมบัติ Quantity ยังไม่อยู่ในเรกคอร์ดแทนที่ คุณสมบัตินั้นจึงจะ ว่างเปล่า ในผลลัพธ์ |
แหล่งข้อมูล ไอศครีม ได้ถูกปรับเปลี่ยนแล้ว |
| UpdateIf( ไอศกรีม, จริง, { ปริมาณ: 0 } ) | ตั้งค่าของคุณสมบัติ Quantity สำหรับเรกคอร์ดทั้งหมดในแหล่งข้อมูลเป็น 0 |
แหล่งข้อมูล ไอศครีม ได้ถูกปรับเปลี่ยนแล้ว |
ทีละขั้นตอน
นำเข้าหรือสร้างคอลเลกชันชื่อว่า Inventory แล้วแสดงในแกลเลอรีตามที่ แสดงข้อมูลในแกลเลอรี อธิบายไว้
ตั้งชื่อแกลเลอรีว่า ProductGallery
เพิ่มแถบเลื่อนชื่อว่า UnitsSold แล้วตั้งค่าคุณสมบัติ Max ลงในนิพจน์นี้:
ProductGallery.Selected.UnitsInStockเพิ่มปุ่ม และตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้:
UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})กด F5 เลือกผลิตภัณฑ์ในแกลเลอรี ระบุค่าด้วยแถบเลื่อน แล้วเลือกปุ่ม
จำนวนของหน่วยในสินค้าคงคลังสำหรับผลิตภัณฑ์ทีคุณระบุลดลงตามจำนวนที่คุณระบุ