PrimaryGetDataConnection

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

Шаблон PrimaryGetDataConnection

Вариант 1: с одним запросом

<DataConnection Name="" Type="PrimaryGetDataConnection" Assembly="DataConnections">
  <Async Value="" />
  <ManualLoad></ManualLoad> 
  <SqlQuery Name="" Type="Select">
    <Async Value="" />
    <ManualLoad></ManualLoad> 
	<DependOn>
		<DataConnection Name="" />
		<DataConnection Name="" />
	</DependOn> 
    <Workflow Name="" />
    <Fields>
      <Field Name="" NativeName="" />
      <Field Name="" Type="FormatField" FormatString="">
        <Field NativeName="" />
        <Field NativeName="" />
      </Field>
    </Fields>
    <Parameters>
      <Parameter NativeName="" RefreshQuery="" SendAsArray="">
        <Value></Value>
        <IfNull></IfNull>
        <IfEmpty></IfEmpty>
      </Parameter>
    </Parameters>
    <Filter>
      <And RefreshFilter="">
        <Or RefreshFilter="">
          <Filter Type="" FilterByNullValue="" RefreshFilter="" Reverse="">
            <Field NativeName="" />
            <Value></Value>
            <DataType Type="" />
            <Enabled></Enabled>
          </Filter>
          <Filter Type="" FilterByNullValue="" RefreshFilter="" Reverse="">
            <Field NativeName="" />
            <Value></Value>
            <DataType Type="" />
            <Enabled></Enabled>
          </Filter>
        </Or>
        <Not RefreshFilter="">
          <Filter Type="" FilterByNullValue="" RefreshFilter="" Reverse="">
            <Field NativeName="" />
            <Value></Value>
            <DataType Type="" />
            <Enabled></Enabled>
          </Filter>
        </Not>
      </And>
    </Filter>
  </SqlQuery>
  <UpdateInterval Hours="" Minutes="" Seconds=""></UpdateInterval>
</DataConnection>

Вариант 2: с несколькими запросами

В Workflow Forms v2 в этом варианте используется пакетная загрузка запросов. Все SqlQuery из DataConnection добавляются в очередь загрузки, при этом очередь может подразделяется на несколько подочередей - для асинхронных и синхронных запросов.

<DataConnection Name="" Type="PrimaryGetDataConnection" Assembly="DataConnections">
  <Async Value="" />
  <ManualLoad></ManualLoad>
  <SqlQueries>
    <SqlQuery Name="" Type="Select">
      <Async Value="" />
      <ManualLoad></ManualLoad> 
      <Workflow Name="" />
      <Fields>
        <Field Name="" NativeName="" />
        <Field Name="" Type="FormatField" FormatString="">
          <Field NativeName="" />
          <Field NativeName="" />
        </Field>
      </Fields>
      <Parameters>
        <Parameter NativeName="" RefreshQuery="" SendAsArray="">
          <Value></Value>
          <IfNull></IfNull>
          <IfEmpty></IfEmpty>
        </Parameter>
      </Parameters>
      <Filter>
        <And RefreshFilter="">
          <Or RefreshFilter="">
            <Filter Type="" FilterByNullValue="" RefreshFilter="">
              <Field NativeName="" />
              <Value></Value>
              <DataType Type="" />
              <Enabled></Enabled>
            </Filter>
            <Filter Type="" FilterByNullValue="" RefreshFilter="">
              <Field NativeName="" />
              <Value></Value>
              <DataType Type="" />
              <Enabled></Enabled>
            </Filter>
          </Or>
          <Not RefreshFilter="">
            <Filter Type="" FilterByNullValue="" RefreshFilter="">
              <Field NativeName="" />
              <Value></Value>
              <DataType Type="" />
              <Enabled></Enabled>
            </Filter>
          </Not>
        </And>
      </Filter>
    </SqlQuery>
  </SqlQueries>
  <UpdateInterval Hours="" Minutes="" Seconds=""></UpdateInterval>
</DataConnection>

Описание PrimaryGetDataConnection

Вариант 1: с одним запросом

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

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

Async

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

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

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

<Async Value="False" />

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

Value

Значение.

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

