Без использования таблицы или матрицы? Почему нет? Вы действительно не можете сделать это без использования одного из этих элементов управления ...
Если не обращать внимания на это на мгновение, проблема, с которой вы столкнетесь, заключается в том, что запрос набора данных должен всегда возвращать одну и ту же структуру каждый раз, когда он run, чтобы вы не могли напрямую указать его на запрос, который постоянно меняется. на том. Используя матрицу, вы можете восстановить таблицу в отчете.
У этого подхода есть недостатки. Все данные значений должны быть преобразованы в постоянный тип данных, поэтому, если каждая строка имеет сочетание текстовых и числовых c значений, все они должны быть преобразованы в текст.
Этот подход также предполагает наличие ключевой столбец в таблице / представлении.
Ниже приведен простой пример того, что я имею в виду. Это основано на образце базы данных AdventureWorksDW2016 на случай, если вы захотите ее протестировать. последовательная структура.
SELECT * FROM #result where keyid in (207,208) order by KeyID, ColumnPosition
введите описание изображения здесь
Теперь вы можете создать простой отчет с помощью матрицы, иметь группу строк, группирующуюся по KeyID
, и группу столбцов, группирующуюся по ColumnName
. Сортировка группы столбцов может быть установлена на ColumnPosition
, а ячейка «данных» матрицы установлена на ColumnValue
.
Весь этот процесс эффективно воссоздает таблицу / представление и будет динамически c.