ConvertDataConnection

Преобразующее загружающее соединение с данными; получает данные из другого загружающего соединения с данными и фильтрует их.

Шаблон ConvertDataConnection

<DataConnection Name="" Type="ConvertDataConnection" Assembly="WorkflowServer">
  <SourceDataConnection Name="" Query=""/>
  <ManualRefresh></ManualRefresh>
  <Fields>
    <Field Name="" Field=""/>
    <Field Field="" Type="Object">
      <Field Name="" />
    </Field>
    <Field Name="" Type="SubField" SubField="" Field=""/>
    <Field Name="" Field="" Type="Array">
      <Field Name="" />
    </Field>
    <Field Name="" Type="Value" DataType=""></Field>
    <Field Name="" Type="Format"></Field>
    <Field Name="" Type="Substitution" Field=""></Field>
    <Field Name="" Type="Replace" Field=""></Field>
    <Field Name="" Type="Action" Field=""></Field>
    <Field Name="" Type="TemplateFormat" Evaluate=""></Field>
  </Fields>
  <Filter>
    <And RefreshFilter="">
      <Or RefreshFilter="">
        <Filter Type="" FilterByNullValue="" RefreshFilter="" Reverse="">
          <Field NativeName="" />
          <Value></Value>
          <DataType Type="" />
          <Enabled>True</Enabled>
        </Filter>
        <Filter Type="" FilterByNullValue="" RefreshFilter="" Reverse="">
          <Field NativeName="" />
          <Value></Value>
          <DataType Type="" />
          <Enabled>True</Enabled>
        </Filter>
      </Or>
      <Not RefreshFilter="">
        <Filter Type="" FilterByNullValue="" RefreshFilter="" Reverse="">
          <Field NativeName="" />
          <Value></Value>
          <DataType Type="" />
          <Enabled>True</Enabled>
        </Filter>
      </Not>
    </And>
  </Filter>
</DataConnection>

Описание ConvertDataConnection

<DataConnection Name="ConvertDataConnectionName" Type="ConvertDataConnection" Assembly="DataConnections">
  <!--Тэги, специфичные для ConvertDataConnection-->
</DataConnection>

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

SourceDataConnection

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

Обязательный тэг. Значение тэга <SourceDataConnection>: не ожидается.

<SourceDataConnection Name="SourceDataConnectionName" Query="SqlQueryName" />

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

Name

Имя соединения с данными.

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

Query

Имя запроса из соединения с данными.

Необязательный атрибут. Ожидается имя одного из запросов из соединения с данными.

ManualRefresh

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

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

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

<ManualRefresh>True</ManualRefresh>

Fields

Список селекторов для выбора данных из соединения с данными.

Обязательный тэг. Значение тэга <Fields>: список тэгов <Field>.

Селекторы последовательно (в порядке объявления) преобразуют каждую строку исходного соединения с данными в результат соединения с данными.

На данный момент реализованы следующие селекторы:

  1. Поле соединения с данными (Field);

  2. Поля объекта (Object);

  3. Вложенное поле объекта (SubField);

  4. Соединение массивов объектов (Array);

  5. Значение (Value);

  6. Форматирование строки (Format);

  7. Подстановка значений (Substitution);

  8. Замена значений (Replace);

  9. Работа с массивами (Action);

  10. Форматирование строки по шаблону (TemplateFormat).

<Fields>
  <Field Name="FieldName" Field="SourceFieldName"/>
  <Field Field="FieldName" Type="Object">
    <Field Name="SubFieldName" />
  </Field>
  <Field Name="FieldName" Type="SubField" Field="FieldName" SubField="SubFieldName"/>
  <Field Name="FieldName" Field="FieldName" Type="Array">
    <Field Name="FieldName" />
  </Field>
  <Field Name="FieldName" Type="Value" DataType="StringDataType">Value</Field>
  <Field Name="FieldName" Type="Format">{FieldName}</Field>
  <Field Name="FieldName" Type="Substitution" Field="FieldName"></Field>
  <Field Name="FieldName" Type="Replace" Field="FieldName"></Field>
  <Field Name="FieldName" Type="Action" Field="FieldName">Array Operations</Field>
  <Field Name="FieldName" Type="TemplateFormat" Evaluate="True">Template</Field>
