2017-01-04 11 views
-2

In einem älteren Projekt verwenden wir eine alte Version von Telerik Reporting (q3 2013), wo wir einen PDF-Bericht erstellen. Wir haben einen Master-/Unterbericht, in dem einer der Unterreport-Inhalte im Code hinzugefügt wird. Wenn genügend Objekte vorhanden sind, die auf der nächsten Seite gerendert werden müssen, können wir sehen, dass das 2. Element auf Seite 2 über dem ersten Element gerendert wird. Ich bekomme das gleiche Verhalten, auch wenn ich ein Panel anstelle unseres benutzerdefinierten Steuerelements hinzufüge. Der verwendete Bericht enthält nur einen Panel-Eintrag, in dem keeptogether auf "true" gesetzt ist.Telerik Reporting Layout-Problem, wenn mehrere Seiten

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

Haben Sie Screenshots, Code oder eine Beschreibung, wie es konfiguriert ist? –

Antwort

0

Das Problem hier ist Docking = DockingStyle.Top. Ersetzen Sie dies durch den Standort und berechnen Sie den y-Wert basierend auf der Anzahl der Schleifen gelöst das Layout Problem