Browse Source

move Expression Evaluation from 'Text' to 'Expression' Property in Text and DataItem

pull/15/head^2
peterforstmeier 14 years ago
parent
commit
93a1727ed8
  1. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/DataItemTypeProvider.cs
  2. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs
  3. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs
  4. 24
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs
  5. 33
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseDataItem.cs
  6. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs
  7. 9
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs
  8. 22
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs
  9. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/ReportingService/FieldReference.cs
  10. 27
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableStragy/GroupTableFixture.cs
  11. 35
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableStragy/TableDataManagerFixture.cs

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/DataItemTypeProvider.cs

@ -81,6 +81,9 @@ namespace ICSharpCode.Reports.Addin.TypeProviders @@ -81,6 +81,9 @@ namespace ICSharpCode.Reports.Addin.TypeProviders
prop = props.Find("NullValue",true);
allProperties.Add(prop);
prop = props.Find("Expression",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs

@ -93,7 +93,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -93,7 +93,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
foreach (ICSharpCode.Reports.Core.BaseSection s in ReportModel.SectionCollection) {
s.Size = new Size(settings.PageSize.Width - settings.LeftMargin - settings.RightMargin,
GlobalValues.DefaultSectionHeight);
Console.WriteLine("AdjustSectionToDefaul Size : {0}",s.Size);
Console.WriteLine("Adjust Section To DefaultSize : {0}",s.Size);
}
}
@ -101,7 +101,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -101,7 +101,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
protected void WriteToXml ()
{
LoggingService.Debug("AbstractreportGenerator - Generate Xml friom RepotModel");
LoggingService.Debug("AbstractReportGenerator - Generate Xml from RepotModel");
ReportDesignerWriter rpd = new ReportDesignerWriter();
StringWriterWithEncoding writer = new StringWriterWithEncoding(System.Text.Encoding.UTF8);

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs

@ -64,8 +64,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -64,8 +64,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
{
if (!String.IsNullOrEmpty(this.Grouping))
{
string s = "=Fields!" + this.Grouping;
GroupColumn g = new GroupColumn(s,1,System.ComponentModel.ListSortDirection.Ascending);
//string s = "=[" + this.Grouping + "]";
GroupColumn g = new GroupColumn(this.Grouping,1,System.ComponentModel.ListSortDirection.Ascending);
settings.GroupColumnsCollection.Add(g);
}
}

24
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs

@ -259,30 +259,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -259,30 +259,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
}
}
///<summary>
/// We check if a ColumnName includes an "-" Character,
/// if so, suround it with []</summary>
///<param name="SharpQueryNodeColumn">a ColumnNode</param>
/// <returns>a valid ColumnName</returns>
/*
private static string InferColumnName(string node) {
string colName;
if (node != null) {
if (node.IndexOf("-",StringComparison.Ordinal) > -1 ){
// colName = node.Replace(".",".[") + "]";
colName = "[" + node + "]";
} else {
colName = node;
}
} else {
colName = String.Empty;
}
return colName;
}
*/
// check witch type of node we dragg
private static NodeType CheckCurrentNode (IDatabaseObjectBase node) {
NodeType enm;

33
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseDataItem.cs

@ -21,8 +21,6 @@ namespace ICSharpCode.Reports.Core @@ -21,8 +21,6 @@ namespace ICSharpCode.Reports.Core
public class BaseDataItem : BaseTextItem, IDataRenderer, IExportColumnBuilder, IDataItem
{
private string columnName;
#region Constructor
public BaseDataItem() : base()
@ -31,29 +29,12 @@ namespace ICSharpCode.Reports.Core @@ -31,29 +29,12 @@ namespace ICSharpCode.Reports.Core
public BaseDataItem(string columnName) : base()
{
this.columnName = columnName;
this.ColumnName = columnName;
}
#endregion
#region privates
/*
private string CheckForNullValue()
{
if (String.IsNullOrEmpty(this.dbValue)) {
if (String.IsNullOrEmpty(this.NullValue)) {
return GlobalValues.UnboundName;
} else
return this.NullValue;
}
return this.dbValue;
}
*/
#endregion
#region IExportColumnBuilder implementation
@ -86,16 +67,8 @@ namespace ICSharpCode.Reports.Core @@ -86,16 +67,8 @@ namespace ICSharpCode.Reports.Core
[Browsable(false)]
public virtual string DBValue {get;set;}
public virtual string ColumnName {
get {
return columnName;
}
set {
columnName = value;
this.Text = this.columnName;
}
}
public virtual string ColumnName {get;set;}
///<summary>
/// Mappingname to Datasource
/// </summary>

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs

@ -63,12 +63,6 @@ namespace ICSharpCode.Reports.Core @@ -63,12 +63,6 @@ namespace ICSharpCode.Reports.Core
}
//public bool IsSorted {get {return this.store.IsSorted;}}
//public bool IsGrouped {get {return this.store.IsGrouped;}}
public int CurrentRow {
get {return this.store.CurrentPosition;}
}

9
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs

@ -93,11 +93,12 @@ namespace ICSharpCode.Reports.Core { @@ -93,11 +93,12 @@ namespace ICSharpCode.Reports.Core {
childList = new IndexList();
GroupComparer gc = CreateGroupHeader(element);
gc.IndexList = childList;
CreateGroupedChildren(childList,element);
} else {
CreateGroupedChildren(childList,element);
// CreateGroupedChildren(childList,element);
}
// else {
// CreateGroupedChildren(childList,element);
// }
CreateGroupedChildren(childList,element);
compVal = groupValue;
}
ShowIndexList(IndexList);

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

@ -95,17 +95,24 @@ namespace ICSharpCode.Reports.Core @@ -95,17 +95,24 @@ namespace ICSharpCode.Reports.Core
object ExtractValue(DataRow row,BaseDataItem item)
{
object val = null;
string expression = String.Empty;
if (item.Text.StartsWith("="))
if ((! String.IsNullOrEmpty(item.Expression)) && (item.Expression.StartsWith("="))) {
expression = item.Expression;
} else
{
return ((ExpressionEvaluatorFacade)base.ExpressionEvaluator).Evaluate(item.Text,row);
} else {
return row[item.ColumnName];;
string colName = string.Empty;
if (!item.ColumnName.StartsWith ("=Fields")) {
expression = "=Fields!" + item.ColumnName;
} else {
expression = item.ColumnName;
}
}
return ((ExpressionEvaluatorFacade)base.ExpressionEvaluator).Evaluate(expression,row);
}
public override CurrentItemsCollection FillDataRow(int pos)
{
DataRow row = (DataRow) CurrentFromPosition(pos);
@ -211,8 +218,9 @@ namespace ICSharpCode.Reports.Core @@ -211,8 +218,9 @@ namespace ICSharpCode.Reports.Core
object ExtractColumnValue(DataRow row,ColumnCollection col, int criteriaIndex)
{
AbstractColumn c = (AbstractColumn)col[criteriaIndex];
int pos = c.ColumnName.IndexOf("!");
object val = null;
int pos = c.ColumnName.IndexOf("!");
if (pos > 0)
{
val = ((ExpressionEvaluatorFacade)ExpressionEvaluator).Evaluate(c.ColumnName,row);

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/ReportingService/FieldReference.cs

@ -33,6 +33,7 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.ReportingService @@ -33,6 +33,7 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.ReportingService
{
Variable variable = Arguments[0] as Variable;
string retval = string.Empty;
ISinglePage singlePage = context.ContextObject as SinglePage;
if (singlePage != null)

27
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableStragy/GroupTableFixture.cs

@ -40,33 +40,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -40,33 +40,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
Assert.That(availableFieldsCollection.Count,Is.GreaterThan(0));
}
#region Group by Expression
[Test]
public void Group_By_Substring()
{
GroupColumn gc = new GroupColumn("=Fields!first",1,ListSortDirection.Ascending);
gc.GroupExpression = "=Substring('first',0,3)";
ReportSettings rs = new ReportSettings();
rs.GroupColumnsCollection.Add(gc);
IDataManager dataManager = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,rs);
var dataNavigator = dataManager.GetNavigator;
while (dataNavigator.MoveNext()) {
if (dataNavigator.HasChildren)
{
var childNavigator = dataNavigator.GetChildNavigator;
do
{
Assert.That(dataNavigator.HasChildren,Is.True);
DataRow r = dataNavigator.Current as DataRow;
// string v2 = r["last"].ToString() + " GroupVal :" + r[3].ToString();
// Console.WriteLine(v2);
}
while (childNavigator.MoveNext());
}
}
}
#endregion
#region Group by String

35
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableStragy/TableDataManagerFixture.cs

@ -100,8 +100,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -100,8 +100,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,rs);
DataNavigator dataNav = dm.GetNavigator;
}
#region Sorting
@ -149,7 +148,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -149,7 +148,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
#region Substring
[Test]
public void Enum_With_SubStrings()
public void Expression_In_Text_Evaluate()
{
ReportSettings rs = new ReportSettings();
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,rs);
@ -157,7 +156,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -157,7 +156,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
BaseDataItem bdi = new BaseDataItem(){
Name ="MyDataItem",
ColumnName = "last",
Text ="=Substring('Sharp',0,3)"
Text ="=Substring(Fields!last,0,3)",
Expression ="=Substring(Fields!last,0,3)"
};
var ri = new ReportItemCollection();
ri.Add(bdi);
@ -166,9 +166,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -166,9 +166,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
{
dataNav.Fill(ri);
DataRow r = dataNav.Current as DataRow;
string actual = r["first"].ToString();
Console.WriteLine("{0} - {1} - {2}",actual,bdi.DBValue,bdi.Text);
Console.WriteLine("{0} - {1}",actual,actual.Substring(0,2));
string actual = r["last"].ToString();
Assert.That(actual.Substring(0,3), Is.EqualTo(bdi.DBValue));
}
}
@ -176,27 +175,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -176,27 +175,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
#endregion
#region Standart Enumerator
/*
[Test]
public void IEnumerableStartFromBegin ()
{
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,
new ReportSettings());
IDataNavigator dn = dm.GetNavigator;
IEnumerable ie = dn as IEnumerable;
IEnumerator en = ie.GetEnumerator();
int start = 0;
en.MoveNext();
do {
DataRow v = dn.Current as DataRow;
start ++;
}
while (dn.MoveNext());
Assert.AreEqual(this.table.Rows.Count,start);
Assert.IsFalse(dn.HasMoreData);
}
*/
[Test]
public void EnumeratorStartFromBegin ()
{

Loading…
Cancel
Save