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를 사용합니다.

와일드카드로 문자열의 시작 또는 끝에 별표(*) 문자를 사용할 수 있습니다. 예를 들어 이 와일드카드를 사용하면 특정 키 또는 속성이 반환됩니다. 문자열 내의 별표는 와일드카드로 작동하지 않습니다. 와일드카드 검색은 첫 번째로 일치하는 키 또는 속성만 반환합니다.
참고

키 또는 속성이 일치하는 순서는 보장되지 않습니다.

이 예제는 샘플 응용 프로그램을 기반으로 하며 Unique 및 Caption이라는 속성을 사용하여 요소의 고유 이름과 설명을 저장합니다.

구문

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

수식의 첫 번째 인수는 변수 또는 문자열일 수 있습니다.

* 와일드카드 문자는 키(key) 및 속성(property) 인수와 함께 사용하여 여러 값을 동시에 덮어쓰거나 삭제할 수 있습니다.

단일 속성 및 값의 예

  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")

세 가지 예 모두에서 Product 차원이 키이고 속성 이름이 'Unique'입니다.

첫 번째 예에서는 Product 차원과 제품의 고유 이름이 지정됩니다. 두 번째 예에서는 Product 차원이 포함된 하이퍼블록 이름이 지정됩니다. 세 번째 예는 차원 이름과 요소 고유 이름이 포함된 보고서 변수를 참조합니다.

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","")

예제

그러면 Product 차원의 요소의 고유 이름과 설명을 저장하는 변수에서 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>

Key1의 Property1 및 Property2 값을 변경하려면 다음을 사용하십시오.

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

와일드카드는 Key1의 Property1과 Property2를 모두 식별합니다.

두 키의 속성을 변경하려면 키와 속성 모두에 와일드카드를 사용하십시오.

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