</Fields>

Тэг <Field>

Селектор значения строки.

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

Атрибуты тэга <Field>, общие для всех селекторов

Name

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

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

Filter

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

Необязательный тэг. Значение тэга <Filter>: список тэгов <And>, <Or> и <Not> или тэги <Field>, <Value>, <DataType> и <Enabled>.

<Filter>
  <And RefreshFilter="True">
    <Or RefreshFilter="True">
      <Filter Type="Equal" FilterByNullValue="True" RefreshFilter="True" Reverse="True">
        <Field NativeName="FieldName1" />
        <Value>Value</Value>
        <DataType Type="DataTypeName" />
        <Enabled>True</Enabled>
      </Filter>
      <Filter Type="Equal" FilterByNullValue="True" RefreshFilter="True" Reverse="True">
        <Field NativeName="FieldName2" />
        <Value>Value</Value>
        <Enabled>True</Enabled>
      </Filter>
    </Or>
    <Not RefreshFilter="True">
      <Filter Type="Equal" FilterByNullValue="True" RefreshFilter="True" Reverse="True">
        <Field NativeName="FieldName3" />
        <Value>Value</Value>
        <DataType Type="DataTypeName" />
        <Enabled>True</Enabled>
      </Filter>
    </Not>
  </And>
</Filter>

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

Type

Тип сравнения значений.

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

Если атрибут Type отсутствует, то используется значение Equal.

FilterByNullValue

Признак, определяющий, будет ли осуществляться фильтрация для очередной строки соединения с данными, если значение фильтра будет равно NULL.

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

Если атрибут FilterByNullValue отсутствует, то используется значение True.

RefreshFilter

Признак, определяющий, будут ли данные сразу же отфильтрованы при изменении параметра фильтра.

Признак не работает для фильтров, содержащих внутри себя тэги <And>, <Or> или <Not>, для таких фильтров данные обновляются всегда.

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

Если атрибут RefreshFilter отсутствует, то используется значение True.

Reverse

Признак, определяющий, будет ли изменён порядок аргументов фильтра на обратный.

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

Если атрибут Reverse отсутствует, то используется значение False.

Типы сравнения значений

Equal

Сравнение значений на равенство

NotEqual

Сравнение значений на неравенство

Greater

Сравнение значений на "больше": значение из соединения с данными больше указанного значения

NotGreater

Сравнение значений на "не больше": значение из соединения с данными не больше указанного значения

Less

Сравнение значений на "меньше": значение из соединения с данными меньше указанного значения

NotLess

Сравнение значений на "не меньше": значение из соединения с данными не меньше указанного значения

Contains

Сравнение значений на "содержит": значение из соединения с данными содержит указанное значение (значения любых типов данных преобразуются к строковому типу)

NotContains

Сравнение значений на "не содержит": значение из соединения с данными не содержит указанное значение (значения любых типов данных преобразуются к строковому типу)

In

Сравнение значений на "входит": значение из соединения с данными входит в указанный массив

NotIn

Сравнение значений на "не входит": значение из соединения с данными не входит в указанный массив

Overlap

Сравнение значений на "пересекается": массив из соединения с данными имеет общие элементы с указанным массивом

NotOverlap

Сравнение значений на "не пересекается": массив из соединения с данными не имеет общих элементов с указанным массивом

MatchSearch

Сравнение значений на "удовлетворяет поисковой строке": поисковая строка может состоять из слов, разделенных пробелами и знаками "+", "*" и "?". Пробел означает "ИЛИ", "+" означает "И", "*" означает любое количество любых символов, "?" означат ровно один символ

NotMatchSearch

Сравнение значений на "не удовлетворяет поисковой строке": поисковая строка может состоять из слов, разделенных пробелами и знаками "+", "*" и "?". Пробел означает "ИЛИ", "+" означает "И", "*" означает любое количество любых символов, "?" означат ровно один символ

ContainedIn

Сравнение значений на "входит": значение из соединения с данными входит в указанное значение (значения любых типов данных преобразуются к строковому типу)

NotContainedIn

