Browse Source

fixed http://community.sharpdevelop.net/forums/AddPost.aspx?ReplyToPostID=29354&Quote=False

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@5425 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 16 years ago
parent
commit
6c04ae3b35
  1. 11
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs
  2. 14
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs
  3. 1
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseClasses/SinglePage.cs
  4. 4
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseItems/BaseReportItem.cs
  5. 78
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseItems/BaseTableItem.cs
  6. 6
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/Converters/RowConverter.cs
  7. 2
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
  8. 1
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Interfaces/IContainerItem.cs
  9. 17
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs
  10. 2
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Printing/AbstractRenderer.cs
  11. 2
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Printing/RenderDataReport.cs
  12. 25
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportEngine.cs

11
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs

@ -39,9 +39,7 @@ namespace ICSharpCode.Reports.Core @@ -39,9 +39,7 @@ namespace ICSharpCode.Reports.Core
System.Collections.Generic.IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in container.Items where bt.CanGrow == true select bt;
if (canGrowShrinkCollection.Count() > 0 ) {
FindLowestElement (container.Items);
int extend = containerItem.Size.Height - canGrowShrinkCollection.First().Size.Height;
// Rectangle surroundingRec = this.FindSurroundingRectangle_2(graphics,container.Items);
Rectangle surroundingRec = FindSurroundingRectangle(graphics,canGrowShrinkCollection);
if (surroundingRec.Height > desiredContainerRectangle.Height) {
@ -51,6 +49,7 @@ namespace ICSharpCode.Reports.Core @@ -51,6 +49,7 @@ namespace ICSharpCode.Reports.Core
surroundingRec.Size.Height + extend);
}
}
return desiredContainerRectangle;
}
@ -64,7 +63,7 @@ namespace ICSharpCode.Reports.Core @@ -64,7 +63,7 @@ namespace ICSharpCode.Reports.Core
throw new ArgumentNullException("section");
}
section.Items.SortByLocation();
FindLowestElement (section.Items);
IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in section.Items where bt.CanGrow == true select bt;
Rectangle desiredSectionRectangle = new Rectangle(section.Location.X,
@ -85,11 +84,7 @@ namespace ICSharpCode.Reports.Core @@ -85,11 +84,7 @@ namespace ICSharpCode.Reports.Core
return desiredSectionRectangle;
}
private BaseReportItem FindLowestElement (ReportItemCollection items)
{
return null;
}
private Rectangle FindSurroundingRectangle_2 (Graphics graphics,IEnumerable<BaseReportItem> canGrowShrinkCollection)
{

14
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs

@ -23,10 +23,24 @@ namespace ICSharpCode.Reports.Core @@ -23,10 +23,24 @@ namespace ICSharpCode.Reports.Core
}
#region Layout
public static void SetLayoutForRow (Graphics graphics, ILayouter layouter,BaseSection section)
{
IContainerItem row = section.Items[0] as IContainerItem;
Size containerSize = new Size (section.Items[0].Size.Width,section.Items[0].Size.Height);
BaseReportItem item = row as BaseReportItem;
int extend = item.Size.Height - row.Items[0].Size.Height;
Rectangle textRect = layouter.Layout(graphics,row);
if (textRect.Height >= item.Size.Height) {
item.Size = new Size(item.Size.Width,textRect.Height + extend );
}
section.Items[0].Size = containerSize;
}
public static void SetLayoutForRow (Graphics graphics, ILayouter layouter,IContainerItem row)
{
BaseReportItem item = row as BaseReportItem;
Size containerSize = new Size (item.Size.Width,item.Size.Height);
int extend = item.Size.Height - row.Items[0].Size.Height;
Rectangle textRect = layouter.Layout(graphics,row);
if (textRect.Height >= item.Size.Height) {

1
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseClasses/SinglePage.cs

@ -40,7 +40,6 @@ namespace ICSharpCode.Reports.Core @@ -40,7 +40,6 @@ namespace ICSharpCode.Reports.Core
throw new ArgumentNullException("reportModel");
}
Console.WriteLine("CalculatePageBounds for {0}",this.PageNumber);
sectionBounds.MeasureReportHeader(reportModel.ReportHeader);
//PageHeader

4
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseItems/BaseReportItem.cs

@ -32,9 +32,9 @@ namespace ICSharpCode.Reports.Core { @@ -32,9 +32,9 @@ namespace ICSharpCode.Reports.Core {
private int sectionOffset;
private Font font;
[Obsolete]
[Obsolete ("will be deleted")]
public event EventHandler<BeforePrintEventArgs> ItemPrinting;
[Obsolete]
[Obsolete("will be deleted")]
public event EventHandler<AfterPrintEventArgs> ItemPrinted;
private RectangleShape backgroundShape = new RectangleShape();

78
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseItems/BaseTableItem.cs

@ -22,7 +22,7 @@ namespace ICSharpCode.Reports.Core { @@ -22,7 +22,7 @@ namespace ICSharpCode.Reports.Core {
private SectionBounds sectionBounds;
private IDataNavigator dataNavigator;
private IExpressionEvaluatorFacade expressionEvaluatorFacade;
private ISinglePage singlePage;
// private ISinglePage singlePage;
private ILayouter layouter;
@ -84,7 +84,7 @@ namespace ICSharpCode.Reports.Core { @@ -84,7 +84,7 @@ namespace ICSharpCode.Reports.Core {
if (rpea == null) {
throw new ArgumentNullException("rpea");
}
//
//
Point saveLocation = this.Location;
Point currentPosition = new Point(this.SectionBounds.DetailStart.X,rpea.LocationAfterDraw.Y);
@ -129,8 +129,8 @@ namespace ICSharpCode.Reports.Core { @@ -129,8 +129,8 @@ namespace ICSharpCode.Reports.Core {
rpea.LocationAfterDraw = new Point(rpea.LocationAfterDraw.X,rpea.LocationAfterDraw.Y + 20);
base.NotifyAfterPrint (rpea.LocationAfterDraw);
}
private Point PrintRow (ReportPageEventArgs rpea,BaseRowItem row,Point drawAt, int leftX)
{
int extend = row.Size.Height - row.Items[0].Size.Height;
@ -162,48 +162,44 @@ namespace ICSharpCode.Reports.Core { @@ -162,48 +162,44 @@ namespace ICSharpCode.Reports.Core {
public SectionBounds SectionBounds{
get {return this.sectionBounds;}
}
#region Interface implementation of 'ITableContainer'
public void RenderTable (BaseReportItem parent,SectionBounds sectionBounds,ReportPageEventArgs rpea,ILayouter layouter)
{
#region Interface implementation of 'ITableContainer'
public void RenderTable (BaseReportItem parent,SectionBounds sectionBounds,ReportPageEventArgs rpea,ILayouter layouter)
{
this.sectionBounds = sectionBounds;
this.Parent = parent;
this.layouter = layouter;
this.Render (rpea);
}
public ReportItemCollection Items {
get {
if (this.items == null) {
this.items = new ReportItemCollection();
}
return items;
this.sectionBounds = sectionBounds;
this.Parent = parent;
this.layouter = layouter;
this.Render (rpea);
}
public ReportItemCollection Items {
get {
if (this.items == null) {
this.items = new ReportItemCollection();
}
return items;
}
}
public IDataNavigator DataNavigator {
set { dataNavigator = value;
if (this.dataNavigator.CurrentRow < 0 ) {
this.dataNavigator.MoveNext();
}
public IDataNavigator DataNavigator {
set { dataNavigator = value;
if (this.dataNavigator.CurrentRow < 0 ) {
this.dataNavigator.MoveNext();
}
}
public IExpressionEvaluatorFacade ExpressionEvaluatorFacade {
set { this.expressionEvaluatorFacade = value; }
}
public ISinglePage SinglePage {
set { singlePage = value; }
}
#endregion
}
public IExpressionEvaluatorFacade ExpressionEvaluatorFacade {
set { this.expressionEvaluatorFacade = value; }
}
#endregion
}
}

6
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/Converters/RowConverter.cs

@ -55,7 +55,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -55,7 +55,7 @@ namespace ICSharpCode.Reports.Core.Exporter
{
ExporterCollection mylist = new ExporterCollection();
BaseSection section = parent as BaseSection;
Size containerSize = new Size (section.Items[0].Size.Width,section.Items[0].Size.Height);
IContainerItem row = section.Items[0] as IContainerItem;
do {
@ -65,7 +65,8 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -65,7 +65,8 @@ namespace ICSharpCode.Reports.Core.Exporter
//
section.Size = this.SectionBounds.DetailSectionRectangle.Size;
base.FireSectionRendering(section);
PrintHelper.SetLayoutForRow(base.Graphics,base.Layouter,row);
PrintHelper.SetLayoutForRow(base.Graphics,base.Layouter,section);
mylist.AddRange(this.ConvertTextOnlyRow(parent,item));
section.SectionOffset += section.Size.Height + 2 * base.SinglePage.SectionBounds.Gap;
@ -77,7 +78,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -77,7 +78,6 @@ namespace ICSharpCode.Reports.Core.Exporter
section.SectionOffset = base.SinglePage.SectionBounds.PageHeaderRectangle.Location.Y;
mylist.Clear();
}
section.Items[0].Size = containerSize;
}
while (base.DataNavigator.MoveNext());

2
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs

@ -52,9 +52,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -52,9 +52,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected override void BuildNewPage ()
{
Console.WriteLine("BuildNewPage");
base.BuildNewPage();
if (this.dataNavigator != null) {
this.SinglePage.StartRow = this.dataNavigator.CurrentRow +1;
}

1
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Interfaces/IContainerItem.cs

@ -27,6 +27,5 @@ namespace ICSharpCode.Reports.Core.Interfaces @@ -27,6 +27,5 @@ namespace ICSharpCode.Reports.Core.Interfaces
IDataNavigator DataNavigator {set;}
IExpressionEvaluatorFacade ExpressionEvaluatorFacade {set;}
void RenderTable (BaseReportItem parent, SectionBounds sectionBounds, ReportPageEventArgs rpea,ILayouter layouter);
ISinglePage SinglePage {set;}
}
}

17
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs

@ -81,19 +81,13 @@ namespace ICSharpCode.Reports.Core @@ -81,19 +81,13 @@ namespace ICSharpCode.Reports.Core
IContainerItem container,
ReportPageEventArgs rpea)
{
if (container == null) {
return new Point(section.Location.Y, section.Size.Height);
}
Point drawPoint = Point.Empty;
//Always set section.size to it's original value
section.Size = this.SectionBounds.DetailSectionRectangle.Size;
PrintHelper.SetLayoutForRow(rpea.PrintPageEventArgs.Graphics,base.Layout,container);
if (section.Visible){
//Always set section.size to it's original value
section.Size = this.SectionBounds.DetailSectionRectangle.Size;
PrintHelper.SetLayoutForRow(rpea.PrintPageEventArgs.Graphics,base.Layout,section);
section.Render (rpea);
foreach (BaseReportItem item in section.Items) {
if (item.Parent == null) {
@ -111,6 +105,7 @@ namespace ICSharpCode.Reports.Core @@ -111,6 +105,7 @@ namespace ICSharpCode.Reports.Core
}
return drawPoint;
}
return drawPoint;
}

2
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Printing/AbstractRenderer.cs

@ -189,6 +189,7 @@ namespace ICSharpCode.Reports.Core @@ -189,6 +189,7 @@ namespace ICSharpCode.Reports.Core
public static void PageBreak(ReportPageEventArgs pea)
{
System.Console.WriteLine("PageBreak");
if (pea == null) {
throw new ArgumentNullException("pea");
}
@ -197,6 +198,7 @@ namespace ICSharpCode.Reports.Core @@ -197,6 +198,7 @@ namespace ICSharpCode.Reports.Core
}
public static bool IsPageFull (Rectangle rectangle,SectionBounds bounds)
{
if (rectangle.Bottom > bounds.PageFooterRectangle.Top) {

2
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Printing/RenderDataReport.cs

@ -157,7 +157,7 @@ namespace ICSharpCode.Reports.Core { @@ -157,7 +157,7 @@ namespace ICSharpCode.Reports.Core {
tableContainer.DataNavigator = nav;
tableContainer.Parent = base.CurrentSection;
tableContainer.ExpressionEvaluatorFacade = base.ExpressionFassade;
tableContainer.SinglePage = base.SinglePage;
// tableContainer.SinglePage = base.SinglePage;
tableContainer.RenderTable(base.CurrentSection,this.SectionBounds,rpea,this.Layout);
this.ReportDocument.DetailsDone = true;

25
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportEngine.cs

@ -56,7 +56,6 @@ namespace ICSharpCode.Reports.Core { @@ -56,7 +56,6 @@ namespace ICSharpCode.Reports.Core {
ConnectionObject conObj = null;
if (reportParameters != null) {
if (reportParameters.ConnectionObject != null) {
UpdateSqlParameters (settings,reportParameters.SqlParameters);
conObj = reportParameters.ConnectionObject;
}
}
@ -66,22 +65,6 @@ namespace ICSharpCode.Reports.Core { @@ -66,22 +65,6 @@ namespace ICSharpCode.Reports.Core {
}
return conObj;
}
private static void UpdateSqlParameters (ReportSettings settings,
ParameterCollection parameters)
{
/*
if (parameters != null) {
System.Collections.Generic.List<SqlParameter> sql = new System.Collections.Generic.List<SqlParameter>();
foreach (SqlParameter sourcePar in parameters) {
SqlParameter destinationPar = settings.ParameterCollection.Find(sourcePar.ParameterName);
destinationPar.ParameterValue = sourcePar.ParameterValue;
}
}
*/
}
#endregion
@ -508,7 +491,7 @@ namespace ICSharpCode.Reports.Core { @@ -508,7 +491,7 @@ namespace ICSharpCode.Reports.Core {
/// <param name="reportModel"></param>
/// <returns></returns>
public IReportCreator CreatePageBuilder (IReportModel reportModel)
public static IReportCreator CreatePageBuilder (IReportModel reportModel)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
@ -527,7 +510,7 @@ namespace ICSharpCode.Reports.Core { @@ -527,7 +510,7 @@ namespace ICSharpCode.Reports.Core {
/// <param name="dataSet"></param>
/// <param name="reportParameter"></param>
/// <returns></returns>
public IReportCreator CreatePageBuilder (IReportModel reportModel,
public static IReportCreator CreatePageBuilder (IReportModel reportModel,
DataSet dataSet,
ReportParameters reportParameter)
{
@ -550,7 +533,7 @@ namespace ICSharpCode.Reports.Core { @@ -550,7 +533,7 @@ namespace ICSharpCode.Reports.Core {
/// <param name="reportParameters"></param>
/// <returns></returns>
public IReportCreator CreatePageBuilder (IReportModel reportModel,
public static IReportCreator CreatePageBuilder (IReportModel reportModel,
DataTable dataTable,
ReportParameters reportParameters)
{
@ -579,7 +562,7 @@ namespace ICSharpCode.Reports.Core { @@ -579,7 +562,7 @@ namespace ICSharpCode.Reports.Core {
/// <param name="list"></param>
/// <param name="reportParameters"></param>
/// <returns></returns>
public IReportCreator CreatePageBuilder (IReportModel reportModel,
public static IReportCreator CreatePageBuilder (IReportModel reportModel,
IList list,
ReportParameters reportParameters)
{

Loading…
Cancel
Save