У меня есть ДБГРИД. Первые 7 столбцов неизменны, остальные (вывод годов в названии столбцов) могут меняться пользователем! Как при помощи RaveReport каждый раз подставлять новые поля или их удалять?
На даный момент динамически в пустой отчёт создаю подключение к данным, розполагаю все надписи и вывод данных с базы.
Код:
TmpRaveReport := RvProjectRTR.ProjMan.ActiveReport;
// Создание TRaveDataView обеспечивающий работу с источником данных
TmpDataView := TRaveDataView.create(RvProjectRTR.ProjMan);
RvProjectRTR.ProjMan.DataObjectList.Add(TmpDataView);
with TmpDataView do
begin
Name := NewDataView;
Parent := RvProjectRTR.ProjMan;
DataCon.Connection := RvDataSetConnectionRTR;
ConnectionName := TmpDataView.DataCon.Connection.Name;
end;
// Создание TRaveRegion на котром будут расположены компоненты
// для работы с источником данных
TmpRaveRegion := TRaveRegion.create(TmpRaveReport.FirstPage);
with TmpRaveRegion do
begin
Name := 'NewRaveRegion'; // параметры всего региона
Parent := TmpRaveReport.FirstPage;
Left := SetPointInPercent(TmpRaveReport.FirstPage.PageWidth, 1);
Top := SetPointInPercent(TmpRaveReport.FirstPage.PageHeight, 5);
Width := SetPointInPercent(TmpRaveReport.FirstPage.PageWidth, 100);
Height := SetPointInPercent(TmpRaveReport.FirstPage.PageHeight, 97);
end;
// ********* 1 регион для заголовка ***************************************
TmpRaveBand1 := TRaveBand.create(TmpRaveRegion);
with TmpRaveBand1 do
begin
Name := 'NewDataBand1';
Parent := TmpRaveRegion;
Left := SetPointInPercent(TmpRaveRegion.Width, 1);
Top := SetPointInPercent(1, 1);
Width := SetPointInPercent(TmpRaveRegion.Width, 160);
Height := SetPointInPercent(1.3, 0);
end;
// ********* 2 регион для назв столбцов ***********************************
TmpRaveBand2 := TRaveBand.create(TmpRaveRegion);
with TmpRaveBand2 do
begin
Name := 'NewDataBand2';
Parent := TmpRaveRegion;
Left := SetPointInPercent(TmpRaveRegion.Width, 1);
Top := SetPointInPercent(0, 0);
Width := SetPointInPercent(TmpRaveRegion.Width, 160);
Height := SetPointInPercent(0.233, 1);
end;
// ********* 3 регион *****************************************************
// Создание TRaveDataBand для размещения елементов оформления отчета на нем
TmpRaveDataBand := TRaveDataBand.create(TmpRaveRegion);
with TmpRaveDataBand do
begin
Name := 'NewDataBand';
Parent := TmpRaveRegion;
Left := SetPointInPercent(TmpRaveRegion.Width, 1);
Top := SetPointInPercent( 0, 2);
Width := SetPointInPercent(TmpRaveRegion.Width, 160);
Height := SetPointInPercent(TmpRaveRegion.Height, 3);
DataView := TmpDataView;
end;
lmikle: пользуемся тегами!!!
НО! когда при переходе на новую страницу данные выводятся не с начала страницы а с того места где и на первой страницы!!!!
Может я неверно чёто делаю? Подскажите!!!