Browse Source

Sections in ReportModel.cs

reports
Peter Forstmeier 13 years ago
parent
commit
4a4ef4bfcb
  1. 5
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
  2. 23
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs
  3. 59
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/PageInfo.cs
  4. 30
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/SectionFactory.cs
  5. 14
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs
  6. 6
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs
  7. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs
  8. 29
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs
  9. 6
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs
  10. 11
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs
  11. 27
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs
  12. 43
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs
  13. 24
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs
  14. 16
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs
  15. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
  16. 49
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs

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

@ -56,12 +56,16 @@ @@ -56,12 +56,16 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Src\BaseClasses\Page.cs" />
<Compile Include="Src\BaseClasses\PageInfo.cs" />
<Compile Include="Src\Configuration\AssemblyInfo.cs" />
<Compile Include="Src\Factories\SectionFactory.cs" />
<Compile Include="Src\Interfaces\IReportItem.cs" />
<Compile Include="Src\Interfaces\IReportCreator.cs" />
<Compile Include="Src\Items\BaseSection.cs" />
<Compile Include="Src\Globals\GlobalEnums.cs" />
<Compile Include="Src\Globals\GlobalValues.cs" />
<Compile Include="Src\Interfaces\IReportModel.cs" />
<Compile Include="Src\Items\ReportItem.cs" />
<Compile Include="Src\Items\ReportModel.cs" />
<Compile Include="Src\Items\ReportSettings.cs" />
<Compile Include="Src\PageBuilder\BasePageBuilder.cs" />
@ -77,6 +81,7 @@ @@ -77,6 +81,7 @@
<Folder Include="Src" />
<Folder Include="Src\Items" />
<Folder Include="Src\BaseClasses" />
<Folder Include="Src\Factories" />
<Folder Include="Src\PageBuilder" />
<Folder Include="Src\Xml" />
</ItemGroup>

23
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs

@ -14,14 +14,33 @@ namespace ICSharpCode.Reporting.BaseClasses @@ -14,14 +14,33 @@ namespace ICSharpCode.Reporting.BaseClasses
/// Description of Page.
/// </summary>
///
public interface IPage{
bool IsFirstPage {get;set;}
IPageInfo PageInfo {get;}
}
public class Page:IPage
{
public Page()
public Page(IPageInfo pageInfo)
{
if (pageInfo == null) {
throw new ArgumentNullException("pageInfo");
}
PageInfo = pageInfo;
}
public bool IsFirstPage {get;set;}
public IPageInfo PageInfo {get;private set;}
}
}

59
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/PageInfo.cs

@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 05.04.2013
* Time: 19:50
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace ICSharpCode.Reporting.BaseClasses
{
/// <summary>
/// Description of PageInfo.
/// </summary>
///
public interface IPageInfo
{
int PageNumber {get;set;}
int TotalPages {get;set;}
string ReportName {get;set;}
string ReportFileName {get;set;}
string ReportFolder {get;}
DateTime ExecutionTime {get;set;}
// System.Collections.Hashtable ParameterHash {get;set;}
// IDataNavigator IDataNavigator {get;set;}
}
public class PageInfo:IPageInfo
{
public PageInfo()
{
}
public int PageNumber {get;set;}
public int TotalPages {get;set;}
public string ReportName {get;set;}
public string ReportFileName {get;set;}
public string ReportFolder {
get{
return System.IO.Path.GetDirectoryName(this.ReportFileName);
}
}
public DateTime ExecutionTime {get;set;}
}
}

30
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/SectionFactory.cs

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 06.04.2013
* Time: 20:08
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using ICSharpCode.Reporting.Items;
namespace ICSharpCode.Reporting.Factories
{
/// <summary>
/// Description of SectionFactory.
/// </summary>
internal sealed class SectionFactory
{
private SectionFactory ()
{
}
public static BaseSection Create(string sectionName) {
if (String.IsNullOrEmpty(sectionName)) {
throw new ArgumentException("sectionName");
}
return new BaseSection(sectionName);
}
}
}

14
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs

@ -15,7 +15,7 @@ namespace ICSharpCode.Reporting.Globals @@ -15,7 +15,7 @@ namespace ICSharpCode.Reporting.Globals
/// </summary>
public class GlobalEnums
{
internal enum ReportSection {
public enum ReportSection {
ReportHeader,
ReportPageHeader,
ReportDetail,
@ -34,5 +34,17 @@ namespace ICSharpCode.Reporting.Globals @@ -34,5 +34,17 @@ namespace ICSharpCode.Reporting.Globals
PullData,
FormSheet
}
/// <summary>
/// FormSheet means a blank form with Labels, Lines and Checkboxes
/// DataReport handles all Reports with Data
/// </summary>
public enum ReportType {
FormSheet,
DataReport,
}
}
}

6
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs

@ -21,5 +21,11 @@ namespace ICSharpCode.Reporting.Globals @@ -21,5 +21,11 @@ namespace ICSharpCode.Reporting.Globals
public static Size DefaultPageSize {get {return new Size(827,1169);}}
public static string PlainFileName
{
get {
return DefaultReportName + ReportExtension;
}
}
}
}

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs

@ -19,6 +19,7 @@ namespace ICSharpCode.Reporting.Interfaces @@ -19,6 +19,7 @@ namespace ICSharpCode.Reporting.Interfaces
{
void BuildExportList ();
List<IPage> Pages {get;}
// PagesCollection Pages{get;}
// event EventHandler<PageCreatedEventArgs> PageCreated;
// event EventHandler<SectionRenderEventArgs> SectionRendering;

29
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 06.04.2013
* Time: 19:55
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace ICSharpCode.Reporting.Interfaces
{
/// <summary>
/// Description of IPrintObject.
/// </summary>
public interface IReportItem
{
string Name{get;set;}
// Size Size {get;set;}
// Point Location {get;set;}
// Font Font {get;set;}
//// bool VisibleInReport {get;set;}
// Color BackColor {get;set;}
// Color FrameColor {get;set;}
// int SectionOffset {get;set;}
// bool CanGrow {get;set;}
// bool CanShrink {get;set;}
}
}

6
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs

@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using ICSharpCode.Reporting.Items;
namespace ICSharpCode.Reporting.Interfaces
@ -17,15 +18,16 @@ namespace ICSharpCode.Reporting.Interfaces @@ -17,15 +18,16 @@ namespace ICSharpCode.Reporting.Interfaces
public interface IReportModel
{
ReportSettings ReportSettings {get;set;}
List<BaseSection> SectionCollection {get;}
/*
BaseSection ReportHeader {get;}
BaseSection PageHeader {get;}
BaseSection DetailSection {get;}
BasistSection DetailSection {get;}
BaseSection PageFooter {get;}
BaseSection ReportFooter {get;}
GlobalEnums.PushPullModel DataModel {get;}
ReportSectionCollection SectionCollection {get;}
*/
}
}

11
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs

@ -7,16 +7,25 @@ @@ -7,16 +7,25 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using ICSharpCode.Reporting.Interfaces;
namespace ICSharpCode.Reporting.Items
{
/// <summary>
/// Description of BaseSection.
/// </summary>
public class BaseSection
public class BaseSection:ReportItem
{
#region Constructors
public BaseSection()
{}
public BaseSection (string sectionName)
{
base.Name = sectionName;
}
#endregion
}
}

27
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 06.04.2013
* Time: 20:15
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using ICSharpCode.Reporting.Interfaces;
namespace ICSharpCode.Reporting.Items
{
/// <summary>
/// Description of ReportItem.
/// </summary>
public class ReportItem:IReportItem
{
public ReportItem()
{
}
public string Name {get;set;}
}
}

43
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs

@ -7,6 +7,8 @@ @@ -7,6 +7,8 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using ICSharpCode.Reporting.Factories;
using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Interfaces;
@ -18,33 +20,20 @@ namespace ICSharpCode.Reporting.Items @@ -18,33 +20,20 @@ namespace ICSharpCode.Reporting.Items
internal class ReportModel :IReportModel
{
// ReportSectionCollection sectionCollection;
public static ReportModel Create()
{
var model = new ReportModel();
// foreach (GlobalEnums.ReportSection sec in Enum.GetValues(typeof(GlobalEnums.ReportSection))) {
// m.SectionCollection.Add (SectionFactory.Create(sec.ToString()));
// }
return model;
}
/*
public static ReportModel Create(GraphicsUnit graphicsUnit)
{
ReportModel m = Create();
m.ReportSettings.GraphicsUnit = graphicsUnit;
return m;
public ReportModel() {
SectionCollection = new List<BaseSection>();
foreach (GlobalEnums.ReportSection sec in Enum.GetValues(typeof(GlobalEnums.ReportSection))) {
SectionCollection.Add (SectionFactory.Create(sec.ToString()));
}
}
#region Sections
public BaseSection ReportHeader
{
get {
return (BaseSection)sectionCollection[0];
return (BaseSection)SectionCollection[0];
}
}
@ -52,7 +41,7 @@ namespace ICSharpCode.Reporting.Items @@ -52,7 +41,7 @@ namespace ICSharpCode.Reporting.Items
public BaseSection PageHeader
{
get {
return (BaseSection)sectionCollection[1];
return (BaseSection)SectionCollection[1];
}
}
@ -60,7 +49,7 @@ namespace ICSharpCode.Reporting.Items @@ -60,7 +49,7 @@ namespace ICSharpCode.Reporting.Items
public BaseSection DetailSection
{
get {
return (BaseSection)sectionCollection[2];
return (BaseSection)SectionCollection[2];
}
}
@ -68,19 +57,19 @@ namespace ICSharpCode.Reporting.Items @@ -68,19 +57,19 @@ namespace ICSharpCode.Reporting.Items
public BaseSection PageFooter
{
get {
return (BaseSection)sectionCollection[3];
return (BaseSection)SectionCollection[3];
}
}
public BaseSection ReportFooter
{
get {
return (BaseSection)sectionCollection[4];
return (BaseSection)SectionCollection[4];
}
}
#endregion
*/
ReportSettings reportSettings ;
@ -96,5 +85,7 @@ namespace ICSharpCode.Reporting.Items @@ -96,5 +85,7 @@ namespace ICSharpCode.Reporting.Items
reportSettings = value;
}
}
public List<BaseSection> SectionCollection {get; private set;}
}
}

24
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs

@ -8,6 +8,8 @@ @@ -8,6 +8,8 @@
*/
using System;
using System.Drawing;
using System.IO;
using ICSharpCode.Reporting.Globals;
namespace ICSharpCode.Reporting.Items
@ -33,7 +35,7 @@ namespace ICSharpCode.Reporting.Items @@ -33,7 +35,7 @@ namespace ICSharpCode.Reporting.Items
// this.GraphicsUnit = GraphicsUnit.Pixel;
// this.Padding = new Padding(5);
// this.DefaultFont = GlobalValues.DefaultFont;
// this.ReportType = GlobalEnums.ReportType.FormSheet;
this.ReportType = GlobalEnums.ReportType.FormSheet;
//
this.DataModel = GlobalEnums.PushPullModel.FormSheet;
//
@ -74,6 +76,22 @@ namespace ICSharpCode.Reporting.Items @@ -74,6 +76,22 @@ namespace ICSharpCode.Reporting.Items
}
}
private string fileName;
// [Category("Base Settings")]
// [XmlIgnoreAttribute]
public string FileName
{
get {
if (String.IsNullOrEmpty(fileName)) {
fileName = GlobalValues.PlainFileName;
}
return Path.GetFullPath(fileName);
}
set {
fileName = value;
}
}
private Size pageSize;
public Size PageSize {
@ -95,5 +113,9 @@ namespace ICSharpCode.Reporting.Items @@ -95,5 +113,9 @@ namespace ICSharpCode.Reporting.Items
// [Category("Data")]
public GlobalEnums.PushPullModel DataModel {get;set;}
// [Browsable(true), Category("Base Settings")]
public GlobalEnums.ReportType ReportType {get;set;}
}
}

16
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs

@ -31,11 +31,25 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -31,11 +31,25 @@ namespace ICSharpCode.Reporting.PageBuilder
protected IPage InitNewPage(){
return new Page();
var pi = CreatePageInfo();
return new Page(pi);
}
IPageInfo CreatePageInfo()
{
var pi = new PageInfo();
pi.PageNumber = Pages.Count +1;
pi.ReportName = ReportModel.ReportSettings.ReportName;
pi.ReportFileName = ReportModel.ReportSettings.FileName;
// pi.ReportName = ReportModel.ReportSettings.ReportName;
return pi;
}
protected virtual void AddPage(IPage page) {
if (Pages.Count == 0) {
page.IsFirstPage = true;
}
Pages.Add(page);
}

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

@ -35,9 +35,7 @@ namespace ICSharpCode.Reporting @@ -35,9 +35,7 @@ namespace ICSharpCode.Reporting
IReportModel reportModel = LoadReportModel (stream);
IReportCreator builder = null;
if (reportModel.ReportSettings.DataModel == GlobalEnums.PushPullModel.FormSheet) {
// builder = FormPageBuilder.CreateInstance(reportModel);
builder = new FormPageBuilder(reportModel);
Console.WriteLine("aaaaaaaaaaaaaaaaa");
}
// else {
// CheckForParameters(reportModel,reportParameters);

49
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs

@ -10,7 +10,7 @@ using System; @@ -10,7 +10,7 @@ using System;
using System.IO;
using System.Reflection;
using ICSharpCode.Reporting.BaseClasses;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.PageBuilder;
using NUnit.Framework;
@ -19,47 +19,76 @@ namespace ICSharpCode.Reporting.Test.PageBuilder @@ -19,47 +19,76 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
[TestFixture]
public class PageBuilderFixture
{
private Stream stream;
private IReportCreator reportCreator;
[Test]
public void CanCreateFormsPageBuilder()
{
var reportingFactory = new ReportingFactory();
var reportCreator = reportingFactory.ReportCreator(stream);
Assert.IsNotNull(reportCreator);
}
[Test]
public void PagesCountIsZero () {
var reportingFactory = new ReportingFactory();
var reportCreator = reportingFactory.ReportCreator(stream);
Assert.That(reportCreator.Pages.Count,Is.EqualTo(0));
}
[Test]
public void BuildExportPagesCountIsOne() {
var reportingFactory = new ReportingFactory();
var reportCreator = reportingFactory.ReportCreator(stream);
reportCreator.BuildExportList();
Assert.That(reportCreator.Pages.Count,Is.EqualTo(1));
}
[Test]
public void CurrentPageIsSet() {
System.Reflection.Assembly asm = Assembly.GetExecutingAssembly();
var stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName);
var reportingFactory = new ReportingFactory();
var reportCreator = (FormPageBuilder)reportingFactory.ReportCreator(stream);
reportCreator.BuildExportList();
Assert.That(reportCreator.CurrentPage,Is.Not.Null);
}
[Test]
public void CurrentPageIsFirstPage() {
System.Reflection.Assembly asm = Assembly.GetExecutingAssembly();
var stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName);
var reportingFactory = new ReportingFactory();
var reportCreator = (FormPageBuilder)reportingFactory.ReportCreator(stream);
reportCreator.BuildExportList();
Assert.That(reportCreator.CurrentPage.IsFirstPage,Is.True);
Assert.That(reportCreator.Pages[0].IsFirstPage,Is.True);
}
[Test]
public void PageInfoPageNumberIsOne() {
reportCreator.BuildExportList();
var pi = reportCreator.Pages[0].PageInfo;
Assert.That(pi.PageNumber,Is.EqualTo(1));
}
[Test]
public void PageInfoReportName() {
reportCreator.BuildExportList();
var pi = reportCreator.Pages[0].PageInfo;
Assert.That(pi.ReportName,Is.EqualTo("Report1"));
}
[SetUp]
public void LoadFromStream()
{
System.Reflection.Assembly asm = Assembly.GetExecutingAssembly();
stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName);
var stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName);
var reportingFactory = new ReportingFactory();
reportCreator = reportingFactory.ReportCreator(stream);
}
}
}

Loading…
Cancel
Save