ManualLoad

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

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

Если тэг <ManualLoad> отсутствует, то используется значение False.

<ManualLoad>False</ManualLoad>

DependOn

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

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

<DependOn>
  <DataConnection Name="" />
  <DataConnection Name="" />
</DependOn> 

Тэг <DataConnection>

Загружающее соединение с данными.

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

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

Name

Название загружающего соединения с данными.

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

SqlQuery

Запрос для получения данных.

Обязательный тэг. Значение тэга <SqlQuery>: тэги <Async>, <ManualLoad>, <Workflow>, <Fields>, <Parameters> и <Filter>.

<SqlQuery Name="" Type="Select">
  <Async />
  <ManualLoad />
  <Workflow />
  <Fields />
  <Parameters />
  <Filter />
</SqlQuery>

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

Name

Название запроса.

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

Type

Тип запроса.

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

Тэг <Async>

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

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

Если тэг <Async> отсутствует, то для атрибута Value используется значение атрибута <Async> соединения с данными.

<Async Value="False" />

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

Value

Значение.

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

Тэг <ManualLoad>

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

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

Если тэг <ManualLoad> отсутствует, то используется значение тэга <ManualLoad> соединения с данными.

<ManualLoad>False</ManualLoad>

Тэг <Workflow>

Процесс, в рамках которого происходит запрос.

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

<Workflow Name="WorkflowName" />

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

Name

Название процесса.

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

Тэг <Fields>

Поля запроса.

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

<Fields>
  <Field Name="field_name1" />
  <Field Name="FieldName2" NativeName="field_name2" />
  <Field Name="FieldName3" Type="FormatField" FormatString="{0} ({1})">
    <Field NativeName="field_name3" />
    <Field NativeName="field_name4" />
  </Field>
</Fields>

Тэг <Field>

Поле запроса.

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

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

Name

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

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

NativeName

Название поля запроса, описанного на сервере.

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

Суть связи атрибутов Name и NativeName - переименование полей запроса.

Type

Тип поля.

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

FormatString

Форматная строка объединения значений нескольких полей.

Необязательный атрибут. Значение атрибута FormatString: любое значение, включающее в себя выражения вида "{n}", где n - индекс (начиная с 0) вложенного поля.

Тэг <Parameters>

Параметры, передаваемые в запрос.

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

<Parameters>
  <Parameter NativeName="NativeName" RefreshQuery="False" SendAsArray="True">
    <Value>Value</Value>
    <IfNull>Value</IfNull>
    <IfEmpty>Value</IfEmpty>
  </Parameter>
</Parameters>

Тэг <Parameter>

Параметр, передаваемый в запрос.

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

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

NativeName

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

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

RefreshQuery

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

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

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

SendAsArray

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

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

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

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

Вложенные тэги тэга <Parameter>

  • Value - значение параметра. Обязательный тэг. Ожидается любое значение;

  • IfNull - значение, которое будет передано в качестве значение параметра, если последний в тэге <Value> имеет значение NULL. Необязательный тэг. Ожидается любое значение;

  • IfEmpty - значение, которое будет передано в качестве значение параметра, если последний в тэге <Value> имеет значение "". Необязательный тэг. Ожидается любое значение.

Тэг <Filter>

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

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

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

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

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

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

UpdateInterval

Интервал автоматического обновления первичного соединения с данными.

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

Если значение тэга <UpdateInterval> пустое, то используется значение True.

<UpdateInterval Hours="" Minutes="" Seconds="">True</UpdateInterval>

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

Hours

Интервал в часах.

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

Minutes

Интервал в минутах.

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

Seconds

Интервал в секундах.

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

Вариант 2: с несколькими запросами

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

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

SqlQueries

Запросы для получения данных.

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

Описание тэга <SqlQuery> смотри в варианте 1.

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

Count

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

Значение тэга <Property>: ожидается имя одного из запросов указанного загружающего соединения с данными.

Если значение тэга <Property> равно NULL, то по умолчанию используется первый запрос.

<DataConnection SourceDataConnection="PrimaryGetDataConnectionName">
  <Property Name="Count">SqlQueryName</Property>
</DataConnection>

Last updated