Сравнение значений на "не входит": значение из соединения с данными не входит в указанное значение (значения любых типов данных преобразуются к строковому типу)

Тэг <And>

Логическое умножение нескольких фильтров.

Необязательный тэг. Значение тэга <And>: список тэгов <Filter>, <And>, <Or> и <Not>.

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

RefreshFilter

Признак, определяющий, будут ли данные сразу же отфильтрованы при изменении вложенного фильтра.

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

Если атрибут RefreshFilter отсутствует, то используется значение True.

Тэг <Or>

Логическое сложение нескольких фильтров.

Необязательный тэг. Значение тэга <Or>: список тэгов <Filter>, <And>, <Or> и <Not>.

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

RefreshFilter

Признак, определяющий, будут ли данные сразу же отфильтрованы при изменении вложенного фильтра.

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

Если атрибут RefreshFilter отсутствует, то используется значение True.

Тэг <Not>

Логическое отрицание одного фильтра.

Необязательный тэг. Значение тэга <Not>: тэг <Filter>, <And>, <Or> или <Not>.

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

RefreshFilter

Признак, определяющий, будут ли данные сразу же отфильтрованы при изменении вложенного фильтра.

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

Если атрибут RefreshFilter отсутствует, то используется значение True.

Тэг <Field>

Поле, по значению которого полученные данные фильтруются.

Обязательный тэг. Значение тэга <Field>: не ожидается.

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

NativeName

Название поля, по значению которого полученные данные фильтруются.

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

Тэг <Value>

Значение, по которому полученные данные фильтруются.

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

Тэг <DataType>

Тип данных, к которому приводятся сравниваемые значения.

Необязательный тэг. Значение тэга <DataType>: не ожидается.

Если тэг <DataType> отсутствует, то для атрибута Type используется значение StringDataType.

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

Type

Название типа данных.

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

Тэг <Enabled>

Признак, определяющий, будет ли использоваться данный фильтр.

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

Список селекторов

Поле соединения с данными (Field)

Селектор поля соединения с данными.

Значение тэга <Field>: не ожидается.

<Field Name="FieldName" Field="SourceFieldName"/>

Атрибуты тэга <Field>, специфичные для селектора Field

Field

Название поля исходного соединения с данными.

Необязательный атрибут. Если атрибут Field отсутствует, то используется значение из атрибута Name.

Поля объекта (Object)

Селектор полей объекта. В результиующую таблицу будут добавлены поля вложенных селекторов.

Значение тэга <Field>: список тэгов <Field>.

<Field Field="FieldName" Type="Object">
  <Field Name="SubFieldName" />
</Field>

Поле исходного соединения должно быть словарём.

Атрибуты тэга <Field>, специфичные для селектора Object

Field

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

Обязательный атрибут.

Type

Тип селектора. Обязательный атрибут. Значение атрибута Type: фиксированное значение Object.

Вложенное поле объекта (SubField)

Селектор вложенного поля.

В результат добавится значение поля вложенного объекта. Является короткой версий селектора полей объекта.

Значение тэга <Field>: не ожидается.

<Field Name="FieldName" Type="SubField" Field="FieldName" SubField="SubFieldName"/>

Поле исходного соединения должно быть словарём.

Атрибуты тэга <Field>, специфичные для селектора SubField

Type

Тип селектора. Обязательный атрибут. Значение атрибута Type: фиксированное значение SubField.

Field

Название поля исходного соединения с данными.

Необязательный атрибут.

Если атрибут Field отсутствует, то используется значение из атрибута Name.

SubField

Название вложенного поля. Обязательный атрибут. Ожидается одно из полей объекта с названием заданным в атрибуте Field или Name (если атрибут Field отсутствует).

Соединение массивов объектов (Array)

Селектор соединения массива объектов.

Может содержать любые селекторы. В результиующую таблицу будут добавлены поля вложенных селекторов.

Значение тэга <Field>: список тэгов <Field>.

<Field Name="FieldName" Field="FieldName" Type="Array">
  <Field Name="FieldName" />
</Field>

Поле исходного соединения должно быть словарём.

Атрибуты тэга <Field>, специфичные для селектора Array

Type

Тип селектора. Обязательный атрибут. Значение атрибута Type: фиксированное значение Array.

