Browse Source

Adjust ReportWizard for Grouping, more Test's for Grouping

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/reports@6264 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 15 years ago
parent
commit
e1795be640
  1. 88
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs
  2. 20
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs
  3. 19
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs
  4. 9
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanelControl.cs
  5. 30
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs
  6. 68
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs
  7. 63
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs
  8. 12
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs
  9. 18
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/RowConverter.cs
  10. 33
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataNavigator.cs
  11. 89
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/GroupTableFixture.cs
  12. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/IListDataManagerFixture.cs
  13. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/Strategy/TableStrategyFixture.cs
  14. 7
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableDataManagerFixture.cs

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

@ -35,31 +35,64 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -35,31 +35,64 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
public abstract class AbstractReportGenerator : IReportGenerator
{
private ReportModel reportModel;
private StringWriter stringWriter;
private Properties properties;
private ReportItemCollection reportItemCollection;
private AvailableFieldsCollection availableFieldsCollection;
private ParameterCollection parameterCollection;
protected AbstractReportGenerator(ReportModel reportModel,Properties customizer)
private ColumnCollection groupColumnCollection;
protected AbstractReportGenerator(ReportModel reportModel,Properties properties)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
}
if (customizer == null) {
if (properties == null) {
throw new ArgumentNullException("customizer");
}
this.properties = customizer;
this.reportModel = reportModel;
this.ReportModel = reportModel;
this.Properties = properties;
ReportStructure = (ReportStructure)properties.Get("Generator");
this.AvailableFieldsCollection.Clear();
this.ReportItemCollection.Clear();
this.GroupColumnCollection.Clear();
this.ParameterCollection.Clear();
}
protected void UpdateGenerator ()
{
this.AvailableFieldsCollection.AddRange(ReportStructure.AvailableFieldsCollection);
this.ReportItemCollection.AddRange(ReportStructure.ReportItemCollection);
if (ReportModel.ReportSettings.GroupColumnsCollection.Count > 0) {
this.GroupColumnCollection.AddRange(ReportModel.ReportSettings.GroupColumnsCollection);
}
if (ReportStructure.SqlQueryParameters.Count > 0) {
ReportModel.ReportSettings.ParameterCollection.AddRange(ReportStructure.SqlQueryParameters);
}
}
protected void UpdateModel ()
{
var settings = this.ReportModel.ReportSettings;
settings.AvailableFieldsCollection.Clear();
settings.AvailableFieldsCollection.AddRange(this.availableFieldsCollection);
settings.GroupColumnsCollection.Clear();
settings.GroupColumnsCollection.AddRange(this.groupColumnCollection);
// settings.ParameterCollection.Clear();
// settings.ParameterCollection.AddRange(this.SqlQueryParameters);
}
private void AdjustSectionToDefault () {
ReportSettings settings = reportModel.ReportSettings;
foreach (ICSharpCode.Reports.Core.BaseSection s in reportModel.SectionCollection) {
ReportSettings settings = ReportModel.ReportSettings;
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);
@ -69,18 +102,19 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -69,18 +102,19 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
protected void WriteToXml ()
{
Console.WriteLine(" WriteToXml ()");
LoggingService.Debug("AbstractreportGenerator - Generate Xml friom RepotModel");
ReportDesignerWriter rpd = new ReportDesignerWriter();
StringWriterWithEncoding writer = new StringWriterWithEncoding(System.Text.Encoding.UTF8);
XmlTextWriter xml =XmlHelper.CreatePropperWriter(writer);
XmlHelper.CreatePropperDocument(xml);
rpd.Save(this.reportModel.ReportSettings,xml);
rpd.Save(this.ReportModel.ReportSettings,xml);
xml.WriteEndElement();
xml.WriteStartElement("SectionCollection");
foreach (ICSharpCode.Reports.Core.BaseSection s in this.reportModel.SectionCollection) {
foreach (ICSharpCode.Reports.Core.BaseSection s in this.ReportModel.SectionCollection) {
rpd.Save(s,xml);
}
@ -125,16 +159,13 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -125,16 +159,13 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
#endregion
protected ReportStructure ReportStructure {get;private set;}
public ReportModel ReportModel {get;private set;}
public ReportModel ReportModel {
get { return reportModel; }
}
public Properties Properties {
get { return properties; }
}
public Properties Properties {get; private set;}
protected ReportItemCollection ReportItemCollection {
get { if (this.reportItemCollection == null) {
@ -164,6 +195,25 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -164,6 +195,25 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
return this.parameterCollection;
}
}
public ColumnCollection GroupColumnCollection {
get{
if (this.groupColumnCollection == null) {
this.groupColumnCollection = new ColumnCollection();
}
return this.groupColumnCollection;
}
set { this.groupColumnCollection = value;}
}
public ParameterCollection ParameterCollection {
get {
if (this.parameterCollection == null) {
this.parameterCollection = new ParameterCollection();
}
return this.parameterCollection;
}
}
}
}

20
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs

@ -18,7 +18,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -18,7 +18,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
/// </summary>
internal class GeneratePullDataReport: AbstractReportGenerator
{
private ReportStructure reportStructure;
public GeneratePullDataReport(ReportModel reportModel,
Properties properties):base(reportModel,properties)
@ -28,15 +28,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -28,15 +28,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
throw new ArgumentNullException("reportModel");
}
if (base.ReportModel.ReportSettings.DataModel != GlobalEnums.PushPullModel.PullData) {
throw new ArgumentException ("Wrong DataModel in GeneratePullReport");
}
reportStructure = (ReportStructure)properties.Get("Generator");
base.AvailableFieldsCollection.AddRange(reportStructure.AvailableFieldsCollection);
base.ReportItemCollection.AddRange(reportStructure.ReportItemCollection);
base.SqlQueryParameters.AddRange(reportStructure.SqlQueryParameters);
base.UpdateGenerator();
base.UpdateModel();
base.SqlQueryParameters.AddRange(base.ReportStructure.SqlQueryParameters);
}
@ -45,10 +39,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -45,10 +39,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
{
base.ReportModel.ReportSettings.ReportType = GlobalEnums.ReportType.DataReport;
base.ReportModel.ReportSettings.DataModel = GlobalEnums.PushPullModel.PullData;
base.ReportModel.ReportSettings.AvailableFieldsCollection.AddRange(reportStructure.AvailableFieldsCollection);
base.ReportModel.ReportSettings.ParameterCollection.AddRange(reportStructure.SqlQueryParameters);
// base.ReportModel.ReportSettings.AvailableFieldsCollection.AddRange(base.ReportStructure.AvailableFieldsCollection);
// base.ReportModel.ReportSettings.ParameterCollection.AddRange(base.ReportStructure.SqlQueryParameters);
base.GenerateReport();
GlobalEnums.ReportLayout reportLayout = (GlobalEnums.ReportLayout)base.Properties.Get("ReportLayout");
AbstractLayout layout = LayoutFactory.CreateGenerator(reportLayout,base.ReportModel,base.ReportItemCollection);
layout.CreateReportHeader();

19
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs

@ -23,25 +23,16 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -23,25 +23,16 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
{
public class GeneratePushDataReport : AbstractReportGenerator
{
private ReportStructure reportStructure;
// private ReportStructure reportStructure;
/// <summary>
/// Default constructor - initializes all fields to default values
/// </summary>
public GeneratePushDataReport(ReportModel reportModel,
Properties properties):base(reportModel,properties)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
}
if (base.ReportModel.ReportSettings.DataModel != GlobalEnums.PushPullModel.PushData) {
throw new ArgumentException ("Wrong DataModel in GeneratePushReport");
}
reportStructure = (ReportStructure)properties.Get("Generator");
base.AvailableFieldsCollection.AddRange(reportStructure.AvailableFieldsCollection);
base.ReportItemCollection.AddRange(reportStructure.ReportItemCollection);
base.UpdateGenerator();
base.UpdateModel();
}
@ -49,10 +40,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -49,10 +40,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
{
base.ReportModel.ReportSettings.ReportType = GlobalEnums.ReportType.DataReport;
base.ReportModel.ReportSettings.DataModel = GlobalEnums.PushPullModel.PushData;
base.ReportModel.ReportSettings.AvailableFieldsCollection.AddRange(reportStructure.AvailableFieldsCollection);
// base.ReportModel.ReportSettings.AvailableFieldsCollection.AddRange(base.ReportStructure.AvailableFieldsCollection);
base.GenerateReport();
GlobalEnums.ReportLayout reportLayout = (GlobalEnums.ReportLayout)base.Properties.Get("ReportLayout");
AbstractLayout layout = LayoutFactory.CreateGenerator(reportLayout,base.ReportModel,base.ReportItemCollection);
layout.CreateReportHeader();
layout.CreatePageHeader();
layout.CreateDataSection(base.ReportModel.DetailSection);

9
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanelControl.cs

@ -90,8 +90,13 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -90,8 +90,13 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
public string GroupName
{
get {
return comboBox1.SelectedItem.ToString();
}
string ret = String.Empty;
if (!String.IsNullOrEmpty(comboBox1.SelectedItem.ToString()))
{
ret = comboBox1.SelectedItem.ToString();
}
return ret;
}
}
}
}

