Browse Source

FieldReference.cs; cleanup

pull/15/head^2
peterforstmeier 15 years ago
parent
commit
c093e04c88
  1. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs
  2. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ChildNavigator.cs
  3. 51
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs
  4. 16
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
  5. 8
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
  6. 7
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs
  7. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs
  8. 13
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/ReportingService/FieldReference.cs
  9. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs
  10. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RenderTable.cs
  11. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RendererFactory.cs
  12. 78
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs

2
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) { foreach (BaseExportColumn element in items) {
ExportContainer cont = element as ExportContainer; ExportContainer cont = element as ExportContainer;
if (cont != null) { if (cont != null) {
Console.WriteLine("-------Container ----{0}-----",cont.StyleDecorator.Location);
ShowLocations(cont.Items); ShowLocations(cont.Items);
} }
System.Console.WriteLine ("{0} - {1}",element.ToString(),element.StyleDecorator.Location.ToString());
} }
} }

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ChildNavigator.cs

@ -91,8 +91,8 @@ namespace ICSharpCode.Reports.Core
public CurrentItemsCollection GetDataRow public CurrentItemsCollection GetDataRow
{ {
get { get {
var ss = this.indexList[this.indexList.CurrentPosition].ListIndex; var position = this.indexList[this.indexList.CurrentPosition].ListIndex;
return dataStore.FillDataRow(ss); return dataStore.FillDataRow(position);
} }
} }

51
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs

@ -13,7 +13,7 @@ namespace ICSharpCode.Reports.Core
/// <summary> /// <summary>
/// Description of TableStrategy. /// Description of TableStrategy.
/// </summary> /// </summary>
internal class TableStrategy: BaseListStrategy,IEnumerable<BaseComparer> internal class TableStrategy: BaseListStrategy,IEnumerable<BaseComparer>
{ {
private DataTable table; 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() public override bool MoveNext()
{ {
return base.MoveNext(); return base.MoveNext();
@ -176,26 +206,7 @@ namespace ICSharpCode.Reports.Core
#region Test #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) public override object CurrentFromPosition (int pos)
{ {
return this.table.Rows[pos]; return this.table.Rows[pos];

16
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs

@ -78,7 +78,6 @@ namespace ICSharpCode.Reports.Core.Exporter
if (row == null) { if (row == null) {
throw new ArgumentException("row"); throw new ArgumentException("row");
} }
// Console.WriteLine("\tFireRowRendering");
RowRenderEventArgs rrea = new RowRenderEventArgs(row,currentNavigator.Current); RowRenderEventArgs rrea = new RowRenderEventArgs(row,currentNavigator.Current);
EventHelper.Raise<RowRenderEventArgs>(RowRendering,this,rrea); EventHelper.Raise<RowRenderEventArgs>(RowRendering,this,rrea);
} }
@ -86,7 +85,6 @@ namespace ICSharpCode.Reports.Core.Exporter
protected void FireGroupHeaderRendering (GroupHeader groupHeader) protected void FireGroupHeaderRendering (GroupHeader groupHeader)
{ {
// Console.WriteLine("\tFireGroupHeaderRendering");
GroupHeaderEventArgs ghea = new GroupHeaderEventArgs(groupHeader); GroupHeaderEventArgs ghea = new GroupHeaderEventArgs(groupHeader);
EventHelper.Raise<GroupHeaderEventArgs>(GroupHeaderRendering,this,ghea); EventHelper.Raise<GroupHeaderEventArgs>(GroupHeaderRendering,this,ghea);
} }
@ -182,56 +180,52 @@ namespace ICSharpCode.Reports.Core.Exporter
return new ExporterCollection();; return new ExporterCollection();;
} }
public Point CurrentPosition {get;set;}
#endregion #endregion
public Point CurrentPosition {get;set;}
public Rectangle ParentRectangle {get;private set;} public Rectangle ParentRectangle {get;private set;}
public ISinglePage SinglePage {get;private set;} public ISinglePage SinglePage {get;private set;}
public SectionBounds SectionBounds {get; private set;} public SectionBounds SectionBounds {get; private set;}
public IDataNavigator DataNavigator {get;private set;} public IDataNavigator DataNavigator {get;private set;}
public ILayouter Layouter {get; private set;} public ILayouter Layouter {get; private set;}
public Graphics Graphics {get;set;} public Graphics Graphics {get;set;}
protected IExpressionEvaluatorFacade Evaluator{get;private set;} protected IExpressionEvaluatorFacade Evaluator{get;private set;}
protected int DefaultLeftPosition {get;set;} protected int DefaultLeftPosition {get;set;}
protected void SaveSectionSize(Size size) protected void SaveSectionSize(Size size)
{ {
this.saveSize = size; this.saveSize = size;
} }
protected Size RestoreSectionSize protected Size RestoreSectionSize
{ {
get {return this.saveSize;} get {return this.saveSize;}
} }
protected void PrepareContainerForConverting(BaseSection section,ISimpleContainer simpleContainer) protected void PrepareContainerForConverting(BaseSection section,ISimpleContainer simpleContainer)
{ {
FireSectionRendering(section); FireSectionRendering(section);
LayoutHelper.SetLayoutForRow(Graphics,Layouter,simpleContainer); LayoutHelper.SetLayoutForRow(Graphics,Layouter,simpleContainer);
} }
protected Point ConvertStandardRow(ExporterCollection mylist, ISimpleContainer simpleContainer) protected Point ConvertStandardRow(ExporterCollection mylist,ISimpleContainer simpleContainer)
{ {
var rowSize = simpleContainer.Size; var rowSize = simpleContainer.Size;
Point curPos = new Point(DefaultLeftPosition, CurrentPosition.Y); Point curPos = new Point(DefaultLeftPosition, CurrentPosition.Y);
ExporterCollection ml = BaseConverter.ConvertItems (simpleContainer, curPos); ExporterCollection ml = BaseConverter.ConvertItems (simpleContainer, curPos);
EvaluationHelper.EvaluateRow(Evaluator,ml); EvaluationHelper.EvaluateRow(Evaluator,ml);
mylist.AddRange(ml); mylist.AddRange(ml);
curPos = new Point (DefaultLeftPosition,CurrentPosition.Y + simpleContainer.Size.Height); curPos = new Point (DefaultLeftPosition,CurrentPosition.Y + simpleContainer.Size.Height);

8
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; IDataNavigator childNavigator = base.DataNavigator.GetChildNavigator;
base.Evaluator.SinglePage.IDataNavigator = childNavigator; base.Evaluator.SinglePage.IDataNavigator = childNavigator;
//Console.WriteLine("Header start {0}",base.CurrentPosition);
base.CurrentPosition = ConvertGroupHeader(exporterCollection,section,base.CurrentPosition); base.CurrentPosition = ConvertGroupHeader(exporterCollection,section,base.CurrentPosition);
//Console.WriteLine("Header end {0}",base.CurrentPosition);
section.Size = base.RestoreSectionSize; section.Size = base.RestoreSectionSize;
section.Items[0].Size = groupSize; section.Items[0].Size = groupSize;
section.Items[1].Size = childSize; section.Items[1].Size = childSize;
@ -94,10 +92,9 @@ namespace ICSharpCode.Reports.Core.Exporter
//Convert children //Convert children
if (childNavigator != null) { if (childNavigator != null) {
// StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
StandardPrinter.AdjustBackColor(simpleContainer); StandardPrinter.AdjustBackColor(simpleContainer);
do do
{ {
section.Size = base.RestoreSectionSize; section.Size = base.RestoreSectionSize;
section.Items[0].Size = groupSize; section.Items[0].Size = groupSize;
section.Items[1].Size = childSize; section.Items[1].Size = childSize;
@ -105,11 +102,12 @@ namespace ICSharpCode.Reports.Core.Exporter
FillRow(simpleContainer,childNavigator); FillRow(simpleContainer,childNavigator);
FireRowRendering(simpleContainer,childNavigator); FireRowRendering(simpleContainer,childNavigator);
PrepareContainerForConverting(section,simpleContainer); PrepareContainerForConverting(section,simpleContainer);
// base.Evaluator.SinglePage.IDataNavigator = childNavigator;
base.CurrentPosition = ConvertStandardRow(exporterCollection,simpleContainer); base.CurrentPosition = ConvertStandardRow(exporterCollection,simpleContainer);
CheckForPageBreak(section,exporterCollection); CheckForPageBreak(section,exporterCollection);
} }
while ( childNavigator.MoveNext()); while ( childNavigator.MoveNext());
//Console.WriteLine("child end {0}",base.CurrentPosition);
// GroupFooter // GroupFooter
base.ConvertGroupFooter(section,exporterCollection); base.ConvertGroupFooter(section,exporterCollection);

7
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs

@ -36,15 +36,18 @@ namespace ICSharpCode.Reports.Expressions.ReportingLanguage
try { try {
if (CanEvaluate(expression)) { if (CanEvaluate(expression)) {
IExpression compiled = compiler.CompileExpression<string>(expression); IExpression compiled = compiler.CompileExpression<string>(expression);
this.context.ContextObject = this.SinglePage; this.context.ContextObject = this.SinglePage;
if (compiled != null) { if (compiled != null) {
return (compiled.Evaluate(context)).ToString(); return (compiled.Evaluate(context)).ToString();
} }
} }
} catch (Exception e) { } catch (Exception e) {
// Console.WriteLine("error");
expression = e.Message; expression = e.Message;
Console.WriteLine("");
Console.WriteLine("ExpressionEvaluatorFacade.Evaluate");
Console.WriteLine(e.Message);
Console.WriteLine("");
} }
return expression; return expression;

2
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<object> SetupDataSource (object data,IDataNavigator navigator) private List<object> SetupDataSource (object data,IDataNavigator navigator)
{ {
Console.WriteLine("");
navigator.Reset(); navigator.Reset();
List<object> list = new List<object>(); List<object> list = new List<object>();
while ( navigator.MoveNext()) { while ( navigator.MoveNext()) {

13
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; string retval;
if (item != null) { if (item != null) {
retval = item.Value.ToString(); retval = item.Value.ToString();
} else { } else
{
retval = GlobalValues.UnkownFunctionMessage(variable.VariableName); retval = GlobalValues.UnkownFunctionMessage(variable.VariableName);
Console.WriteLine("");
Console.WriteLine("ExpressionEvaluatorFacade.FieldReference");
Console.WriteLine("Field<{0}> not found",variable.VariableName);
Console.WriteLine("");
} }
return retval; return retval;
} }
@ -49,11 +55,10 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.ReportingService
} }
protected override void AggregateValue(object value, AggregationState aggregationState, params object[] args) protected override void AggregateValue(object value, AggregationState aggregationState, params object[] args)
{ {
} }
protected override string ExtractAggregateValue(AggregationState aggregationState) protected override string ExtractAggregateValue(AggregationState aggregationState)
{ {

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

@ -90,7 +90,6 @@ namespace ICSharpCode.Reports.Core
currentPosition = PrintHelper.ConvertRectangleToCurentPosition (r); currentPosition = PrintHelper.ConvertRectangleToCurentPosition (r);
tableContainer.Location = saveLocation; tableContainer.Location = saveLocation;
Console.WriteLine("----");
} }
else { else {
int adjust = row.Location.Y - saveLocation.Y; int adjust = row.Location.Y - saveLocation.Y;

1
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); pageBreakRect = PrintHelper.CalculatePageBreakRectangle((BaseReportItem)table,currentPosition);
if (PrintHelper.IsPageFull(pageBreakRect,this.SectionBounds)) { if (PrintHelper.IsPageFull(pageBreakRect,this.SectionBounds)) {
Console.WriteLine("PageBreak - PageFull");
table.Location = saveLocation; table.Location = saveLocation;
AbstractRenderer.PageBreak(ReportPageEventArgs); AbstractRenderer.PageBreak(ReportPageEventArgs);
return; return;

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RendererFactory.cs

@ -24,7 +24,6 @@ namespace ICSharpCode.Reports.Core
Type t = itemToConvert.GetType(); Type t = itemToConvert.GetType();
if (t.Equals(typeof(BaseTableItem))) { if (t.Equals(typeof(BaseTableItem))) {
Console.WriteLine("render Table");
return new RenderTable(dataNavigator,Rectangle.Empty,singlePage,layouter,section); return new RenderTable(dataNavigator,Rectangle.Empty,singlePage,layouter,section);
} }

78
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs

@ -4,6 +4,7 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using ICSharpCode.Reports.Core.Test.TestHelpers; using ICSharpCode.Reports.Core.Test.TestHelpers;
using ICSharpCode.Reports.Expressions.ReportingLanguage;
using NUnit.Framework; using NUnit.Framework;
namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
@ -102,11 +103,9 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
[Test] [Test]
public void Collection_Contains_Subclass () public void Collection_Contains_Subclass ()
{ {
var modifyedCollection = this.ModifyCollection(); var modifyedCollection = this.ModifyCollection();
GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending); GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);
ReportSettings rs = new ReportSettings(); ReportSettings rs = new ReportSettings();
rs.GroupColumnsCollection.Add(gc); rs.GroupColumnsCollection.Add(gc);
@ -163,6 +162,81 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
#endregion #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 #region Group by DataTime
[Test] [Test]

Loading…
Cancel
Save