2017-01-04 6 views
-2

В устаревшем проекте мы используем старую версию отчетности telerik (q3 2013), где мы создаем отчет в формате PDF. У нас есть master/subreport, где в код добавляется один из содержимого подписок. Когда на странице должно быть достаточно элементов, которые должны отображать на следующей странице, мы видим, что второй элемент на странице2 отображается поверх первого элемента. Я получаю такое же поведение, даже если я добавляю панель вместо нашего настраиваемого элемента управления. Используемый отчет содержит только один элемент панели, где значение keeptogether равно true.Проблема с публикацией отчетов Telerik, когда несколько страниц

Screenshot of report

private void ContractualInformationChartItemDataBinding(object sender, EventArgs eventArgs) 
    { 
     panel.Items.Clear(); 
     panel.Width = Unit.Inch(4.82); 
     var week = int.Parse(ReportParameters["Week"].Value.ToString()); 
     var year = int.Parse(ReportParameters["Year"].Value.ToString()); 
     var regionId = int.Parse(ReportParameters["RegionId"].Value.ToString()); 

     using (var provider = new Provider()) 
     { 
      var report = 
       new TimeReportService().GetOrCreateWeeklyReport(week, year, provider) 
       .WeeklyRegionReports.First(wr => wr.RegionId == regionId && wr.DeletedBy == null && wr.DeletedDate == null); 
      if (report.ContractualInformations != null && report.ContractualInformations.Any()) 
      { 
       foreach (var rig in report.ContractualInformations.Where(r => r.DeletedBy == null && r.DeletedDate == null).Select(zt => zt.Rig).Distinct()) 
       { 
        //The code for the chart can be replaced with a new panel with yellow background and the issue is still the same 
        var budget = new ContractualInformationService().GetContractualInformation(report.WeeklyReport.Week, report.WeeklyReport.Year, rig.Id, ContractualInformationType.Budget, provider); 
        var forecast = new ContractualInformationService().GetContractualInformation(report.WeeklyReport.Week, report.WeeklyReport.Year, rig.Id, ContractualInformationType.Forecast, provider); 
        var chart = new ContractualInformationChart(budget, forecast) 
        { 
         Docking = DockingStyle.Top, 
         Height = Unit.Inch(1.35), 
         Width = panel.Width, 
        }; 

        chart.Style.Padding.Bottom = Unit.Inch(0.05); 
        panel.Items.Add(chart); 
       } 
      } 

     } 
    } 

} 
+0

Есть ли у вас скриншоты, код или описание того, как он настроен? –

ответ

0

Вопрос здесь Док = DockingStyle.Top. Заменяя это на Location и вычисляя значение y на основе количества циклов, решена проблема макета