Browse Source

SharpReport opens now in a clean state, (no '*') after loading a saved report, some refactoring in printing reports

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1298 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Peter Forstmeier 20 years ago
parent
commit
5f2895cb81
  1. 16
      src/AddIns/Misc/SharpReport/SharpReport/Designer/Factories.cs
  2. 1
      src/AddIns/Misc/SharpReport/SharpReport/Designer/Report.cs
  3. 23
      src/AddIns/Misc/SharpReport/SharpReport/Designer/SectionControls/BaseDesignerControl.cs
  4. 12
      src/AddIns/Misc/SharpReport/SharpReport/Designer/SectionControls/ReportSection.cs
  5. 10
      src/AddIns/Misc/SharpReport/SharpReport/Designer/VisualControls/AbstractGraphicControl.cs
  6. 2
      src/AddIns/Misc/SharpReport/SharpReport/Designer/VisualControls/ReportObjectControlBase.cs
  7. 1
      src/AddIns/Misc/SharpReport/SharpReport/Designer/VisualControls/ReportRectangleControl.cs
  8. 4
      src/AddIns/Misc/SharpReport/SharpReport/Designer/VisualControls/ReportTextControl.cs
  9. 36
      src/AddIns/Misc/SharpReport/SharpReport/ReportItems/GraphicBased/ReportCircleItem.cs
  10. 89
      src/AddIns/Misc/SharpReport/SharpReport/ReportItems/GraphicBased/ReportImageItem.cs
  11. 12
      src/AddIns/Misc/SharpReport/SharpReport/ReportItems/GraphicBased/ReportLineItem.cs
  12. 40
      src/AddIns/Misc/SharpReport/SharpReport/ReportItems/GraphicBased/ReportRectangleItem.cs
  13. 17
      src/AddIns/Misc/SharpReport/SharpReport/ReportItems/TextBased/ItemsHelper.cs
  14. 23
      src/AddIns/Misc/SharpReport/SharpReport/ReportItems/TextBased/ReportDataItem.cs
  15. 70
      src/AddIns/Misc/SharpReport/SharpReport/ReportItems/TextBased/ReportRowItem.cs
  16. 46
      src/AddIns/Misc/SharpReport/SharpReport/ReportItems/TextBased/ReportTextItem.cs
  17. 23
      src/AddIns/Misc/SharpReport/SharpReport/Visitors/LoadReportVisitor.cs
  18. 6
      src/AddIns/Misc/SharpReport/SharpReportAddin/FieldsExplorer/FieldsExplorer.cs
  19. 1
      src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportDisplayBinding.cs
  20. 70
      src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportView.cs
  21. 18
      src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/BaseDataItem.cs
  22. 17
      src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/BaseReportItem.cs
  23. 2
      src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/BaseReportObject.cs
  24. 6
      src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/BaseTextItem.cs
  25. 4
      src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/Graphics/BaseImageItem.cs
  26. 6
      src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/RowItem.cs
  27. 43
      src/AddIns/Misc/SharpReport/SharpReportCore/BaseSettings.cs
  28. 3
      src/AddIns/Misc/SharpReport/SharpReportCore/Factories/BaseItemFactory.cs
  29. 54
      src/AddIns/Misc/SharpReport/SharpReportCore/Printing/RenderDataReport.cs
  30. 138
      src/AddIns/Misc/SharpReport/SharpReportCore/Printing/RenderFormSheetReport.cs
  31. 20
      src/AddIns/Misc/SharpReport/SharpReportCore/ReportSettings.cs
  32. 6
      src/AddIns/Misc/SharpReport/SharpReportCore/Visitors/LoadModelVisitor.cs
  33. 5
      src/AddIns/Misc/SharpReport/SharpReportCore/Xml/XmlHelper.cs

16
src/AddIns/Misc/SharpReport/SharpReport/Designer/Factories.cs

@ -36,19 +36,21 @@ namespace SharpReport.Designer {
} }
} }
public class IDesignableFactory : SharpReportCore.GenericFactory { public class IDesignableFactory : SharpReportCore.GenericFactory {
public IDesignableFactory() :base(Assembly.GetExecutingAssembly(),typeof(IDesignable)){ public IDesignableFactory() :base(Assembly.GetExecutingAssembly(),typeof(IDesignable)){
} }
public new BaseReportItem Create(string name) { public new BaseReportItem Create(string name) {
if (name.LastIndexOf('.') > 0) { if (String.IsNullOrEmpty(name)) {
throw new ArgumentNullException("name");
}
if (name.LastIndexOf('.') > 0) {
StringBuilder b = new StringBuilder (name); StringBuilder b = new StringBuilder (name);
b.Remove (0,name.LastIndexOf('.') +1); b.Remove (0,name.LastIndexOf('.') +1);
name = b.ToString(); name = b.ToString();
} }
return (BaseReportItem) base.Create (name); return (BaseReportItem) base.Create (name);
}
} }
}
} }

1
src/AddIns/Misc/SharpReport/SharpReport/Designer/Report.cs

@ -195,6 +195,7 @@ namespace SharpReport.Designer{
BaseReportItem br = (BaseReportItem)this.FindParent(iddea); BaseReportItem br = (BaseReportItem)this.FindParent(iddea);
baseReportItem.Location = new Point(iddea.ItemAtPoint.X - br.Location.X,10); baseReportItem.Location = new Point(iddea.ItemAtPoint.X - br.Location.X,10);
} }
baseReportItem.ResumeLayout();
} }

23
src/AddIns/Misc/SharpReport/SharpReport/Designer/SectionControls/BaseDesignerControl.cs

@ -51,12 +51,17 @@ namespace SharpReport.Designer
this.ReportControl.ReportSettings = reportModel.ReportSettings; this.ReportControl.ReportSettings = reportModel.ReportSettings;
} }
#region public'c #region public'c
//if languages change, we need a way to chage the headlines here as well
public void Localise() { public void Localise() {
reportControl.Localise(); reportControl.Localise();
} }
public void RegisterEvents () {
this.reportControl.SectionChanged += new EventHandler<SectionChangedEventArgs> (this.ReportControlSectionChanged);
this.reportControl.SizeChanged += new System.EventHandler(this.ReportControlSizeChanged);
this.reportControl.DesignViewChanged += new SharpReport.Designer.ItemDragDropEventHandler(this.ReportControlDesignViewChanged);
}
public void RemoveSelectedItem () { public void RemoveSelectedItem () {
if (this.SelectedObject == null) { if (this.SelectedObject == null) {
return; return;
@ -96,23 +101,23 @@ namespace SharpReport.Designer
void ReportControlSizeChanged(object sender, System.EventArgs e){ void ReportControlSizeChanged(object sender, System.EventArgs e){
this.ctrlRuler1.Width = reportControl.Width; this.ctrlRuler1.Width = reportControl.Width;
this.ctrlRuler1.Invalidate(); this.ctrlRuler1.Invalidate();
FireSaveNeeded(); NotifyPropertyChanged(this.Name + "ReportControlSizeChanged");
} }
void ReportControlSectionChanged (object sender,SectionChangedEventArgs e) { void ReportControlSectionChanged (object sender,SectionChangedEventArgs e) {
FireSaveNeeded(); NotifyPropertyChanged(this.Name + "ReportControlSectionChanged");
} }
void ReportControlDesignViewChanged(object sender, SharpReport.Designer.ItemDragDropEventArgs e){ void ReportControlDesignViewChanged(object sender, SharpReport.Designer.ItemDragDropEventArgs e){
FireSaveNeeded(); NotifyPropertyChanged(this.Name + "ReportControlDesignViewChanged");
} }
#endregion #endregion
#region privates #region privates
void FireSaveNeeded() { void NotifyPropertyChanged(string info) {
if (DesignerDirty != null) { if (DesignerDirty != null) {
DesignerDirty (this,new PropertyChangedEventArgs("Designer")); DesignerDirty (this,new PropertyChangedEventArgs(info));
} }
} }
#endregion #endregion
@ -216,9 +221,9 @@ namespace SharpReport.Designer
this.reportControl.Name = "reportControl"; this.reportControl.Name = "reportControl";
this.reportControl.Size = new System.Drawing.Size(592, 400); this.reportControl.Size = new System.Drawing.Size(592, 400);
this.reportControl.TabIndex = 1; this.reportControl.TabIndex = 1;
this.reportControl.SectionChanged += new EventHandler<SectionChangedEventArgs> (this.ReportControlSectionChanged); // this.reportControl.SectionChanged += new EventHandler<SectionChangedEventArgs> (this.ReportControlSectionChanged);
this.reportControl.SizeChanged += new System.EventHandler(this.ReportControlSizeChanged); // this.reportControl.SizeChanged += new System.EventHandler(this.ReportControlSizeChanged);
this.reportControl.DesignViewChanged += new SharpReport.Designer.ItemDragDropEventHandler(this.ReportControlDesignViewChanged); // this.reportControl.DesignViewChanged += new SharpReport.Designer.ItemDragDropEventHandler(this.ReportControlDesignViewChanged);
// //
// BaseDesignerControl // BaseDesignerControl
// //

12
src/AddIns/Misc/SharpReport/SharpReport/Designer/SectionControls/ReportSection.cs

@ -211,24 +211,24 @@ namespace SharpReport{
public void OnItemSelect(object sender, EventArgs e){ public void OnItemSelect(object sender, EventArgs e){
if (!base.Suspend) { // if (!base.Suspend) {
if (ItemSelected != null) if (ItemSelected != null)
ItemSelected(sender, e); ItemSelected(sender, e);
} // }
} }
public void VisualControlClick(object sender, EventArgs e){ public void VisualControlClick(object sender, EventArgs e){
if (!base.Suspend) { // if (!base.Suspend) {
this.OnSelect(); this.OnSelect();
} // }
} }
public void ReportItemSelected(object sender, EventArgs e){ public void ReportItemSelected(object sender, EventArgs e){
if (!base.Suspend) { // if (!base.Suspend) {
this.OnSelect (); this.OnSelect ();
this.OnItemSelect(sender, e); this.OnItemSelect(sender, e);
} // }
} }

10
src/AddIns/Misc/SharpReport/SharpReport/Designer/VisualControls/AbstractGraphicControl.cs

@ -22,16 +22,12 @@ namespace SharpReport.Designer
int thickness = 1; int thickness = 1;
DashStyle dashStyle = DashStyle.Solid; DashStyle dashStyle = DashStyle.Solid;
public AbstractGraphicControl() public AbstractGraphicControl(){
{
InitializeComponent(); InitializeComponent();
base.DragEnter += new DragEventHandler (OnOver);
} }
void OnOver (object sender, DragEventArgs e) {
System.Console.WriteLine("AbstractGraphicControl:On Over");
}
#region property's #region property's
/// <summary> /// <summary>

2
src/AddIns/Misc/SharpReport/SharpReport/Designer/VisualControls/ReportObjectControlBase.cs

@ -21,7 +21,7 @@ namespace SharpReport.Designer
/// and can have some common members managed easier. /// and can have some common members managed easier.
/// </summary> /// </summary>
public abstract class ReportObjectControlBase : System.Windows.Forms.UserControl public abstract class ReportObjectControlBase : UserControl
{ {
private StringAlignment stringAlignment = StringAlignment.Near; private StringAlignment stringAlignment = StringAlignment.Near;
private StringFormat stringFormat; private StringFormat stringFormat;

1
src/AddIns/Misc/SharpReport/SharpReport/Designer/VisualControls/ReportRectangleControl.cs

@ -37,7 +37,6 @@ namespace SharpReport.Designer {
true); true);
this.UpdateStyles(); this.UpdateStyles();
} }
#region overrides #region overrides
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) { protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) {

4
src/AddIns/Misc/SharpReport/SharpReport/Designer/VisualControls/ReportTextControl.cs

@ -21,7 +21,7 @@ namespace SharpReport.Designer{
private TextDrawer textDrawer = new TextDrawer(); private TextDrawer textDrawer = new TextDrawer();
public ReportTextControl(){ public ReportTextControl():base(){
InitializeComponent(); InitializeComponent();
this.SetStyle(ControlStyles.DoubleBuffer | this.SetStyle(ControlStyles.DoubleBuffer |
@ -79,7 +79,7 @@ namespace SharpReport.Designer{
// //
this.BackColor = System.Drawing.Color.White; this.BackColor = System.Drawing.Color.White;
this.Name = "ReportTextItem"; this.Name = "ReportTextItem";
this.Size = new System.Drawing.Size(120, 60); this.Size = new System.Drawing.Size(120, 20);
} }
#endregion #endregion

36
src/AddIns/Misc/SharpReport/SharpReport/ReportItems/GraphicBased/ReportCircleItem.cs

@ -8,8 +8,8 @@
*/ */
using System; using System;
using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.ComponentModel;
using SharpReportCore; using SharpReportCore;
using SharpReport.Designer; using SharpReport.Designer;
@ -30,11 +30,12 @@ namespace SharpReport.ReportItems{
private ReportCircleControl visualControl; private ReportCircleControl visualControl;
private bool initDone;
public ReportCircleItem() : base(){ public ReportCircleItem() : base(){
visualControl = new ReportCircleControl(); visualControl = new ReportCircleControl();
ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this);
this.visualControl.Click += new EventHandler(OnControlSelect); this.visualControl.Click += new EventHandler(OnControlSelect);
this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged); this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged);
this.visualControl.BackColorChanged += new EventHandler (OnControlChanged); this.visualControl.BackColorChanged += new EventHandler (OnControlChanged);
@ -42,20 +43,20 @@ namespace SharpReport.ReportItems{
this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged); this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged);
base.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (BasePropertyChange); base.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (BasePropertyChange);
ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this); }
this.initDone = true;
}
#region EventHandling #region EventHandling
private void BasePropertyChange (object sender, PropertyChangedEventArgs e){ private void BasePropertyChange (object sender, PropertyChangedEventArgs e){
if (initDone == true) { ItemsHelper.UpdateControlFromGraphicBase (this.visualControl,this);
ItemsHelper.UpdateControlFromGraphicBase (this.visualControl,this); this.HandlePropertyChanged(e.PropertyName);
}
} }
private void OnControlChanged (object sender, EventArgs e) { private void OnControlChanged (object sender, EventArgs e) {
base.SuspendLayout();
ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this); ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this);
base.ResumeLayout();
this.HandlePropertyChanged("OnControlChanged"); this.HandlePropertyChanged("OnControlChanged");
} }
@ -75,8 +76,8 @@ namespace SharpReport.ReportItems{
PropertyChanged (this,new PropertyChangedEventArgs(info)); PropertyChanged (this,new PropertyChangedEventArgs(info));
} }
} }
} }
#endregion #endregion
#region overrides #region overrides
@ -121,6 +122,19 @@ namespace SharpReport.ReportItems{
} }
} }
public override Color BackColor {
get {
return base.BackColor;
}
set {
base.BackColor = value;
if (this.visualControl != null) {
this.visualControl.BackColor = value;
}
this.HandlePropertyChanged("Backcolor");
}
}
#endregion #endregion
#region SharpReport.Designer.IDesignable interface implementation #region SharpReport.Designer.IDesignable interface implementation

