Browse Source

Exporter can handle paging, Export for FormSheet and PushModell still missing

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2004 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Peter Forstmeier 19 years ago
parent
commit
b6d32d7df6
  1. 1
      src/AddIns/Misc/SharpReport/SharpReport/Designer/VisualControls/ReportRowControl.cs
  2. 10
      src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportView.cs
  3. 13
      src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/RowItem.cs
  4. 3
      src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/Decorators/GraphicStyleDecorator.cs
  5. 44
      src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/BaseExportColumn.cs
  6. 12
      src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/ExportContainer.cs
  7. 13
      src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/ExportGraphic.cs
  8. 21
      src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/ExportText.cs
  9. 170
      src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/PageBuilder.cs
  10. 10
      src/AddIns/Misc/SharpReport/SharpReportCore/Printing/Text/TextDrawer.cs
  11. 60
      src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.Designer.cs
  12. 101
      src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.cs
  13. 58
      src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.resx
  14. 12
      src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportCore.csproj

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

@ -40,7 +40,6 @@ namespace SharpReport.Designer{ @@ -40,7 +40,6 @@ namespace SharpReport.Designer{
#region overrides
protected override void OnPaint(System.Windows.Forms.PaintEventArgs pea){
System.Console.WriteLine("Row:OnPaint");
base.OnPaint(pea);
base.DrawEdges (pea,
new Rectangle(0,5,this.ClientSize.Width - 1,this.ClientSize.Height - 6) );

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

@ -319,15 +319,17 @@ namespace SharpReportAddin{ @@ -319,15 +319,17 @@ namespace SharpReportAddin{
private void FillReportViewer() {
System.Console.WriteLine("FillReportViewer");
System.Console.WriteLine("\tsetup pagebuilder{0}",DateTime.Now);
// System.Console.WriteLine("\tsetup pagebuilder{0}",DateTime.Now);
SharpReportCore.Exporters.PageBuilder pb = reportManager.CreatePageBuilder (designerControl.ReportModel);
System.Console.WriteLine("\tstart createreport{0}",DateTime.Now);
// System.Console.WriteLine("\tstart createreport{0}",DateTime.Now);
pb.BuildExportList();
System.Console.WriteLine("\treport created {0}",DateTime.Now);
// System.Console.WriteLine("\treport created {0}",DateTime.Now);
SharpReportCore.Exporters.SinglePage sp= pb.FirstPage;
System.Console.WriteLine("\tPages {0} SinglePage : Items {0}",pb.Pages.Count,sp.Items.Count);
// System.Console.WriteLine("\tPages {0} SinglePage : Items {0}",pb.Pages.Count,sp.Items.Count);
this.reportViewer.SetPages (pb.Pages);
}
#endregion

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

@ -36,16 +36,8 @@ namespace SharpReportCore{ @@ -36,16 +36,8 @@ namespace SharpReportCore{
public RowItem(string tableName){
this.tableName = tableName;
this.padding = new Padding(5);
// this.Items.Added += OnAdded;
}
/*
void OnAdded (object sender, CollectionItemEventArgs<IItemRenderer> e){
System.Console.WriteLine("");
System.Console.WriteLine("RowItem:OnAdded did we use this function???");
}
*/
#region overrides
#region IExportColumnBuilder implementation
@ -69,6 +61,11 @@ namespace SharpReportCore{ @@ -69,6 +61,11 @@ namespace SharpReportCore{
#endregion
#region overrides
protected RectangleF PrepareRectangle () {
SizeF measureSize = new SizeF ((SizeF)this.Size);
RectangleF rect = base.DrawingRectangle (measureSize);

3
src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/Decorators/GraphicStyleDecorator.cs

@ -33,6 +33,7 @@ namespace SharpReportCore.Exporters @@ -33,6 +33,7 @@ namespace SharpReportCore.Exporters
get { return shape; }
set { shape = value; }
}
public int Thickness {
get { return thickness; }
set { thickness = value; }
@ -42,7 +43,5 @@ namespace SharpReportCore.Exporters @@ -42,7 +43,5 @@ namespace SharpReportCore.Exporters
get { return dashStyle; }
set { dashStyle = value; }
}
}
}

44
src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/BaseExportColumn.cs

@ -35,6 +35,50 @@ namespace SharpReportCore.Exporters @@ -35,6 +35,50 @@ namespace SharpReportCore.Exporters
#endregion
public virtual void DrawItem (Graphics graphics) {
}
/// <summary>
/// Fill the Background and draw a (Rectangle)Frame around the Control
/// </summary>
/// <param name="graphics"></param>
protected virtual void Decorate (Graphics graphics) {
if (graphics == null) {
throw new ArgumentNullException("graphics");
}
RectangleShape shape = new RectangleShape();
this.FillShape(graphics,shape);
this.DrawFrame(graphics,shape);
}
/// <summary>
/// Draw the Backround <see cref="BaseStyleDecorator"></see>
/// </summary>
/// <param name="graphics">a vlid graphics object</param>
/// <param name="shape">the shape to fill</param>
protected virtual void FillShape (Graphics graphics,BaseShape shape) {
if (graphics == null) {
throw new ArgumentNullException("graphics");
}
if (shape == null) {
throw new ArgumentNullException("shape");
}
shape.FillShape(graphics,
new SolidFillPattern(this.styleDecorator.BackColor),
this.styleDecorator.DisplayRectangle);
}
private void DrawFrame (Graphics graphics, BaseShape shape) {
if (this.styleDecorator.DrawBorder) {
shape.DrawShape (graphics,
new BaseLine (this.styleDecorator.ForeColor,
System.Drawing.Drawing2D.DashStyle.Solid,1),
this.styleDecorator.DisplayRectangle);
}
}
public virtual BaseStyleDecorator StyleDecorator {
get {
return styleDecorator;

12
src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/ExportContainer.cs

@ -19,14 +19,26 @@ namespace SharpReportCore.Exporters @@ -19,14 +19,26 @@ namespace SharpReportCore.Exporters
ExporterCollection<BaseExportColumn> items;
#region Constructor
public ExportContainer():base(){
base.IsContainer = true;
}
public ExportContainer (BaseStyleDecorator itemStyle):base(itemStyle,true){
}
#endregion
#region overrides
public override void DrawItem(System.Drawing.Graphics graphics){
base.DrawItem(graphics);
base.Decorate(graphics);
}
#endregion
public void AddLineItem (BaseExportColumn item) {
if (item == null) {
throw new ArgumentNullException("item");

13
src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/ExportGraphic.cs

@ -20,18 +20,27 @@ namespace SharpReportCore.Exporters @@ -20,18 +20,27 @@ namespace SharpReportCore.Exporters
public ExportGraphic():base()
{
}
public ExportGraphic (BaseStyleDecorator itemStyle,bool isContainer):base(itemStyle,isContainer){
}
public void DrawGraphic (Graphics graphics) {
public override void DrawItem(Graphics graphics){
if (graphics == null) {
throw new ArgumentNullException("graphics");
}
GraphicStyleDecorator style = (GraphicStyleDecorator) base.StyleDecorator;
base.DrawItem(graphics);
GraphicStyleDecorator style = base.StyleDecorator as GraphicStyleDecorator;
if (style != null) {
base.FillShape(graphics,style.Shape);
style.Shape.DrawShape(graphics,
new BaseLine (style.ForeColor,style.DashStyle,style.Thickness),
style.DisplayRectangle);
}
}
public new GraphicStyleDecorator StyleDecorator {
get{

21
src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/ExportText.cs

@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
*/
using System;
using System.Drawing;
namespace SharpReportCore.Exporters {
/// <summary>
@ -16,14 +17,32 @@ namespace SharpReportCore.Exporters { @@ -16,14 +17,32 @@ namespace SharpReportCore.Exporters {
public class ExportText :BaseExportColumn{
string text;
#region Constructors
public ExportText():base(){
}
public ExportText (BaseStyleDecorator itemStyle,bool isContainer):base(itemStyle,isContainer){
}
#endregion
#region overrides
public override void DrawItem(Graphics graphics){
if (graphics == null) {
throw new ArgumentNullException("graphics");
}
base.DrawItem(graphics);
base.Decorate(graphics);
TextDrawer.PaintString(graphics,
this.text,this.StyleDecorator);
}
#endregion
public string Text {
get {
return text;

170
src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/PageBuilder.cs

@ -25,7 +25,8 @@ namespace SharpReportCore.Exporters @@ -25,7 +25,8 @@ namespace SharpReportCore.Exporters
DataManager dataManager;
DataNavigator dataNavigator;
ExportItemsConverter lineItemsConverter;
//
bool newFull;
internal delegate ExporterCollection<BaseExportColumn> ConverterDelegate (BaseSection s);
#region Constructor
@ -47,9 +48,9 @@ namespace SharpReportCore.Exporters @@ -47,9 +48,9 @@ namespace SharpReportCore.Exporters
#endregion
#region Create and Init new page
private SinglePage CreateNewPage () {
private SinglePage InitPage () {
PageSettings ps = this.reportModel.ReportSettings.PageSettings;
ps.Margins = this.reportModel.ReportSettings.DefaultMargins;
SectionBounds sb = null;
@ -62,93 +63,90 @@ namespace SharpReportCore.Exporters @@ -62,93 +63,90 @@ namespace SharpReportCore.Exporters
SinglePage sp = new SinglePage(sb);
return sp;
}
void BuildNewPage () {
this.singlePage = this.InitPage();
this.singlePage.CalculatePageBounds(this.reportModel);
this.newFull = false;
this.BuildReportHeader();
this.BuildPageHeader();
}
private void DoConvert (BaseSection section,int offset) {
this.lineItemsConverter.Offset = offset;
List <BaseExportColumn>list = section.Items.ConvertAll <BaseExportColumn> (this.lineItemsConverter.ConvertToLineItems);
#endregion
// list.ForEach(display);
/*
if (list.Count > 0) {
list.ForEach(delegate(BaseExportColumn item){
ExportGraphic gr = item as ExportGraphic;
if (gr != null) {
System.Console.WriteLine("{0} / {1}",gr.ToString(),gr.StyleDecorator.Shape.ToString());
}
});
}
*/
this.singlePage.Items.AddRange(list);
}
private void BuildReportHeader () {
this.DoConvert (this.reportModel.ReportHeader,
this.singlePage.SectionBounds.PageHeaderRectangle.Top);
if (this.pages.Count == 0) {
this.ConvertItemsList (this.reportModel.ReportHeader,
this.singlePage.SectionBounds.ReportHeaderRectangle.Top);
}
}
private void BuildPageHeader () {
this.DoConvert (this.reportModel.PageHeader,
this.ConvertItemsList (this.reportModel.PageHeader,
this.singlePage.SectionBounds.PageHeaderRectangle.Top);
}
private void BuildDetails (Graphics graphics) {
private void BuildReportFooter (int locY) {
this.ConvertItemsList (this.reportModel.ReportFooter,locY);
}
bool firstOnPage = true;
private void BuildPageFooter () {
if (! dataNavigator.HasMoreData ) {
return;
this.ConvertItemsList (this.reportModel.PageFooter,this.singlePage.SectionBounds.PageFooterRectangle.Top);
}
if (this.pages.Count == 0) {
dataNavigator.MoveNext();
/*
private void display (BaseStyleDecorator li) {
// private void display (IPerformLine li) {
// System.Console.WriteLine("\tdisplay {0}",li.ToString());
// ExportText l = li as ExportText;
if (li != null) {
System.Console.WriteLine("\t\t{0} / {1} ",l.StyleDecorator.Location,l.Text);
}
}
*/
BaseSection section = this.reportModel.DetailSection;
section.SectionOffset = this.singlePage.SectionBounds.DetailStart.Y;
do {
dataNavigator.Fill(section.Items);
#region newCreate
if (!firstOnPage) {
section.SectionOffset = section.SectionOffset + section.Size.Height + 2 * this.singlePage.SectionBounds.Gap;
}
void BuildDetail (BaseSection section,Graphics graphics) {
dataNavigator.Fill(section.Items);
MeasurementService.FitSectionToItems (section,graphics);
ExporterCollection<BaseExportColumn> convertedList = new ExporterCollection<BaseExportColumn>();
ConverterDelegate converterDelegate;
if (section.Items[0] is IContainerItem) {
converterDelegate = new ConverterDelegate(DoContainerJob);
converterDelegate = new ConverterDelegate(ContainerItems);
} else {
converterDelegate = new ConverterDelegate(DoJob);
converterDelegate = new ConverterDelegate(StandartItems);
}
convertedList = converterDelegate(section);
BaseExportColumn bec = convertedList[0];
System.Console.WriteLine("SB {0} / DR {1} / Fit {2} ",this.singlePage.SectionBounds.DetailRectangle,
bec.StyleDecorator.DisplayRectangle,
this.singlePage.SectionBounds.DetailRectangle.Contains(bec.StyleDecorator.DisplayRectangle));
if (this.singlePage.SectionBounds.DetailRectangle.Contains(bec.StyleDecorator.DisplayRectangle)) {
System.Console.WriteLine("\t fit");
} else {
System.Console.WriteLine("\t dont fit");
if ( bec.StyleDecorator.DisplayRectangle.Bottom > this.singlePage.SectionBounds.PageFooterRectangle.Top) {
this.newFull = true;
return;
}
this.singlePage.Items.AddRange(convertedList);
firstOnPage = false;
}
while (dataNavigator.MoveNext());
#region Delegate's and Converter
private void ConvertItemsList (BaseSection section,int offset) {
this.lineItemsConverter.Offset = offset;
List <BaseExportColumn>list = section.Items.ConvertAll <BaseExportColumn> (this.lineItemsConverter.ConvertToLineItems);
this.singlePage.Items.AddRange(list);
}
private ExporterCollection<BaseExportColumn> DoContainerJob (BaseSection section) {
private ExporterCollection<BaseExportColumn> ContainerItems (BaseSection section) {
this.lineItemsConverter.Offset = section.SectionOffset;
IExportColumnBuilder exportLineBuilder = section.Items[0] as IExportColumnBuilder;
@ -185,9 +183,7 @@ namespace SharpReportCore.Exporters @@ -185,9 +183,7 @@ namespace SharpReportCore.Exporters
return null;
}
private ExporterCollection<BaseExportColumn> DoJob (BaseSection section) {
private ExporterCollection<BaseExportColumn> StandartItems (BaseSection section) {
this.lineItemsConverter.Offset = section.SectionOffset;
List<BaseExportColumn> list = section.Items.ConvertAll <BaseExportColumn> (this.lineItemsConverter.ConvertToLineItems);
@ -197,41 +193,50 @@ namespace SharpReportCore.Exporters @@ -197,41 +193,50 @@ namespace SharpReportCore.Exporters
return childList;
}
#endregion
private void WritePages () {
this.dataNavigator = this.dataManager.GetNavigator;
using (Graphics graphics = reportModel.ReportSettings.PageSettings.PrinterSettings.CreateMeasurementGraphics()){
this.lineItemsConverter = new ExportItemsConverter(graphics);
this.pages.Clear();
this.BuildNewPage();
this.newFull = false;
this.dataNavigator.MoveNext();
BaseSection section = this.reportModel.DetailSection;
private void BuildPageFooter () {
BaseSection section = this.reportModel.PageFooter;
this.DoConvert (this.reportModel.PageFooter,this.singlePage.SectionBounds.PageFooterRectangle.Top);
section.SectionOffset = this.singlePage.SectionBounds.DetailStart.Y;
do {
BuildDetail(section,graphics);
section.SectionOffset += section.Size.Height + 2 * this.singlePage.SectionBounds.Gap;
if (newFull) {
PageBreak();
section.SectionOffset = this.singlePage.SectionBounds.DetailStart.Y;
} else {
dataNavigator.MoveNext();
}
/*
private void display (BaseStyleDecorator li) {
// private void display (IPerformLine li) {
// System.Console.WriteLine("\tdisplay {0}",li.ToString());
// ExportText l = li as ExportText;
if (li != null) {
System.Console.WriteLine("\t\t{0} / {1} ",l.StyleDecorator.Location,l.Text);
}
while (dataNavigator.HasMoreData);
this.BuildReportFooter(section.SectionOffset + section.Size.Height);
this.BuildPageFooter();
//this is the last Page
this.AddPage(this.singlePage);
}
*/
private void Write () {
this.dataNavigator = this.dataManager.GetNavigator;
Graphics graphics = reportModel.ReportSettings.PageSettings.PrinterSettings.CreateMeasurementGraphics();
this.lineItemsConverter = new ExportItemsConverter(graphics);
if (this.pages.Count == 0) {
BuildReportHeader ();
}
BuildPageHeader() ;
BuildDetails (graphics);
System.Console.WriteLine("--------");
System.Console.WriteLine("{0} / {1} / {2}",this.dataNavigator.Count,this.dataNavigator.CurrentRow,this.dataNavigator.HasMoreData);
BuildPageFooter ();
graphics.Dispose();
void PageBreak () {
this.BuildPageFooter();
this.AddPage(this.singlePage);
// System.Console.WriteLine("-------Page Break ---{0} --",this.singlePage.Items.Count);
System.Console.WriteLine("-------Page Break --- --");
this.BuildNewPage ();
}
#endregion
//TODO did we use this method
public void AddPage (SinglePage page) {
if (page == null) {
@ -242,12 +247,17 @@ namespace SharpReportCore.Exporters @@ -242,12 +247,17 @@ namespace SharpReportCore.Exporters
public void BuildExportList () {
this.singlePage = this.CreateNewPage();
this.singlePage.CalculatePageBounds(this.reportModel);
Write();
this.pages.Add(this.singlePage);
System.Diagnostics.Stopwatch s = new System.Diagnostics.Stopwatch();
s.Start();
System.Console.WriteLine("BuildExportList started");
WritePages();
s.Stop();
TimeSpan ts = s.Elapsed;
System.Console.WriteLine("BuildExportList finished {0}:{1} Seconds",ts.Seconds,ts.Milliseconds);
System.Console.WriteLine("");
}
#region Propertys
public int PageCount{
get {
@ -278,7 +288,7 @@ namespace SharpReportCore.Exporters @@ -278,7 +288,7 @@ namespace SharpReportCore.Exporters
return pages;
}
}
#endregion
}
}

10
src/AddIns/Misc/SharpReport/SharpReportCore/Printing/Text/TextDrawer.cs

@ -70,15 +70,7 @@ namespace SharpReportCore { @@ -70,15 +70,7 @@ namespace SharpReportCore {
public static void PaintString (Graphics graphics,string text,
SharpReportCore.Exporters.TextStyleDecorator decorator) {
// d.DrawString(gr,
// ex.ToString(),
// ex.StyleDecorator.Font,
// new SolidBrush(ex.StyleDecorator.ForeColor),
// new Rectangle(ex.StyleDecorator.Location.X,
// ex.StyleDecorator.Location.Y,
// ex.StyleDecorator.Size.Width,
// ex.StyleDecorator.Size.Height),
// ex.StyleDecorator.StringFormat);
graphics.DrawString (text,decorator.Font,
new SolidBrush(decorator.ForeColor),
new Rectangle(decorator.Location.X,

60
src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.Designer.cs generated

@ -40,14 +40,13 @@ namespace SharpReportCore.ReportViewer @@ -40,14 +40,13 @@ namespace SharpReportCore.ReportViewer
this.panel1 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
this.BackButton = new System.Windows.Forms.ToolStripButton();
this.ForwardButton = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripTextBox1 = new System.Windows.Forms.ToolStripTextBox();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripComboBox1 = new System.Windows.Forms.ToolStripComboBox();
this.printToolStripButton = new System.Windows.Forms.ToolStripButton();
this.newToolStripButton = new System.Windows.Forms.ToolStripButton();
this.panel1.SuspendLayout();
this.toolStrip1.SuspendLayout();
this.SuspendLayout();
@ -80,14 +79,13 @@ namespace SharpReportCore.ReportViewer @@ -80,14 +79,13 @@ namespace SharpReportCore.ReportViewer
// toolStrip1
//
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButton1,
this.toolStripButton2,
this.BackButton,
this.ForwardButton,
this.toolStripSeparator1,
this.toolStripTextBox1,
this.toolStripSeparator2,
this.toolStripComboBox1,
this.printToolStripButton,
this.newToolStripButton});
this.printToolStripButton});
this.toolStrip1.Location = new System.Drawing.Point(5, 5);
this.toolStrip1.Margin = new System.Windows.Forms.Padding(0, 0, 0, 3);
this.toolStrip1.Name = "toolStrip1";
@ -96,25 +94,25 @@ namespace SharpReportCore.ReportViewer @@ -96,25 +94,25 @@ namespace SharpReportCore.ReportViewer
this.toolStrip1.TabIndex = 4;
this.toolStrip1.Text = "toolStrip1";
//
// toolStripButton1
// BackButton
//
this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton1.Name = "toolStripButton1";
this.toolStripButton1.Size = new System.Drawing.Size(23, 22);
this.toolStripButton1.Text = "toolStripButton1";
this.toolStripButton1.Click += new System.EventHandler(this.BackButton);
this.BackButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.BackButton.Image = ((System.Drawing.Image)(resources.GetObject("BackButton.Image")));
this.BackButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.BackButton.Name = "BackButton";
this.BackButton.Size = new System.Drawing.Size(23, 22);
this.BackButton.Text = "&Back";
this.BackButton.Click += new System.EventHandler(this.BackButtonClick);
//
// toolStripButton2
// ForwardButton
//
this.toolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image")));
this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton2.Name = "toolStripButton2";
this.toolStripButton2.Size = new System.Drawing.Size(23, 22);
this.toolStripButton2.Text = "toolStripButton2";
this.toolStripButton2.Click += new System.EventHandler(this.ForwardButton);
this.ForwardButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.ForwardButton.Image = ((System.Drawing.Image)(resources.GetObject("ForwardButton.Image")));
this.ForwardButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.ForwardButton.Name = "ForwardButton";
this.ForwardButton.Size = new System.Drawing.Size(23, 22);
this.ForwardButton.Text = "&Forward";
this.ForwardButton.Click += new System.EventHandler(this.ForwardButtonClick);
//
// toolStripSeparator1
//
@ -135,6 +133,7 @@ namespace SharpReportCore.ReportViewer @@ -135,6 +133,7 @@ namespace SharpReportCore.ReportViewer
//
this.toolStripComboBox1.Name = "toolStripComboBox1";
this.toolStripComboBox1.Size = new System.Drawing.Size(80, 25);
this.toolStripComboBox1.ToolTipText = "Zoom";
this.toolStripComboBox1.SelectedIndexChanged += new System.EventHandler(this.ToolStripComboBox1SelectedIndexChanged);
//
// printToolStripButton
@ -147,14 +146,6 @@ namespace SharpReportCore.ReportViewer @@ -147,14 +146,6 @@ namespace SharpReportCore.ReportViewer
this.printToolStripButton.Text = "&Print";
this.printToolStripButton.Click += new System.EventHandler(this.PrintButton);
//
// newToolStripButton
//
this.newToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.newToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.newToolStripButton.Name = "newToolStripButton";
this.newToolStripButton.Size = new System.Drawing.Size(23, 22);
this.newToolStripButton.Text = "&New";
//
// PreviewControl
//
this.BackColor = System.Drawing.SystemColors.GradientActiveCaption;
@ -169,15 +160,14 @@ namespace SharpReportCore.ReportViewer @@ -169,15 +160,14 @@ namespace SharpReportCore.ReportViewer
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.ToolStripButton toolStripButton2;
private System.Windows.Forms.ToolStripButton ForwardButton;
private System.Windows.Forms.ToolStripButton printToolStripButton;
private System.Windows.Forms.ToolStripButton newToolStripButton;
private System.Windows.Forms.ToolStripComboBox toolStripComboBox1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.ToolStripTextBox toolStripTextBox1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripButton toolStripButton1;
private System.Windows.Forms.ToolStripButton BackButton;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.ToolStrip toolStrip1;
@ -189,5 +179,7 @@ namespace SharpReportCore.ReportViewer @@ -189,5 +179,7 @@ namespace SharpReportCore.ReportViewer
{
}
}
}

101
src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.cs

@ -25,7 +25,6 @@ namespace SharpReportCore.ReportViewer @@ -25,7 +25,6 @@ namespace SharpReportCore.ReportViewer
private PageSettings pageSettings;
private float zoom;
private Bitmap bitmap;
// private List<SinglePage> pages;
private PagesCollection pages;
private int pageNumber;
@ -45,13 +44,14 @@ namespace SharpReportCore.ReportViewer @@ -45,13 +44,14 @@ namespace SharpReportCore.ReportViewer
this.panel2.ClientSize = new Size((int)(this.pageSettings.PaperSize.Width * this.zoom),
(int)(this.pageSettings.PaperSize.Height * this.zoom));
}
this.toolStripTextBox1.Text = "";
if (this.pages != null) {
this.bitmap = this.BuildBitmap(pages[this.pageNumber]);
}
this.Invalidate(true);
}
@ -81,66 +81,68 @@ namespace SharpReportCore.ReportViewer @@ -81,66 +81,68 @@ namespace SharpReportCore.ReportViewer
}
}
private void DrawItems (Graphics gr,ExporterCollection<BaseExportColumn> items) {
foreach (SharpReportCore.Exporters.BaseExportColumn ex in items) {
if (ex != null) {
ExportContainer cont = ex as ExportContainer;
if (cont == null) {
// System.Console.WriteLine("{0}",ex.GetType());
ExportGraphic eg = ex as ExportGraphic;
if (eg != null) {
eg.DrawGraphic(gr);
private void DrawItems (Graphics graphics,ExporterCollection<BaseExportColumn> items) {
} else {
TextDrawer.PaintString(gr,ex.ToString(),(TextStyleDecorator)ex.StyleDecorator);
}
foreach (SharpReportCore.Exporters.BaseExportColumn baseExportColumn in items) {
if (baseExportColumn != null) {
ExportContainer container = baseExportColumn as ExportContainer;
if (container == null) {
baseExportColumn.DrawItem(graphics);
} else {
DrawItems(gr,cont.Items);
container.DrawItem(graphics);
DrawItems(graphics,container.Items);
}
}
}
}
private Bitmap BuildBitmap (SinglePage page) {
System.Console.WriteLine("BuildBitmap(SinglePage)");
System.Console.WriteLine("\tstart createBitmap {0}",DateTime.Now);
System.Console.WriteLine("BuildBitmap started");
System.Diagnostics.Stopwatch s = new System.Diagnostics.Stopwatch();
s.Start();
Bitmap bm = new Bitmap(this.panel2.ClientSize.Width,this.panel2.ClientSize.Height,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
using (Graphics gr = Graphics.FromImage(bm)) {
// Reset Transform to org. Value
gr.ScaleTransform(1F,1F);
gr.Clear(this.panel2.BackColor);
gr.ScaleTransform(this.zoom,this.zoom);
DrawItems (gr,page.Items);
}
System.Console.WriteLine("\tready createBitmap {0}",DateTime.Now);
s.Stop();
TimeSpan ts = s.Elapsed;
System.Console.WriteLine("BuildBitmap finished {0}:{1} Seconds",ts.Seconds,ts.Milliseconds);
System.Console.WriteLine("");
return bm;
}
private void UpdateToolStrip () {
string str = String.Empty;
if (this.pages != null) {
str = String.Format (CultureInfo.CurrentCulture,
"Page {0} of {1}",this.pageNumber +1,this.pages.Count);
}
this.toolStripTextBox1.Text = str;
}
private void ShowPages () {
System.Console.WriteLine("ReportViewer:ShowPages {0}",this.pages.Count);
this.pageNumber = 0;
if (this.pageNumber < this.pages.Count) {
SinglePage sp = pages[this.pageNumber];
if (this.bitmap != null) {
this.bitmap.Dispose();
}
this.bitmap = this.BuildBitmap(sp);
this.toolStripTextBox1.Text = String.Empty;
string str = String.Format (CultureInfo.CurrentCulture,
"Page {0} of {1}",this.pageNumber +1,this.pages.Count);
this.toolStripTextBox1.Text = str;
this.Invalidate(true);
}
this.UpdateToolStrip();
}
@ -163,19 +165,37 @@ namespace SharpReportCore.ReportViewer @@ -163,19 +165,37 @@ namespace SharpReportCore.ReportViewer
this.AdjustDrawArea();
}
void ToolStripTextBox1Click(object sender, System.EventArgs e)
{
MessageBox.Show ("TextBox Chlicked");
private void CheckEnable () {
if (this.pageNumber < this.pages.Count -1) {
this.ForwardButton.Enabled = true;
} else {
this.ForwardButton.Enabled = false;
}
if ((this.pageNumber > 0) ) {
this.BackButton.Enabled = true;
} else {
this.BackButton.Enabled = false;
}
// this.UpdateToolStrip();
}
void BackButton(object sender, System.EventArgs e)
{
MessageBox.Show ("BackButton not implemented");
void BackButtonClick(object sender, System.EventArgs e){
CheckEnable();
if (this.pageNumber > 0) {
this.pageNumber --;
CheckEnable();
this.ShowPages();
}
}
void ForwardButton(object sender, System.EventArgs e)
{
MessageBox.Show ("´Forward not implemented");
void ForwardButtonClick(object sender, System.EventArgs e){
if (this.pageNumber < this.pages.Count) {
this.pageNumber ++;
CheckEnable();
this.ShowPages();
}
}
void PrintButton(object sender, System.EventArgs e)
@ -195,8 +215,11 @@ namespace SharpReportCore.ReportViewer @@ -195,8 +215,11 @@ namespace SharpReportCore.ReportViewer
}
public void SetPages (PagesCollection pages) {
this.pages = pages;
this.pageNumber = 0;
this.CheckEnable();
this.ShowPages();
}
public PagesCollection Pages {
get {
return this.pages;

58
src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.resx

@ -117,39 +117,42 @@ @@ -117,39 +117,42 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="BackButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAnlJREFUOE+tkl1I
U2EcxpdoS82aulrMBdOl2MdMrSx01ZEm2k2QXRReyCI/yKAOfSiFdMQijNShYYoQqxx10bRm7qOJe9OV
SlYHEl2ZchZK1tWh6OPCi6fOmR60hVe98If34n1+z/N/eGWy/324X5yW+cDUUMMUofqDQ7+mzWSWUMt6
8eAVtJ82HxzJR9PEVdyfrEfTaAWYkUM4TvTIsquQ58gl7Bc2PQQkiPcOGdgafxU6A21o81fi2psinHuR
jVMDadIU96UipV3Fh0AE5yvjF3BnohaNb8twcdgI6wSDn3PfYJu6vgRSQrZi800dx/O8Qkwi7GzwZqBl
7CxqXxWCfr4LHe+rsXC8M9YlgIoBPfY9UMPsM9MigBljakoHjagc2i8+XCye/v4O5wdzJEBZ/zYUkWQc
9eqQcyuTFQG5Tyly2rcjRCwkENwdH1vFsQdaYOOacbgvEXkeDeIZOYIAN0UE58svC6TYy12MngRku1VI
aIiaB9iDgL/j/5j7KjoK0zHViHtTDbg9eQM7XUpsd8ZCURURBNDPaHNxb6q0591FBZJPNuT3anDAo8Ye
9zqkO+OwxbEWG7ujoLuUxIkAMk2o3VaVCFgoqWW8UtriYaAdGc54pP1xTXwSDU13JOJaI2BqNFmkD1Vg
zSVHXDoc826SSqobPSNCvJ8dSOlZI7pusMsR0xUGZbmC52Y5rQTgeE6rq1PxeU4NFkoS4hb6DNC71Ejo
XoXYR+GI7JQholwGi8tiCvnO7AybnlWfySa1rRZLSu6JEeOuf7wS0V0rIG+SQVmq4P8pXkyz9FtMmdUZ
bOTJMMhLwhBeLIPuhJajm2nzktjzot/hufBFpgz7/QAAAABJRU5ErkJggg==
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAnpJREFUOE+tkl1I
U2EcxtfQlpo1dbWYC6ZLsQ9NrSzU6owU7SbILgovZJEfZFCHPpRCOmLRB6ljhjmCWOXIi6Y1c5tN3Jta
KlkdSNRaylkoWVeHoo8LL546Z3qYLbzqhT+8F+/ze57/wyuT/e/D/eJ0zAemlhqmCNUXGPo1bSKzhFrS
iwevpCdo0/6RAph9l/Fgsh7m0UowIwdwlKQiy6FGvtNA2C9seghIEO8eymVrJ6rR7rfAMlGFK2+KceZF
Nk70p0lT0puCZIuaD4EIzpfGz+Gurw6Nb8txfjgPNh+Dn3PfYJ+6vghSSjZj4009x/O8Ukwi7JzrzUDz
2GnUvSoC/XwHWt/XYOF4Z2yLAJX9qdjTpoFpwESLAGaMqS0bzEPV0F7xYbB4+vs7nB3MkQDlfVtQTJJw
2KtHzq1MVgQYnlLk5MC2ELGQQHB3fmwRx+Fvhp1rwsHeBOR7tIhjFAgAuikiOF98WSjFXuqS54lHdrca
8Q2R8wBHAPB3/B9zX0VHYVqnGnF/qgF3Jm9gu1uFra4YKKvDAwD6GW0q6UmR9rwXVCD5ZEdBjxb7PBrs
6l6DdFcsNjlXY31nJPQXEjkRQKYJtdOmFgELJTWPV0lbPPTfRoYrDml/XBOeREHbGYHYlnAYG41W6UMV
2gzkkFuPI94NUknXRk+JEO9nJ5K7Vomu6xwKRHfIoapQ8twsp5MAHM/p9FfVfL5Li4WShLhFA7lIdWsQ
37kCMY/CENEuQ3iFDFa31RjyndkZNj2rPpNNtKwUS0rqihbjrn28HFEdy6Awy6AqU/L/FAfTrH1WY2ZN
BhtxXA5FqRxhJTLoj+k4uok2LYo9L/oN2srwQkkthFYAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="ForwardButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAl1JREFUOE+1kl9I
U2EYxtdwrWnWrNGiLZiuif3RdJWBWZ2Bw7oJKqISGqv8QwZxMJoUwYZFGZhr/dvoZl2IdZHalttMcadp
ZWDrYDUXZp1KQ4LggEZddPG08y0PjVV00wsvHPje5/c833s+ieR/FPeN09lf2x3UE4qhIsmmo7STmWKo
v/rx4JV0nHZuH66Ea+ws2sdb4HpRD/vwDhxkClHqU8McMDHsJ7Y4DSSINw+Vs454IzreeeCJ23DuWRWO
PyrD0YEisS39Bci/oebTIILzmdETuDnWhNbntaIg8N6dAhBg1cxqrLyi53ieV5Ikwp3LwyW4FmtA09Nd
oB9uIKKRz2EINfHlVQqkfqAQW24tg3PQSROAPWZ31DyugG1oa8rg+egefP0+nQKpjaxBFWPA3rAem64b
WQIw3aeYY4Pr0qIKKe68uUAAQn2YiZOZnf25MPdqsdguRxLQQzHCwaWRQ+Lwnz7ezsRQ0atBWY8amouZ
PwG+fwcEP97G+pAKa4M5UDbKkgD6Ae209BWIV6js00Lo/WED3KM2MYxvsp2IVwUWYrk/E/pTeRwBMBMM
tbFNTQCzSxIAVxO/dbYEcVHCNfdeFrR+BRa5ZbC2Wr3ig9rWZmJ2h/TYF14hLml8+iXRC+L87gXEdalP
juxOKVR1Sp6b4nQigOM5nb5ZzZuDWnFJDdEDaI6dJK4a/zzkdGVA0SGBrE4Cb8hrTXvO7CRbXNpiZPM8
88mSDN3ZJO6Su3OR1TkHcpcEqhol/1vxrzRvxGs1ni5hFUekkFdLkWGRQH9Yx9GXaWdK7IToB9Cp79oR
o2i8AAAAAElFTkSuQmCC
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAlxJREFUOE+1kl9I
U2EYxtdwrWnWLGnRFkzXxP5ousrArM7AYd0EFVEJjVX+IYM4GE2K4AyLLDDX+rfdrQuxLtLacpsp7jSt
DGwdrObCrFNpSBAc0KiLLp52vuWhsYpueuGFA9/7/J7ne88nk/2P4r/xeuY146CeUCwVSTYdpZ3sFEv9
1U+AoKbjtHP7cBVcY2fRMd4K14sGMMM7cJAtQplPA0vAzHKfuJI0kCjePFTBOeJN6HzngSdux7ln1Tj+
qBxHB4qltvYXosCjEdIgovOZ0RO4MdaMtud1kiDw3p0CEGE17GqsvGLgBUFQkyTinSvCpbgWa0Tz012g
H24gopHPYYg18eVVCqRhoAhbbi6Dc9BJEwATYxy1jythH9qaMtgS3YOv36dTIHWRNahmjdgbNmDTdRNH
AOb7FHtscF1aVDHF7TcXCECsDzNxMrOzPw+WXh0WM0okAT0UKx5cGjkkDf/p4+1MDJW9WpT3aKC9mPkT
4Pt3QPDjLawP5WJtMAfqJkUSQD+gnda+QukKVX06iL0/bIR71C6F8U12EPGqwEIs92fCcCqfJwB2gqU2
tmsIYHZJIuBq4rfOliguTrjm3cuCzq/CIrcCtjabV3pQ29rN7O6QAfvCK6QljU+/JHpRXNC9gLgu9SmR
3SVHbr1a4Kd4vQTgBV5vaNEIlqBOWlJj9ADOx04SV61/HnLuZEDVKYOiXgZvyGtLe87cJFdS1mri8j3z
yZKM3dkk7pK7c5HVNQdKlwy5tWrht+Jfad6I12Y6XcqpjsihrJEjwyqD4bCepy/TzpTYCdEPycbv10oQ
CVIAAAAASUVORK5CYII=
</value>
</data>
<data name="printToolStripButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -166,9 +169,6 @@ @@ -166,9 +169,6 @@
RU5ErkJggg==
</value>
</data>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>48</value>
</metadata>

12
src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportCore.csproj

@ -188,6 +188,18 @@ @@ -188,6 +188,18 @@
<Content Include="ReportViewer\Resources\Icons.16x16.BrowserBefore.png" />
<Content Include="ReportViewer\Resources\Icons.16x16.BrowserAfter.png" />
<Folder Include="Exporter\Decorators" />
<ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj">
<Project>{8035765F-D51F-4A0C-A746-2FD100E19419}</Project>
<Name>ICSharpCode.SharpDevelop.Widgets</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project>
<Name>ICSharpCode.SharpDevelop</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj">
<Project>{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}</Project>
<Name>ICSharpCode.TextEditor</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>
Loading…
Cancel
Save