Browse Source

Runtime modifiable Reports,

create TestReport to read Event log from machine

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@5651 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 16 years ago
parent
commit
8de6e87f57
  1. 2
      samples/SharpDevelopReports/src/ReportSamples.sln
  2. 5
      samples/SharpDevelopReports/src/SharpReportSamples/ContributorsList.cs
  3. 149
      samples/SharpDevelopReports/src/SharpReportSamples/EventLogger.cs
  4. 22
      samples/SharpDevelopReports/src/SharpReportSamples/MainForm.Designer.cs
  5. 106
      samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs
  6. 2
      samples/SharpDevelopReports/src/SharpReportSamples/SharpReportSamples.csproj
  7. 11
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs
  8. 19
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/ReportItems/BaseImageItem.cs
  9. 1
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
  10. 47
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs
  11. 5
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs
  12. 5
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs
  13. 3
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exceptions/MissingSectionException.cs
  14. 41
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exceptions/WrongSectionException.cs
  15. 4
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs
  16. 143
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/BaseItems/BaseSectionFixture.cs
  17. 1
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj

2
samples/SharpDevelopReports/src/ReportSamples.sln

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
# SharpDevelop 3.2.0.5405
# SharpDevelop 3.2.0.5633
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpReportSamples", "SharpReportSamples\SharpReportSamples.csproj", "{BB5D34DA-3561-48B1-894A-46765C2A18C1}"
EndProject
Global

5
samples/SharpDevelopReports/src/SharpReportSamples/ContributorsList.cs

