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 @@ -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());
}
}

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

@ -91,8 +91,8 @@ namespace ICSharpCode.Reports.Core @@ -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);
}
}

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

@ -13,7 +13,7 @@ namespace ICSharpCode.Reports.Core @@ -13,7 +13,7 @@ namespace ICSharpCode.Reports.Core
/// <summary>
/// Description of TableStrategy.
/// </summary>
internal class TableStrategy: BaseListStrategy,IEnumerable<BaseComparer>
internal class TableStrategy: BaseListStrategy,IEnumerable<BaseComparer>
{
private DataTable table;
@ -87,6 +87,36 @@ namespace ICSharpCode.Reports.Core @@ -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 @@ -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];

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

@ -78,7 +78,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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<RowRenderEventArgs>(RowRendering,this,rrea);
}
@ -86,7 +85,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -86,7 +85,6 @@ namespace ICSharpCode.Reports.Core.Exporter
protected void FireGroupHeaderRendering (GroupHeader groupHeader)
{
// Console.WriteLine("\tFireGroupHeaderRendering");
GroupHeaderEventArgs ghea = new GroupHeaderEventArgs(groupHeader);
EventHelper.Raise<GroupHeaderEventArgs>(GroupHeaderRendering,this,ghea);
}
@ -182,56 +180,52 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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);

8
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs

@ -82,9 +82,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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 @@ -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 @@ -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);

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

@ -36,15 +36,18 @@ namespace ICSharpCode.Reports.Expressions.ReportingLanguage @@ -36,15 +36,18 @@ namespace ICSharpCode.Reports.Expressions.ReportingLanguage
try {
if (CanEvaluate(expression)) {
IExpression compiled = compiler.CompileExpression<string>(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;

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 @@ -109,8 +109,6 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.AggregateFunctions
private List<object> SetupDataSource (object data,IDataNavigator navigator)
{
Console.WriteLine("");
navigator.Reset();
List<object> list = new List<object>();
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 @@ -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 @@ -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)
{

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

@ -90,7 +90,6 @@ namespace ICSharpCode.Reports.Core @@ -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;

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

@ -94,7 +94,6 @@ namespace ICSharpCode.Reports.Core @@ -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;

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

@ -24,7 +24,6 @@ namespace ICSharpCode.Reports.Core @@ -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);
}

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

@ -4,6 +4,7 @@ @@ -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 @@ -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 @@ -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]

Loading…
Cancel
Save