diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs index 46aea1941f..ec830ebc5a 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs @@ -216,10 +216,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing foreach (BaseExportColumn element in items) { ExportContainer cont = element as ExportContainer; if (cont != null) { - Console.WriteLine("-------Container ----{0}-----",cont.StyleDecorator.Location); ShowLocations(cont.Items); } - System.Console.WriteLine ("{0} - {1}",element.ToString(),element.StyleDecorator.Location.ToString()); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ChildNavigator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ChildNavigator.cs index f31455795c..355615eb9e 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ChildNavigator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ChildNavigator.cs @@ -91,8 +91,8 @@ namespace ICSharpCode.Reports.Core public CurrentItemsCollection GetDataRow { get { - var ss = this.indexList[this.indexList.CurrentPosition].ListIndex; - return dataStore.FillDataRow(ss); + var position = this.indexList[this.indexList.CurrentPosition].ListIndex; + return dataStore.FillDataRow(position); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs index ab0e93ed80..5a44355fb3 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs @@ -13,7 +13,7 @@ namespace ICSharpCode.Reports.Core /// /// Description of TableStrategy. /// - internal class TableStrategy: BaseListStrategy,IEnumerable + internal class TableStrategy: BaseListStrategy,IEnumerable { private DataTable table; @@ -87,6 +87,36 @@ namespace ICSharpCode.Reports.Core } + public override CurrentItemsCollection FillDataRow(int pos) + { + //this.table.Rows[pos]; + DataRow row = (DataRow) CurrentFromPosition(pos); + return FillCurrentRow(row); + } + + + public override CurrentItemsCollection FillDataRow() + { + DataRow row =this.Current as DataRow; + return FillCurrentRow(row); + } + + + CurrentItemsCollection FillCurrentRow( DataRow row) + { + CurrentItemsCollection ci = new CurrentItemsCollection(); + if (row != null) { + CurrentItem c = null; + foreach (DataColumn dc in table.Columns) { + c = new CurrentItem(); + c.ColumnName = dc.ColumnName; + c.DataType = dc.DataType; + c.Value = row[dc.ColumnName]; + ci.Add(c); + } + } + return ci; + } public override bool MoveNext() { return base.MoveNext(); @@ -176,26 +206,7 @@ namespace ICSharpCode.Reports.Core #region Test - public override CurrentItemsCollection FillDataRow() - { - CurrentItemsCollection ci = base.FillDataRow(); - DataRow row = this.Current as DataRow; - - if (row != null) { - CurrentItem c = null; - foreach (DataColumn dc in table.Columns) - { - c = new CurrentItem(); - c.ColumnName = dc.ColumnName; - c.DataType = dc.DataType; - c.Value = row[dc.ColumnName]; - ci.Add(c); - } - } - return ci; - } - public override object CurrentFromPosition (int pos) { return this.table.Rows[pos]; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs index da678bdee8..0ab418e150 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs @@ -78,7 +78,6 @@ namespace ICSharpCode.Reports.Core.Exporter if (row == null) { throw new ArgumentException("row"); } -// Console.WriteLine("\tFireRowRendering"); RowRenderEventArgs rrea = new RowRenderEventArgs(row,currentNavigator.Current); EventHelper.Raise(RowRendering,this,rrea); } @@ -86,7 +85,6 @@ namespace ICSharpCode.Reports.Core.Exporter protected void FireGroupHeaderRendering (GroupHeader groupHeader) { -// Console.WriteLine("\tFireGroupHeaderRendering"); GroupHeaderEventArgs ghea = new GroupHeaderEventArgs(groupHeader); EventHelper.Raise(GroupHeaderRendering,this,ghea); } @@ -182,56 +180,52 @@ namespace ICSharpCode.Reports.Core.Exporter return new ExporterCollection();; } - public Point CurrentPosition {get;set;} + #endregion + public Point CurrentPosition {get;set;} + public Rectangle ParentRectangle {get;private set;} public ISinglePage SinglePage {get;private set;} public SectionBounds SectionBounds {get; private set;} - public IDataNavigator DataNavigator {get;private set;} - public ILayouter Layouter {get; private set;} - public Graphics Graphics {get;set;} - protected IExpressionEvaluatorFacade Evaluator{get;private set;} protected int DefaultLeftPosition {get;set;} - protected void SaveSectionSize(Size size) { this.saveSize = size; } - protected Size RestoreSectionSize { get {return this.saveSize;} } - protected void PrepareContainerForConverting(BaseSection section,ISimpleContainer simpleContainer) { FireSectionRendering(section); LayoutHelper.SetLayoutForRow(Graphics,Layouter,simpleContainer); } - protected Point ConvertStandardRow(ExporterCollection mylist, ISimpleContainer simpleContainer) + protected Point ConvertStandardRow(ExporterCollection mylist,ISimpleContainer simpleContainer) { var rowSize = simpleContainer.Size; Point curPos = new Point(DefaultLeftPosition, CurrentPosition.Y); ExporterCollection ml = BaseConverter.ConvertItems (simpleContainer, curPos); EvaluationHelper.EvaluateRow(Evaluator,ml); + mylist.AddRange(ml); curPos = new Point (DefaultLeftPosition,CurrentPosition.Y + simpleContainer.Size.Height); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs index 8e9babe3ec..a6d6d6d3aa 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs @@ -82,9 +82,7 @@ namespace ICSharpCode.Reports.Core.Exporter IDataNavigator childNavigator = base.DataNavigator.GetChildNavigator; base.Evaluator.SinglePage.IDataNavigator = childNavigator; - //Console.WriteLine("Header start {0}",base.CurrentPosition); base.CurrentPosition = ConvertGroupHeader(exporterCollection,section,base.CurrentPosition); - //Console.WriteLine("Header end {0}",base.CurrentPosition); section.Size = base.RestoreSectionSize; section.Items[0].Size = groupSize; section.Items[1].Size = childSize; @@ -94,10 +92,9 @@ namespace ICSharpCode.Reports.Core.Exporter //Convert children if (childNavigator != null) { -// StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor); StandardPrinter.AdjustBackColor(simpleContainer); do - { + { section.Size = base.RestoreSectionSize; section.Items[0].Size = groupSize; section.Items[1].Size = childSize; @@ -105,11 +102,12 @@ namespace ICSharpCode.Reports.Core.Exporter FillRow(simpleContainer,childNavigator); FireRowRendering(simpleContainer,childNavigator); PrepareContainerForConverting(section,simpleContainer); +// base.Evaluator.SinglePage.IDataNavigator = childNavigator; base.CurrentPosition = ConvertStandardRow(exporterCollection,simpleContainer); CheckForPageBreak(section,exporterCollection); } while ( childNavigator.MoveNext()); - //Console.WriteLine("child end {0}",base.CurrentPosition); + // GroupFooter base.ConvertGroupFooter(section,exporterCollection); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs index 1043c33489..5e6d74c7f1 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs @@ -36,15 +36,18 @@ namespace ICSharpCode.Reports.Expressions.ReportingLanguage try { if (CanEvaluate(expression)) { IExpression compiled = compiler.CompileExpression(expression); + this.context.ContextObject = this.SinglePage; if (compiled != null) { return (compiled.Evaluate(context)).ToString(); } } } catch (Exception e) { - -// Console.WriteLine("error"); expression = e.Message; + Console.WriteLine(""); + Console.WriteLine("ExpressionEvaluatorFacade.Evaluate"); + Console.WriteLine(e.Message); + Console.WriteLine(""); } return expression; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs index 07aaece72d..428e736bda 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs @@ -109,8 +109,6 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.AggregateFunctions private List SetupDataSource (object data,IDataNavigator navigator) { - Console.WriteLine(""); - navigator.Reset(); List list = new List(); while ( navigator.MoveNext()) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/ReportingService/FieldReference.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/ReportingService/FieldReference.cs index 16a56e5fe1..f2b23a99f7 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/ReportingService/FieldReference.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/ReportingService/FieldReference.cs @@ -40,8 +40,14 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.ReportingService string retval; if (item != null) { retval = item.Value.ToString(); - } else { + } else + { retval = GlobalValues.UnkownFunctionMessage(variable.VariableName); + + Console.WriteLine(""); + Console.WriteLine("ExpressionEvaluatorFacade.FieldReference"); + Console.WriteLine("Field<{0}> not found",variable.VariableName); + Console.WriteLine(""); } return retval; } @@ -49,11 +55,10 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.ReportingService } - protected override void AggregateValue(object value, AggregationState aggregationState, params object[] args) - { + { - } + } protected override string ExtractAggregateValue(AggregationState aggregationState) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs index 3d96d529ef..2c90153ded 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs @@ -90,7 +90,6 @@ namespace ICSharpCode.Reports.Core currentPosition = PrintHelper.ConvertRectangleToCurentPosition (r); tableContainer.Location = saveLocation; - Console.WriteLine("----"); } else { int adjust = row.Location.Y - saveLocation.Y; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RenderTable.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RenderTable.cs index 59cc7c0306..55b4916535 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RenderTable.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RenderTable.cs @@ -94,7 +94,6 @@ namespace ICSharpCode.Reports.Core pageBreakRect = PrintHelper.CalculatePageBreakRectangle((BaseReportItem)table,currentPosition); if (PrintHelper.IsPageFull(pageBreakRect,this.SectionBounds)) { - Console.WriteLine("PageBreak - PageFull"); table.Location = saveLocation; AbstractRenderer.PageBreak(ReportPageEventArgs); return; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RendererFactory.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RendererFactory.cs index 44668b4d5e..ca65473127 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RendererFactory.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RendererFactory.cs @@ -24,7 +24,6 @@ namespace ICSharpCode.Reports.Core Type t = itemToConvert.GetType(); if (t.Equals(typeof(BaseTableItem))) { - Console.WriteLine("render Table"); return new RenderTable(dataNavigator,Rectangle.Empty,singlePage,layouter,section); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs index cfb6c71e1e..84b8b43637 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs @@ -4,6 +4,7 @@ using System; using System.ComponentModel; using ICSharpCode.Reports.Core.Test.TestHelpers; +using ICSharpCode.Reports.Expressions.ReportingLanguage; using NUnit.Framework; namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -102,11 +103,9 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy [Test] - public void Collection_Contains_Subclass () { var modifyedCollection = this.ModifyCollection(); - GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending); ReportSettings rs = new ReportSettings(); rs.GroupColumnsCollection.Add(gc); @@ -163,6 +162,81 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy #endregion + #region FieldReference + + [Test] + public void Check_Field_Reference() + { + var modifyedCollection = this.ModifyCollection(); + GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending); + ReportSettings rs = new ReportSettings(); + rs.GroupColumnsCollection.Add(gc); + IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(modifyedCollection,rs); + IDataNavigator dataNavigator = dm.GetNavigator; + +// IExpressionEvaluatorFacade evaluator = new ExpressionEvaluatorFacade(); + + ReportItemCollection searchCol = new ReportItemCollection(); + + searchCol.Add(new BaseDataItem () + { + ColumnName ="DummyClass.DummyString" + } + ); + searchCol.Add(new BaseDataItem () + { + Name ="Last", + ColumnName ="Last" + } + ); + + searchCol.Add(new BaseDataItem () + { + + ColumnName ="GroupItem" + } + ); +// searchCol.Add(new BaseTextItem() +// { +// Name ="FieldRef", +// Text ="=Fields!Last" +// } +// ); + + dataNavigator.Reset(); + dataNavigator.MoveNext(); + + do + { + + dataNavigator.Fill(searchCol); + var a1 = (BaseDataItem)searchCol[0]; + var b1 = (BaseDataItem)searchCol[2]; + Console.WriteLine ("-----{0} - {1}------",a1.DBValue,b1.DBValue); + + if (dataNavigator.HasChildren) + { + var childNavigator = dataNavigator.GetChildNavigator; + do + { + var dataRow = childNavigator.GetDataRow; + var item = dataRow.Find("Last"); +// childNavigator.Fill(searchCol); +// var a = (BaseDataItem)searchCol[0]; +// var b = (BaseDataItem)searchCol[1]; +// var c = (BaseDataItem)searchCol[3]; +// Console.WriteLine ("\t{0} - {1} - {2}",a.DBValue,b.DBValue,c.DBValue); + Console.WriteLine(item.Value); + } + while (childNavigator.MoveNext()); + } + } + while (dataNavigator.MoveNext()); + } + + #endregion + + #region Group by DataTime [Test]