@ -17,10 +17,7 @@ namespace SharpReportSamples @@ -17,10 +17,7 @@ namespace SharpReportSamples
/// </summary>
public class ContributorsReportData
{
/*
This list is by no means exhaustive:
Siegfried Pammer
*/
public static ContributorCollection CreateContributorsList () {
ContributorCollection list = new ContributorCollection();

149
samples/SharpDevelopReports/src/SharpReportSamples/EventLogger.cs

@ -0,0 +1,149 @@ @@ -0,0 +1,149 @@
/*
* Erstellt mit SharpDevelop.
* Benutzer: Peter Forstmeier
* Datum: 24.03.2010
* Zeit: 19:45
*
* Sie können diese Vorlage unter Extras > Optionen > Codeerstellung > Standardheader ändern.
*/
using System;
using System.Collections;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Management;
using System.Reflection;
using System.Resources;
using System.Windows.Forms;
using ICSharpCode.Reports.Core;
//using System.Collections.Generic;
namespace SharpReportSamples
{
// public class EventList: List<EventLogEntry>{
// }
//
//
/// <summary>
/// Description of EventLogger.
/// </summary>
public class EventLogger
{
ImageList imageList ;
string fileName;
public EventLogger(string fileName)
{
this.fileName = fileName;
this.Run();
}
private void Run() {
EventLog ev = new EventLog();
ev.Log = "System";
ev.MachineName = "."; // Lokale Maschine
FillImageList();
// EventLog dosn't implement IList, so we have to convert it to the 'cheapest'
// IList implementaion
//
ArrayList ar = new ArrayList();
foreach (System.Diagnostics.EventLogEntry entry in ev.Entries)
{
if (entry.TimeWritten > DateTime.Now.AddDays(-1))
{
// Console.WriteLine ("{0} {1}",entry.TimeWritten,entry.Message);
ar.Add(entry);
}
}
this.EventLog = ar;
// ReportEngine engine = new ReportEngine();
// engine.SectionRendering += new EventHandler<SectionRenderEventArgs>(PushPrinting);
// engine.SectionRendered += new EventHandler<SectionRenderEventArgs>(PushPrinted);
// engine.PreviewPushDataReport(fileName,ar,null);
}
// using (var provider = ProfilingDataSQLiteProvider.FromFile("ProfilingSession.sdps"))
// var functions = provider.GetFunctions(0, provider.DataSets.Count - 1);
// foreach (CallTreeNode n in functions) Console.WriteLine("{0}: {1} calls, {2:f2}ms", n.Name, n.CallCount, n.TimeSpent);
private void filter (EventLog e)
{
/*
int i = 0;
foreach (System.Diagnostics.EventLogEntry entry in e.Entries)
{
if (entry.TimeWritten > DateTime.Now.AddDays(-1))
{
Console.WriteLine ("{0} {1}",entry.TimeWritten,entry.Message);
i++;
}
}
*/
//http://blog-mstechnology.blogspot.com/2009/08/filter-eventlog-entries-thru-c-code.html
/*
string SomeDateTime = "20100324000000.000000+000";
string Query = String.Format("SELECT * FROM Win32_NTLogEvent WHERE Logfile = 'Application' AND TimeGenerated > '{0}'", SomeDateTime);
ManagementObjectSearcher mos = new ManagementObjectSearcher(Query);
object o;
foreach (ManagementObject mo in mos.Get())
{
foreach (PropertyData pd in mo.Properties)
{
o = mo[pd.Name];
if (o != null)
{
// listBox1.Items.Add(String.Format("{0}: {1}", pd.Name,mo[pd.Name].ToString()));
}
}
}
*/
}
private void FillImageList() {
string ns = this.GetType().Namespace;
System.Console.WriteLine("{0}",ns);
Assembly a = Assembly.GetExecutingAssembly();
string [] resNames = a.GetManifestResourceNames();
foreach(string s in resNames)
{
System.Console.WriteLine("{0}",s);
}
this.imageList = new ImageList();
Stream imgStream = a.GetManifestResourceStream("SharpReportSamples.Resources.Error.png");
this.imageList.Images.Add(Image.FromStream(imgStream));
imgStream = a.GetManifestResourceStream("SharpReportSamples.Resources.Info.png");
this.imageList.Images.Add(Image.FromStream(imgStream));
imgStream = a.GetManifestResourceStream("SharpReportSamples.Resources.Warning.png");
this.imageList.Images.Add(Image.FromStream(imgStream));
System.Console.WriteLine("imagelist contains {0} images",this.imageList.Images.Count);
}
public ArrayList EventLog {get;set;}
public ImageList Images
{
get {return this.imageList;}
}
}
}

22
samples/SharpDevelopReports/src/SharpReportSamples/MainForm.Designer.cs generated

@ -40,11 +40,13 @@ namespace SharpReportSamples @@ -40,11 +40,13 @@ namespace SharpReportSamples
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("PullModel");
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("PushModel-IList");
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("Provider Independent");
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("Sample Reports", new System.Windows.Forms.TreeNode[] {
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("Customized");
System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("Sample Reports", new System.Windows.Forms.TreeNode[] {
treeNode1,
treeNode2,
treeNode3,
treeNode4});
treeNode4,
treeNode5});
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.treeView1 = new System.Windows.Forms.TreeView();
this.label1 = new System.Windows.Forms.Label();
@ -81,18 +83,20 @@ namespace SharpReportSamples @@ -81,18 +83,20 @@ namespace SharpReportSamples
this.treeView1.Location = new System.Drawing.Point(10, 10);
this.treeView1.Margin = new System.Windows.Forms.Padding(5);
this.treeView1.Name = "treeView1";
treeNode1.Name = "FormSheetItem";
treeNode1.Name = "FormSheetNode";
treeNode1.Text = "FormSheet";
treeNode2.Name = "PullModelItem";
treeNode2.Name = "PullModelNode";
treeNode2.Text = "PullModel";
treeNode3.Name = "iListNode";
treeNode3.Name = "IListNode";
treeNode3.Text = "PushModel-IList";
treeNode4.Name = "Knoten0";
treeNode4.Name = "ProviderIndependedNode";
treeNode4.Text = "Provider Independent";
treeNode5.Name = "Knoten0";
treeNode5.Text = "Sample Reports";
treeNode5.Name = "CustomizedNode";
treeNode5.Text = "Customized";
treeNode6.Name = "Customized";
treeNode6.Text = "Sample Reports";
this.treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode5});
treeNode6});
this.treeView1.Size = new System.Drawing.Size(148, 444);
this.treeView1.TabIndex = 0;
this.treeView1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.TreeView1MouseDoubleClick);

106
samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs

@ -28,6 +28,8 @@ namespace SharpReportSamples @@ -28,6 +28,8 @@ namespace SharpReportSamples
private TreeNode pullNode;
private TreeNode iListNode;
private TreeNode providerIndependent;
private TreeNode customized;
public MainForm()
{
@ -66,12 +68,14 @@ namespace SharpReportSamples @@ -66,12 +68,14 @@ namespace SharpReportSamples
this.pullNode = this.treeView1.Nodes[0].Nodes[1];
this.iListNode = this.treeView1.Nodes[0].Nodes[2];
this.providerIndependent = this.treeView1.Nodes[0].Nodes[3];
this.customized = this.treeView1.Nodes[0].Nodes[4];
AddNodesToTree (this.formNode,startPath + @"FormSheet\" );
AddNodesToTree (this.pullNode,startPath + @"PullModel\" );
AddNodesToTree (this.iListNode,startPath + @"IList\" );
AddNodesToTree (this.providerIndependent,startPath + @"ProviderIndependent\" );
AddNodesToTree (this.customized,startPath + @"Customized\" );
}
private void AddNodesToTree (TreeNode parent,string path)
@ -104,7 +108,8 @@ namespace SharpReportSamples @@ -104,7 +108,8 @@ namespace SharpReportSamples
this.RunContributors(reportName);
} else if (s == "NoConnectionReport") {
this.RunProviderIndependent(reportName);
}
} else if (s =="Customized")
this.RunEventlogger(reportName);
else {
ReportParameters parameters = ReportEngine.LoadParameters(reportName);
@ -176,39 +181,82 @@ namespace SharpReportSamples @@ -176,39 +181,82 @@ namespace SharpReportSamples
}
//Try this to react to SectionrenderEvent,
/*
private void PushPrinting (object sender,SectionRenderEventArgs e)
ImageList imageList;
private void RunEventlogger (string fileName)
{
switch (e.CurrentSection) {
case GlobalEnums.ReportSection.ReportHeader:
break;
case GlobalEnums.ReportSection.ReportPageHeader:
break;
EventLogger eLog = new EventLogger(fileName);
this.imageList = eLog.Images;
ReportModel model = ReportEngine.LoadReportModel(fileName);
IDataManager dataManager = DataManager.CreateInstance(eLog.EventLog,model.ReportSettings);
this.previewControl1.SectionRendering += PushPrinting;
this.previewControl1.PreviewLayoutChanged += delegate (object sender, EventArgs e)
{
this.previewControl1.RunReport(model,dataManager);
};
this.previewControl1.RunReport(model,dataManager);
}
//Handles SectionRenderEvent
private void PushPrinting (object sender, SectionRenderEventArgs e )
{
string sectionName = e.Section.Name;
if (sectionName == ReportSectionNames.ReportHeader) {
Console.WriteLine("xx " + ReportSectionNames.ReportHeader);
}
else if (sectionName == ReportSectionNames.ReportPageHeader) {
Console.WriteLine("xx " +ReportSectionNames .ReportPageHeader);
}
else if (sectionName == ReportSectionNames.ReportDetail){
BaseDataItem item = e.Section.FindItem("EntryType") as BaseDataItem;
if (item != null) {
string s = item.DBValue;
Image im = null;
if (s == "Information") {
im = this.imageList.Images[1];
} else if (s == "Warning") {
im = this.imageList.Images[2];
} else if (s == "Error")
{
im = this.imageList.Images[0];
}
case GlobalEnums.ReportSection.ReportDetail:
BaseRowItem ri = e.Section.Items[0] as BaseRowItem;
if (ri != null) {
BaseDataItem r = (BaseDataItem)ri.Items.Find("unbound3");
if (r != null) {
r.DBValue = "xxxxxxx";
if (im != null)
{
BaseImageItem bi = e.Section.FindItem("BaseImageItem1") as BaseImageItem;
if (bi != null) {
bi.Image = im;
}
}
break;
case GlobalEnums.ReportSection.ReportPageFooter:
break;
case GlobalEnums.ReportSection.ReportFooter:
break;
default:
break;
}
}
else if (sectionName == ReportSectionNames.ReportPageFooter){
Console.WriteLine("xx " + ReportSectionNames.ReportPageFooter);
}
else if (sectionName == ReportSectionNames.ReportFooter){
Console.WriteLine("xx " + ReportSectionNames.ReportFooter);
}
else{
throw new WrongSectionException(sectionName);
}
}
*/
#endregion

2
samples/SharpDevelopReports/src/SharpReportSamples/SharpReportSamples.csproj

@ -43,6 +43,7 @@ @@ -43,6 +43,7 @@
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Management" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
@ -51,6 +52,7 @@ @@ -51,6 +52,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="ContributorsList.cs" />
<Compile Include="EventLogger.cs" />
<Compile Include="MainForm.cs" />
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>

11
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs

@ -1,11 +1,14 @@ @@ -1,11 +1,14 @@
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.IO;
using System.Windows.Forms;
using System.Xml;
using ICSharpCode.SharpDevelop;
using ICSharpCode.Core;
using ICSharpCode.Reports.Core;
using ICSharpCode.Reports.Core.Interfaces;
using ICSharpCode.SharpDevelop;
namespace ICSharpCode.Reports.Addin
{
@ -85,8 +88,8 @@ namespace ICSharpCode.Reports.Addin @@ -85,8 +88,8 @@ namespace ICSharpCode.Reports.Addin
private static void Absolut2RelativePath (BaseSection section, string fileName)
{
foreach (Control item in section.Controls) {
BaseImageItem baseImageItem = item as BaseImageItem;
foreach (Control ctrl in section.Controls) {
BaseImageItem baseImageItem = ctrl as BaseImageItem;
if (baseImageItem != null) {
baseImageItem.ReportFileName = fileName;
@ -99,7 +102,7 @@ namespace ICSharpCode.Reports.Addin @@ -99,7 +102,7 @@ namespace ICSharpCode.Reports.Addin
Path.GetDirectoryName(baseImageItem.ImageFileName));
baseImageItem.RelativeFileName = d + Path.DirectorySeparatorChar + Path.GetFileName(baseImageItem.ImageFileName);
Console.WriteLine("Rel Filename {0}",baseImageItem.RelativeFileName);
Console.WriteLine("Rel Filename {0}",baseImageItem.RelativeFileName);
}
}
}

19
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/ReportItems/BaseImageItem.cs

@ -65,7 +65,11 @@ namespace ICSharpCode.Reports.Addin @@ -65,7 +65,11 @@ namespace ICSharpCode.Reports.Addin
if (this.scaleImageToSize) {
graphics.DrawImageUnscaled(this.Image,this.Location.X,this.Location.Y);
} else {
graphics.DrawImage(this.Image,this.ClientRectangle);
Image im = this.image;
if (im != null) {
graphics.DrawImage(this.Image,this.ClientRectangle);
}
}
}
@ -95,7 +99,7 @@ namespace ICSharpCode.Reports.Addin @@ -95,7 +99,7 @@ namespace ICSharpCode.Reports.Addin
}
private static Bitmap FakeImage(Size size)
private static Bitmap FakeImage(Size size, string text)
{
Bitmap b = new Bitmap (size.Width,size.Height);
using (Graphics g = Graphics.FromImage (b)){
@ -103,7 +107,7 @@ namespace ICSharpCode.Reports.Addin @@ -103,7 +107,7 @@ namespace ICSharpCode.Reports.Addin
g.DrawRectangle (new Pen(Color.Black, 1),
1,1,size.Width -2,size.Height -2);
g.DrawString("<Database>",GlobalValues.DefaultFont,
g.DrawString(text,GlobalValues.DefaultFont,
new SolidBrush(Color.Gray),
new RectangleF(2,2,size.Width,size.Height) );
}
@ -137,7 +141,7 @@ namespace ICSharpCode.Reports.Addin @@ -137,7 +141,7 @@ namespace ICSharpCode.Reports.Addin
public Image Image {
get {
if (this.imageSource == GlobalEnums.ImageSource.Database ) {
this.image = FakeImage(base.Size);
this.image = FakeImage(base.Size,"<Database>");
}
if (this.image != null) {
return image;
@ -163,19 +167,20 @@ namespace ICSharpCode.Reports.Addin @@ -163,19 +167,20 @@ namespace ICSharpCode.Reports.Addin
}
[Browsable(false)]
[Category("Image")]
public GlobalEnums.ImageSource ImageSource {
get { return imageSource; }
set { imageSource = value; }
}
[Category("Image from Database")]
public string ColumnName {
get { return columnName; }
set {
columnName = value;
this.imageSource = GlobalEnums.ImageSource.Database;
}
}
@ -185,7 +190,6 @@ namespace ICSharpCode.Reports.Addin @@ -185,7 +190,6 @@ namespace ICSharpCode.Reports.Addin
get { return baseTableName; }
set {
baseTableName = value;
this.imageSource = GlobalEnums.ImageSource.Database;
}
}
@ -308,6 +312,7 @@ namespace ICSharpCode.Reports.Addin @@ -308,6 +312,7 @@ namespace ICSharpCode.Reports.Addin
prop = props.Find("BaseTableName",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}

1
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj

@ -127,6 +127,7 @@ @@ -127,6 +127,7 @@
<Compile Include="Project\Exceptions\UnknownFunctionException.cs" />
<Compile Include="Project\Exceptions\UnknownItemException.cs" />
<Compile Include="Project\Exceptions\WrongColumnException.cs" />
<Compile Include="Project\Exceptions\WrongSectionException.cs" />
<Compile Include="Project\Exporter\BasePager.cs" />
<Compile Include="Project\Exporter\Converters\BaseConverter.cs" />
<Compile Include="Project\Exporter\Converters\ConverterFactory.cs" />

47
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs

@ -8,6 +8,8 @@ @@ -8,6 +8,8 @@
using System;
using System.ComponentModel;
using System.Xml.Serialization;
using System.Linq;
using ICSharpCode.Reports.Core.Interfaces;
/// <summary>
/// This Class is the BaseClass for <see cref="ReportSection"></see>
@ -18,7 +20,7 @@ namespace ICSharpCode.Reports.Core @@ -18,7 +20,7 @@ namespace ICSharpCode.Reports.Core
{
public class BaseSection : BaseReportItem {
private int sectionMargin;
// private int sectionMargin;
private bool pageBreakAfter;
private ReportItemCollection items;
@ -68,18 +70,47 @@ namespace ICSharpCode.Reports.Core @@ -68,18 +70,47 @@ namespace ICSharpCode.Reports.Core
#endregion
#region properties
#region FindItem
public int SectionMargin
private BaseReportItem FindRec (ReportItemCollection items, string name)
{
get {
return this.sectionMargin;
foreach(BaseReportItem item in items)
{
IContainerItem cont = item as IContainerItem;
if (cont != null) {
return FindRec(cont.Items,name);
} else {
var query = from bt in items where bt.Name == name select bt;
if (query.Count() >0) {
return query.FirstOrDefault();
}
}
}
set {
this.sectionMargin = value;
return null;
}
public BaseReportItem FindItem (string itemName)
{
foreach (BaseReportItem item in items)
{
IContainerItem cont = item as IContainerItem;
if (cont != null) {
return FindRec (cont.Items,itemName);
} else {
//return InnerFind(itemName);
return FindRec(this.items,itemName);
}
}
return null;
}
#endregion
#region properties
public int SectionMargin {get;set;}
public override System.Drawing.Point Location

5
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs

@ -265,9 +265,8 @@ namespace ICSharpCode.Reports.Core { @@ -265,9 +265,8 @@ namespace ICSharpCode.Reports.Core {
///
public GlobalEnums.ImageSource ImageSource
{
get {
return imageSource;
}
get {return imageSource;}
set {this.imageSource = value;}
}
///<summary>

5
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs

@ -264,9 +264,12 @@ namespace ICSharpCode.Reports.Core { @@ -264,9 +264,12 @@ namespace ICSharpCode.Reports.Core {
//image processing from IList
BaseImageItem baseImageItem = item as BaseImageItem;
if (baseImageItem != null) {
PropertyDescriptor p = this.listProperties.Find(baseImageItem.ColumnName, true);
baseImageItem.Image = p.GetValue(this.Current) as System.Drawing.Image;
if (p != null) {
baseImageItem.Image = p.GetValue(this.Current) as System.Drawing.Image;
}
return;
}
}

3
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exceptions/MissingSectionException.cs

@ -10,7 +10,8 @@ using System.Runtime.Serialization; @@ -10,7 +10,8 @@ using System.Runtime.Serialization;
/// <summary>
/// Description of MissingSectionException.
/// </summary>
namespace ICSharpCode.Reports.Core{
namespace ICSharpCode.Reports.Core
{
[Serializable()]
public class MissingSectionException: Exception

41
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exceptions/WrongSectionException.cs

@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
/*
* Erstellt mit SharpDevelop.
* Benutzer: Peter Forstmeier
* Datum: 24.03.2010
* Zeit: 19:31
*
* Sie können diese Vorlage unter Extras > Optionen > Codeerstellung > Standardheader ändern.
*/
using System;
using System.Runtime.Serialization;
namespace ICSharpCode.Reports.Core
{
/// <summary>
/// Description of WrongSectionException.
/// </summary>
[Serializable()]
public class WrongSectionException: Exception
{
public WrongSectionException():base()
{
}
public WrongSectionException(string errorMessage) :base (errorMessage)
{
}
public WrongSectionException(string errorMessage,
Exception exception):base (errorMessage,exception)
{
}
protected WrongSectionException(SerializationInfo info,
StreamingContext context) : base(info, context)
{
// Implement type-specific serialization constructor logic.
}
}
}

4
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs

@ -234,7 +234,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer @@ -234,7 +234,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer
}
private void PushPrinting (object sender, SectionRenderEventArgs e ) {
// Console.WriteLine ("ReportViewer - SectionRenderEventargs from <{0}> with {1} item ",e.Section.Name,e.Section.Items.Count);
EventHelper.Raise<SectionRenderEventArgs>(SectionRendering,this,e);
string sectionName = e.Section.Name;
@ -258,9 +257,8 @@ namespace ICSharpCode.Reports.Core.ReportViewer @@ -258,9 +257,8 @@ namespace ICSharpCode.Reports.Core.ReportViewer
Console.WriteLine("xx " + ReportSectionNames.ReportFooter);
}
else{
Console.WriteLine("keine ahnung ");
throw new WrongSectionException(sectionName);
}
}

143
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/BaseItems/BaseSectionFixture.cs

@ -0,0 +1,143 @@ @@ -0,0 +1,143 @@
/*
* Erstellt mit SharpDevelop.
* Benutzer: Peter Forstmeier
* Datum: 28.03.2010
* Zeit: 17:31
*
* Sie können diese Vorlage unter Extras > Optionen > Codeerstellung > Standardheader ändern.
*/
using System;
using NUnit.Framework;
namespace ICSharpCode.Reports.Core.Test.BaseItems
{
[TestFixture]
public class BaseSectionFixture
{
#region constructor
[Test]
public void PlainConstructor()
{
BaseSection section = new BaseSection();
Assert.AreEqual(String.Empty,section.Name);
}
[Test]
public void ConstructorWithNameAsParam ()
{
BaseSection section = new BaseSection("mysection");
Assert.AreEqual("mysection",section.Name);
}
#endregion
#region initialvalues
[Test]
public void CheckInitialValues ()
{
BaseSection section = new BaseSection();
Assert.AreEqual(0,section.Items.Count);
Assert.AreEqual(0,section.SectionMargin);
Assert.AreEqual(0,section.SectionOffset);
Assert.AreEqual(false,section.PageBreakAfter);
Assert.AreEqual(false,section.DrawBorder);
Assert.AreEqual(System.Drawing.Color.White,section.BackColor);
}
#endregion
[Test]
public void FindItem_NoContainer()
{
BaseSection section = ConfigurePlainSection();
BaseReportItem item = section.FindItem("ImageItem");
Assert.That(item != null);
Assert.IsInstanceOf(typeof(BaseImageItem),item);
Assert.That(item.Name == "ImageItem");
}
[Test]
public void FindItemNullIfItemNotExist()
{
BaseSection section = ConfigurePlainSection();
BaseReportItem item = section.FindItem("notexist");
Assert.IsNull(item);
}
[Test]
public void FindItemInRow ()
{
BaseSection section = ConfigureSectionWithRow();
BaseReportItem item = section.FindItem("TextItem");
Assert.That(item != null);
Assert.IsInstanceOf(typeof(BaseTextItem),item);
Assert.That(item.Name == "TextItem");
}
[Test]
public void FindItemInRowNullIfItemNotExist ()
{
BaseSection section = ConfigureSectionWithRow();
BaseReportItem item = section.FindItem("notexist");
Assert.IsNull(item);
}
private BaseSection ConfigureSectionWithRow ()
{
BaseSection section = new BaseSection();
BaseRowItem row = new BaseRowItem();
BaseTextItem bti = new BaseTextItem{
Name = "TextItem"
};
BaseImageItem bii = new BaseImageItem(){
Name = "ImageItem"
};
row.Items.Add(bti);
row.Items.Add(bii);
section.Items.Add(row);
return section;
}
private BaseSection ConfigurePlainSection ()
{
BaseSection section = new BaseSection();
BaseTextItem bti = new BaseTextItem{
Name = "TextItem"
};
BaseImageItem bii = new BaseImageItem(){
Name = "ImageItem"
};
section.Items.Add(bti);
section.Items.Add(bii);
return section;
}
#region
#endregion
[TestFixtureSetUp]
public void Init()
{
// TODO: Add Init code.
}
[TestFixtureTearDown]
public void Dispose()
{
// TODO: Add tear down code.
}
}
}

1
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj

@ -63,6 +63,7 @@ @@ -63,6 +63,7 @@
<Compile Include="BaseItems\BaseGraphicItemFixture.cs" />
<Compile Include="BaseItems\BaseReportItemFixture.cs" />
<Compile Include="BaseItems\BaseRowItemFixture.cs" />
<Compile Include="BaseItems\BaseSectionFixture.cs" />
<Compile Include="BaseItems\BaseTextItemFixture.cs" />
<Compile Include="Collections\AvailableFieldsCollection.cs" />
<Compile Include="Collections\ColumnCollectionFixture.cs" />

Loading…
Cancel
Save