TreeGetDataConnection

Преобразующее загружающее соединение с данными; на основе данных из двух загружающих соединений с данными строит дерево данных.

Шаблон TreeGetDataConnection

<DataConnection Name="" Type="TreeGetDataConnection" Assembly="DataConnections">
  <ManualRefresh />
  <SourceDataConnection Name="" Query="">
    <Fields>
      <Field Name="" />
      <Field Name="" />
      <Field Name="" />
    </Fields>
  </SourceDataConnection>
  <RelationshipDataConnection Name="" Query="">
    <Fields>
      <Field Name="" />
      <Field Name="" />
    </Fields>
  </RelationshipDataConnection>
  <AdditionalColumns>
    <HasChildrenColumn Name="" />
    <StateColumn Name="" CloseState="" OpenState="" />
  </AdditionalColumns>
  <Order>
    <By Name="" Type="" />
  </Order>
  <Filter Type="">
    <And>
      <Filter FilterByNullValue="">
        <Field NativeName="" />
        <Value>
          <Object Name="" />
        </Value>
        <DataType Type="" />
      </Filter>
      <Filter Type="" FilterByNullValue="">
        <Field NativeName="" />
        <Value>
          <Object Name="" />
        </Value>
        <DataType Type="" />
      </Filter>
    </And>
  </Filter>
</DataConnection>

Тэги, специфичные для TreeGetDataConnection

SourceDataConnection

Элементы дерева.

<SourceDataConnection Name="SourceDataConnectionName" Query="SqlQueryName">
  <Fields>
    <Field Name="ItemId" />
    <Field Name="Title" />
    <Field Name="Expand" />
    <!-- Дополнительные поля -->    
    <Field Name="FieldName" />
  </Fields>
</SourceDataConnection>

Обязательный тэг. В качестве значения ожидается список с тремя обязательными полями и любым количеством дополнительных полей.

Порядок обязательных полей строго определен:

  • первое поле должно соответствовать идентификатору элемента;

  • второе - его отображаемому значению;

  • третье - его состоянию, свернут или развернут узел дерева, если он имеет дочерние элементы.

Обязательный атрибут Name - имя соединения с данными. Ожидается имя одного из соединений с данными, описанных на форме.

Необязательный атрибут Query - имя запроса из загружающего соединения с данными, если в качестве источника данных указан PrimaryGetDataConnection с несколькими запросами SqlQuery. Ожидается имя одного из запросов, описанных в загружающем соединении с данными.

Если в качестве источника данных используется PrimaryGetDataConnection с несколькими запросами и не указан атрибут SqlQuery с именем конкретного запроса, то будет использоваться результат запроса первого в порядке описания в синтаксисе PrimaryGetDataConnection.

RelationshipDataConnection

Взаимосвязи элементов дерева.

<RelationshipDataConnection Name="SourceDataConnectionName" Query="SqlQueryName">
  <Fields>
    <Field Name="ChildId" />
    <Field Name="ParentId" />
  </Fields>
</RelationshipDataConnection>

Обязательный тэг. В качестве значения ожидается список из двух обязательных полей, где первое поле должно соответствовать идентификатору элемента, а второе - идентификатору родительского элемента.

Обязательный атрибут Name - имя соединения с данными. Ожидается имя одного из соединений с данными, описанных на форме.

Необязательный атрибут Query - имя запроса из загружающего соединения с данными, если в качестве источника данных указан PrimaryGetDataConnection с несколькими запросами SqlQuery. Ожидается имя одного из запросов, описанных в загружающем соединении с данными.

Если в качестве источника данных используется PrimaryGetDataConnection с несколькими запросами и не указан атрибут SqlQuery с именем конкретного запроса, то будет использоваться результат запроса первого в порядке описания в синтаксисе PrimaryGetDataConnection.

ManualRefresh

Признак, определяющий условия обновления полученных данных. Если значение True, то обновление будет происходить только в ручном режиме при выполнении команды DataConnectionRefreshCommand. Если значение False, то исходные данные, помимо ручного режима, будут обновляться и автоматически при изменении источника данных, указанного в тэге <SourceDataConnection>.

