Дополнительно
РАЗДЕЛ НАХОДИТСЯ В РАЗРАБОТКЕ
Статьи из этого раздела помогают лучше понять некоторые элементы платформы WT и не добавляют новую логику в учебный проект.
Статьи посвящены:
Array - универсальное значение для работы с массивами/матрицами на форме;
ArrayGetDataConnection - загружающее соединение с данными, которое преобразует массив/матрицу в DataConnection для использования на форме, например, в таблице DatabaseTable;
ConvertDataConnection - загружающее соединение с данными преобразующее структуру данных, полученных из другого загружающего соединения с данными.
Подготовка
Для работы со статьями этого раздела нам понадобиться тестовая форма:
Скачайте файл формы и добавьте его в папку Forms проекта. Настройте команду открытия тестовой формы с главной формы WT-программы, например, через главное меню - так будет удобнее работать с формой без необходимости перезапускать приложение.
Форма
На форме есть список клиентов, список городов и список позиций заказов. Архивные клиенты и города закрашиваются серым цветом.

На основе этих списков будем рассматривать работу с универсальным значением <Array>
и ArrayGetDataConnection. Полученные результаты от выполнения операций над массивом/матрицей будем отображать в текстовом поле справа. А результат работы с ArrayGetDataConnection будем отображать в таблице.
Запросы
Добавьте в серверный xml-файл запрос на получение списка клиентов, списка городов и списка позиций заказов:
<SqlQuery Name="TestClientSelectSqlQuery">
<Text>
SELECT
client_id AS "ClientId",
title AS "Title",
city_id AS "CityId",
archive AS "Archive"
FROM
template.client
ORDER BY client_id;
</Text>
</SqlQuery>
<SqlQuery Name="TestCitySelectSqlQuery">
<Text>
SELECT
city_id AS "CityId",
title AS "Title",
archive AS "Archive"
FROM
template.city
ORDER BY city_id;
</Text>
</SqlQuery>
<SqlQuery Name="TestOrderPositionSelectSqlQuery">
<Text>
SELECT
O.client_id AS "ClientId",
M.title AS "MaterialTitle",
OP.quantity AS "Quantity",
OP.unit_price AS "UnitPrice",
MC.title AS "MaterialCategoryTitle",
U.short_title AS "UnitShortTitle"
FROM
template.order_position OP
LEFT JOIN template.order O USING(order_id)
LEFT JOIN template.material M USING(material_id)
LEFT JOIN template.material_category MC USING(material_category_id)
LEFT JOIN template.unit U USING(unit_id)
ORDER BY O.client_id;
</Text>
</SqlQuery>
<SqlQuery Name="TestOrderSelectSqlQuery">
<Text>
SELECT
order_id AS "OrderId",
client_id AS "ClientId",
order_number AS "OrderNumber",
order_date AS "OrderDate"
FROM
template.order
WHERE
NOT deleted AND
added;
</Text>
</SqlQuery>
Добавьте права доступа на тестовые запросы группе GuestGroup.
Отлично! Теперь можем подробнее поговорить об особенностях работы <Array>
и ArrayGetDataConnection.
Last updated