Browse Source

Fill, ReportCreatorFactory

reports
Peter Forstmeier 12 years ago
parent
commit
ddfff10c61
  1. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
  2. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs
  3. 19
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs
  4. 46
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs
  5. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs
  6. 11
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs
  7. 12
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
  8. 53
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs
  9. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs
  10. 5
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs
  11. 42
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj

@ -99,6 +99,7 @@ @@ -99,6 +99,7 @@
<Compile Include="Src\Exporter\Visitors\WpfVisitor.cs" />
<Compile Include="Src\ExportRenderer\FixedDocumentCreator.cs" />
<Compile Include="Src\Factories\ExportColumnFactory.cs" />
<Compile Include="Src\Factories\ReportCreatorFactory.cs" />
<Compile Include="Src\Factories\SectionFactory.cs" />
<Compile Include="Src\Globals\CreateGraphics.cs" />
<Compile Include="Src\Globals\MeasurementService.cs" />

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs

@ -98,7 +98,7 @@ namespace ICSharpCode.Reporting @@ -98,7 +98,7 @@ namespace ICSharpCode.Reporting
}
}
/*
public class ReportItemCollection : Collection<PrintableItem>
{
@ -114,5 +114,4 @@ namespace ICSharpCode.Reporting @@ -114,5 +114,4 @@ namespace ICSharpCode.Reporting
InnerList.Sort(comparer);
}
}
*/
}

19
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs

@ -119,7 +119,7 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling @@ -119,7 +119,7 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling
}
#region Fill
/*
public void Fill(IDataItem item)
{
@ -132,6 +132,23 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling @@ -132,6 +132,23 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling
item.DataType = p.PropertyType.ToString();
}
}
*/
public void Fill(ReportItemCollection collection)
{
foreach (IDataItem item in collection)
{
FillInternal(item);
}
}
void FillInternal (IDataItem item) {
var p = listProperties.Find(item.ColumnName,true);
item.DBValue = p.GetValue(Current).ToString();
if (String.IsNullOrEmpty(item.DataType)) {
item.DataType = p.PropertyType.ToString();
}
}
#endregion

46
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs

@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 01.06.2013
* Time: 18:59
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder;
namespace ICSharpCode.Reporting.Factories
{
/// <summary>
/// Description of ReportCreatorFactory.
/// </summary>
internal class ReportCreatorFactory {
public static IReportCreator ExporterFactory(IReportModel reportModel)
{
IReportCreator reportCreator = null;
switch (reportModel.ReportSettings.DataModel) {
case GlobalEnums.PushPullModel.FormSheet:
{
reportCreator = new FormPageBuilder(reportModel);
break;
}
case GlobalEnums.PushPullModel.PullData:
{
break;
}
case GlobalEnums.PushPullModel.PushData:
{
break;
}
}
return reportCreator;
}
}
}

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs

@ -29,7 +29,9 @@ namespace ICSharpCode.Reporting.Interfaces.Data @@ -29,7 +29,9 @@ namespace ICSharpCode.Reporting.Interfaces.Data
// void Fill (int position,ReportItemCollection collection);
//rausnehmen
void Fill (IDataItem item);
// void Fill (IDataItem item);
void Fill(ReportItemCollection collection);
IndexList IndexList {get;}

11
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs

@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
*/
using System;
using System.Drawing;
using System.Linq;
using ICSharpCode.Reporting.BaseClasses;
using ICSharpCode.Reporting.Exporter;
using ICSharpCode.Reporting.Globals;
@ -35,7 +36,6 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -35,7 +36,6 @@ namespace ICSharpCode.Reporting.PageBuilder
{
base.BuildExportList();
WritePages ();
// BuildReportHeader();
}
@ -81,11 +81,14 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -81,11 +81,14 @@ namespace ICSharpCode.Reporting.PageBuilder
void BuildReportFooter()
{
Console.WriteLine("FormPageBuilder - Build ReportFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin);
// CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin,
// ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height);
var x = CurrentPage.ExportedItems.Last();
CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin,
ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height);
x.Location.Y + x.Size.Height + 1);
var containerConverter = new ContainerConverter(graphics,ReportModel.ReportFooter,CurrentLocation);
var header =containerConverter.Convert();
header.Parent = CurrentPage;
CurrentPage.ExportedItems.Add(header);
}
@ -98,7 +101,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -98,7 +101,7 @@ namespace ICSharpCode.Reporting.PageBuilder
BuildPageHeader();
BuilDetail();
BuildPageFooter();
// BuildReportFooter();
BuildReportFooter();
base.AddPage(CurrentPage);
}

12
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs

@ -12,6 +12,7 @@ using System.Collections.Generic; @@ -12,6 +12,7 @@ using System.Collections.Generic;
using System.IO;
using System.Xml;
using ICSharpCode.Reporting.Factories;
using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Items;
@ -39,15 +40,18 @@ namespace ICSharpCode.Reporting @@ -39,15 +40,18 @@ namespace ICSharpCode.Reporting
return builder;
}
public IReportCreator ReportCreator (Stream stream)
internal IReportCreator ReportCreator (Stream stream)
{
IReportModel reportModel = LoadReportModel (stream);
IReportCreator builder = null;
if (reportModel.ReportSettings.DataModel == GlobalEnums.PushPullModel.FormSheet) {
builder = new FormPageBuilder(reportModel);
}
builder = ReportCreatorFactory.ExporterFactory(reportModel);
return builder;
}
object ExporterFactory(IReportModel reportModel)
{
throw new NotImplementedException();
}
internal ReportModel LoadReportModel (Stream stream)

