diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.SQLServer/SQLServerDatabaseDriver.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.SQLServer/SQLServerDatabaseDriver.cs index 40ade9d5e1..097fffda76 100644 --- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.SQLServer/SQLServerDatabaseDriver.cs +++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.SQLServer/SQLServerDatabaseDriver.cs @@ -139,7 +139,9 @@ namespace ICSharpCode.Data.Core.DatabaseDrivers.SQLServer public override string ODBCProviderName { - get { return "SQLNCLI10.1"; } + // SqlServer 2012 +// get { return "SQLNCLI10.1"; } + get { return "SQLNCLI11.0"; } } public override void PopulateDatasources() diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs index 6b5a261047..94b606e20e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs @@ -69,7 +69,8 @@ namespace ICSharpCode.Reporting.PageBuilder ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height); var pageFooter = CreateSection(ReportModel.PageFooter,CurrentLocation); - DetailEnds = new Point(pageFooter.Location.X,pageFooter.Location.Y -1); +// DetailEnds = new Point(pageFooter.Location.X,pageFooter.Location.Y -1); + DetailEnds = new Point(pageFooter.Location.X + pageFooter.Size.Width,pageFooter.Location.Y -1); AddSectionToPage(pageFooter); } @@ -101,7 +102,6 @@ namespace ICSharpCode.Reporting.PageBuilder } - protected bool old_PageFull(System.Collections.Generic.List columns) { var rectToPrint = new Rectangle(columns[0].Location,columns[0].Size); @@ -114,9 +114,22 @@ namespace ICSharpCode.Reporting.PageBuilder } - protected bool PageFull(IExportContainer row) { + protected bool old_1_PageFull(IExportContainer row) { var rectToPrint = new Rectangle(row.Location,row.DesiredSize); - if (rectToPrint.Bottom > DetailEnds.Y) { + Console.WriteLine("{0} - {1}",rectToPrint.Bottom.ToString(),DetailEnds.Y); + if (rectToPrint.Bottom > DetailEnds.Y) { + Console.WriteLine("-----------PB----------"); + return true; + } + return false; + } + + + + protected bool PageFull(IExportContainer row) { + var rectToPrint = new Rectangle(new Point(row.Location.X,row.Location.Y + DetailsRectangle.Location.Y), + row.DesiredSize); + if (!DetailsRectangle.Contains(rectToPrint)) { return true; } return false; @@ -190,6 +203,13 @@ namespace ICSharpCode.Reporting.PageBuilder internal Point DetailEnds {get; private set;} + internal Rectangle DetailsRectangle { + get { + var s = new Size(DetailEnds.X - DetailStart.X,DetailEnds.Y - DetailStart.Y); + return new Rectangle(DetailStart,s); + } + } + protected Graphics Graphics {get;private set;} public Collection Pages {get; private set;} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs index 21d6fe87ac..6ccacdf821 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs @@ -111,7 +111,7 @@ namespace ICSharpCode.Reporting.PageBuilder var row = CreateContainerIfNotExist(CurrentSection,detail, position); collectionSource.Fill(CurrentSection.Items); -//var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection,row); + //var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection,row); var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection,row,position); MeasureAndArrangeContainer(converter,row); @@ -135,8 +135,8 @@ namespace ICSharpCode.Reporting.PageBuilder MeasureAndArrangeContainer(converter,row); row.ExportedItems.AddRange(recreate); } - */ - + */ + if (old_PageFull(convertedItems)) { InsertDetailAtPosition(detail); Pages.Add(CurrentPage); @@ -148,7 +148,6 @@ namespace ICSharpCode.Reporting.PageBuilder row = CreateContainerIfNotExist(CurrentSection,detail,position); var recreate = converter.CreateConvertedList(ReportModel.DetailSection,row,position); -// var recreate = converter.CreateConvertedList(ReportModel.DetailSection,row); MeasureAndArrangeContainer(converter,row); row.ExportedItems.AddRange(recreate); } @@ -159,7 +158,6 @@ namespace ICSharpCode.Reporting.PageBuilder while (collectionSource.MoveNext()); InsertDetailAtPosition(detail); -// base.BuildReportFooter(); } else { detail = CreateContainerForSection(DetailStart); @@ -168,12 +166,11 @@ namespace ICSharpCode.Reporting.PageBuilder } } - + void BuildDetail() { var converter = new ContainerConverter(base.Graphics, CurrentLocation); -// var position = DetailStart; - var position = new Point(DetailStart.X,1); + var position = ResetPosition(); var collectionSource = new CollectionSource(List,ElementType,ReportModel.ReportSettings); CurrentSection = ReportModel.DetailSection; @@ -184,14 +181,10 @@ namespace ICSharpCode.Reporting.PageBuilder detail = CreateDetail(DetailStart); do { - - var row = CreateContainerIfNotExist(CurrentSection,detail, position); collectionSource.Fill(CurrentSection.Items); - var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection,row); - - MeasureAndArrangeContainer(converter,row); - row.ExportedItems.AddRange(convertedItems); + var row = CreateAndArrangeContainer(converter,position,detail); + Console.WriteLine("position {0}",position); if (PageFull(row)) { InsertDetailAtPosition(detail); Pages.Add(CurrentPage); @@ -200,13 +193,9 @@ namespace ICSharpCode.Reporting.PageBuilder position = ResetPosition(); detail = CreateDetail(DetailStart); CurrentLocation = DetailStart; - - row = CreateContainerIfNotExist(CurrentSection,detail,position); - var recreate = converter.CreateConvertedList(ReportModel.DetailSection,row); - MeasureAndArrangeContainer(converter,row); - row.ExportedItems.AddRange(recreate); + row = CreateAndArrangeContainer(converter,position,detail); } - + detail.ExportedItems.Add(row); position = new Point(CurrentSection.Location.Y,position.Y + CurrentSection.Size.Height); } @@ -220,6 +209,16 @@ namespace ICSharpCode.Reporting.PageBuilder } } + + IExportContainer CreateAndArrangeContainer(ContainerConverter converter, Point position,IExportContainer parent) + { + var row = CreateContainerIfNotExist(CurrentSection, parent, position); + var recreate = converter.CreateConvertedList(ReportModel.DetailSection, row); + MeasureAndArrangeContainer(converter, row); + row.ExportedItems.AddRange(recreate); + return row; + } + IExportContainer CreateContainerIfNotExist(IReportContainer container, IExportContainer parent, Point position) { @@ -248,7 +247,7 @@ namespace ICSharpCode.Reporting.PageBuilder Point ResetPosition () { - return DetailStart; + return new Point(DetailStart.X,1); } @@ -277,7 +276,6 @@ namespace ICSharpCode.Reporting.PageBuilder } -// internal IReportContainer Container { get; private set; } internal IReportContainer CurrentSection { get; private set; } public IEnumerable List {get; private set;}