Browse Source

Create empty FormSheetreport from File/New

reports
Peter Forstmeier 11 years ago
parent
commit
24034c318b
  1. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj
  2. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Commands/ViewCommands.cs
  3. 30
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/DesignerBinding.cs
  4. 71
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Factory/CreateFormSheetFromModel.cs
  5. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Views/DesignerView.cs
  6. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs
  7. 15
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportModelFactory.cs
  8. 7
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/SectionFactory.cs
  9. 5
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs
  10. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs
  11. 55
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs
  12. 8
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj

@ -82,6 +82,8 @@ @@ -82,6 +82,8 @@
<Folder Include="src\Designer" />
<Folder Include="src\Globals" />
<Folder Include="src\DesignableItems" />
<Folder Include="src\Factory" />
<Folder Include="src\Wizard" />
<Folder Include="src\Toolbox" />
<Folder Include="src\TypeProvider" />
<Folder Include="src\XML" />
@ -109,6 +111,7 @@ @@ -109,6 +111,7 @@
<Compile Include="src\Designer\RootReportModel.cs" />
<Compile Include="src\Designer\SectionDesigner.cs" />
<Compile Include="src\Designer\TextItemDesigner.cs" />
<Compile Include="src\Factory\CreateFormSheetFromModel.cs" />
<Compile Include="src\Globals\DesignerGlobals.cs" />
<Compile Include="src\Globals\StringWriterWithEncoding.cs" />
<Compile Include="src\Services\DefaultMemberRelationshipService.cs" />

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Commands/ViewCommands.cs

