Добрый день!
Был создан отчет. Основная его функция сбор данных, обработка и отображение результата.
Так как некоторые объекты могут изыматься из системы было принято решение сделать типа динамического отчета.
Кодом ниже мы из источника типа MySQL выбираем нужные данные, фильтруем и получаем определенный результат:
SELECT ID, MIN(Value) AS min_v, MAX(Value) AS max_v FROM database.trends_data
WHERE ID IN (3621, 3622)
AND (timestamp >= @PeriodStart)
AND (timestamp <= @PeriodFinish)
AND Value <> 0
AND Quality = 1
GROUP BY ID;
Далее для отображения полученного результата (в ячейке источника данных) вставляем такой код:
{Switch(database_trends_data.ID == 3621,"210_001.Пробег(км)",
database_trends_data.ID == 3622,"210_001.Время движения(ч)")}
Добавляем туда все, что хотим, помня о том, что команда switch может принять 21 параметр(могу ошибаться). При этом мы можем вставить несколько таких команд, соблюдая синтаксис.
В свойствах ячейки выставляем выравнивания по центру, формат стандарт - текст.
И на выходе получаем изображение из рисунка №1.
Видно, что все что входит во второй switch в колонке 'ID' смещено вниз на одну строку как бы.
Вопрос №1. Почему?
Допускаю, что использовать двух switch не правильно.
Вопрос №2. Можете указать как правильно?
Потребовалось изменить отчет добавлением по каждому объекту третьего параметра.
Находим в редакторе ID новых переменных. Проверяем в БД, что есть архивные значения.
Вставляем соответствующие ID в запрос к бд из репорта. Вставляем и группируем в оформлении, типа так:
{Switch(database_trends_data.ID == 3621,"210_001.Пробег(км)",
database_trends_data.ID == 3622,"210_001.Время движения(ч)",
database_trends_data.ID == 6991,"210_001.Время работы(ч)")}
И ожидаем увидеть по порядку 3 параметра к каждому объекту, но все в разнобой. Новые переменные вообще в самом конце.
Вопрос №3. Как можно навести порядок?
Возможно есть более простой и адекватный способ получения отчета. Тогда отсылка к вопросу 2.
Жду вопросов и предложений!