![]() |
|
|
#1
|
|||
|
|||
![]() У меня есть ДБГРИД. Первые 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: пользуемся тегами!!! НО! когда при переходе на новую страницу данные выводятся не с начала страницы а с того места где и на первой страницы!!!! Может я неверно чёто делаю? Подскажите!!! Последний раз редактировалось lmikle, 08.08.2012 в 19:07. |