本地属性 - "私人 "和 "公共"Local properties - "Private" and "Public"

<< 点击显示目录 >>

主页  mappView帮助助手 > mapp View帮助信息 > 工程 > 定制的小工具 > 复合型小部件 > 编辑复合小部件(XML) >

本地属性 - "私人 "和 "公共"Local properties - "Private" and "Public"

在mapp View 5.6及以后的版本中,可以在复合部件中创建 "本地属性",在运行时在复合部件的范围内可见。

本地属性可以分配给复合部件的接口(公共)或只能在内部作为 临时变量使用  (私有)。

此本地属性的ValueChanged事件可以在复合部件的事件绑定中被响应;该值可以通过相应的操作被读取或修改.

Element "Property"

本地属性的配置发生在元素<Property>中。

Attribute

描述

Data type

Required

xsi:type

LocalProperty 定义了它是基本数据类型的本地属性。

String

Yes

name

本地属性的名称,它显示在内容编辑器的属性窗口中,并选择了复合小组件(public=true)。

这个名字也在事件绑定中使用。

 

复合部件本身提供的以下属性名称不允许使用。
width, height, top, left, enable, visible, zIndex, margin, permissionOperate, permissionView, id, description
该名称也不允许包含任何空格、特殊字符、句号或冒号。

String

Yes

type

属性的数据类型。

Number

String

Boolean

Yes

required

定义了该属性在使用时是否必须进行配置。

Boolean

No

category

定义显示该属性的类别。

String

No

defaultValue

定义属性的默认值。

String

Yes

public

定义本地属性是否只能在复合小组件内使用(默认=false)或在复合小组件的界面中可用(true)。

Boolean

No

 

<Property xsi:type="LocalProperty" name="myIndex" type="Number" defaultValue="-1" category="Data" required="false" public="true">
 ...
</Property>

Element "Event"

本地属性的事件配置发生在本地属性的<Event>元素中。

这个元素是可选的。如果没有定义,本地属性的名称可以作为事件绑定中的参数名称使用。

Attribute

描述

Data type

Required

name

事件的唯一名称。这个事件可以在复合部件的事件绑定中被响应。

 

xsi:type="this.Event " 必须在复合部件的事件绑定中使用。

String

Yes

 

<Property xsi:type="LocalProperty" name="myIndex" type="Number" defaultValue="-1" category="Data" required="false" public="true">
 <Event name="myIndexChanged">
  <Description>value changed event.</Description>
 </Event>
 ...
</Property>

在复合部件的事件绑定中响应 ValueChanged 事件的例子

本地属性 myIndex 通过  复合部件的属性中的 参数 public=true 在实例中可见  。如果一个OPC UA变量或一个会话变量被绑定,一个值的变化可以被响应。

<EventBinding id="CompoundMyIndexChanged">
 <Source xsi:type="this.Event" event="myIndexChanged" />
 <EventHandler condition="value = 0">
  <Action>
   <Target xsi:type="widget.Action" widgetRefId="Button1">
    <Method name="SetStyle" value="default"/>
   </Target>
  </Action>
 </EventHandler>
</EventBinding>

Element "Actions"

本地属性的动作配置在本地属性的<Action>元素中进行。

这个元素是可选的。如果没有定义,可以用Get{PropertyName}或Set{PropertyName}使用本地属性的名称。

Action - SetAction

Action SetAction 被配置在一个<Actions>元素中。

Attribute

描述

Data type

Required

name

动作的唯一名称。这个动作可以在复合部件的事件绑定中使用,以设置本地属性的值。

String

Yes

 

<Property xsi:type="LocalProperty" name="myIndex" type="Number" defaultValue="-1" category="Data" required="false" public="true">
 <Actions>
  <SetAction name="SetMyIndex">
   <Description>SetMyIndex description.</Description>
  </SetAction>
 </Actions>
 ...
</Property>

在事件绑定中设置一个本地属性的例子

每次点击复合小部件中的图像小部件,都会使一个本地属性的值增加1。

<EventBinding id="ImageClicked">
 <Source xsi:type="widget.Event" widgetRefId="Image1" event="Click" />
 <EventHandler>
  <Action>
   <ReadTarget xsi:type="this.Action.Read" >
    <Method name="GetMyIndex" />
   </ReadTarget>
   <Result>
    <ResultHandler>
     <Action>
      <Target xsi:type="this.Action">
       <Method name="SetMyIndex" value="=result+1" />
      </Target>
     </Action>
    </ResultHandler>
   </Result>
  </Action>
 </EventHandler>
</EventBinding>

Action - GetAction

行动 GetAction 被配置在一个<Actions>元素中

Attribute

描述

Data type

Required

name

动作的唯一名称。这个动作可以在复合部件内的事件绑定中使用,以读取一个本地属性的值。

String

Yes

 

<Property xsi:type="LocalProperty" name="myIndex" type="Number" defaultValue="-1" category="Data" required="false" public="true">
 <Actions>
  <GetAction name="GetMyIndex">
   <Description>GetMyIndex description.</Description>
  </GetAction>
 </Actions>
 ...
</Property>

在事件绑定中读取一个本地属性的例子

如果复合部件中的一个部件被启用绑定禁用,应该读取一个本地属性的值。根据结果,可以执行另一个动作。

<EventBinding id="ButtonDisabled">
 <Source xsi:type="widget.Event" widgetRefId="Button1" event="EnableChanged" />
 <EventHandler condition="value">
  <Action>
   <ReadTarget xsi:type="this.Action.Read" >
    <Method name="GetMyIndex" />
   </ReadTarget>
   <Result>
    <ResultHandler condition="0">
     <Action>
      ...
     </Action>
    </ResultHandler>
   </Result>
  </Action>
 </EventHandler>
</EventBinding>