53
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs

@ -61,17 +61,46 @@ namespace ICSharpCode.Reporting.Test.DataSource @@ -61,17 +61,46 @@ namespace ICSharpCode.Reporting.Test.DataSource
}
#region Fill
[Test]
public void justFill() {
var collectionSource = new CollectionSource (list,new ReportSettings());
collectionSource.Bind();
var a = collectionSource.MoveNext();
collectionSource.Fill(new BaseDataItem() {
ColumnName = "Lastname"
});
public void TypeOfReportItemIsString () {
var ric = new ReportItemCollection(){
new BaseDataItem(){
ColumnName = "Lastname"
},
new BaseDataItem(){
ColumnName = "Firstname"
}
};
var collectionSource = new CollectionSource (list,new ReportSettings());
collectionSource.Bind();
collectionSource.Fill(ric);
foreach (BaseDataItem element in ric) {
Assert.That(element.DataType,Is.EqualTo("System.String"));
}
}
[Test]
public void FillReportItemCollection () {
var ric = new ReportItemCollection(){
new BaseDataItem(){
ColumnName = "Lastname"
},
new BaseDataItem(){
ColumnName = "Firstname"
}
};
var collectionSource = new CollectionSource (list,new ReportSettings());
collectionSource.Bind();
collectionSource.Fill(ric);
foreach (BaseDataItem element in ric) {
Assert.That(element.DBValue,Is.Not.EqualTo(String.Empty));
}
}
#endregion
@ -90,6 +119,12 @@ namespace ICSharpCode.Reporting.Test.DataSource @@ -90,6 +119,12 @@ namespace ICSharpCode.Reporting.Test.DataSource
public void bla () {
var s = list.OrderBy(a => a.Lastname);
var x = s.GroupBy(y => y.GroupItem);
foreach (var group in x) {
Console.WriteLine("{0} - {1}",group.Key,group.GetType().ToString());
foreach (var element in group) {
Console.WriteLine(element.Firstname);
}
}
}
#endregion

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs

@ -25,7 +25,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder @@ -25,7 +25,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
public void CurrentPageContainFiveItems() {
reportCreator.BuildExportList();
var page = reportCreator.Pages[0];
Assert.That(page.ExportedItems.Count, Is.EqualTo(3));
Assert.That(page.ExportedItems.Count, Is.EqualTo(4));
}

5
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs

@ -32,14 +32,14 @@ namespace ICSharpCode.Reporting.Test.PageBuilder @@ -32,14 +32,14 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
var y = from s in x
where s.GetType() == typeof(ExportContainer)
select s;
Assert.That(y.ToList().Count,Is.EqualTo(3));
Assert.That(y.ToList().Count,Is.EqualTo(4));
Console.WriteLine("-------ShowDebug---------");
var ex = new DebugExporter(reportCreator.Pages);
ex.Run();
}
[Test]
public void SectionsInpageDoNotOverlap()
public void SectionsInPageDoNotOverlap()
{
Point p = Point.Empty;
reportCreator.BuildExportList();
@ -48,6 +48,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder @@ -48,6 +48,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
foreach (var item in element.ExportedItems) {
if (! first) {
var p2 = new Point(item.Location.X,item.Location.Y);
Console.WriteLine("{0} - {1}",p2,item.Name);
Assert.That(p2.Y,Is.GreaterThan(p.Y));
} else {
first = false;

42
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs

@ -55,7 +55,7 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews @@ -55,7 +55,7 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews
public Collection<Page> Pages{get;private set;}
protected override void LoadFromPrimary()
{
@ -64,48 +64,14 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews @@ -64,48 +64,14 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews
var modulLoader = new ModelLoader();
ReportModel model = (ReportModel)modulLoader.Load(xmDoc.DocumentElement);
// var collectCmd = new CollectParametersCommand(model.ReportSettings);
// collectCmd.Run();
IReportCreator reportCreator = null;
switch (model.ReportSettings.DataModel)
{
case GlobalEnums.PushPullModel.FormSheet :
{
// exportRunner.RunReport(model,(ReportParameters)null);
var reportingFactory = new ReportingFactory();
reportCreator = reportingFactory.ReportCreator(model);
reportCreator.BuildExportList();
// var pe = new PrintExporter(reportCreator.Pages);
// pe.Run();
break;
}
case GlobalEnums.PushPullModel.PullData:
{
// exportRunner.RunReport(model,(ReportParameters)null);
break;
}
case GlobalEnums.PushPullModel.PushData:
{
// var cmd = new DataSetFromXsdCommand();
// cmd.Run();
// System.Data.DataSet ds = cmd.DataSet;
// exportRunner.RunReport(model,ds.Tables[0],(ReportParameters)null);
break;
}
// default:
// throw new InvalidReportModelException();
}
var reportingFactory = new ReportingFactory();
var reportCreator = reportingFactory.ReportCreator(model);
reportCreator.BuildExportList();
PreviewViewModel previewViewModel = new PreviewViewModel (model.ReportSettings,reportCreator.Pages);
viewer.SetBinding(previewViewModel);
}
protected override void SaveToPrimary()
{
// throw new NotImplementedException();

Loading…
Cancel
Save