PrimaryGetDataConnection

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

Шаблон PrimaryGetDataConnection

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

<DataConnection Name="" Type="PrimaryGetDataConnection" Assembly="DataConnections">
  <ManualLoad></ManualLoad>
  <DependOn>
    <DataConnection Name="" />
    <DataConnection Name="" />
  </DependOn>
  <UpdateInterval Hours="" Minutes="" Seconds=""></UpdateInterval>
  <SqlQuery Name="" Type="Select">
    <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="" 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>
</DataConnection>

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

Все SqlQuery из DataConnection добавляются в очередь загрузки.

<DataConnection Name="" Type="PrimaryGetDataConnection" Assembly="DataConnections">
  <ManualLoad></ManualLoad>
  <DependOn>
    <DataConnection Name="" />
    <DataConnection Name="" />
  </DependOn>
  <UpdateInterval Hours="" Minutes="" Seconds=""></UpdateInterval>
  <SqlQueries>
    <SqlQuery Name="" Type="Select">
      <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>
</DataConnection>

Описание PrimaryGetDataConnection

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

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

ManualLoad

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

<ManualLoad>False</ManualLoad>

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

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

В качестве значения тэга <ManualLoad> не стоит ссылаться на другой DataConnection, так как это помешает корректно построить дерево зависимостей - форма не отследит эту зависимость.

DependOn

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

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

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

SqlQuery

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

<SqlQuery Name="" Type="Select">
  <Workflow Name="" />
  <ManualLoad></ManualLoad>
  <Fields>
    <Field Name="" />
    <Field Name="" />
    <Field Name="" />
  </Fields>
  <Parameters>
    <Parameter NativeName="">
      <Value></Value>
    </Parameter>
  </Parameters>
  <Filter Type="" FilterByNullValue="" RefreshFilter="">
    <Field NativeName="" />
    <Value></Value>
    <DataType Type="" />
    <Enabled></Enabled>
  </Filter>
</SqlQuery>

Обязательный тэг. Тэг <SqlQuery> не должен находиться одновременно с тэгом <SqlQueries> (на одном уровне).

Подробное описание тэга по ссылке.

SqlQueries

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

<SqlQueries>
  <SqlQuery Name="" Type="Select">
    <Workflow Name="" />
    <ManualLoad></ManualLoad>
    <Fields>
      <Field Name="" />
      <Field Name="" />
      <Field Name="" />
    </Fields>
  </SqlQuery>
  <SqlQuery Name="" Type="Select">
    <Workflow Name="" />
    <ManualLoad></ManualLoad>
    <Fields>
      <Field Name="" />
      <Field Name="" />
      <Field Name="" />
    </Fields>
    <Parameters>
      <Parameter NativeName="">
        <Value></Value>
      </Parameter>
    </Parameters>
  </SqlQuery>
</SqlQueries>

Обязательный тэг. Тэг <SqlQueries> не должен находиться одновременно с тэгом <SqlQuery> (на одном уровне).

UpdateInterval

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

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

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

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

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

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

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

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

Count

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

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

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

ValueChanged

Возвращает признак изменения данных DataConnection.

<DataConnection SourceDataConnection="PrimaryGetDataConnectionName">
  <Property Name="ValueChanged" />
</DataConnection>

Значение не ожидается.

RowIndexOf

Возвращает индекс строки, удовлетворяющей условиям соответствия названий столбцов и значений в этих столбцах.

<DataConnection SourceDataConnection="PrimaryGetDataConnectionName">
  <Property Name="RowIndexOf">
    <Parameters>
      <Parameter Name="QueryName">SqlQueryName</Parameter>
      <Parameter Name="ColumnNames">
        <Structure Type="List">
          <Item>ColumnName1</Item>
          <Item>ColumnName2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="Values">
        <Structure Type="List">
          <Item>Value1</Item>
          <Item>Value2</Item>
        </Structure>
      </Parameter>
    </Parameters>
  </Property>
</DataConnection>

Параметр ColumnNames ожидает линейный массив названий полей DataConnection.

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

Количество элементов в массиве в параметре Values должно совпадать с количеством элементов в массиве в параметре ColumnNames.

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

RowsIndicesOf

Возвращает массив индексов строки, удовлетворяющих условиям соответствия названий столбцов и значений в этих столбцах.