<ManualRefresh>True</ManualRefresh>

Необязательный тэг. Ожидается логическое значение.

По умолчанию используется значение False.

AdditionalColumns

Дополнительные поля элементов дерева. одно поле описывает признак наличия дочерних элементов, другое задает отображаемое значение его состояния (свернут или развернут узел дерева).

<AdditionalColumns>
  <HasChildrenColumn Name="HasChildren" />
  <StateColumn Name="State" CloseState="+" OpenState="-" />
</AdditionalColumns>

Необязательный тэг.

Необязательный тэг <HasChildrenColumn>

Если тэг не указан, то для названия поля по умолчанию будет использоваться значение HasChildren.

Атрибуты тэга <HasChildrenColumn>

Name

Название поля, которое будет использоваться на форме.

Обязательный атрибут. Ожидается любое значение.

Тэг <StateColumn>

Элементы дерева.

Необязательный тэг.

Если тэг не указан, то по умолчанию: для названия поля будет использоваться значение State, для закрытого состояния отображаемое значение будет "+", а для раскрытого состояния - "-".

Атрибуты тэга <StateColumn>

Name

Название поля, которое будет использоваться на форме.

Обязательный атрибут. Ожидается любое значение.

CloseState

Отображаемое значение, если узел свернут.

Обязательный атрибут. Ожидается любое значение.

OpenState

Отображаемое значение, если узел раскрыт.

Обязательный атрибут. Ожидается любое значение.

Order

Сортировка элементов дерева.

Необязательный тэг. Значение тэга <Order>: список тэгов <By>, отображаемых поле и тип сортировки.

Если правила сортировки не указаны, то используется отображаемое значение элемента (второе обязательное поле) и сортируется по возрастанию.

<Order>
  <By Name="Title" Type="Asc" />
</Order>

Filter

Фильтр полученных данных.

Фильтрация происходит без изменения источника данных, указанного в тэге <SourceDataConnection>.

Необязательный тэг.

Может быть двух видов: одиночный фильтр и фильтр-выражение. Подробное описание тэга <Filter> доступно по ссылке.

Вариант одиночного фильтра:

<Filter Type="Equal" FilterByNullValue="True" RefreshFilter="True" Reverse="True">
  <Field NativeName="" />
  <Value></Value>
  <DataType Type="" />
  <Enabled></Enabled>
</Filter>

Вариант фильтра-выражения:

<Filter Type="" FilterByNullValue="">
  <And RefreshFilter="" RefreshData="">
    <Or RefreshFilter="" RefreshData="">
      <Filter Type="" FilterByNullValue="" RefreshFilter="" Reverse="">
        <Field NativeName="" />
        <Value></Value>
        <DataType Type="" />
        <Enabled></Enabled>
      </Filter>
      <Filter Type="" FilterByNullValue="" RefreshFilter="" Reverse="">
        <Field NativeName="" />
        <Value></Value>
        <Enabled></Enabled>
      </Filter>
    </Or>
    <Not RefreshFilter="" RefreshData="">
      <Filter Type="" FilterByNullValue="" RefreshFilter="" Reverse="">
        <Field NativeName="" />
        <Value></Value>
        <DataType Type="" />
        <Enabled></Enabled>
      </Filter>
    </Not>
  </And>
</Filter>

Get-проперти для получения свойств

ArrayDataByFieldValue

Возвращает все узлы дерева, найденные по значению FilterValue в поле FilterField.

Результатом будет двумерный массив значений всех полей Fields в тэге <SourceDataConnection> (в порядке объявления) и значение дополнительного поля <HasChildrenColumn>.

<DataConnection SourceDataConnection="TreeGetDataConnectionName">
  <Property Name="ArrayDataByFieldValue">
    <Parameters>
      <!--Значение тэга <Parameter> с атрибутом Name, равным FilterField: ожидается название одного из полей-->
      <Parameter Name="FilterField" />
      <!--Значение тэга <Parameter> с атрибутом Name, равным FilterValue: любое значение-->
      <Parameter Name="FilterValue" />
    </Parameters>
  </Property>