89
src/AddIns/Misc/SharpReport/SharpReport/ReportItems/GraphicBased/ReportImageItem.cs

@ -26,52 +26,46 @@ namespace SharpReport.ReportItems {
public class ReportImageItem : BaseImageItem,SharpReport.Designer.IDesignable { public class ReportImageItem : BaseImageItem,SharpReport.Designer.IDesignable {
private ReportImageControl visualControl; private ReportImageControl visualControl;
private bool initDone;
public ReportImageItem() :base(){ public ReportImageItem() :base(){
visualControl = new ReportImageControl(); visualControl = new ReportImageControl();
ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this);
Setup();
this.visualControl.Click += new EventHandler(OnControlSelect); this.visualControl.Click += new EventHandler(OnControlSelect);
this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged); this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged);
this.visualControl.BackColorChanged += new EventHandler (OnControlChanged); this.visualControl.BackColorChanged += new EventHandler (OnControlChanged);
this.visualControl.FontChanged += new EventHandler (OnControlChanged); this.visualControl.FontChanged += new EventHandler (OnControlChanged);
this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged); this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged);
base.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (BasePropertyChange); base.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (BasePropertyChange);
ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this);
this.initDone = true;
} }
#region overrides private void Setup() {
public override void Dispose() { this.visualControl.Location = base.Location;
base.Dispose(); this.visualControl.Size = base.Size;
this.visualControl.Dispose();
}
public override string ToString(){ if (base.Image != null) {
return this.Name; this.visualControl.Image = base.Image;
this.visualControl.ScaleImageToSize = base.ScaleImageToSize;
this.visualControl.Invalidate();
}
} }
#endregion
#region EventHandling #region EventHandling
private void BasePropertyChange (object sender, PropertyChangedEventArgs e){ private void BasePropertyChange (object sender, PropertyChangedEventArgs e){
if (initDone == true) { Setup();
ItemsHelper.UpdateControlFromGraphicBase(this.visualControl,this);
this.visualControl.Location = base.Location; this.HandlePropertyChanged(e.PropertyName);
this.visualControl.Size = base.Size;
if (base.Image != null) {
this.visualControl.Image = base.Image;
this.visualControl.ScaleImageToSize = base.ScaleImageToSize;
this.visualControl.Invalidate();
}
}
} }
private void OnControlChanged (object sender, EventArgs e) { private void OnControlChanged (object sender, EventArgs e) {
Setup();
base.SuspendLayout();
ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this); ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this);
base.ResumeLayout();
this.HandlePropertyChanged("OnControlChanged"); this.HandlePropertyChanged("OnControlChanged");
} }
@ -110,5 +104,50 @@ namespace SharpReport.ReportItems {
#endregion #endregion
#region overrides
public override Size Size {
get {
return base.Size;
}
set {
base.Size = value;
if (this.visualControl != null) {
this.visualControl.Size = value;
}
this.HandlePropertyChanged("Size");
}
}
public override Point Location {
get {
return base.Location;
}
set {
base.Location = value;
if (this.visualControl != null) {
this.visualControl.Location = value;
}
this.HandlePropertyChanged("Location");
}
}
// public override Image Image {
// get {
// return base.Image;
// }
// }
//
public override void Dispose() {
base.Dispose();
this.visualControl.Dispose();
}
public override string ToString(){
return this.Name;
}
#endregion
} }
} }

12
src/AddIns/Misc/SharpReport/SharpReport/ReportItems/GraphicBased/ReportLineItem.cs

@ -8,8 +8,8 @@
// </autogenerated> // </autogenerated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
using System; using System;
using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.ComponentModel;
using SharpReportCore; using SharpReportCore;
using SharpReport.Designer; using SharpReport.Designer;
@ -26,7 +26,6 @@ namespace SharpReport.ReportItems{
public class ReportLineItem : BaseLineItem,SharpReport.Designer.IDesignable { public class ReportLineItem : BaseLineItem,SharpReport.Designer.IDesignable {
private ReportLineControl visualControl; private ReportLineControl visualControl;
private bool initDone;
/// <summary> /// <summary>
@ -34,6 +33,8 @@ namespace SharpReport.ReportItems{
/// </summary> /// </summary>
public ReportLineItem():base() { public ReportLineItem():base() {
visualControl = new ReportLineControl(); visualControl = new ReportLineControl();
ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this);
this.visualControl.Click += new EventHandler(OnControlSelect); this.visualControl.Click += new EventHandler(OnControlSelect);
this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged); this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged);
this.visualControl.BackColorChanged += new EventHandler (OnControlChanged); this.visualControl.BackColorChanged += new EventHandler (OnControlChanged);
@ -41,20 +42,19 @@ namespace SharpReport.ReportItems{
this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged); this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged);
base.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (BasePropertyChange); base.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (BasePropertyChange);
ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this);
this.initDone = true;
} }
#region EventHandling #region EventHandling
private void BasePropertyChange (object sender, PropertyChangedEventArgs e){ private void BasePropertyChange (object sender, PropertyChangedEventArgs e){
if (initDone == true) {
ItemsHelper.UpdateControlFromGraphicBase (this.visualControl,this); ItemsHelper.UpdateControlFromGraphicBase (this.visualControl,this);
} this.HandlePropertyChanged(e.PropertyName);
} }
private void OnControlChanged (object sender, EventArgs e) { private void OnControlChanged (object sender, EventArgs e) {
base.SuspendLayout();
ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this); ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this);
base.ResumeLayout();
this.HandlePropertyChanged("OnControlChanged"); this.HandlePropertyChanged("OnControlChanged");
} }

