SETPROPERTY

ฟังก์ชันนี้เป็นส่วนหนึ่งของการดำเนินการโดยใช้เพื่อบันทึกคุณสมบัติหลายรายการลงใน XML เมื่อไม่ใช้กับการดำเนินการ SETPROPERTY จะไม่สามารถแก้ไข XML ได้ แต่จะคืนค่า XML ปัจจุบันเท่านั้น ตัวอย่างเช่น สูตรนี้เป็นส่วนหนึ่งของการดำเนินการตั้งค่าพารามิเตอร์ เขียนไปยังตัวแปรชื่อ DemoXML:
=SETPROPERTY(ReportVariables.DemoXML.Text, "visibility","ReportObjects.ListView6.Alias" ,"false")
แต่เมื่อแทรกลงในเซลล์ สูตรเดียวกันจะคืนค่าปัจจุบันของตัวแปร DemoXML:
<Table><Row name="visibility"><Property name="ReportObjects.ListView6.Alias" value="False" /></Row></Table>

ดังนั้น หากต้องการแก้ไขตัวแปร คุณต้องใช้การดำเนินการที่กำหนดผลลัพธ์ที่ส่งคืนโดยฟังก์ชัน SETPROPERTY กลับไปยังตัวแปร

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

คุณสามารถเพิ่ม แก้ไข หรือลบคุณสมบัติใดๆ ได้

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

SETPROPERTY สามารถใช้เพื่ออ้างอิงองค์ประกอบเฉพาะ หรือสามารถใช้เพื่ออ้างอิงเซลล์ไฮเปอร์บล็อก

หากต้องการคืนค่าจากคุณสมบัติของตัวแปร ให้ใช้ GETPROPERTY

คุณสามารถใช้อักขระดอกจัน (*) ที่จุดเริ่มต้นหรือจุดสิ้นสุดของสตริงเป็นอักขระตัวแทน ตัวอย่างเช่น ในการส่งคืนคีย์หรือคุณสมบัติเฉพาะ เครื่องหมายดอกจันภายในสตริงไม่ทำหน้าที่เป็นอักขระตัวแทน การค้นหาโดยใช้อักขระตัวแทนจะส่งคืนเฉพาะคีย์หรือคุณสมบัติที่ตรงกับรายการแรกเท่านั้น
หมายเหตุ

เราไม่สามารถรับประกันลำดับของการจับคู่คีย์หรือคุณสมบัติ

ตัวอย่างเหล่านี้อิงตามแอปพลิเคชัน Samples และใช้คุณสมบัติชื่อ Unique และ Caption เพื่อจัดเก็บชื่อและคำอธิบายเฉพาะขององค์ประกอบ:

ไวยากรณ์

SETPROPERTY("XML_properties","key","property","value")

อาร์กิวเมนต์แรกของสูตรอาจเป็นตัวแปรหรือสตริงก็ได้

อักขระตัวแทน * สามารถใช้กับอาร์กิวเมนต์คีย์และคุณสมบัติเพื่อเขียนทับหรือลบหลายค่าพร้อมกัน

ตัวอย่างของคุณสมบัติและค่าเดียว

  1. =SETPROPERTY(globalvariables.gv_property,"[Product]","Unique",
    "[Product].[All Tires].[Car Tires All Season]")
  2. =SETPROPERTY(globalvariables.gv_property,reportobjects.Hyperblock4.Text,
    "Unique","[Product].[All Tires].[Car Tires All Season]")
  3. =SETPROPERTY(globalvariables.gv_property,"reportvariables.rv_dimension.text","Unique",
    "reportvariables.rv_element.text")

ในทั้งสามตัวอย่าง มิติของผลิตภัณฑ์คือคีย์ และชื่อคุณสมบัติคือ 'Unique'

ในตัวอย่างแรก มิติของผลิตภัณฑ์และชื่อเฉพาะของผลิตภัณฑ์จะถูกระบุ ในตัวอย่างที่สอง ชื่อของไฮเปอร์บล็อกที่มีมิติผลิตภัณฑ์ถูกระบุ ตัวอย่างที่สามอ้างอิงถึงตัวแปรรายงานที่มีชื่อมิติและชื่อที่ไม่ซ้ำขององค์ประกอบ

ในข้อกำหนด XML คีย์จะสร้างชื่อแถว

ตั้งค่าหลายคุณสมบัติและค่า

SETPROPERTY("XML_properties", "key", "property","value",{,"property"}{,"value"})

ตัวอย่าง

=SETPROPERTY(globalvariables._gv_property,"[Product]","unique","[Product].[All
		Tires].[Car Tires all Season]","Caption","Car Tires all Season")

หลายคีย์

คุณสามารถเก็บหลายคีย์ในตัวแปรได้ แต่ไม่ใช่ด้วยฟังก์ชัน SETPROPERTY เดียว ในการจัดเก็บหลายคีย์ ให้ใช้ไฮเปอร์บล็อกหรือซ้อนฟังก์ชัน SETPROPERTY หลายรายการ ตัวอย่างเช่น:
=SETPROPERTY(SETPROPERTY("XML_properties","key","property","value"),
"key","property","value") 