<DataConnection SourceDataConnection="PrimaryGetDataConnectionName">
  <Property Name="RowsIndicesOf">
    <Parameters>
      <Parameter Name="QueryName">SqlQueryName</Parameter>
      <Parameter Name="ColumnNames">
        <Structure Type="List">
          <Item>ColumnName1</Item>
          <Item>ColumnName2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="Values">
        <Structure Type="List">
          <Item>Value1</Item>
          <Item>
            <Structure Type="List">
              <Item>Value2</Item>
              <Item>Value3</Item>
            </Structure>
          </Item>
        </Structure>
      </Parameter>
      <Parameter Name="SearchWithArrays">True</Parameter>
    </Parameters>
  </Property>
</DataConnection>

Параметр ColumnNames ожидает линейный массив названий полей DataConnection.

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

Количество элементов в массиве в параметре Values должно совпадать с количеством элементов в массиве в параметре ColumnNames.

Необязательный параметр SearchWithArrays разрешает для каждого столбца использовать вложенный линейный массив значений, с элементами которого будет сравниваться значения из каждой строки соответствующего столбца. Ожидается логическое значение. По умолчанию используется значение False.

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

Column

Возвращает линейный массив значений, содержащихся в определенном столбце таблицы.

<DataConnection SourceDataConnection="PrimaryGetDataConnectionName">
  <Property Name="Column">
    <Parameters>
      <Parameter Name="QueryName">SqlQueryName</Parameter>
      <Parameter Name="ColumnName">ColumnName</Parameter>
    </Parameters>
  </Property>  
</DataConnection>

Параметр ColumnName ожидает название одного из полей PrimaryGetDataConnection.

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

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

AddRow

Добавляет новую строку в таблицу DataConnection.

<DataConnection Name="PrimaryGetDataConnectionName">
  <Property Name="AddRow">
    <Parameters>
      <Parameter Name="ColumnNames">
        <Structure Type="List">
          <Item>ColumnName1</Item>
          <Item>ColumnName2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="Values">
        <Structure Type="List">
          <Item>Value1</Item>
          <Item>Value2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="Index">0</Parameter>
      <Parameter Name="FireChanged">False</Parameter>
    </Parameters>
  </Property>
</DataConnection>

Параметр ColumnNames ожидает линейный массив названий полей DataConnection.

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

Необязательный параметр Index ожидает неотрицательное целочисленное значение, указывающее место вставки новой строки. Если параметр отсутствует, то строка добавляется в конец таблицы DataConnection.

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

AddRows

Добавляет новые строки в таблицу DataConnection.

<DataConnection Name="PrimaryGetDataConnectionName">
  <Property Name="AddRows">
    <Parameters>
      <Parameter Name="ColumnNames">
        <Structure Type="List">
          <Item>ColumnName1</Item>
          <Item>ColumnName2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="Values">
        <DataConnection SourceDataConnection="SourceDataConnectionName">
          <Fields>
            <Field Name="ColumnName1" />
            <Field Name="ColumnName2" />
          </Fields>
        </DataConnection>
      </Parameter>
      <Parameter Name="Index">0</Parameter>
      <Parameter Name="RawValues">True</Parameter>
      <Parameter Name="FireChanged">False</Parameter>
    </Parameters>
  </Property>
</DataConnection>

Параметр ColumnNames ожидает линейный массив названий полей DataConnection.

Параметр Values ожидает таблицу (например, ссылка на GetDataConnection) с числом столбцов равным числу имен столбцов, указанных в параметре ColumnNames. Допустимо указывать линейный массив, который будет соответствовать одной строке.

Необязательный параметр Index ожидает неотрицательное целочисленное значение, указывающее место вставки новой строки. Если параметр отсутствует, то строка добавляется в конец таблицы DataConnection.

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

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

UpdateRow

Изменяет значения полей в строке с указанным индексом.

<DataConnection Name="PrimaryGetDataConnectionName">
  <Property Name="UpdateRow">
    <Parameters>
      <Parameter Name="RowIndex">0</Parameter>
      <Parameter Name="ColumnNames">
        <Structure Type="List">
          <Item>ColumnName1</Item>
          <Item>ColumnName2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="Values">
        <Structure Type="List">
          <Item>Value1</Item>
          <Item>Value2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="RawValues">True</Parameter>
      <Parameter Name="FireChanged">False</Parameter>
    </Parameters>
  </Property>
</DataConnection>