40
src/AddIns/Misc/SharpReport/SharpReport/ReportItems/GraphicBased/ReportRectangleItem.cs

@ -10,9 +10,8 @@
using System; using System;
using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.ComponentModel;
using SharpReportCore; using SharpReportCore;
using SharpReport.Designer; using SharpReport.Designer;
@ -32,41 +31,33 @@ namespace SharpReport.ReportItems{
public class ReportRectangleItem : BaseRectangleItem,SharpReport.Designer.IDesignable { public class ReportRectangleItem : BaseRectangleItem,SharpReport.Designer.IDesignable {
private ReportRectangleControl visualControl; private ReportRectangleControl visualControl;
private bool initDone;
public ReportRectangleItem():base() { public ReportRectangleItem():base() {
visualControl = new ReportRectangleControl(); visualControl = new ReportRectangleControl();
ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this);
this.visualControl.Click += new EventHandler(OnControlSelect); this.visualControl.Click += new EventHandler(OnControlSelect);
this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged); this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged);
this.visualControl.BackColorChanged += new EventHandler (OnControlChanged); this.visualControl.BackColorChanged += new EventHandler (OnControlChanged);
this.visualControl.FontChanged += new EventHandler (OnControlChanged); this.visualControl.FontChanged += new EventHandler (OnControlChanged);
this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged); this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged);
this.visualControl.DragOver += new DragEventHandler (OnDragOver);
this.VisualControl.DragEnter += new DragEventHandler (OnDragEnter);
base.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (BasePropertyChange); base.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (BasePropertyChange);
ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this);
this.initDone = true;
} }
void OnDragEnter(object sender,DragEventArgs e) {
// System.Console.WriteLine("DragEnter");
}
void OnDragOver(object sender,DragEventArgs e) {
// System.Console.WriteLine("DragOver");
}
#region EventHandling #region EventHandling
private void BasePropertyChange (object sender, PropertyChangedEventArgs e){ private void BasePropertyChange (object sender, PropertyChangedEventArgs e){
if (initDone == true) { ItemsHelper.UpdateControlFromGraphicBase (this.visualControl,this);
ItemsHelper.UpdateControlFromGraphicBase (this.visualControl,this); this.HandlePropertyChanged(e.PropertyName);
}
} }
private void OnControlChanged (object sender, EventArgs e) { private void OnControlChanged (object sender, EventArgs e) {
base.SuspendLayout();
ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this); ItemsHelper.UpdateBaseFromGraphicControl (this.visualControl,this);
base.ResumeLayout();
this.HandlePropertyChanged("OnControlChanged"); this.HandlePropertyChanged("OnControlChanged");
} }
@ -86,7 +77,6 @@ namespace SharpReport.ReportItems{
PropertyChanged (this,new PropertyChangedEventArgs(info)); PropertyChanged (this,new PropertyChangedEventArgs(info));
} }
} }
} }
#endregion #endregion
@ -133,6 +123,18 @@ namespace SharpReport.ReportItems{
} }
} }
public override Color BackColor {
get {
return base.BackColor;
}
set {
base.BackColor = value;
if (this.visualControl != null) {
this.visualControl.BackColor = value;
}
this.HandlePropertyChanged("Backcolor");
}
}
#endregion #endregion

17
src/AddIns/Misc/SharpReport/SharpReport/ReportItems/TextBased/ItemsHelper.cs