@ -21,10 +21,6 @@ namespace ICSharpCode.Reporting.Addin.Commands @@ -21,10 +21,6 @@ namespace ICSharpCode.Reporting.Addin.Commands
{
readonly OpenedFile openedFile;
public CreateDesignerCommand() {
MessageService.ShowMessage("Not implemented at the moment","Reporting");
}
public CreateDesignerCommand (OpenedFile openedFile) {
if (openedFile == null)
throw new ArgumentNullException("openedFile");

30
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/DesignerBinding.cs

@ -9,10 +9,14 @@ @@ -9,10 +9,14 @@
using System;
using System.IO;
using System.Xml;
using ICSharpCode.Core;
using ICSharpCode.Reporting.Factories;
using ICSharpCode.Reporting.Items;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Workbench;
using ICSharpCode.Reporting.Addin.Commands;
using ICSharpCode.Reporting.Addin.Factory;
namespace ICSharpCode.Reporting.Addin.DesignerBinding {
@ -41,14 +45,16 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding { @@ -41,14 +45,16 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding {
public IViewContent CreateContentForFile(OpenedFile file)
{
if (file.IsDirty) {
MessageService.ShowMessage("ReportWizard not available at the Moment","New ReportDesigner");
return null;
// var cmd = new ReportWizardCommand(file);
// cmd.Run();
// if (cmd.Canceled) {
// return null;
// }
// file.SetData(cmd.GeneratedReport.ToArray());
var reportModel = ReportModelFactory.Create();
var reportFactory = new CreateFormSheetFromModel();
var xml = reportFactory.ToXml(reportModel);
var doc = new XmlDocument();
doc.LoadXml(xml.ToString());
var ar = XmlToArray(doc);
file.SetData(ar);
}
var viewCmd = new CreateDesignerCommand(file);
@ -56,5 +62,13 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding { @@ -56,5 +62,13 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding {
LoggingService.Info("return DesignerView");
return viewCmd.DesignerView;
}
static byte[] XmlToArray(XmlDocument doc)
{
using (var stream = new MemoryStream()) {
doc.Save(stream);
return stream.ToArray();
}
}
}
}

71
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Factory/CreateFormSheetFromModel.cs

@ -0,0 +1,71 @@ @@ -0,0 +1,71 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 03.04.2014
* Time: 19:55
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using System.IO;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Addin.DesignableItems;
using ICSharpCode.Reporting.Addin.Globals;
using ICSharpCode.Reporting.Addin.XML;
namespace ICSharpCode.Reporting.Addin.Factory
{
/// <summary>
/// Description of CreateFormSheetReport.
/// </summary>
class CreateFormSheetFromModel
{
public StringWriter ToXml(IReportModel reportModel) {
int locY = reportModel.ReportSettings.TopMargin;
foreach (var section in reportModel.SectionCollection)
{
section.Location = new Point(reportModel.ReportSettings.LeftMargin,locY);
section.Size = new Size(reportModel.ReportSettings.PageSize.Width - reportModel.ReportSettings.LeftMargin - reportModel.ReportSettings.RightMargin,
70);
locY = locY + section.Size.Height + DesignerGlobals.GabBetweenSection;
}
var xml = ToXmlInternal(reportModel);
return xml;
}
StringWriter ToXmlInternal(IReportModel model)
{
var writer = new StringWriterWithEncoding(System.Text.Encoding.UTF8);
var xml = XmlHelper.CreatePropperWriter(writer);
var reportDesignerWriter = new ReportDesignerWriter();
XmlHelper.CreatePropperDocument(xml);
reportDesignerWriter.Save(model.ReportSettings,xml);
xml.WriteEndElement();
xml.WriteStartElement("SectionCollection");
// we look only for Sections
foreach (var section in model.SectionCollection) {
reportDesignerWriter.Save(section,xml);
}
//SectionCollection
xml.WriteEndElement();
//Reportmodel
xml.WriteEndElement();
xml.WriteEndDocument();
xml.Close();
return writer;
}
}
}

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Views/DesignerView.cs

@ -382,7 +382,7 @@ namespace ICSharpCode.Reporting.Addin.Views @@ -382,7 +382,7 @@ namespace ICSharpCode.Reporting.Addin.Views
}
public override void Load(OpenedFile file, System.IO.Stream stream)
public override void Load(OpenedFile file, Stream stream)
{
LoggingService.Debug("ReportDesigner: Load from: " + file.FileName);
base.Load(file, stream);

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

@ -27,7 +27,7 @@ namespace ICSharpCode.Reporting.Factories @@ -27,7 +27,7 @@ namespace ICSharpCode.Reporting.Factories
/// <summary>
/// Description of ReportCreatorFactory.
/// </summary>
internal class ReportCreatorFactory {
static class ReportCreatorFactory {
public static IReportCreator ExporterFactory(IReportModel reportModel)
{

15
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportModelFactory.cs

@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Items;
@ -19,11 +20,17 @@ namespace ICSharpCode.Reporting.Factories @@ -19,11 +20,17 @@ namespace ICSharpCode.Reporting.Factories
{
public static ReportModel Create()
{
ReportModel m = new ReportModel();
foreach (GlobalEnums.ReportSection sec in Enum.GetValues(typeof(GlobalEnums.ReportSection))) {
m.SectionCollection.Add (SectionFactory.Create(sec.ToString()));
var reportModel = new ReportModel();
foreach (var sec in Enum.GetValues(typeof(GlobalEnums.ReportSection))) {
reportModel.SectionCollection.Add (SectionFactory.Create(sec.ToString()));
}
return m;
foreach (var section in reportModel.SectionCollection) {
section.Size = new Size(reportModel.ReportSettings.PageSize.Width - reportModel.ReportSettings.LeftMargin - reportModel.ReportSettings.RightMargin,
GlobalValues.DefaultSectionHeight);
}
return reportModel;
}
}
}

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

@ -14,12 +14,9 @@ namespace ICSharpCode.Reporting.Factories @@ -14,12 +14,9 @@ namespace ICSharpCode.Reporting.Factories
/// <summary>
/// Description of SectionFactory.
/// </summary>
sealed class SectionFactory
static class SectionFactory
{
private SectionFactory ()
{
}
public static BaseSection Create(string name) {
if (name == null)
throw new ArgumentNullException("name");

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

@ -18,6 +18,7 @@ @@ -18,6 +18,7 @@
using System;
using System.Drawing;
using System.Drawing.Printing;
namespace ICSharpCode.Reporting.Globals
{
/// <summary>
@ -48,5 +49,9 @@ namespace ICSharpCode.Reporting.Globals @@ -48,5 +49,9 @@ namespace ICSharpCode.Reporting.Globals
public static Size PreferedSize {get {return new Size(100,20);}}
public static Margins DefaultPageMargin {get {return new Margins(50,50,50,50);}}
public static int DefaultSectionHeight {get {return 60;}}
}
}

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

@ -17,7 +17,6 @@ @@ -17,7 +17,6 @@
// DEALINGS IN THE SOFTWARE.
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using ICSharpCode.Reporting.Items;
@ -31,7 +30,6 @@ namespace ICSharpCode.Reporting.Interfaces @@ -31,7 +30,6 @@ namespace ICSharpCode.Reporting.Interfaces
{
ReportSettings ReportSettings {get;set;}
Collection<BaseSection> SectionCollection {get;}
IReportContainer ReportHeader {get;}
IReportContainer PageHeader {get;}
IReportContainer DetailSection {get;}

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

@ -19,8 +19,6 @@ @@ -19,8 +19,6 @@
using System;
using System.Collections.ObjectModel;
using ICSharpCode.Reporting.Factories;
using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Interfaces;
namespace ICSharpCode.Reporting.Items
@ -33,65 +31,38 @@ namespace ICSharpCode.Reporting.Items @@ -33,65 +31,38 @@ namespace ICSharpCode.Reporting.Items
public ReportModel() {
SectionCollection = new Collection<BaseSection>();
ReportSettings = new ReportSettings();
}
#region Sections
public IReportContainer ReportHeader
{
get {
return (BaseSection)SectionCollection[0];
}
public IReportContainer ReportHeader {
get {return (BaseSection)SectionCollection[0];}
}
public IReportContainer PageHeader
{
get {
return (BaseSection)SectionCollection[1];
}
public IReportContainer PageHeader {
get {return (BaseSection)SectionCollection[1];}
}
public IReportContainer DetailSection
{
get {
return (BaseSection)SectionCollection[2];
}
public IReportContainer DetailSection {
get {return (BaseSection)SectionCollection[2];}
}
public IReportContainer PageFooter
{
get {
return (BaseSection)SectionCollection[3];
}
public IReportContainer PageFooter {
get {return (BaseSection)SectionCollection[3];}
}
public IReportContainer ReportFooter
{
get {
return (BaseSection)SectionCollection[4];
}
public IReportContainer ReportFooter {
get {return (BaseSection)SectionCollection[4];}
}
#endregion
ReportSettings reportSettings ;
public ReportSettings ReportSettings
{
get {
if (this.reportSettings == null) {
this.reportSettings = new ReportSettings();
}
return reportSettings;
}
set {
reportSettings = value;
}
}
public ReportSettings ReportSettings{get;set;}
public Collection<BaseSection> SectionCollection {get; private set;}
}

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

@ -73,10 +73,10 @@ namespace ICSharpCode.Reporting.Items @@ -73,10 +73,10 @@ namespace ICSharpCode.Reporting.Items
// this.ConnectionString = String.Empty;
// this.CommandText = String.Empty;
//
// this.TopMargin = GlobalValues.DefaultPageMargin.Left;
// this.BottomMargin = GlobalValues.DefaultPageMargin.Bottom;
// this.LeftMargin = GlobalValues.DefaultPageMargin.Left;
// this.RightMargin = GlobalValues.DefaultPageMargin.Right;
this.TopMargin = GlobalValues.DefaultPageMargin.Left;
this.BottomMargin = GlobalValues.DefaultPageMargin.Bottom;
this.LeftMargin = GlobalValues.DefaultPageMargin.Left;
this.RightMargin = GlobalValues.DefaultPageMargin.Right;
//
// this.availableFields = new AvailableFieldsCollection();
// this.groupingsCollection = new GroupColumnCollection();

Loading…
Cancel
Save