</DataConnection>

Ancestor

Возвращает всех предков узла.

Результатом будет двумерный массив значений всех полей Fields в тэге <SourceDataConnection> (в порядке объявления) и значение дополнительного поля <HasChildrenColumn>.

<DataConnection SourceDataConnection="TreeGetDataConnectionName">
  <Property Name="Ancestor">
    <Parameters>
      <!--Значение тэга <Parameter>: ожидается целочисленное значение-->
      <Parameter Name="NodeId">1</Parameter>
    </Parameters>
  </Property>
</DataConnection>

Descendant

Возвращает всех потомков узла.

Результатом будет двумерный массив значений всех полей Fields в тэге <SourceDataConnection> (в порядке объявления) и значение дополнительного поля <HasChildrenColumn>.

<DataConnection SourceDataConnection="TreeGetDataConnectionName">
  <Property Name="Descendant">
    <Parameters>
      <!--Значение тэга <Parameter>: ожидается целочисленное значение-->
      <Parameter Name="NodeId">1</Parameter>
    </Parameters>
  </Property>
</DataConnection>

Child

Возвращает дочерние элементы узла.

Результатом будет двумерный массив значений всех полей Fields в тэге <SourceDataConnection> (в порядке объявления) и значение дополнительного поля <HasChildrenColumn>.

<DataConnection SourceDataConnection="TreeGetDataConnectionName">
  <Property Name="Child">
    <Parameters>
      <!--Значение тэга <Parameter>: ожидается целочисленное значение-->
      <Parameter Name="NodeId">1</Parameter>
    </Parameters>
  </Property>
</DataConnection>

Parent

Возвращает родительский элемент узла.

Результатом будет двумерный массив значений всех полей Fields в тэге <SourceDataConnection> (в порядке объявления) и значение дополнительного поля <HasChildrenColumn>.

<DataConnection SourceDataConnection="TreeGetDataConnectionName">
  <Property Name="Parent">
    <Parameters>
      <!--Значение тэга <Parameter>: ожидается целочисленное значение-->
      <Parameter Name="NodeId">1</Parameter>
    </Parameters>
  </Property>
</DataConnection>

Set-проперти для динамического задания свойств

ToggleFoldingNode

Сворачивание/разворачивание узла.

<DataConnection SourceDataConnection="TreeGetDataConnectionName">
  <Property Name="ToggleFoldingNode">
    <Parameters>
      <!--Значение тэга <Parameter>: ожидается целочисленное значение-->
      <Parameter Name="NodeId">1</Parameter>
    </Parameters>
  </Property>
</DataConnection>

UpdateNode

Для элемента с идентификатором NodeId изменяет значения полей FieldNames на значения Values.

<DataConnection Name="TreeGetDataConnection">
  <Property Name="UpdateNode">
    <Parameters>
      <Parameter Name="NodeId">1</Parameter>
      <Parameter Name="FieldNames">
        <Structure Type="List">
          <Item>FieldName1</Item>
          <Item>FieldName2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="Values">
        <Structure Type="List">
          <Item>Value1</Item>
          <Item>Value2</Item>
        </Structure>
      </Parameter>
    </Parameters>
  </Property>
</DataConnection>

UpdateNodes

Для элементов с идентификаторами NodeIds изменяет значения полей FieldNames на значения Values.

<DataConnection Name="TreeGetDataConnection">
  <Property Name="UpdateNodes">
    <Parameters>
      <Parameter Name="NodeIds">
        <Structure Type="List">
          <Item>1</Item>
          <Item>2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="FieldNames">
        <Structure Type="List">
          <Item>FieldName1</Item>
          <Item>FieldName2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="Values">
        <Structure Type="List">
          <Item>Value1</Item>
          <Item>Value2</Item>
        </Structure>
      </Parameter>
    </Parameters>
  </Property>
</DataConnection>

Last updated