Это довольно просто.
У вас уже есть основной отчет и подчиненные отчеты, так что это хорошо.Я предполагаю, что ваш подотчет принимает параметр, который указывает фазу.
Предполагая это, скажем, параметр, принимаемый вашим подотчетом, называется pPhase
- В вашем основном отчете удалитевсе существующие подотчеты
- Далее создайте набор данных, назовем его
dsLoop
- Установить запрос набора данных
dsLoop
s для возврата фаз в порядке, например SELECT DISTINCT PhaseNumber from myTable ORDER BY PhaseNumber
- Теперь добавьте элемент управления таблицей, удалите строку заголовка и два столбца, оставив только одну ячейку.
- Сделайте эту ячейку настолько широкой, насколько вам нужно, достаточно широкой для вашего подотчета, высота не имеет значения.
- Установите для свойства
DataSetName
таблицы значение dsLoop
- В оставшейся ячейке щелкните правой кнопкой мыши и выберите
Insert --> Subreport
.Элемент управления подотчета заполнит ячейку. - Щелкните правой кнопкой мыши элемент управления подотчета и выберите
Subreport Properties
, выберите свой подотчет из списка - Все еще в свойствах подотчета, нажмите вкладку параметров, добавьтеновый параметр.
- Установите в качестве имени имя параметра, которое принимает ваш подотчет (
pPhase
в нашем примере).Наконец, установите в качестве значения имя поля, содержащего данные вашего параметра (PhaseNumber
в нашем примере)
Вот и все ...
Теперь, когда запускается основной отчетв вашей таблице будет создана строка для каждой записи в dsLoop
, каждая строка будет содержать ваш подотчет, и в каждой будет передан параметр, относящийся к каждой строке.
Если у вас есть какие-либо проблемы, дайте мне знать, и я выложу полный пример.