Field

Название поля исходного соединения с данными.

Необязательный атрибут.

Если атрибут Field отсутствует, то используется значение из атрибута Name.

Значение (Value)

Селектор значения.

Добавляет в результат столбец с заданным значением.

Значение тэга <Field>: любое значение.

<Field Name="FieldName" Type="Value" DataType="StringDataType">Value</Field>

Атрибуты тэга <Field>, специфичные для селектора Value

Type

Тип селектора. Обязательный атрибут. Значение атрибута Type: фиксированное значение Value.

DataType

Тип данных, в который будет преобразовано значение. Необязательный атрибут. Значение атрибута DataType: один из доступных типов данных. Если атрибут DataType отсутствует, то используется значение StringDataType.

Форматирование строки (Format)

Селектор форматирования строки.

Добавляет в результат столбец с результатом форматирования полей исходного соединения с данными.

Значение тэга <Field>: строка с форматом. В строке можно использовать значения полей в фигурных скобках - {FieldName}.

<Field Name="FieldName" Type="Format">{FieldName}</Field>

Атрибуты тэга <Field>, специфичные для селектора Format

Type

Тип селектора. Обязательный атрибут. Значение атрибута Type: фиксированное значение Format.

Подстановка значений (Substitution)

Селектор подстановки значений.

Добавляет в результат значение выбранное из таблицы подстановки.

Ожидается матрица из 2-х столбцов.

<Field Name="FieldName" Type="Substitution" Field="FieldName"></Field>

Атрибуты тэга <Field>, специфичные для селектора Substitution

Type

Тип селектора. Обязательный атрибут. Значение атрибута Type: фиксированное значение Substitution.

Field

Название поля исходного соединения с данными.

Необязательный атрибут.

Если атрибут Field отсутствует, то используется значение из атрибута Name.

Замена значений (Replace)

Селектор замены значений.

Добавляет в результат столбец со значением исходного соединения с данными с заменой в нём подсрок с использованием таблицы замены.

Замена происходит следующим образом: исходное значение преобразуется в текстовое, затем в строке последовательно заменяется значение из первого столбца таблицы замены на значение второго столбца таблицы замены.

Ожидается матрица из 2-х столбцов.

<Field Name="FieldName" Type="Replace" Field="FieldName"></Field>

Атрибуты тэга <Field>, специфичные для селектора Replace

Type

Тип селектора. Обязательный атрибут. Значение атрибута Type: фиксированное значение Replace.

Field

Название поля исходного соединения с данными.

Необязательный атрибут.

Если атрибут Field отсутствует, то используется значение из атрибута Name.

Работа с массивами (Action)

Селектор работы с массивами.

Добавляет в результат соединения столбец с результатом преобразования массива из исходного соединения с данными.

Ожидается описание операций по работе с массивами.

<Field Name="FieldName" Type="Action" Field="FieldName">Array Operations</Field>

Поле исходнодного соединения должно быть массивом.

Атрибуты тэга <Field>, специфичные для селектора Action

Type

Тип селектора. Обязательный атрибут. Значение атрибута Type: фиксированное значение Action.

Field

Название поля исходного соединения с данными.

Необязательный атрибут.

Если атрибут Field отсутствует, то используется значение из атрибута Name.

Форматирование строки по шаблону (TemplateFormat)

Селектор форматирования строки по шаблону.

Добавляет в результат столбец с результатом форматирования полей исходного соединения с данными на основе заданного шаблона.

В качестве шаблонизатора используется Scriban. Подробнее по ссылке.

Ожидается строка с шаблоном.

<Field Name="FieldName" Type="TemplateFormat" Evaluate="True">Template</Field>

Атрибуты тэга <Field>, специфичные для селектора TemplateFormat

Type

Тип селектора. Обязательный атрибут. Значение атрибута Type: фиксированное значение Action.

Evaluate

Признак, определяющий что нужно вычислить выражение.

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

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

Count

Возвращает количество строк, возвращенных определенным запросом загружающего соединения с данными.

<DataConnection SourceDataConnection="ConvertDataConnectionName">
  <Property Name="Count" />
</DataConnection>

Last updated