Параметр ColumnNames ожидает линейный массив названий полей DataConnection.

Параметр Values ожидает линейный массив любых значений.

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

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

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

UpdateRows

Изменяет значения полей в строках с указанными индексами на соответствующее значение из массива.

Подробнее про set-проперти UpdateRows с примерами можно прочитать в отдельной статье по ссылке. Здесь дано краткое описание параметров.

<DataConnection Name="PrimaryGetDataConnectionName">
  <Property Name="UpdateRows">
    <Parameters>
      <Parameter Name="RowIndices">
        <Structure Type="List">
          <Item>1</Item>
          <Item>2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="ColumnNames">
        <Structure Type="List">
          <Item>ColumnName1</Item>
          <Item>ColumnName2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="Values">
        <Structure Type="List">
          <Item>Value1</Item>
          <Item>Value2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="ReplicateValues">False</Parameter>
      <Parameter Name="RawValues">True</Parameter>
      <Parameter Name="FireChanged">False</Parameter>
    </Parameters>
  </Property>
</DataConnection>

Параметр ColumnNames ожидает линейный массив названий полей DataConnection.

Параметр Values ожидает линейный массив или матрицу любых значений.

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

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

Если параметр ReplicateValues имеет значение False, то значение параметра Values рассматривается как матрица значений, которые будут записаны в строки с индексами, указанными в параметре RowIndices. При этом:

  • Если количество элементов строки матрицы не совпадает с количеством полей, указанных в параметре ColumnNames, то в соответствующие ячейки ставится значение NULL;

  • Если количество строк матрицы не совпадает с количеством индексов, указанных в параметре RowIndices, то в ячейки строк, для которых отсутствуют строки в матрице, ставится значение NULL.

Если параметр ReplicateValues имеет значение True, то значение параметра Values рассматривается как линейный массив значений, который заполняет каждую строку, подставляя элементы в соответствующие колонки.

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

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

UpdateColumn

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

<DataConnection Name="PrimaryGetDataConnectionName">
  <Property Name="UpdateColumn">
    <Parameters>
      <Parameter Name="ColumnName">ColumnName</Parameter>
      <Parameter Name="Values">
        <Structure Type="List">
          <Item>Value1</Item>
          <Item>Value2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="RawValues">True</Parameter>
      <Parameter Name="FireChanged">False</Parameter>
    </Parameters>
  </Property>
</DataConnection>

Параметр ColumnName ожидает название поля DataConnection.

Параметр Values ожидает линейный массив любых значений. Если длина массива меньше количества строк в соединении с данными, то оставшиеся строки не будут изменяться. Если длина массива больше, то оставшиеся значения будут отброшены.

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

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

UpdateColumnCellsValues

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

<DataConnection Name="PrimaryGetDataConnectionName">
  <Property Name="UpdateColumnCellsValues">
    <Parameters>
      <Parameter Name="ColumnName">ColumnName</Parameter>
      <Parameter Name="RowIndices">
        <Structure Type="List">
          <Item>1</Item>
          <Item>2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="Value">Value</Parameter>
      <Parameter Name="RawValues">True</Parameter>
      <Parameter Name="FireChanged">False</Parameter>
    </Parameters>
  </Property>
</DataConnection>

Параметр ColumnName ожидает название поля DataConnection.

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

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

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

DeleteRowsByIndices

Удаляет строки с указанными индексами.

<DataConnection Name="PrimaryGetDataConnectionName">
  <Property Name="UpdateColumnCellsValues">
    <Parameters>
      <Parameter Name="Value">
        <Structure Type="List">
          <Item>1</Item>
          <Item>2</Item>
        </Structure>
      </Parameter>
      <Parameter Name="FireChanged">False</Parameter>
    </Parameters>
  </Property>
</DataConnection>

Необязательный параметр Value ожидает линейный массив неотрицательных целочисленных значений. Если параметр отсутствует, то удаляются все строки.

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

FireChanged

Рассылает событие об изменении данных.

<DataConnection Name="PrimaryGetDataConnectionName">
  <Property Name="FireChanged" />
</DataConnection>

Значение не ожидается.

ValueChanged

Задает признак изменения значения соединения с данными.

<DataConnection Name="PrimaryGetDataConnectionName">
  <Property Name="ValueChanged">False</Property>
</DataConnection>

Ожидается логическое значение.

Last updated