แต่ละคีย์จะสร้างแถวในนิยาม XML ของตัวแปร

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

ลบคุณสมบัติเดียว

SETPROPERTY("XML_properties", "key", "property","")

ตัวอย่าง

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

=SETPROPERTY(globalvariables._gv_property,"[Product]","caption","")

ลบคุณสมบัติหลายรายการ

=SETPROPERTY("XML_properties","key","property","","property,"")

ลบคุณสมบัติทั้งหมดของแถว

=SETPROPERTY("XML_propertes","key")

SETPROPERTY ในไฮเปอร์บล็อก

ฟังก์ชัน SETPROPERTY สามารถอ้างอิงเซลล์ไฮเปอร์บล็อกได้ เมื่อใช้กับไฮเปอร์บล็อก สามารถกำหนดชุดค่าผสมของคีย์ คุณสมบัติ และค่าในตัวแปร XML ได้:

  • หนึ่งคีย์ที่มีหลายคุณสมบัติและคู่ค่าหลายคู่
  • หลายคีย์พร้อมคุณสมบัติและคู่ค่าเดียว
  • หลายคีย์พร้อมหลายคุณสมบัติและคู่ค่าหลายคู่
  • หลายคีย์ที่มีหลายคุณสมบัติและหนึ่งค่า

ตัวอย่าง

ตัวอย่างเหล่านี้ใช้ไฮเปอร์บล็อกแนวตั้งในเซลล์ B2, B3 และ B4 และตัวแปรส่วนกลางที่เรียกว่าgv_SetProperty . เซลล์ B2 คือคอลัมน์คีย์ B3 คือคอลัมน์คุณสมบัติ และ B4 เป็นค่าที่เกี่ยวข้อง

หนึ่งคีย์ที่มีคุณสมบัติหลายรายการและคู่ค่า

=SETPROPERTY(globalvariables.gv_setproperty,"[Product]",B3,B4)

หลายคีย์พร้อมคุณสมบัติและคู่ค่าเดียว:

=SETPROPERTY(globalvariables.gv_setproperty,B2,"Property","Value")

หลายคีย์พร้อมหลายคุณสมบัติและคู่ค่าหลายคู่:

=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,B4)

หลายคีย์พร้อมหลายคุณสมบัติและหนึ่งค่า:

=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,"Value")

การแก้ไขและการลบคุณสมบัติและค่า

เมื่อใช้ SETPROPERTY เพื่ออ้างอิงเซลล์ไฮเปอร์บล็อก จะสามารถทำการดำเนินการเหล่านี้ได้:

  • ลบแถวออกจากข้อกำหนด XML
  • ลบค่าเดียว
  • ลบคุณสมบัติหลายรายการ
  • อัปเดตหรือตั้งค่าเดียว
  • อัปเดตหรือตั้งค่าหลายค่า

ตัวอย่าง

ลบแถวออกจากข้อกำหนด XML:

=SETPROPERTY(globalvariables.gv_setproperty,"Key")

ลบค่าเดียว:

=SETPROPERTY(globalvariables.gv_setproperty,"Key","")

ลบคุณสมบัติหลายรายการ (เช่น ลบคุณสมบัติ 1 และ 3 ออกจากรายการคุณสมบัติ):
=SETPROPERTY("XML_properties","key","property1","","property3","")

ตั้งค่าเดียว:

=SETPROPERTY("XML_properties","key","property","value")

ตั้งค่าหลายค่า:

=SETPROPERTY("XML_properties","key","property1","value1","property2",
"Value2","Property3","Value3")

เปลี่ยนค่าหลายค่าด้วยสัญลักษณ์แทนคีย์:

ตัวแปรนี้มีสองคีย์ แต่ละคีย์มีค่าต่างกัน:
<Table><Row name="Key1"><Property name="property" value ="Value1" /></Row>
<Row name="Key2"><Property name="property" value ="Value2" /></Row></Table>
หากต้องการเปลี่ยนทั้ง Value1 และ Value2 เป็น NewValue:

=SETPROPERTY("XML_properties"," key* ","property","new_value")

อักขระตัวแทนที่ระบุทั้งคีย์และสูตรเปลี่ยนค่าทั้งสอง

เปลี่ยนค่าหลายค่าด้วยอักขระตัวแทนแทนคุณสมบัติ:

ตัวแปรนี้มีสองคีย์ โดยแต่ละคีย์มีคุณสมบัติและค่าสองค่า:
<Table><Row name="Key1"><Property name="property1" value ="Value1"/>
<Property name="property2" value ="Value11"/></Row>
<Row name="Key2"><Property name="property1" value ="Value2" />
<Property name="property2" value ="Value21"/></Row></Table>

ในการเปลี่ยนค่าของ Property1 และ Property2 ของ Key1 ให้ใช้:

=SETPROPERTY("XML_properties","key","property*","new_value")

อักขระตัวแทนระบุทั้ง Property1 และ Property2 ของ Key1

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

=SETPROPERTY("XML_properties" ,"key*","property*","new_value")