30
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs

@ -263,18 +263,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -263,18 +263,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
{
this.model = reportStructure.CreateAndFillReportModel();
this.resultDataSet = FillGrid();
if (this.resultDataSet != null) {
this.grdQuery.DataSource = this.resultDataSet.Tables[0];
foreach (DataGridViewColumn dd in this.grdQuery.Columns) {
DataGridViewColumnHeaderCheckBoxCell cb = new DataGridViewColumnHeaderCheckBoxCell();
cb.CheckBoxAlignment = HorizontalAlignment.Right;
cb.Checked = true;
dd.HeaderCell = cb;
dd.SortMode = DataGridViewColumnSortMode.NotSortable;
}
this.grdQuery.AllowUserToOrderColumns = true;
}
SetupGrid ();
base.EnableNext = true;
base.EnableFinish = true;
@ -295,6 +284,23 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -295,6 +284,23 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
return true;
}
private void SetupGrid()
{
if (this.resultDataSet != null) {
this.grdQuery.DataSource = this.resultDataSet.Tables[0];
foreach (DataGridViewColumn dd in this.grdQuery.Columns) {
DataGridViewColumnHeaderCheckBoxCell cb = new DataGridViewColumnHeaderCheckBoxCell();
cb.CheckBoxAlignment = HorizontalAlignment.Right;
cb.Checked = true;
dd.HeaderCell = cb;
dd.SortMode = DataGridViewColumnSortMode.NotSortable;
}
this.grdQuery.AllowUserToOrderColumns = true;
}
}
private void WriteResult ()
{
if (this.resultDataSet != null) {

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

@ -7,16 +7,14 @@ @@ -7,16 +7,14 @@
using System;
using System.Collections;
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace ICSharpCode.Reports.Core
{
/// <summary>
/// Description of DataNavigator.
/// </summary>
public class DataNavigator :IDataNavigator,IEnumerable
public class DataNavigator :IDataNavigator
// public class DataNavigator :IDataNavigator,IEnumerable
{
private IDataViewStrategy store;
@ -54,6 +52,9 @@ namespace ICSharpCode.Reports.Core @@ -54,6 +52,9 @@ namespace ICSharpCode.Reports.Core
}
public AvailableFieldsCollection AvailableFields{
get
{
@ -70,7 +71,7 @@ namespace ICSharpCode.Reports.Core @@ -70,7 +71,7 @@ namespace ICSharpCode.Reports.Core
public int CurrentRow {
get {return this.store.CurrentPosition;}
}
public int Count {
get {return this.store.Count;}
@ -97,7 +98,7 @@ namespace ICSharpCode.Reports.Core @@ -97,7 +98,7 @@ namespace ICSharpCode.Reports.Core
#region IEnumarable
/*
public IEnumerator RangeEnumerator(int start, int end)
{
if (start > end) {
@ -119,7 +120,62 @@ namespace ICSharpCode.Reports.Core @@ -119,7 +120,62 @@ namespace ICSharpCode.Reports.Core
yield return this.Current;
}
}
*/
#endregion
#region aaaaaa
public bool HasChildren
{
get{
TableStrategy t = store as TableStrategy;
IndexList i = t.IndexList;
GroupComparer gc = i[t.CurrentPosition] as GroupComparer;
return gc.IndexList.Count > 0;
}
}
IndexList childList;
private System.Collections.Generic.List<BaseComparer>.Enumerator ce;
public void MoveToChilds()
{
childList = new IndexList();
TableStrategy t = store as TableStrategy;
IndexList i = t.IndexList;
GroupComparer gc = i[t.CurrentPosition] as GroupComparer;
childList = gc.IndexList;
ce = childList.GetEnumerator();
ce.MoveNext();
}
public object ReadChild()
{
var i = ce.Current.ListIndex;
TableStrategy t = store as TableStrategy;
return t.Readrandowm (i);
}
public bool ChildMoveNext()
{
return ce.MoveNext();
}
#endregion
}
public class ChildNavigator
{
public ChildNavigator (IndexList list)
{
IndexList = list;
}
public IndexList IndexList {get; private set;}
}
}

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

@ -25,14 +25,6 @@ namespace ICSharpCode.Reports.Core { @@ -25,14 +25,6 @@ namespace ICSharpCode.Reports.Core {
public static class SortExtension
{
// template
/*
public static IOrderedQueryable<User> MyOrder(this IQueryable<User> source )
{
return source.OrderBy(x => x.LastName).ThenBy(x => x.FirstName).ThenBy(x => x.Email);
}
*/
public static IOrderedQueryable<BaseComparer> AscendingOrder(this IQueryable<BaseComparer> source )
{
@ -69,20 +61,6 @@ namespace ICSharpCode.Reports.Core { @@ -69,20 +61,6 @@ namespace ICSharpCode.Reports.Core {
#endregion
#region Event's
/*
protected void NotifyGroupChanging (object source,GroupSeparator groupSeperator)
{
if (this.GroupChanged != null) {
this.GroupChanged (source,new GroupChangedEventArgs(groupSeperator));
}
}
*/
#endregion
protected static Collection<AbstractColumn> CreateSortCollection (ColumnCollection items)
@ -152,30 +130,6 @@ namespace ICSharpCode.Reports.Core { @@ -152,30 +130,6 @@ namespace ICSharpCode.Reports.Core {
}
}
/*
protected static void CheckSortArray (ExtendedIndexCollection arr,string text)
{
if (arr != null) {
int row = 0;
foreach (BaseComparer bc in arr) {
GroupSeparator sep = bc as GroupSeparator;
if (sep != null) {
} else {
object [] oarr = bc.ObjectArray;
for (int i = 0;i < oarr.Length ;i++ ) {
string str = oarr[i].ToString();
}
row ++;
}
}
}
System.Console.WriteLine("-----End of <CheckSortArray>-----------");
}
*/
public virtual void Reset()
{
@ -304,24 +258,7 @@ namespace ICSharpCode.Reports.Core { @@ -304,24 +258,7 @@ namespace ICSharpCode.Reports.Core {
}
/*
public bool HasChildren
{
get {
if (this.IsGrouped == true) {
GroupSeparator gs = (GroupSeparator)this.indexList[this.CurrentRow] as GroupSeparator;
if (gs != null) {
return (gs.GetChildren.Count > 0);
} else {
return false;
}
} else {
return false;
}
}
}
*/
/*
public IndexList ChildRows
{

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

@ -11,7 +11,6 @@ using System.Collections; @@ -11,7 +11,6 @@ using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data;
using System.Linq;
namespace ICSharpCode.Reports.Core
{
@ -37,9 +36,7 @@ namespace ICSharpCode.Reports.Core @@ -37,9 +36,7 @@ namespace ICSharpCode.Reports.Core
base.Bind();
if (base.ReportSettings.GroupColumnsCollection.Count > 0) {
this.Group();
} else {
this.Sort ();
}
@ -190,7 +187,6 @@ namespace ICSharpCode.Reports.Core @@ -190,7 +187,6 @@ namespace ICSharpCode.Reports.Core
private void GChild(IndexList list,BaseComparer sc)
{
string v = sc.ObjectArray[0].ToString();
// Console.WriteLine("child {0}",v);
list.Add(sc);
}
@ -277,10 +273,10 @@ namespace ICSharpCode.Reports.Core @@ -277,10 +273,10 @@ namespace ICSharpCode.Reports.Core
int cr = base.CurrentPosition;
int li = (base.IndexList[cr] ).ListIndex;
return this.table.Rows[li];
// return this.view[((BaseComparer)base.IndexList[base.CurrentRow]).ListIndex];
}
}
public override int CurrentPosition {
get { return base.CurrentPosition; }
set { base.CurrentPosition = value; }
@ -292,5 +288,11 @@ namespace ICSharpCode.Reports.Core @@ -292,5 +288,11 @@ namespace ICSharpCode.Reports.Core
}
#endregion
public DataRow Readrandowm (int pos)
{
return this.table.Rows[pos];
}
}
}

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

@ -68,14 +68,17 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -68,14 +68,17 @@ namespace ICSharpCode.Reports.Core.Exporter
int defaultLeftPos = parent.Location.X;
do {
Console.WriteLine ("haschild {0}",base.DataNavigator.HasChildren);
if (base.DataNavigator.HasChildren) {
ReadFromChilds(base.DataNavigator);
}
section.Location = new Point(section.Location.X,section.SectionOffset );
section.Size = this.SectionBounds.DetailSectionRectangle.Size;
base.SaveSize(section.Items[0].Size);
base.FillRow(simpleContainer);
base.LayoutRow(simpleContainer);
base.FireSectionRendering(section);
@ -111,5 +114,16 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -111,5 +114,16 @@ namespace ICSharpCode.Reports.Core.Exporter
return mylist;
}
void ReadFromChilds (IDataNavigator nav)
{
nav.MoveToChilds();
do {
var o = nav.ReadChild() as System.Data.DataRow;
string v = o.ItemArray[3].ToString();
Console.WriteLine("\t {0}",v);
}
while ( nav.ChildMoveNext());
}
}
}

33
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataNavigator.cs

@ -21,32 +21,27 @@ using System.ComponentModel; @@ -21,32 +21,27 @@ using System.ComponentModel;
bool HasMoreData {
get;
}
/*
bool HasChildren {
get;
}
*/
//Test
// ChildNavigator GetChildNavigator();
bool HasChildren {get;}
void MoveToChilds();
object ReadChild ();
bool ChildMoveNext();
//endtest
bool IsSorted {get;}
bool IsGrouped {get;}
int CurrentRow {
get;
}
int Count {
get;
}
object Current {
get;
}
int CurrentRow {get;}
int Count {get;}
object Current {get;}
AvailableFieldsCollection AvailableFields{get;}
System.Collections.IEnumerator RangeEnumerator(int start, int end);
// System.Collections.IEnumerator RangeEnumerator(int start, int end);
}
}

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

@ -35,31 +35,106 @@ namespace ICSharpCode.Reports.Core.Test.DataManager @@ -35,31 +35,106 @@ namespace ICSharpCode.Reports.Core.Test.DataManager
[Test]
public void GroupingCollection_Contains_IsGrouped_False()
{
GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);
ReportSettings rs = new ReportSettings();
rs.GroupColumnsCollection.Add(gc);
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,rs);
DataNavigator dataNav = dm.GetNavigator;
var dataNav = PrepareStandardGrouping();
Assert.That(dataNav.IsGrouped == true);
}
[Test]
public void Has_Children()
{
var dataNav = PrepareStandardGrouping();
while (dataNav.MoveNext()) {
Assert.That(dataNav.HasChildren,Is.True);
}
}
[Test]
public void Read_Children()
{
var dataNav = PrepareStandardGrouping();
while (dataNav.MoveNext()) {
if (dataNav.HasChildren) {
DataRow r = dataNav.Current as DataRow;
string v2 = r["last"].ToString() + " GroupVal :" + r[3].ToString();
Console.WriteLine(v2);
ReadFromChilds(dataNav);
}
}
}
void ReadFromChilds (IDataNavigator nav)
{
nav.MoveToChilds();
do {
var o = nav.ReadChild() as DataRow;
string v = o.ItemArray[3].ToString();
Console.WriteLine("\t {0}",v);
}
while ( nav.ChildMoveNext());
}
/*
[Test]
public void aaa()
{
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,new ReportSettings());
DataNavigator dataNav = dm.GetNavigator;
while (dataNav.MoveNext()) {
DataRow r = dataNav.Current as DataRow;
string v2 = r["Groupitem"].ToString();
Console.WriteLine(v2);
}
}
[Test]
public void ChildNavigator_Can_Init()
{
var dataNav = PrepareStandardGrouping();
Console.WriteLine("start list");
while (dataNav.MoveNext())
{
DataRow r = dataNav.Current as DataRow;
string v2 = r["Groupitem"].ToString();
Console.WriteLine(" - {0} ",v2);
ChildNavigator childNav = dataNav.GetChildNavigator();
Assert.That(childNav != null);
}
}
*/
/*
[Test]
public void ChildNavigator_All_Childs_Contains_Elements()
{
var dataNav = PrepareStandardGrouping();
Console.WriteLine("start list");
while (dataNav.MoveNext())
{
ChildNavigator childNav = dataNav.GetChildNavigator();
Assert.That(childNav.IndexList.Count > 0);
}
}
*/
private IDataNavigator PrepareStandardGrouping ()
{
GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);
ReportSettings rs = new ReportSettings();
rs.GroupColumnsCollection.Add(gc);
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,rs);
return dm.GetNavigator;
}
[TestFixtureSetUp]
public void Init()
{

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/IListDataManagerFixture.cs

@ -301,7 +301,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager @@ -301,7 +301,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager
#endregion
#region RangeEnumerator
/*
[Test]
public void RangeEnumeratorFromBeginToEnd()
{
@ -355,7 +355,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager @@ -355,7 +355,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager
}
Assert.AreEqual(start -1,dn.CurrentRow);
}
*/
#endregion
#region Setup/TearDown

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/Strategy/TableStrategyFixture.cs

@ -48,7 +48,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.Strategy @@ -48,7 +48,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.Strategy
public void CanGroup_All_Elements_are_GroupComparer ()
{
GroupColumn groupComparer = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);
TableStrategy tableStrategy =GroupTableStrategyFactory (groupComparer);
TableStrategy tableStrategy = GroupTableStrategyFactory (groupComparer);
tableStrategy.Bind();
foreach (BaseComparer element in tableStrategy.IndexList)
{

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

@ -181,7 +181,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager @@ -181,7 +181,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager
#region Standart Enumerator
/*
[Test]
public void IEnumerableStartFromBegin ()
{
@ -200,7 +200,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager @@ -200,7 +200,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager
Assert.AreEqual(this.table.Rows.Count,start);
Assert.IsFalse(dn.HasMoreData);
}
*/
[Test]
public void EnumeratorStartFromBegin ()
@ -222,7 +222,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager @@ -222,7 +222,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager
#endregion
#region RangeEnumerator
/*
[Test]
public void RangeEnumeratorStartFromBegin ()
{
@ -278,6 +278,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager @@ -278,6 +278,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager
}
Assert.AreEqual(start -1,dn.CurrentRow);
}
*/
#endregion

Loading…
Cancel
Save