@ -24,34 +24,28 @@ namespace SharpReport {
public static void UpdateBaseFromTextControl (ReportObjectControlBase control, public static void UpdateBaseFromTextControl (ReportObjectControlBase control,
BaseReportItem item) { BaseReportItem item) {
item.SuspendLayout();
item.Size = control.Size; item.Size = control.Size;
item.Location = control.Location; item.Location = control.Location;
item.Name = control.Name; item.Name = control.Name;
item.BackColor = control.BackColor; item.BackColor = control.BackColor;
item.ForeColor = control.ForeColor; item.ForeColor = control.ForeColor;
item.Font = control.Font; item.Font = control.Font;
item.ResumeLayout();
} }
public static void UpdateBaseFromGraphicControl (AbstractGraphicControl control, public static void UpdateBaseFromGraphicControl (AbstractGraphicControl control,
BaseGraphicItem item) { BaseGraphicItem item) {
ItemsHelper.UpdateBaseFromTextControl (control,item); ItemsHelper.UpdateBaseFromTextControl (control,item);
item.SuspendLayout();
item.Thickness = control.Thickness; item.Thickness = control.Thickness;
item.DashStyle = control.DashStyle; item.DashStyle = control.DashStyle;
item.ResumeLayout();
} }
public static void UpdateControlFromTextBase (ReportObjectControlBase control, public static void UpdateControlFromTextBase (ReportObjectControlBase control,
BaseReportItem item) { BaseReportItem item) {
control.SuspendLayout();
item.SuspendLayout();
control.BackColor = item.BackColor; control.BackColor = item.BackColor;
control.ForeColor = item.ForeColor; control.ForeColor = item.ForeColor;
control.Location = item.Location; control.Location = item.Location;
@ -62,14 +56,11 @@ namespace SharpReport {
if (b != null) { if (b != null) {
control.StringAlignment = b.StringAlignment; control.StringAlignment = b.StringAlignment;
} }
item.ResumeLayout();
control.ResumeLayout();
} }
public static void UpdateControlFromGraphicBase (AbstractGraphicControl control, public static void UpdateControlFromGraphicBase (AbstractGraphicControl control,
BaseGraphicItem item) { BaseGraphicItem item) {
ItemsHelper.UpdateControlFromTextBase(control,item); ItemsHelper.UpdateControlFromTextBase(control,item);
control.Location = item.Location; control.Location = item.Location;
control.DashStyle = item.DashStyle; control.DashStyle = item.DashStyle;

23
src/AddIns/Misc/SharpReport/SharpReport/ReportItems/TextBased/ReportDataItem.cs

@ -23,7 +23,7 @@ namespace SharpReport.ReportItems{
private ReportDbTextControl visualControl; private ReportDbTextControl visualControl;
bool initDone; // bool initDone;
#region Constructors #region Constructors
@ -40,6 +40,10 @@ namespace SharpReport.ReportItems{
visualControl = new ReportDbTextControl(); visualControl = new ReportDbTextControl();
this.visualControl.Text = base.ColumnName; this.visualControl.Text = base.ColumnName;
visualControl.StringFormat = base.StandartStringFormat;
this.Text = base.ColumnName;
ItemsHelper.UpdateBaseFromTextControl (this.visualControl,this);
this.visualControl.Click += new EventHandler(OnControlSelect); this.visualControl.Click += new EventHandler(OnControlSelect);
this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged); this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged);
@ -48,16 +52,6 @@ namespace SharpReport.ReportItems{
this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged); this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged);
base.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (BasePropertyChange); base.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (BasePropertyChange);
ItemsHelper.UpdateBaseFromTextControl (this.visualControl,this);
this.Text = base.ColumnName;
GrapFromBase();
this.initDone = true;
}
private void GrapFromBase() {
this.visualControl.SuspendLayout();
visualControl.StringFormat = base.StandartStringFormat;
this.visualControl.ResumeLayout();
} }
#endregion #endregion
@ -71,14 +65,15 @@ namespace SharpReport.ReportItems{
#region events's #region events's
private void BasePropertyChange (object sender, PropertyChangedEventArgs e){ private void BasePropertyChange (object sender, PropertyChangedEventArgs e){
if (initDone == true) { ItemsHelper.UpdateControlFromTextBase(this.visualControl,this);
ItemsHelper.UpdateControlFromTextBase(this.visualControl,this); this.HandlePropertyChanged(e.PropertyName);
}
} }
private void OnControlChanged (object sender, EventArgs e) { private void OnControlChanged (object sender, EventArgs e) {
base.SuspendLayout();
ItemsHelper.UpdateBaseFromTextControl (this.visualControl,this); ItemsHelper.UpdateBaseFromTextControl (this.visualControl,this);
base.ResumeLayout();
this.HandlePropertyChanged("OnControlChanged"); this.HandlePropertyChanged("OnControlChanged");
} }

70
src/AddIns/Misc/SharpReport/SharpReport/ReportItems/TextBased/ReportRowItem.cs

@ -1,6 +1,6 @@
/* /*
* Created by SharpDevelop. * Created by SharpDevelop.
* User: Forstmeier Helmut * User: Forstmeier Peter
* Date: 01.03.2006 * Date: 01.03.2006
* Time: 14:35 * Time: 14:35
* *
@ -8,6 +8,7 @@
*/ */
using System; using System;
using System.Drawing;
using System.ComponentModel; using System.ComponentModel;
using SharpReport.Designer; using SharpReport.Designer;
@ -21,7 +22,7 @@ namespace SharpReport.ReportItems
/// </summary> /// </summary>
public class ReportRowItem : RowItem ,IDesignable{ public class ReportRowItem : RowItem ,IDesignable{
private ReportRowControl visualControl; private ReportRowControl visualControl;
private bool initDone;
#region Constructor #region Constructor
public ReportRowItem():this (GlobalValues.UnboundName){ public ReportRowItem():this (GlobalValues.UnboundName){
@ -37,21 +38,19 @@ namespace SharpReport.ReportItems
private void Setup(){ private void Setup(){
visualControl = new ReportRowControl(); visualControl = new ReportRowControl();
ItemsHelper.UpdateBaseFromTextControl (this.visualControl,this);
this.visualControl.Click += new EventHandler(OnControlSelect); this.visualControl.Click += new EventHandler(OnControlSelect);
this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged); this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged);
this.visualControl.FontChanged += new EventHandler (OnControlChanged); this.visualControl.FontChanged += new EventHandler (OnControlChanged);
this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged); this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged);
this.visualControl.BackColorChanged += new EventHandler (OnAppereanceChanged); this.visualControl.BackColorChanged += new EventHandler (OnAppereanceChanged);
base.PropertyChanged += new PropertyChangedEventHandler (BasePropertyChange); base.PropertyChanged += new PropertyChangedEventHandler (BasePropertyChange);
base.Items.Added += OnAdd; base.Items.Added += OnAdd;
base.Items.Removed += OnRemove; base.Items.Removed += OnRemove;
ItemsHelper.UpdateControlFromTextBase (this.visualControl,this); }
this.initDone = true;
}
#endregion #endregion
@ -67,8 +66,9 @@ namespace SharpReport.ReportItems
} }
private void ChildPropertyChange (object sender, PropertyChangedEventArgs e){ private void ChildPropertyChange (object sender, PropertyChangedEventArgs e){
if (initDone == true) { if (! base.Suspend) {
ItemsHelper.UpdateControlFromTextBase (this.visualControl,this); ItemsHelper.UpdateControlFromTextBase (this.visualControl,this);
this.HandlePropertyChanged(e.PropertyName);
} }
} }
@ -77,6 +77,10 @@ namespace SharpReport.ReportItems
private void UpdateChilds () { private void UpdateChilds () {
foreach (BaseReportItem br in this.Items) { foreach (BaseReportItem br in this.Items) {
br.BackColor = this.BackColor; br.BackColor = this.BackColor;
IDesignable des = br as IDesignable;
if (des != null) {
des.VisualControl.BackColor = this.BackColor;
}
} }
} }
@ -103,22 +107,28 @@ namespace SharpReport.ReportItems
private void BasePropertyChange (object sender, PropertyChangedEventArgs e){ private void BasePropertyChange (object sender, PropertyChangedEventArgs e){
if (initDone == true) { ItemsHelper.UpdateControlFromTextBase (this.visualControl,this);
ItemsHelper.UpdateControlFromTextBase (this.visualControl,this); this.HandlePropertyChanged(e.PropertyName);
}
} }
private void OnControlChanged (object sender, EventArgs e) { private void OnControlChanged (object sender, EventArgs e) {
this.SuspendLayout();
ItemsHelper.UpdateBaseFromTextControl (this.visualControl,this); ItemsHelper.UpdateBaseFromTextControl (this.visualControl,this);
this.ResumeLayout();
this.HandlePropertyChanged("OnControlChanged"); this.HandlePropertyChanged("OnControlChanged");
} }
private void OnAppereanceChanged (object sender, EventArgs e) { private void OnAppereanceChanged (object sender, EventArgs e) {
this.SuspendLayout();
ItemsHelper.UpdateBaseFromTextControl (this.visualControl,this); ItemsHelper.UpdateBaseFromTextControl (this.visualControl,this);
this.ResumeLayout();
UpdateChilds(); UpdateChilds();
this.HandlePropertyChanged("OnControlChanged"); this.HandlePropertyChanged("OnControlChanged");
} }
private void OnControlSelect(object sender, EventArgs e){ private void OnControlSelect(object sender, EventArgs e){
if (Selected != null) if (Selected != null)
Selected(this,e); Selected(this,e);
@ -153,7 +163,47 @@ namespace SharpReport.ReportItems
public event EventHandler <EventArgs> Selected; public event EventHandler <EventArgs> Selected;
#endregion #endregion
#region overrides #region overrides
public override Size Size {
get {
return base.Size;
}
set {
base.Size = value;
if (this.visualControl != null) {
this.visualControl.Size = value;
}
this.HandlePropertyChanged("Size");
}
}
public override Point Location {
get {
return base.Location;
}
set {
base.Location = value;
if (this.visualControl != null) {
this.visualControl.Location = value;
}
this.HandlePropertyChanged("Location");
}
}
public override Font Font {
get {
return base.Font;
}
set {
base.Font = value;
if (this.visualControl != null) {
this.visualControl.Font = value;
}
this.HandlePropertyChanged("Font");
}
}
public override string ToString(){ public override string ToString(){
return this.Name; return this.Name;

46
src/AddIns/Misc/SharpReport/SharpReport/ReportItems/TextBased/ReportTextItem.cs

@ -8,9 +8,8 @@
*/ */
using System; using System;
using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Drawing.Printing; using System.ComponentModel;
using SharpReportCore; using SharpReportCore;
using SharpReport.Designer; using SharpReport.Designer;
@ -26,14 +25,17 @@ namespace SharpReport.ReportItems {
public class ReportTextItem : BaseTextItem,IDesignable { public class ReportTextItem : BaseTextItem,IDesignable {
private ReportTextControl visualControl; private ReportTextControl visualControl;
bool initDone;
#region Constructor #region Constructor
public ReportTextItem() : base(){ public ReportTextItem() : base(){
visualControl = new ReportTextControl(); visualControl = new ReportTextControl();
this.Text = visualControl.Name;
visualControl.StringFormat = base.StandartStringFormat;
ItemsHelper.UpdateBaseFromTextControl (this.visualControl,this);
this.visualControl.Click += new EventHandler(OnControlSelect); this.visualControl.Click += new EventHandler(OnControlSelect);
this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged); this.visualControl.VisualControlChanged += new EventHandler (OnControlChanged);
this.visualControl.BackColorChanged += new EventHandler (OnControlChanged); this.visualControl.BackColorChanged += new EventHandler (OnControlChanged);
@ -41,45 +43,32 @@ namespace SharpReport.ReportItems {
this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged); this.visualControl.ForeColorChanged += new EventHandler (OnControlChanged);
base.PropertyChanged += new PropertyChangedEventHandler (BasePropertyChange); base.PropertyChanged += new PropertyChangedEventHandler (BasePropertyChange);
// ItemsHelper.UpdateTextControl (this.visualControl,this);
this.Text = visualControl.Name;
visualControl.StringFormat = base.StandartStringFormat;
ItemsHelper.UpdateControlFromTextBase (this.visualControl,this);
this.initDone = true;
} }
#endregion #endregion
#region overrides
public override string ToString(){
return this.Name;
}
#endregion
#region events #region events
private void BasePropertyChange (object sender, PropertyChangedEventArgs e){ private void BasePropertyChange (object sender, PropertyChangedEventArgs e){
System.Console.WriteLine("Text:BasePropertyChanged"); ItemsHelper.UpdateControlFromTextBase(this.visualControl,this);
if (initDone == true) { this.HandlePropertyChanged(e.PropertyName);
ItemsHelper.UpdateControlFromTextBase(this.visualControl,this);
}
} }
private void OnControlChanged (object sender, EventArgs e) { private void OnControlChanged (object sender, EventArgs e) {
System.Console.WriteLine("Text:OnControlChanged"); base.SuspendLayout();
ItemsHelper.UpdateBaseFromTextControl (this.visualControl,this); ItemsHelper.UpdateBaseFromTextControl (this.visualControl,this);
base.ResumeLayout();
this.HandlePropertyChanged("OnControlSelected"); this.HandlePropertyChanged("OnControlSelected");
} }
private void OnControlSelect(object sender, EventArgs e){ private void OnControlSelect(object sender, EventArgs e){
System.Console.WriteLine("Text:OnControlSelect"); if (Selected != null){
if (Selected != null)
Selected(this,e); Selected(this,e);
}
} }
/// <summary> /// <summary>
@ -88,13 +77,13 @@ namespace SharpReport.ReportItems {
/// </summary> /// </summary>
protected void HandlePropertyChanged(string info) { protected void HandlePropertyChanged(string info) {
System.Console.WriteLine("Text:HandlePropertyChanged");
if ( !base.Suspend) { if ( !base.Suspend) {
if (PropertyChanged != null) { if (PropertyChanged != null) {
PropertyChanged (this,new PropertyChangedEventArgs(info)); PropertyChanged (this,new PropertyChangedEventArgs(info));
} }
} }
} }
#endregion #endregion
public override Size Size { public override Size Size {
@ -168,6 +157,13 @@ namespace SharpReport.ReportItems {
#endregion #endregion
#region overrides
public override string ToString(){
return this.Name;
}
#endregion
/* /*
#region IDisposable #region IDisposable
public override void Dispose(){ public override void Dispose(){

23
src/AddIns/Misc/SharpReport/SharpReport/Visitors/LoadReportVisitor.cs

@ -89,21 +89,16 @@ namespace SharpReport.Visitors {
if (sectionElem != null) { if (sectionElem != null) {
baseSection = (BaseSection)designer.ReportModel.SectionCollection.Find(sectionElem.GetAttribute("name")); baseSection = (BaseSection)designer.ReportModel.SectionCollection.Find(sectionElem.GetAttribute("name"));
if (baseSection != null) { if (baseSection != null) {
baseSection.SuspendLayout();
XmlHelper.SetSectionValues (base.XmlFormReader,sectionElem,baseSection); XmlHelper.SetSectionValues (base.XmlFormReader,sectionElem,baseSection);
XmlNodeList ctrlList = sectionElem.SelectNodes (base.NodesQuery); XmlNodeList ctrlList = sectionElem.SelectNodes (base.NodesQuery);
SetReportItems(baseSection,null,ctrlList); SetReportItems(baseSection,null,ctrlList);
baseSection.ResumeLayout();
} else { } else {
throw new MissingSectionException(); throw new MissingSectionException();
} }
} else { } else {
throw new MissingSectionException(); throw new MissingSectionException();
} }
baseSection.ResumeLayout();
} }
baseSection.ResumeLayout();
} }
@ -120,26 +115,28 @@ namespace SharpReport.Visitors {
itemRenderer = designableFactory.Create(ctrlElem.GetAttribute("type")); itemRenderer = designableFactory.Create(ctrlElem.GetAttribute("type"));
baseReportItem = (BaseReportItem)itemRenderer; baseReportItem = (BaseReportItem)itemRenderer;
if (parentContainer == null) { if (parentContainer == null) {
// System.Console.WriteLine("\tParent of {0} is Section",baseReportItem.Name);
baseReportItem.Parent = baseSection; baseReportItem.Parent = baseSection;
baseSection.Items.Add (baseReportItem); baseSection.Items.Add (baseReportItem);
} else { } else {
// System.Console.WriteLine("\tParent of <{0}> is Container",baseReportItem.Name);
baseReportItem.Parent = parentContainer; baseReportItem.Parent = parentContainer;
parentContainer.Items.Add(baseReportItem); parentContainer.Items.Add(baseReportItem);
} }
XmlHelper.BuildControl (base.XmlFormReader,ctrlElem,baseReportItem); XmlHelper.SetReportItemValues (base.XmlFormReader,ctrlElem,baseReportItem);
IContainerItem iContainer = baseReportItem as IContainerItem; IContainerItem iContainer = baseReportItem as IContainerItem;
XmlNodeList newList = ctrlNode.SelectNodes (base.NodesQuery); if (iContainer != null) {
if (newList.Count > 0) { XmlNodeList newList = ctrlNode.SelectNodes (base.NodesQuery);
// System.Console.WriteLine("\t recusiv call for <{0}> with {1} childs ", if (newList.Count > 0) {
// baseReportItem,newList.Count); System.Console.WriteLine("\tLoadReportVisitor recursive call for <{0}> with {1} elements",
SetReportItems (baseSection,iContainer,newList); baseReportItem.Name,
newList.Count);
SetReportItems (baseSection,iContainer,newList);
}
} }
} }
catch (Exception ) { catch (Exception ) {

6
src/AddIns/Misc/SharpReport/SharpReportAddin/FieldsExplorer/FieldsExplorer.cs

@ -221,7 +221,7 @@ namespace SharpReportAddin {
} }
#region PadEvents #region PadEvents
private void OnWindowChange (object sender,EventArgs e) { private void old_OnWindowChange (object sender,EventArgs e) {
try { try {
if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent is SharpReportView) { if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent is SharpReportView) {
if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null || WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent == null) { if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null || WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent == null) {
@ -248,13 +248,13 @@ namespace SharpReportAddin {
} }
} else { } else {
System.Console.WriteLine(" NO view"); } System.Console.WriteLine("FieldsExplorer: NO view"); }
} catch (Exception) { } catch (Exception) {
} }
} }
private void old_OnWindowChange (object sender,EventArgs e) { private void OnWindowChange (object sender,EventArgs e) {
// System.Console.WriteLine("FieldsExplorer:OnWindowChange"); // System.Console.WriteLine("FieldsExplorer:OnWindowChange");
// System.Console.WriteLine("active control {0}",WorkbenchSingleton.ActiveControl.ToString()); // System.Console.WriteLine("active control {0}",WorkbenchSingleton.ActiveControl.ToString());
// ICSharpCode.SharpDevelop.Gui.DefaultWorkbench dw = (ICSharpCode.SharpDevelop.Gui.DefaultWorkbench)sender; // ICSharpCode.SharpDevelop.Gui.DefaultWorkbench dw = (ICSharpCode.SharpDevelop.Gui.DefaultWorkbench)sender;

1
src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportDisplayBinding.cs

@ -79,6 +79,7 @@ namespace SharpReportAddin {
view.Load (fileName); view.Load (fileName);
view.UpdateView (false); view.UpdateView (false);
view.Selected(); view.Selected();
view.DesignerControl.ReportModel.ReportSettings.InitDone = true;
return view; return view;
} catch (Exception) { } catch (Exception) {
return new SharpReportView(); return new SharpReportView();

70
src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportView.cs

@ -35,7 +35,7 @@ namespace SharpReportAddin{
public class SharpReportView : AbstractViewContent,IPrintable,IDisposable public class SharpReportView : AbstractViewContent,IPrintable,IDisposable
{ {
private SharpReportManager reportManager = null; private SharpReportManager reportManager;
private BaseDesignerControl designerControl; private BaseDesignerControl designerControl;
private TabControl tabControl; private TabControl tabControl;
@ -45,13 +45,15 @@ namespace SharpReportAddin{
// SideBar // SideBar
private AxSideTab sideTabItem = null; private AxSideTab sideTabItem = null;
private AxSideTab sideTabFunctions = null; private AxSideTab sideTabFunctions = null;
private Panel panel = new Panel(); private Panel panel;
private bool designerInitialised;
#region privates #region privates
void InitView() { void InitView() {
try { try {
reportManager = new SharpReportManager(); reportManager = new SharpReportManager();
panel = new Panel();
panel.AutoScroll = true; panel.AutoScroll = true;
CreateTabControl(); CreateTabControl();
BuildToolBarItems(); BuildToolBarItems();
@ -77,7 +79,8 @@ namespace SharpReportAddin{
private void SetOnPropertyChangedEvents () { private void SetOnPropertyChangedEvents () {
try { try {
ReportModel model = designerControl.ReportModel; ReportModel model = designerControl.ReportModel;
model.ReportSettings.PropertyChanged += new EventHandler (OnSettingsChanged);
model.ReportSettings.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (OnPropertyChanged);
model.ReportHeader.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (OnPropertyChanged); model.ReportHeader.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (OnPropertyChanged);
model.PageHeader.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (OnPropertyChanged); model.PageHeader.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (OnPropertyChanged);
model.DetailSection.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (OnPropertyChanged); model.DetailSection.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler (OnPropertyChanged);
@ -134,6 +137,7 @@ namespace SharpReportAddin{
SharpDevelopSideBar sideBar = GetSideBar(); SharpDevelopSideBar sideBar = GetSideBar();
sideBar.Tabs.Remove (sideTabItem); sideBar.Tabs.Remove (sideTabItem);
} }
if (this.sideTabFunctions != null) { if (this.sideTabFunctions != null) {
SharpDevelopSideBar sideBar = GetSideBar(); SharpDevelopSideBar sideBar = GetSideBar();
sideBar.Tabs.Remove(this.sideTabFunctions); sideBar.Tabs.Remove(this.sideTabFunctions);
@ -187,14 +191,16 @@ namespace SharpReportAddin{
previewPage.Text = ResourceService.GetString("SharpReport.Preview"); previewPage.Text = ResourceService.GetString("SharpReport.Preview");
this.OnTabPageChanged (this,EventArgs.Empty); this.OnTabPageChanged (this,EventArgs.Empty);
this.designerControl.Localise(); this.designerControl.Localise();
} }
private BaseDesignerControl CreateDesignerControl() { private BaseDesignerControl CreateDesignerControl() {
BaseDesignerControl ctrl = reportManager.BaseDesignControl; BaseDesignerControl ctrl = reportManager.BaseDesignControl;
ctrl.SuspendLayout();
ctrl.ReportControl.Width = ctrl.ReportModel.ReportSettings.PageSettings.Bounds.Width; ctrl.ReportControl.Width = ctrl.ReportModel.ReportSettings.PageSettings.Bounds.Width;
ctrl.ReportControl.AutoScroll = true; ctrl.ReportControl.AutoScroll = true;
ctrl.Dock = DockStyle.Fill; ctrl.Dock = DockStyle.Fill;
ctrl.ResumeLayout();
ctrl.ReportControl.ObjectSelected +=new EventHandler <EventArgs>(OnObjectSelected); ctrl.ReportControl.ObjectSelected +=new EventHandler <EventArgs>(OnObjectSelected);
@ -309,6 +315,9 @@ namespace SharpReportAddin{
} }
} }
void SetTabTitel (string name) {
base.TitleName = String.Format("{0} [{1}]",name,this.tabControl.SelectedTab.Text);
}
private void OnTabPageChanged (object sender, EventArgs e) { private void OnTabPageChanged (object sender, EventArgs e) {
@ -321,7 +330,7 @@ namespace SharpReportAddin{
} else { } else {
name = Path.GetFileName (base.FileName); name = Path.GetFileName (base.FileName);
} }
base.TitleName = String.Format("{0} [{1}]",name,this.tabControl.SelectedTab.Text); SetTabTitel (name);
switch (tabControl.SelectedIndex) { switch (tabControl.SelectedIndex) {
case 0 : case 0 :
break; break;
@ -344,23 +353,39 @@ namespace SharpReportAddin{
base.IsDirty = true; base.IsDirty = true;
} }
public void OnPropertyChanged (object sender, private void OnPropertyChanged (object sender,
System.ComponentModel.PropertyChangedEventArgs e) { System.ComponentModel.PropertyChangedEventArgs e) {
base.IsDirty = true; if (this.designerInitialised) {
base.IsDirty = true;
OnObjectSelected (this,EventArgs.Empty);
}
this.designerInitialised = true;
} }
private void OnSettingsChanged (object sender,EventArgs e) {
base.IsDirty = true;
}
private void OnModelFileNameChanged (object sender,EventArgs e) { private void OnModelFileNameChanged (object sender,EventArgs e) {
base.FileName = designerControl.ReportModel.ReportSettings.FileName; base.FileName = designerControl.ReportModel.ReportSettings.FileName;
base.IsDirty = true; if (designerControl.ReportModel.ReportSettings.InitDone) {
this.OnFileNameChanged(e); base.IsDirty = true;
this.OnFileNameChanged(e);
this.SetTabTitel(Path.GetFileName (base.FileName));
}
} }
private void OnObjectSelected (object sender,EventArgs e) { private void OnObjectSelected (object sender,EventArgs e) {
if (designerControl.ReportControl.SelectedObject != null) { if (designerControl.ReportControl.SelectedObject != null) {
BaseReportObject oldobj = PropertyPad.Grid.SelectedObject as BaseReportObject;
// if (oldobj != null) {
// System.Console.WriteLine("");
// System.Console.WriteLine("leaving {0} <{1}> ",oldobj.Name,oldobj.Suspend);
// }
BaseReportObject newobj = designerControl.ReportControl.SelectedObject;
newobj.ResumeLayout();
// System.Console.WriteLine("View:OnObjectSelected {0} <{1}>",newobj.Name,newobj.Suspend);
if (PropertyPad.Grid != null) { if (PropertyPad.Grid != null) {
PropertyPad.Grid.SelectedObject = designerControl.ReportControl.SelectedObject; PropertyPad.Grid.SelectedObject = designerControl.ReportControl.SelectedObject;
} }
@ -368,8 +393,14 @@ namespace SharpReportAddin{
} }
} }
protected override void OnFileNameChanged(System.EventArgs e) { private void old_OnObjectSelected (object sender,EventArgs e) {
base.OnFileNameChanged(e);
if (designerControl.ReportControl.SelectedObject != null) {
if (PropertyPad.Grid != null) {
PropertyPad.Grid.SelectedObject = designerControl.ReportControl.SelectedObject;
}
}
} }
#endregion #endregion
@ -406,6 +437,7 @@ namespace SharpReportAddin{
/// Change Sorting or Grouping etc. to update the View and set the DirtyFlag /// Change Sorting or Grouping etc. to update the View and set the DirtyFlag
/// </summary> /// </summary>
/// <param name="setViewDirty">If true, set the DirtyFlag and Fire the PropertyChanged Event</param> /// <param name="setViewDirty">If true, set the DirtyFlag and Fire the PropertyChanged Event</param>
public void UpdateView(bool setViewDirty) { public void UpdateView(bool setViewDirty) {
this.tabControl.SelectedIndex = 0; this.tabControl.SelectedIndex = 0;
this.OnTabPageChanged(this,EventArgs.Empty); this.OnTabPageChanged(this,EventArgs.Empty);
@ -513,6 +545,8 @@ namespace SharpReportAddin{
PropertyPad.Grid.Refresh(); PropertyPad.Grid.Refresh();
} }
this.designerControl.ReportModel.ReportSettings.AvailableFieldsCollection = reportManager.AvailableFieldsCollection; this.designerControl.ReportModel.ReportSettings.AvailableFieldsCollection = reportManager.AvailableFieldsCollection;
this.designerControl.RegisterEvents();
} catch (Exception e) { } catch (Exception e) {
MessageService.ShowError(e,"SharpReportView:Load"); MessageService.ShowError(e,"SharpReportView:Load");
throw ; throw ;
@ -522,9 +556,8 @@ namespace SharpReportAddin{
#endregion #endregion
#region ICSharpCode.SharpDevelop.Gui.IPrintable interface implementation #region ICSharpCode.SharpDevelop.Gui.IPrintable interface implementation
public System.Drawing.Printing.PrintDocument PrintDocument { public System.Drawing.Printing.PrintDocument PrintDocument {
get { get {
AbstractRenderer renderer; AbstractRenderer renderer;
@ -541,8 +574,8 @@ namespace SharpReportAddin{
#endregion #endregion
#region IDisposable
#region IDisposable
public override void Dispose(){ public override void Dispose(){
if (PropertyPad.Grid != null) { if (PropertyPad.Grid != null) {
@ -575,6 +608,7 @@ namespace SharpReportAddin{
// Call Dispose on your base class. // Call Dispose on your base class.
base.Dispose(); base.Dispose();
} }
#endregion #endregion
} }

18
src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/BaseDataItem.cs

@ -32,15 +32,18 @@ namespace SharpReportCore {
private string dbValue; private string dbValue;
private string dataType; private string dataType;
private string nullValue; private string nullValue;
/// <summary>
/// Default constructor - initializes all fields to default values #region Constructor
/// </summary>
public BaseDataItem() { public BaseDataItem():base() {
} }
public BaseDataItem(string columnName){ public BaseDataItem(string columnName):base(){
this.columnName = columnName; this.columnName = columnName;
} }
#endregion
#region privates #region privates
//TODO Need a much better handling for 'null' values //TODO Need a much better handling for 'null' values
@ -74,6 +77,8 @@ namespace SharpReportCore {
return "BaseDataItem"; return "BaseDataItem";
} }
#region Properies
[XmlIgnoreAttribute] [XmlIgnoreAttribute]
[Browsable(false)] [Browsable(false)]
public virtual string DbValue { public virtual string DbValue {
@ -152,5 +157,8 @@ namespace SharpReportCore {
nullValue = value; nullValue = value;
} }
} }
#endregion
} }
} }

17
src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/BaseReportItem.cs

@ -29,8 +29,8 @@ namespace SharpReportCore {
private Font font; private Font font;
public event EventHandler<BeforePrintEventArgs> BeforePrinting; public event EventHandler<BeforePrintEventArgs> ItemPrinting;
public event EventHandler<AfterPrintEventArgs> AfterPrinting; public event EventHandler<AfterPrintEventArgs> ItemPrinted;
public event EventHandler <FormatOutputEventArgs> FormatOutput; public event EventHandler <FormatOutputEventArgs> FormatOutput;
public event EventHandler Disposed; public event EventHandler Disposed;
@ -61,17 +61,17 @@ namespace SharpReportCore {
#endregion #endregion
#region EventHandling #region EventHandling
public void NotiyfyAfterPrint (PointF afterPrintLocation) { protected void NotiyfyAfterPrint (PointF afterPrintLocation) {
if (this.AfterPrinting != null) { if (this.ItemPrinted != null) {
AfterPrintEventArgs rea = new AfterPrintEventArgs (afterPrintLocation); AfterPrintEventArgs rea = new AfterPrintEventArgs (afterPrintLocation);
AfterPrinting(this, rea); ItemPrinted(this, rea);
} }
} }
public void NotifyBeforePrint () { protected void NotifyBeforePrint () {
if (this.BeforePrinting != null) { if (this.ItemPrinting != null) {
BeforePrintEventArgs ea = new BeforePrintEventArgs (); BeforePrintEventArgs ea = new BeforePrintEventArgs ();
BeforePrinting (this,ea); ItemPrinting (this,ea);
} }
} }
@ -121,6 +121,7 @@ namespace SharpReportCore {
} }
set { set {
drawBorder = value; drawBorder = value;
base.NotifyPropertyChanged ("DrawBorder");
} }
} }

2
src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/BaseReportObject.cs

@ -48,7 +48,7 @@ namespace SharpReportCore {
#endregion #endregion
public BaseReportObject() { public BaseReportObject() {
this.suspend = true;
} }

6
src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/BaseTextItem.cs

@ -20,6 +20,7 @@ using SharpReportCore;
namespace SharpReportCore { namespace SharpReportCore {
public class BaseTextItem : SharpReportCore.BaseReportItem,IItemRenderer { public class BaseTextItem : SharpReportCore.BaseReportItem,IItemRenderer {
private string text; private string text;
@ -28,11 +29,14 @@ namespace SharpReportCore {
private StringFormat standartStringFormat; private StringFormat standartStringFormat;
private TextDrawer textDrawer = new TextDrawer(); private TextDrawer textDrawer = new TextDrawer();
#region Constructor
public BaseTextItem() { public BaseTextItem():base() {
this.standartStringFormat = GlobalValues.StandartStringFormat(); this.standartStringFormat = GlobalValues.StandartStringFormat();
} }
#endregion
public override void Render(ReportPageEventArgs rpea) { public override void Render(ReportPageEventArgs rpea) {
if (rpea == null) { if (rpea == null) {
throw new ArgumentNullException("rpea"); throw new ArgumentNullException("rpea");

4
src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/Graphics/BaseImageItem.cs

@ -89,8 +89,6 @@ namespace SharpReportCore {
#region properties #region properties
// [EditorAttribute(typeof(System.Windows.Forms.Design.f.Design.FileNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
public virtual string FileName { public virtual string FileName {
get { get {
return fileName; return fileName;
@ -106,7 +104,7 @@ namespace SharpReportCore {
/// <summary> /// <summary>
/// The Image loaded from a File /// The Image loaded from a File
/// </summary> /// </summary>
public Image Image { public virtual Image Image {
get { get {
return image; return image;
} }

6
src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/RowItem.cs

@ -59,7 +59,7 @@ namespace SharpReportCore{
public override void Render(ReportPageEventArgs rpea){ public override void Render(ReportPageEventArgs rpea){
// System.Console.WriteLine("Render RowItem");
if (rpea == null) { if (rpea == null) {
throw new ArgumentNullException("rpea"); throw new ArgumentNullException("rpea");
} }
@ -73,9 +73,7 @@ namespace SharpReportCore{
Point loc = new Point (childItem.Location.X,childItem.Location.Y); Point loc = new Point (childItem.Location.X,childItem.Location.Y);
childItem.Location = new Point(this.Location.X + childItem.Location.X, childItem.Location = new Point(this.Location.X + childItem.Location.X,
this.SectionOffset + this.Location.Y); this.SectionOffset + childItem.Location.Y);
childItem.Render (rpea); childItem.Render (rpea);
childItem.Location = new Point(loc.X,loc.Y); childItem.Location = new Point(loc.X,loc.Y);

43
src/AddIns/Misc/SharpReport/SharpReportCore/BaseSettings.cs

@ -34,7 +34,7 @@ using System.Xml.Serialization;
/// created on - 07.10.2005 22:50:43 /// created on - 07.10.2005 22:50:43
/// </remarks> /// </remarks>
namespace SharpReportCore { namespace SharpReportCore {
public class BaseSettings : object { public class BaseSettings : INotifyPropertyChanged{
private const string defaultReportName = "SharpReport1"; private const string defaultReportName = "SharpReport1";
@ -51,13 +51,16 @@ namespace SharpReportCore {
private Margins defaultMargins = new Margins (50,50,50,50); private Margins defaultMargins = new Margins (50,50,50,50);
private Size gridSize; private Size gridSize;
private Padding padding; private Padding padding;
public event EventHandler PropertyChanged;
public event EventHandler FileNameChanged; public event EventHandler FileNameChanged;
#region SharpReportCore.IPropertyChange interface implementation
public event PropertyChangedEventHandler PropertyChanged;
#endregion
#region Constructor #region Constructor
public BaseSettings():this(new PageSettings(),"","") { public BaseSettings():this(new PageSettings(),"","") {
BaseValues(); BaseValues();
this.initDone = true;
} }
public BaseSettings(PageSettings pageSettings , string reportName,string fileName){ public BaseSettings(PageSettings pageSettings , string reportName,string fileName){
@ -77,12 +80,10 @@ namespace SharpReportCore {
this.fileName = MakePoperFilename(fileName); this.fileName = MakePoperFilename(fileName);
} }
this.pageSettings = pageSettings; this.pageSettings = pageSettings;
BaseValues(); BaseValues();
} }
void BaseValues() { void BaseValues() {
this.useStandartPrinter = true; this.useStandartPrinter = true;
this.graphicsUnit = GraphicsUnit.Millimeter; this.graphicsUnit = GraphicsUnit.Millimeter;
@ -106,9 +107,12 @@ namespace SharpReportCore {
} }
#endregion #endregion
protected void NotifyPropertyChanged() { protected void NotifyPropertyChanged(string info) {
if (PropertyChanged != null) { if (this.initDone) {
PropertyChanged (this,new EventArgs()); if (PropertyChanged != null) {
System.Console.WriteLine("BaseSettings : PropertyChanged {0}",info);
PropertyChanged (this,new PropertyChangedEventArgs (info));
}
} }
} }
@ -125,8 +129,9 @@ namespace SharpReportCore {
} }
} }
[Browsable(false)]
protected bool InitDone { [XmlIgnoreAttribute]
public bool InitDone {
get { get {
return initDone; return initDone;
} }
@ -147,7 +152,7 @@ namespace SharpReportCore {
set { set {
if (reportName != value) { if (reportName != value) {
reportName = value; reportName = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("ReportName");
} }
} }
} }
@ -165,7 +170,7 @@ namespace SharpReportCore {
set { set {
if (fileName != value) { if (fileName != value) {
fileName = value; fileName = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("FileName");
if (FileNameChanged != null ){ if (FileNameChanged != null ){
FileNameChanged (this,EventArgs.Empty); FileNameChanged (this,EventArgs.Empty);
} }
@ -182,7 +187,7 @@ namespace SharpReportCore {
set { set {
if (useStandartPrinter != value) { if (useStandartPrinter != value) {
useStandartPrinter = value; useStandartPrinter = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("UseStandrtPrinter");
} }
} }
} }
@ -196,7 +201,7 @@ namespace SharpReportCore {
} }
set { set {
this.pageSettings = value; this.pageSettings = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("PageSettings");
} }
} }
@ -210,7 +215,7 @@ namespace SharpReportCore {
if (defaultMargins != value) { if (defaultMargins != value) {
defaultMargins = value; defaultMargins = value;
PageSettings.Margins = defaultMargins; PageSettings.Margins = defaultMargins;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("DefaultMargins");
} }
} }
@ -228,7 +233,7 @@ namespace SharpReportCore {
set { set {
if (graphicsUnit != value) { if (graphicsUnit != value) {
graphicsUnit = value; graphicsUnit = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("GraphicsUnit");
} }
} }
} }
@ -240,7 +245,7 @@ namespace SharpReportCore {
set { set {
if (this.gridSize != value) { if (this.gridSize != value) {
this.gridSize = value; this.gridSize = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("GridSize");
} }
} }
} }
@ -253,7 +258,7 @@ namespace SharpReportCore {
set { set {
if (this.padding != value) { if (this.padding != value) {
this.padding = value; this.padding = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("Padding");
} }
} }

3
src/AddIns/Misc/SharpReport/SharpReportCore/Factories/BaseItemFactory.cs

@ -33,8 +33,7 @@ namespace SharpReportCore {
} }
public new BaseReportItem Create (string name){ public new BaseReportItem Create (string name){
if (String.IsNullOrEmpty(name)) { if (String.IsNullOrEmpty(name)) {
String str = String.Format("<{0}>",name); throw new ArgumentNullException("name");
throw new UnkownItemException(str);
} }
if (name.LastIndexOf('.') > 0) { if (name.LastIndexOf('.') > 0) {
StringBuilder b = new StringBuilder (name); StringBuilder b = new StringBuilder (name);

54
src/AddIns/Misc/SharpReport/SharpReportCore/Printing/RenderDataReport.cs

@ -40,12 +40,12 @@ using SharpReportCore;
/// ///
namespace SharpReportCore { namespace SharpReportCore {
// public class RenderDataReport : AbstractRenderer { public class RenderDataReport : AbstractDataRenderer {
public class RenderDataReport : AbstractDataRenderer {
private PointF currentPoint; private PointF currentPoint;
private DataNavigator dataNavigator; private DataNavigator dataNavigator;
public RenderDataReport(ReportModel model,DataManager dataManager):base (model,dataManager){ public RenderDataReport(ReportModel model,DataManager dataManager):base (model,dataManager){
base.DataManager.GroupChanged += new EventHandler<GroupChangedEventArgs>(OnGroupChanged); base.DataManager.GroupChanged += new EventHandler<GroupChangedEventArgs>(OnGroupChanged);
base.DataManager.GroupChanging += new EventHandler <EventArgs> (OnGroupChanging); base.DataManager.GroupChanging += new EventHandler <EventArgs> (OnGroupChanging);
@ -63,9 +63,9 @@ namespace SharpReportCore {
} }
private void OnListChanged (object sender,System.ComponentModel.ListChangedEventArgs e) { private void OnListChanged (object sender,System.ComponentModel.ListChangedEventArgs e) {
System.Console.WriteLine("List Changed sender <{0}> reason <{1}>", // System.Console.WriteLine("List Changed sender <{0}> reason <{1}>",
sender.ToString(), // sender.ToString(),
e.ListChangedType); // e.ListChangedType);
} }
@ -121,6 +121,7 @@ namespace SharpReportCore {
private void DoPageEnd (ReportPageEventArgs rpea){ private void DoPageEnd (ReportPageEventArgs rpea){
System.Console.WriteLine("\tDoPageEnd");
base.PrintPageEnd(this,rpea); base.PrintPageEnd(this,rpea);
base.MeasurePageEnd (rpea); base.MeasurePageEnd (rpea);
@ -139,12 +140,12 @@ namespace SharpReportCore {
} }
#endregion #endregion
protected override void ReportQueryPage(object sender, QueryPageSettingsEventArgs e) { protected override void ReportQueryPage(object sender, QueryPageSettingsEventArgs qpea) {
base.ReportQueryPage (sender,e); base.ReportQueryPage (sender,qpea);
} }
protected override void ReportBegin(object sender, ReportPageEventArgs e) { protected override void ReportBegin(object sender, ReportPageEventArgs rpea) {
base.ReportBegin (sender,e); base.ReportBegin (sender,rpea);
base.DataManager.ListChanged += new EventHandler<ListChangedEventArgs> (OnListChanged); base.DataManager.ListChanged += new EventHandler<ListChangedEventArgs> (OnListChanged);
dataNavigator = base.DataManager.GetNavigator; dataNavigator = base.DataManager.GetNavigator;
@ -175,70 +176,69 @@ namespace SharpReportCore {
protected override void PrintBodyStart(object sender, ReportPageEventArgs e) { protected override void PrintBodyStart(object sender, ReportPageEventArgs rpea) {
Rectangle sectionRect; Rectangle sectionRect;
Rectangle detailRect; Rectangle detailRect;
// System.Console.WriteLine("PrintBodyStart");
base.PrintBodyStart (sender,e); base.PrintBodyStart (sender,rpea);
BaseSection section = base.CurrentSection; BaseSection section = base.CurrentSection;
section.SectionOffset = (int)this.currentPoint.Y + base.Gap; section.SectionOffset = (int)this.currentPoint.Y + base.Gap;
detailRect = base.DetailRectangle (e); detailRect = base.DetailRectangle (rpea);
//this is only for the first record, zhe other details will be calculated //this is only for the first record, zhe other details will be calculated
sectionRect = new Rectangle (e.PrintPageEventArgs.MarginBounds.Left, sectionRect = new Rectangle (rpea.PrintPageEventArgs.MarginBounds.Left,
section.SectionOffset, section.SectionOffset,
e.PrintPageEventArgs.MarginBounds.Width, rpea.PrintPageEventArgs.MarginBounds.Width,
section.Size.Height); section.Size.Height);
// DebugRectangle (e,detailRect); // DebugRectangle (e,detailRect);
// no loop if there is no data // no loop if there is no data
if (! this.dataNavigator.HasMoreData ) { if (! this.dataNavigator.HasMoreData ) {
e.PrintPageEventArgs.HasMorePages = false; rpea.PrintPageEventArgs.HasMorePages = false;
return; return;
} }
while (this.dataNavigator.MoveNext()) { while (this.dataNavigator.MoveNext()) {
this.dataNavigator.Fill (base.CurrentSection.Items); this.dataNavigator.Fill (base.CurrentSection.Items);
base.RenderSection (section,e); base.RenderSection (section,rpea);
section.SectionOffset = section.SectionOffset + section.Size.Height + 2 * base.Gap; section.SectionOffset = section.SectionOffset + section.Size.Height + 2 * base.Gap;
base.FitSectionToItems (base.CurrentSection,e); base.FitSectionToItems (base.CurrentSection,rpea);
sectionRect = new Rectangle (e.PrintPageEventArgs.MarginBounds.Left, sectionRect = new Rectangle (rpea.PrintPageEventArgs.MarginBounds.Left,
section.SectionOffset, section.SectionOffset,
e.PrintPageEventArgs.MarginBounds.Width, rpea.PrintPageEventArgs.MarginBounds.Width,
section.Size.Height); section.Size.Height);
if (!detailRect.Contains(sectionRect)) { if (!detailRect.Contains(sectionRect)) {
// System.Console.WriteLine("--------- Page Break ----------"); base.PageBreak(rpea,section);
base.PageBreak(e,section);
return; return;
} }
} }
DoReportFooter (new PointF(0,section.SectionOffset + section.Size.Height), DoReportFooter (new PointF(0,section.SectionOffset + section.Size.Height),
e); rpea);
e.PrintPageEventArgs.HasMorePages = false; rpea.PrintPageEventArgs.HasMorePages = false;
//Did we have a pagebreak //Did we have a pagebreak
if (base.CurrentSection.PageBreakAfter) { if (base.CurrentSection.PageBreakAfter) {
base.PageBreak(e,section); base.PageBreak(rpea,section);
base.CurrentSection.PageBreakAfter = false; base.CurrentSection.PageBreakAfter = false;
return; return;
} }
} }
protected override void PrintBodyEnd(object sender, ReportPageEventArgs e) { protected override void PrintBodyEnd(object sender, ReportPageEventArgs rpea) {
// System.Console.WriteLine("PrintBodyEnd"); // System.Console.WriteLine("PrintBodyEnd");
base.PrintBodyEnd (sender,e); base.PrintBodyEnd (sender,rpea);
} }

138
src/AddIns/Misc/SharpReport/SharpReportCore/Printing/RenderFormSheetReport.cs

@ -57,14 +57,73 @@ namespace SharpReportCore {
} }
private void AddSectionEvents () {
base.CurrentSection.SectionPrinting += new EventHandler<SectionPrintingEventArgs>(OnSectionPrinting);
base.CurrentSection.SectionPrinted += new EventHandler<SectionPrintingEventArgs>(OnSectionPrinted);
}
private void RemoveSectionEvents () {
base.CurrentSection.SectionPrinting -= new EventHandler<SectionPrintingEventArgs>(OnSectionPrinting);
base.CurrentSection.SectionPrinted -= new EventHandler<SectionPrintingEventArgs>(OnSectionPrinted);
}
#region Draw the different report Sections
private PointF DoReportHeader (ReportPageEventArgs rpea){
PointF endAt = base.MeasureReportHeader (rpea);
this.AddSectionEvents();
base.RenderSection (base.CurrentSection,rpea);
this.RemoveSectionEvents();
if (base.CurrentSection.PageBreakAfter) {
base.PageBreak(rpea,base.CurrentSection);
base.CurrentSection.PageBreakAfter = false;
return new PointF();
}
return endAt;
}
private PointF DoPageHeader (PointF startAt,ReportPageEventArgs rpea){
PointF endAt = base.MeasurePageHeader (startAt,rpea);
this.AddSectionEvents();
base.RenderSection (base.CurrentSection,rpea);
this.RemoveSectionEvents();
return endAt;
}
private void DoPageEnd (ReportPageEventArgs rpea){
base.PrintPageEnd(this,rpea);
base.MeasurePageEnd (rpea);
this.AddSectionEvents();
base.RenderSection (base.CurrentSection,rpea);
this.RemoveSectionEvents();
}
//TODO how should we handle ReportFooter, print it on an seperate page ????
private void DoReportFooter (PointF startAt,ReportPageEventArgs rpea){
base.MeasureReportFooter(rpea);
this.AddSectionEvents();
base.RenderSection (base.CurrentSection,rpea);
this.RemoveSectionEvents();
}
#endregion
#region event's #region event's
protected override void ReportQueryPage (object sender,QueryPageSettingsEventArgs e) { protected override void ReportQueryPage (object sender,QueryPageSettingsEventArgs qpea) {
base.ReportQueryPage (sender,e); base.ReportQueryPage (sender,qpea);
} }
protected override void ReportBegin (object sender,ReportPageEventArgs e) { protected override void ReportBegin (object sender,ReportPageEventArgs rpea) {
base.ReportBegin (sender,e); base.ReportBegin (sender,rpea);
} }
/// <summary> /// <summary>
@ -74,11 +133,20 @@ namespace SharpReportCore {
/// <param name="e"></param> /// <param name="e"></param>
/// ///
protected override void BeginPrintPage (object sender,ReportPageEventArgs rpea) { protected override void BeginPrintPage (object sender,ReportPageEventArgs rpea) {
if (rpea == null) {
throw new ArgumentNullException("rpea");
}
base.BeginPrintPage (sender,rpea); base.BeginPrintPage (sender,rpea);
//Draw ReportHeader //Draw ReportHeader
if (rpea.PageNumber == 1) {
//Draw ReportHeader
this.currentPoint = DoReportHeader (rpea);
}
currentPoint = base.MeasureReportHeader(rpea);
base.RenderSection (base.CurrentSection,rpea);
if (base.CurrentSection.PageBreakAfter) { if (base.CurrentSection.PageBreakAfter) {
base.PageBreak(rpea,base.CurrentSection); base.PageBreak(rpea,base.CurrentSection);
base.CurrentSection.PageBreakAfter = false; base.CurrentSection.PageBreakAfter = false;
@ -86,8 +154,9 @@ namespace SharpReportCore {
} }
//Draw Pageheader //Draw Pageheader
currentPoint = base.MeasurePageHeader(currentPoint,rpea);
base.RenderSection (base.CurrentSection,rpea); this.currentPoint = DoPageHeader (this.currentPoint,rpea);
base.DetailStart = new Point ((int)currentPoint.X,(int)currentPoint.Y); base.DetailStart = new Point ((int)currentPoint.X,(int)currentPoint.Y);
} }
@ -97,59 +166,38 @@ namespace SharpReportCore {
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
protected override void PrintBodyStart (object sender,ReportPageEventArgs e) { protected override void PrintBodyStart (object sender,ReportPageEventArgs rpea) {
base.PrintBodyStart (sender,e); base.PrintBodyStart (sender,rpea);
BaseSection section = base.CurrentSection; BaseSection section = base.CurrentSection;
section.SectionOffset = (int)this.currentPoint.Y + base.Gap; section.SectionOffset = (int)this.currentPoint.Y + base.Gap;
Rectangle detailRect = base.DetailRectangle (e); Rectangle detailRect = base.DetailRectangle (rpea);
FitSectionToItems (section,e); FitSectionToItems (section,rpea);
base.RenderSection (section,e);
// DebugRectangle (e,detailRect);
}
protected override void PrintBodyEnd (object sender,ReportPageEventArgs e) { this.AddSectionEvents();
base.PrintBodyEnd (sender,e); base.RenderSection (section,rpea);
this.RemoveSectionEvents();
} }
/// <summary> /// <summary>
/// PageFooter and, if LastPage ReportFooter /// Print the PageFooter
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
protected override void PrintPageEnd (object sender,ReportPageEventArgs e) { protected override void PrintPageEnd(object sender, ReportPageEventArgs rpea) {
this.DoPageEnd (rpea);
}
//PageFooter
base.SectionInUse = Convert.ToInt16(GlobalEnums.enmSection.ReportPageFooter,
CultureInfo.InvariantCulture);
base.PrintPageEnd (sender,e);
Rectangle r = new Rectangle (e.PrintPageEventArgs.MarginBounds.Left, protected override void PrintBodyEnd (object sender,ReportPageEventArgs rpea) {
base.CurrentSection.SectionOffset , base.PrintBodyEnd (sender,rpea);
e.PrintPageEventArgs.MarginBounds.Width, this.DoReportFooter (new PointF(0,base.CurrentSection.SectionOffset + base.CurrentSection.Size.Height),
base.CurrentSection.Size.Height); rpea);
// DebugRectangle (e,r); }
int off = base.CurrentSection.SectionOffset + base.CurrentSection.Size.Height + base.Gap;
//ReportFooter
base.SectionInUse = Convert.ToInt16(GlobalEnums.enmSection.ReportFooter,
CultureInfo.InvariantCulture);
BaseSection section = base.CurrentSection;
section.SectionOffset = off;
FitSectionToItems (section,e);
Rectangle rr = new Rectangle (e.PrintPageEventArgs.MarginBounds.Left,
base.CurrentSection.SectionOffset ,
e.PrintPageEventArgs.MarginBounds.Width,
base.CurrentSection.Size.Height);
base.RenderSection (section,e);
// DebugRectangle (e,rr);
}
#endregion #endregion
} }

20
src/AddIns/Misc/SharpReport/SharpReportCore/ReportSettings.cs

@ -40,7 +40,8 @@ namespace SharpReportCore{
/// ///
public class ReportSettings : BaseSettings,SharpReportCore.IStoreable, public class ReportSettings : BaseSettings,SharpReportCore.IStoreable,
IBaseRenderer,IDisposable{ IBaseRenderer,IDisposable{
private string connectionString; private string connectionString;
private string commandText; private string commandText;
@ -61,6 +62,7 @@ namespace SharpReportCore{
private ColumnCollection sortingCollection; private ColumnCollection sortingCollection;
#region Constructor's #region Constructor's
public ReportSettings(System.Drawing.Printing.PageSettings defaultPageSettings) public ReportSettings(System.Drawing.Printing.PageSettings defaultPageSettings)
@ -228,7 +230,7 @@ namespace SharpReportCore{
} }
} }
} }
base.InitDone = true; // base.InitDone = true;
} }
#endregion #endregion
@ -492,7 +494,7 @@ namespace SharpReportCore{
set { set {
if (reportType != value) { if (reportType != value) {
reportType = value; reportType = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("ReportType");
} }
} }
} }
@ -560,7 +562,7 @@ namespace SharpReportCore{
} }
if (reportParametersCollection != value) { if (reportParametersCollection != value) {
reportParametersCollection = value; reportParametersCollection = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("SqlParametersCollection");
} }
} }
} }
@ -577,7 +579,7 @@ namespace SharpReportCore{
set { set {
if (connectionString != value) { if (connectionString != value) {
connectionString = value; connectionString = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("ConnectionString");
} }
} }
} }
@ -592,7 +594,7 @@ namespace SharpReportCore{
set { set {
if (commandText != value) { if (commandText != value) {
commandText = value; commandText = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("CommandText");
} }
} }
} }
@ -606,7 +608,7 @@ namespace SharpReportCore{
set { set {
if (commandType != value) { if (commandType != value) {
commandType = value; commandType = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("CommandType");
} }
} }
} }
@ -620,7 +622,7 @@ namespace SharpReportCore{
set { set {
if (dataModel != value) { if (dataModel != value) {
dataModel = value; dataModel = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("DataModel");
} }
} }
} }
@ -640,7 +642,7 @@ namespace SharpReportCore{
set { set {
if (defaultFont != value) { if (defaultFont != value) {
defaultFont = value; defaultFont = value;
this.NotifyPropertyChanged(); this.NotifyPropertyChanged("DefaultFont");
} }
} }
} }

6
src/AddIns/Misc/SharpReport/SharpReportCore/Visitors/LoadModelVisitor.cs

@ -81,12 +81,12 @@ namespace SharpReportCore {
//Read the <BaseClassName> Element //Read the <BaseClassName> Element
rpt = (BaseReportItem)baseItemFactory.Create(ctrlElem.GetAttribute("basetype")); rpt = (BaseReportItem)baseItemFactory.Create(ctrlElem.GetAttribute("basetype"));
if (rpt != null) { if (rpt != null) {
rpt.SuspendLayout(); // rpt.SuspendLayout();
rpt.Parent = baseSection; rpt.Parent = baseSection;
baseSection.Items.Add (rpt); baseSection.Items.Add (rpt);
XmlHelper.BuildControl (xmlFormReader,ctrlElem,rpt); XmlHelper.SetReportItemValues (xmlFormReader,ctrlElem,rpt);
rpt.Visible = true; rpt.Visible = true;
// rpt.ResumeLayout(); rpt.ResumeLayout();
} else { } else {
String str = String.Format("< {0}>",ctrlElem.GetAttribute("basetype")); String str = String.Format("< {0}>",ctrlElem.GetAttribute("basetype"));
throw new UnkownItemException(str); throw new UnkownItemException(str);

5
src/AddIns/Misc/SharpReport/SharpReportCore/Xml/XmlHelper.cs

@ -117,7 +117,7 @@ namespace SharpReportCore {
/// <param name="reader">See XMLFormReader</param> /// <param name="reader">See XMLFormReader</param>
/// <param name="item">The Control for wich the values are</param> /// <param name="item">The Control for wich the values are</param>
/// <param name="ctrlElem">Element witch contains the values</param> /// <param name="ctrlElem">Element witch contains the values</param>
public static void BuildControl (XmlFormReader reader, public static void SetReportItemValues (XmlFormReader reader,
XmlElement ctrlElem, XmlElement ctrlElem,
BaseReportItem item) { BaseReportItem item) {
@ -131,7 +131,8 @@ namespace SharpReportCore {
item.Font = XmlFormReader.MakeFont (elem.GetAttribute("value")); item.Font = XmlFormReader.MakeFont (elem.GetAttribute("value"));
} }
reader.SetValue (item,elem.Name,elem.GetAttribute("value")); reader.SetValue (item,
elem.Name,elem.GetAttribute("value"));
} }
} }
} }

Loading…
Cancel
Save