Browse Source

Basic implementation of 'ReportViewer', a Control to display zoomable Preview, this Preview acts also as a Test Frontend for Exporting features like PDF,HTML.Until now, only TextBased Items can be displayed but graphics and function's will follow soon.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1942 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Peter Forstmeier 20 years ago
parent
commit
14de0ac3da
  1. 42
      src/AddIns/Misc/SharpReport/SharpReport/Designer/SideTab/BuildDesignerTab.cs
  2. 1
      src/AddIns/Misc/SharpReport/SharpReport/SharpReport.csproj
  3. 5
      src/AddIns/Misc/SharpReport/SharpReport/SharpReportManager.cs
  4. 29
      src/AddIns/Misc/SharpReport/SharpReportAddin/Commands/ViewCommands.cs
  5. 225
      src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportView.cs
  6. 2
      src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/RowItem.cs
  7. 2
      src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/ExportContainer.cs
  8. 1
      src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportItemsConverter.cs
  9. 25
      src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExporterCollection.cs
  10. 79
      src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/PageBuilder.cs
  11. 15
      src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/SinglePage.cs
  12. 20
      src/AddIns/Misc/SharpReport/SharpReportCore/Printing/Text/TextDrawer.cs
  13. 194
      src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.Designer.cs
  14. 198
      src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.cs
  15. 175
      src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.resx
  16. BIN
      src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.BrowserAfter.png
  17. BIN
      src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.BrowserBefore.png
  18. BIN
      src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.Print.png
  19. 13
      src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportCore.csproj

42
src/AddIns/Misc/SharpReport/SharpReport/Designer/SideTab/BuildDesignerTab.cs

@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
/*
* Erstellt mit SharpDevelop.
* Benutzer: Forstmeier Helmut
* Datum: 24.10.2006
* Zeit: 22:50
*
* Sie können diese Vorlage unter Extras > Optionen > Codeerstellung > Standardheader ändern.
*/
using System;
using System.Windows.Forms;
namespace SharpReport
{
/// <summary>
/// Description of BuildTabControl.
/// </summary>
public class BuildDesignerTab
{
public static TabControl BuildTabControl () {
TabControl tabControl = new TabControl();
// Designer Tap
TabPage designerPage = new TabPage();
//Standart Preview page
//create only the TabPage, no Controls are added
TabPage previewPage = new TabPage();
// ReportViewer
TabPage reportViewerPage = new TabPage();
tabControl.TabPages.Add (designerPage);
tabControl.TabPages.Add (previewPage);
tabControl.TabPages.Add(reportViewerPage);
tabControl.Alignment = TabAlignment.Bottom;
tabControl.Dock = DockStyle.Fill;
return tabControl;
}
}
}

1
src/AddIns/Misc/SharpReport/SharpReport/SharpReport.csproj

@ -95,6 +95,7 @@ @@ -95,6 +95,7 @@
<Compile Include="Designer\VisualControls\ReportTableControl.cs" />
<Compile Include="ReportItems\TextBased\ReportTableItem.cs" />
<Compile Include="ParameterDialog.cs" />
<Compile Include="Designer\SideTab\BuildDesignerTab.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="Designer" />

5
src/AddIns/Misc/SharpReport/SharpReport/SharpReportManager.cs

@ -280,8 +280,11 @@ namespace SharpReport{ @@ -280,8 +280,11 @@ namespace SharpReport{
/// <param name="fileName">Valid Filename with .xml or .sdr Extension</param>
public void LoadFromFile(string fileName){
SharpReport.Visitors.LoadReportVisitor loadVisitor = new SharpReport.Visitors.LoadReportVisitor(fileName);
//TODO Thsi methiod takes aprox 2 secounds
this.baseDesignerControl.Accept(loadVisitor);
this.baseDesignerControl.ReportModel.ReportSettings.FileName = fileName;
reportModel = this.baseDesignerControl.ReportModel;
}
@ -346,6 +349,8 @@ namespace SharpReport{ @@ -346,6 +349,8 @@ namespace SharpReport{
get {
if (this.baseDesignerControl == null) {
this.baseDesignerControl = new BaseDesignerControl();
this.baseDesignerControl.ReportControl.AutoScroll = true;
this.baseDesignerControl.Dock = DockStyle.Fill;
}
return this.baseDesignerControl;
}

29
src/AddIns/Misc/SharpReport/SharpReportAddin/Commands/ViewCommands.cs

@ -8,9 +8,11 @@ @@ -8,9 +8,11 @@
*/
using System;
using System.Windows.Forms;
using System.Globalization;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using SharpReportCore;
namespace SharpReportAddin.Commands{
@ -32,4 +34,29 @@ namespace SharpReportAddin.Commands{ @@ -32,4 +34,29 @@ namespace SharpReportAddin.Commands{
}
}
}
public class DataSetFromXSDCommand:AbstractCommand{
System.Data.DataSet ds;
public override void Run()
{
using (OpenFileDialog openFileDialog = new OpenFileDialog()){
openFileDialog.Filter = GlobalValues.XsdFileFilter;
openFileDialog.DefaultExt = GlobalValues.XsdExtension;
openFileDialog.AddExtension = true;
if(openFileDialog.ShowDialog() == DialogResult.OK){
if (openFileDialog.FileName.Length > 0) {
this.ds = new System.Data.DataSet();
this.ds.ReadXml (openFileDialog.FileName);
this.ds.Locale = CultureInfo.InvariantCulture;
}
}
}
}
public System.Data.DataSet DataSet {
get { return ds; }
}
}
}

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

@ -32,9 +32,9 @@ namespace SharpReportAddin{ @@ -32,9 +32,9 @@ namespace SharpReportAddin{
private SharpReportManager reportManager;
private BaseDesignerControl designerControl;
private SharpReportCore.ReportViewer.PreviewControl reportViewer;
private TabControl tabControl;
private TabPage designerPage;
private TabPage previewPage;
// SideBar
private AxSideTab sideTabItem = null;
@ -48,8 +48,10 @@ namespace SharpReportAddin{ @@ -48,8 +48,10 @@ namespace SharpReportAddin{
void InitView() {
try {
reportManager = new SharpReportManager();
panel = new Panel();
panel.AutoScroll = true;
panel.Dock = DockStyle.Fill;
CreateTabControl();
SharpReportView.BuildToolBarItems();
if (PropertyPad.Grid != null) {
@ -85,7 +87,20 @@ namespace SharpReportAddin{ @@ -85,7 +87,20 @@ namespace SharpReportAddin{
#endregion
#region Control
private BaseDesignerControl CreateDesignerControl() {
BaseDesignerControl ctrl = reportManager.BaseDesignControl;
ctrl.SuspendLayout();
ctrl.ReportControl.Width = ctrl.ReportModel.ReportSettings.PageSettings.Bounds.Width;
ctrl.ReportControl.ObjectSelected +=new EventHandler <EventArgs>(OnObjectSelected);
ctrl.ReportControl.DesignViewChanged += new ItemDragDropEventHandler (OnItemDragDrop);
ctrl.DesignerDirty += new System.ComponentModel.PropertyChangedEventHandler (OnPropertyChanged);
ctrl.ResumeLayout();
return ctrl;
}
#endregion
#region SideBar Handling
@ -141,7 +156,7 @@ namespace SharpReportAddin{ @@ -141,7 +156,7 @@ namespace SharpReportAddin{
}
}
sb.Refresh();
}
}
}
@ -164,80 +179,89 @@ namespace SharpReportAddin{ @@ -164,80 +179,89 @@ namespace SharpReportAddin{
#endregion
#region Control
#region TabControl including Events
void CreateTabControl() {
tabControl = new TabControl();
tabControl.SelectedIndexChanged += new EventHandler (OnTabPageChanged);
designerPage = new TabPage();
designerControl = CreateDesignerControl();
designerPage.Controls.Add (designerControl);
//create only the TabPage, no Controls are added
previewPage = new TabPage ();
tabControl.TabPages.Add (designerPage);
tabControl.TabPages.Add (previewPage);
this.tabControl = BuildDesignerTab.BuildTabControl();
tabControl.Alignment = TabAlignment.Bottom;
this.tabControl.SelectedIndexChanged += new EventHandler (OnTabPageChanged);
this.tabControl.Selecting += new TabControlCancelEventHandler(OnTabPageSelecting);
panel.Dock = DockStyle.Fill;
panel.AutoScroll = true;
tabControl.Dock = DockStyle.Fill;
panel.Controls.Add (tabControl);
this.designerControl = CreateDesignerControl();
this.tabControl.TabPages[0].Controls.Add (this.designerControl);
this.panel.Controls.Add (this.tabControl);
SetHeadLines();
}
//We set all captions in one method, so we can react much easier on changing of lanuages
void SetHeadLines(){
designerPage.Text = ResourceService.GetString("SharpReport.Design");
previewPage.Text = ResourceService.GetString("SharpReport.Preview");
this.tabControl.TabPages[0].Text = ResourceService.GetString("SharpReport.Design");
this.tabControl.TabPages[1].Text = ResourceService.GetString("SharpReport.Preview");
this.tabControl.TabPages[2].Text = "ReportViewer";
this.OnTabPageChanged (this,EventArgs.Empty);
this.designerControl.Localise();
}
void SetTabTitel (string name) {
base.TitleName = String.Format(CultureInfo.CurrentCulture,
"{0} [{1}]",name,this.tabControl.SelectedTab.Text);
}
private BaseDesignerControl CreateDesignerControl() {
BaseDesignerControl ctrl = reportManager.BaseDesignControl;
ctrl.SuspendLayout();
ctrl.ReportControl.Width = ctrl.ReportModel.ReportSettings.PageSettings.Bounds.Width;
ctrl.ReportControl.AutoScroll = true;
ctrl.Dock = DockStyle.Fill;
ctrl.ResumeLayout();
ctrl.ReportControl.ObjectSelected +=new EventHandler <EventArgs>(OnObjectSelected);
private void OnTabPageSelecting (object sender,TabControlCancelEventArgs e) {
switch (e.TabPageIndex) {
case 0:
break;
case 1:
if (e.TabPage.Controls.Count == 0) {
e.TabPage.Controls.Add(reportManager.PreviewControl);
}
break;
case 2:
if (e.TabPage.Controls.Count == 0) {
this.reportViewer = new SharpReportCore.ReportViewer.PreviewControl();
this.reportViewer.Dock = DockStyle.Fill;
this.reportViewer.PageSettings = new System.Drawing.Printing.PageSettings();
e.TabPage.Controls.Add(this.reportViewer);
}
break;
}
}
private void OnTabPageChanged (object sender, EventArgs e) {
ctrl.ReportControl.DesignViewChanged += new ItemDragDropEventHandler (OnItemDragDrop);
ctrl.DesignerDirty += new System.ComponentModel.PropertyChangedEventHandler (OnPropertyChanged);
return ctrl;
string name;
if (String.IsNullOrEmpty(base.FileName)) {
base.UntitledName = GlobalValues.SharpReportPlainFileName;
base.TitleName = GlobalValues.SharpReportPlainFileName;
base.FileName = GlobalValues.SharpReportPlainFileName;
name = base.TitleName;
} else {
name = Path.GetFileName (base.FileName);
}
SetTabTitel (name);
switch (tabControl.SelectedIndex) {
case 0 :
break;
case 1:
RunPreview(true);
this.tabControl.SelectedTab.Visible = true;
break;
case 2:
FillReportViewer();
break;
default:
break;
}
}
#endregion
#region Preview handling
private static DataSet DataSetFromFile () {
using (OpenFileDialog openFileDialog = new OpenFileDialog()){
openFileDialog.Filter = GlobalValues.XsdFileFilter;
openFileDialog.DefaultExt = GlobalValues.XsdExtension;
openFileDialog.AddExtension = true;
if(openFileDialog.ShowDialog() == DialogResult.OK){
if (openFileDialog.FileName.Length > 0) {
DataSet ds = new DataSet();
ds.ReadXml (openFileDialog.FileName);
ds.Locale = CultureInfo.InvariantCulture;
return ds;
}
}
}
throw new MissingDataSourceException();
}
#region Preview handling
private void RunPreview(bool standAlone) {
base.OnSaving(EventArgs.Empty);
this.UpdateModelFromExplorer();
@ -269,7 +293,9 @@ namespace SharpReportAddin{ @@ -269,7 +293,9 @@ namespace SharpReportAddin{
private void PreviewPushReport (bool standAlone){
try {
DataSet ds = SharpReportView.DataSetFromFile ();
DataSetFromXSDCommand cmd = new DataSetFromXSDCommand ();
cmd.Run();
DataSet ds = cmd.DataSet;
reportManager.ReportPreviewPushData(designerControl.ReportModel,
ds,
standAlone);
@ -288,6 +314,23 @@ namespace SharpReportAddin{ @@ -288,6 +314,23 @@ namespace SharpReportAddin{
#endregion
#region ReportViewer
private void FillReportViewer() {
System.Console.WriteLine("FillReportViewer");
System.Console.WriteLine("\tsetup pagebuilder{0}",DateTime.Now);
SharpReportCore.Exporters.PageBuilder pb = reportManager.CreatePageBuilder (designerControl.ReportModel);
System.Console.WriteLine("\tstart createreport{0}",DateTime.Now);
pb.CreateReport();
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);
this.reportViewer.Pages = pb.Pages;
}
#endregion
#region Events
///<summary>This Event is called if the Report need's Parameters to run a Query,
@ -305,39 +348,7 @@ namespace SharpReportAddin{ @@ -305,39 +348,7 @@ namespace SharpReportAddin{
}
}
void SetTabTitel (string name) {
base.TitleName = String.Format(CultureInfo.CurrentCulture,
"{0} [{1}]",name,this.tabControl.SelectedTab.Text);
}
private void OnTabPageChanged (object sender, EventArgs e) {
string name;
if (String.IsNullOrEmpty(base.FileName)) {
base.UntitledName = GlobalValues.SharpReportPlainFileName;
base.TitleName = GlobalValues.SharpReportPlainFileName;
base.FileName = GlobalValues.SharpReportPlainFileName;
name = base.TitleName;
} else {
name = Path.GetFileName (base.FileName);
}
SetTabTitel (name);
switch (tabControl.SelectedIndex) {
case 0 :
break;
case 1:
//Create the preview Control only when needed
if (tabControl.SelectedTab.Controls.Count == 0 ){
tabControl.SelectedTab.Controls.Add(reportManager.PreviewControl);
}
RunPreview(true);
this.previewPage.Visible = true;
break;
default:
break;
}
}
//Something was dropped on the designer
@ -351,7 +362,7 @@ namespace SharpReportAddin{ @@ -351,7 +362,7 @@ namespace SharpReportAddin{
base.IsDirty = true;
OnObjectSelected (this,EventArgs.Empty);
}
private void OnModelFileNameChanged (object sender,EventArgs e) {
base.FileName = designerControl.ReportModel.ReportSettings.FileName;
if (designerControl.ReportModel.ReportSettings.InitDone) {
@ -373,7 +384,7 @@ namespace SharpReportAddin{ @@ -373,7 +384,7 @@ namespace SharpReportAddin{
}
}
}
private void UpdateModelFromExplorer () {
ReportExplorer re = (SharpReportAddin.ReportExplorer)WorkbenchSingleton.Workbench.GetPad(typeof(ReportExplorer)).PadContent;
re.Update(designerControl.ReportModel);
@ -397,7 +408,7 @@ namespace SharpReportAddin{ @@ -397,7 +408,7 @@ namespace SharpReportAddin{
/// Show's Report in PreviewControl
/// </summary>
public void OnPreviewClick () {
public void OnPreviewClick () {
reportManager.ParametersRequest -= new EventHandler<SharpReportParametersEventArgs> (OnParametersRequest);
reportManager.ParametersRequest += new EventHandler<SharpReportParametersEventArgs>(OnParametersRequest);
@ -408,7 +419,7 @@ namespace SharpReportAddin{ @@ -408,7 +419,7 @@ namespace SharpReportAddin{
/// <summary>
/// Remove the selected Item from <see cref="BaseDesignerControl"></see>
/// </summary>
public void RemoveSelectedItem () {
this.designerControl.RemoveSelectedItem ();
}
@ -428,7 +439,7 @@ namespace SharpReportAddin{ @@ -428,7 +439,7 @@ namespace SharpReportAddin{
}
/// <summary>
/// Tells the <see cref="BaseDesignerControl"></see> to fire an Event if
/// Tells the <see cref="BaseDesignerControl"></see> to fire an Event if
/// something in the report layout changes
/// </summary>
@ -479,6 +490,7 @@ namespace SharpReportAddin{ @@ -479,6 +490,7 @@ namespace SharpReportAddin{
}
public override void RedrawContent() {
SetHeadLines();
}
@ -528,15 +540,16 @@ namespace SharpReportAddin{ @@ -528,15 +540,16 @@ namespace SharpReportAddin{
}
}
/// <summary>
/// Loads a new file into View
/// </summary>
/// <param name="fileName">A valid Filename</param>
public override void Load(string fileName){
try {
designerControl.ReportControl.ObjectSelected -= new EventHandler <EventArgs>(OnObjectSelected);
reportManager.LoadFromFile (fileName);
reportManager.LoadFromFile (fileName);
base.FileName = fileName;
designerControl.ReportModel.ReportSettings.FileName = fileName;
designerControl.ReportControl.ObjectSelected += new EventHandler <EventArgs>(OnObjectSelected);
@ -544,13 +557,12 @@ namespace SharpReportAddin{ @@ -544,13 +557,12 @@ namespace SharpReportAddin{
PropertyPad.Grid.SelectedObject = designerControl.ReportModel.ReportSettings;
PropertyPad.Grid.Refresh();
}
this.designerControl.ReportModel.ReportSettings.AvailableFieldsCollection = reportManager.AvailableFieldsCollection;
this.designerControl.ReportModel.ReportSettings.AvailableFieldsCollection = reportManager.AvailableFieldsCollection;
ShowAndFillExplorer se = new ShowAndFillExplorer();
se.ReportModel = this.designerControl.ReportModel;
se.Run();
} catch (Exception e) {
MessageService.ShowError(e,"SharpReportView:Load");
throw ;
@ -566,8 +578,11 @@ namespace SharpReportAddin{ @@ -566,8 +578,11 @@ namespace SharpReportAddin{
get {
AbstractRenderer renderer;
if (this.designerControl.ReportModel.DataModel == GlobalEnums.PushPullModel.PushData) {
DataSetFromXSDCommand cmd = new DataSetFromXSDCommand();
cmd.Run();
DataSet dataSet = cmd.DataSet;
renderer = reportManager.GetRendererForPushDataReports(this.designerControl.ReportModel,
SharpReportView.DataSetFromFile());
dataSet);
} else {
try {
@ -611,6 +626,10 @@ namespace SharpReportAddin{ @@ -611,6 +626,10 @@ namespace SharpReportAddin{
this.designerControl.Dispose();
}
if (this.reportViewer != null) {
this.reportViewer.Dispose();
}
if (this.tabControl != null) {
this.tabControl.Dispose();
}

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

@ -50,7 +50,6 @@ namespace SharpReportCore{ @@ -50,7 +50,6 @@ namespace SharpReportCore{
#region IExportColumnBuilder implementation
// public IPerformLine CreateExportColumn(Graphics graphics){
public BaseExportColumn CreateExportColumn(Graphics graphics){
BaseStyleDecorator st = this.CreateItemStyle(graphics);
@ -62,7 +61,6 @@ namespace SharpReportCore{ @@ -62,7 +61,6 @@ namespace SharpReportCore{
BaseStyleDecorator style = new BaseStyleDecorator();
style.BackColor = this.BackColor;
// style.Font = this.Font;
style.ForeColor = this.ForeColor;
style.Location = this.Location;
style.Size = this.Size;

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

@ -16,7 +16,7 @@ namespace SharpReportCore.Exporters @@ -16,7 +16,7 @@ namespace SharpReportCore.Exporters
/// </summary>
public class ExportContainer:BaseExportColumn
{
// List<IPerformLine> items;
ExporterCollection<BaseExportColumn> items;
public ExportContainer():base(){
base.IsContainer = true;

1
src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportItemsConverter.cs

@ -28,6 +28,7 @@ namespace SharpReportCore.Exporters{ @@ -28,6 +28,7 @@ namespace SharpReportCore.Exporters{
public ExportText ConvertToLineItems (IItemRenderer r) {
IExportColumnBuilder lineBuilder = r as IExportColumnBuilder;
ExportText lineItem = null;
if (lineBuilder != null) {
lineItem = (ExportText)lineBuilder.CreateExportColumn(this.graphics);

25
src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExporterCollection.cs

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
/*
* Created by SharpDevelop.
* User: Forstmeier Peter
* Date: 19.09.2006
* Time: 22:18
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
namespace SharpReportCore.Exporters
{
public class ExporterCollection<T> : Collection<T>
where T : BaseExportColumn {
public void AddRange (IEnumerable <T> items){
foreach (T item in items) {
this.Add (item);
}
}
}
}

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

@ -9,10 +9,7 @@ @@ -9,10 +9,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Drawing;
using System.Drawing.Printing;
namespace SharpReportCore.Exporters
@ -28,8 +25,8 @@ namespace SharpReportCore.Exporters @@ -28,8 +25,8 @@ namespace SharpReportCore.Exporters
DataNavigator dataNavigator;
ExportItemsConverter lineItemsConverter;
// public delegate List <IPerformLine> ConverterDelegate (LineItemsConverter c,BaseSection s,SinglePage p);
public delegate List <BaseExportColumn> ConverterDelegate (BaseSection s,SinglePage p);
#region Constructor
public PageBuilder () {
pages = new List<SinglePage>();
@ -48,28 +45,7 @@ namespace SharpReportCore.Exporters @@ -48,28 +45,7 @@ namespace SharpReportCore.Exporters
#endregion
#region template
/*
// Events from ReportDocument
reportDocument.QueryPageSettings += new QueryPageSettingsEventHandler (ReportQueryPage);
reportDocument.BeginPrint += new PrintEventHandler(ReportBegin);
reportDocument.PrintPage += new PrintPageEventHandler(ReportPageStart);
reportDocument.EndPrint += new PrintEventHandler(ReportEnd);
// homemade events
reportDocument.BodyStart += new EventHandler<ReportPageEventArgs> (BodyStart);
reportDocument.BodyEnd += new EventHandler<ReportPageEventArgs> (BodyEnd);
//
reportDocument.RenderReportHeader += new EventHandler<ReportPageEventArgs> (PrintReportHeader);
reportDocument.RenderPageHeader += new EventHandler<ReportPageEventArgs> (PrintPageHeader);
reportDocument.RenderDetails += new EventHandler<ReportPageEventArgs> (PrintDetail);
reportDocument.RenderPageEnd += new EventHandler<ReportPageEventArgs> (PrintPageEnd);
reportDocument.RenderReportEnd += new EventHandler<ReportPageEventArgs> (PrintReportFooter);
*/
#endregion
private SinglePage CreateNewPage () {
PageSettings ps = this.reportModel.ReportSettings.PageSettings;
@ -87,13 +63,8 @@ namespace SharpReportCore.Exporters @@ -87,13 +63,8 @@ namespace SharpReportCore.Exporters
private void BuildReportHeader (SinglePage page) {
BaseSection section = this.reportModel.ReportHeader;
// System.Console.WriteLine("ReportHeader with {0} items ",section.Items.Count);
// LineItemsConverter conv = new LineItemsConverter(graphics);
this.lineItemsConverter.Offset = page.SectionBounds.ReportHeaderRectangle.Top;
System.Console.WriteLine("ReportHeader start at {0} with {1} items",
this.lineItemsConverter.Offset,
section.Items.Count);
List <BaseExportColumn>l = section.Items.ConvertAll <BaseExportColumn> (this.lineItemsConverter.ConvertToLineItems);
page.Items.AddRange(l);
@ -101,18 +72,13 @@ namespace SharpReportCore.Exporters @@ -101,18 +72,13 @@ namespace SharpReportCore.Exporters
private void BuildPageHeader (SinglePage page) {
BaseSection section = this.reportModel.PageHeader;
// System.Console.WriteLine("PageHeader with {0} items ",section.Items.Count);
// LineItemsConverter conv = new LineItemsConverter(graphics);
this.lineItemsConverter.Offset = page.SectionBounds.PageHeaderRectangle.Top;
System.Console.WriteLine("Page Header start at {0} with {1} Items",
this.lineItemsConverter.Offset,
section.Items.Count);
// System.Console.WriteLine("Page Header start at {0} with {1} Items",
// this.lineItemsConverter.Offset,
// section.Items.Count);
List <BaseExportColumn>l = section.Items.ConvertAll <BaseExportColumn> (this.lineItemsConverter.ConvertToLineItems);
page.Items.AddRange(l);
// System.Console.WriteLine("\tList<string> {0}",l.Count);
// System.Console.WriteLine("\tpages.items.coun {0}",page.Items.Count);
}
@ -133,9 +99,6 @@ namespace SharpReportCore.Exporters @@ -133,9 +99,6 @@ namespace SharpReportCore.Exporters
BaseSection section = this.reportModel.DetailSection;
section.SectionOffset = page.SectionBounds.DetailStart.Y;
do {
dataNavigator.Fill(section.Items);
if (!firstOnPage) {
@ -169,7 +132,7 @@ namespace SharpReportCore.Exporters @@ -169,7 +132,7 @@ namespace SharpReportCore.Exporters
this.lineItemsConverter.Offset = section.SectionOffset;
if (builder != null) {
System.Console.WriteLine("Create RowList with Location {0}",this.lineItemsConverter.Offset);
// System.Console.WriteLine("Create RowList with Location {0} ",this.lineItemsConverter.Offset);
Graphics g = reportModel.ReportSettings.PageSettings.PrinterSettings.CreateMeasurementGraphics();
@ -180,11 +143,17 @@ namespace SharpReportCore.Exporters @@ -180,11 +143,17 @@ namespace SharpReportCore.Exporters
// reread
this.dataNavigator.Fill(containerItem.Items);
List <BaseExportColumn> childList = containerItem.Items.ConvertAll <BaseExportColumn> (this.lineItemsConverter.ConvertToLineItems);
lineItem.Items.AddRange(childList);
childList.ForEach(display);
//Adjust childitems to Location within container
if (childList.Count > 0) {
childList.ForEach(delegate(BaseExportColumn item){
Point p = new Point (lineItem.StyleDecorator.Location.X + item.StyleDecorator.Location.X,
lineItem.StyleDecorator.Location.Y + item.StyleDecorator.Location.Y);
item.StyleDecorator.Location = p;
});
}
lineItem.Items.AddRange(childList);
List <BaseExportColumn> containerList = new List<BaseExportColumn>();
containerList.Add (lineItem);
g.Dispose();
@ -193,12 +162,13 @@ namespace SharpReportCore.Exporters @@ -193,12 +162,13 @@ namespace SharpReportCore.Exporters
return null;
}
private List <BaseExportColumn> DoJob (BaseSection section,SinglePage page) {
this.lineItemsConverter.Offset = section.SectionOffset;
System.Console.WriteLine("Plain Item {0}/{1}",section.SectionOffset,page.SectionBounds.DetailStart);
List <BaseExportColumn>list = section.Items.ConvertAll <BaseExportColumn> (this.lineItemsConverter.ConvertToLineItems);
/*
if (list.Count > 0) {
bool istrue = list.TrueForAll(delegate(BaseExportColumn item){
@ -213,7 +183,7 @@ namespace SharpReportCore.Exporters @@ -213,7 +183,7 @@ namespace SharpReportCore.Exporters
return true;
});
}
// list.ForEach(display);
*/
return list;
}
@ -233,9 +203,6 @@ namespace SharpReportCore.Exporters @@ -233,9 +203,6 @@ namespace SharpReportCore.Exporters
BaseSection section = this.reportModel.PageFooter;
this.lineItemsConverter.Offset = page.SectionBounds.PageFooterRectangle.Top;
// System.Console.WriteLine("Page Footer start at {0} with {1} Items",
// this.lineItemsConverter.Offset,
// section.Items.Count);
List <BaseExportColumn>l = section.Items.ConvertAll <BaseExportColumn> (this.lineItemsConverter.ConvertToLineItems);
page.Items.AddRange(l);
}
@ -293,8 +260,14 @@ namespace SharpReportCore.Exporters @@ -293,8 +260,14 @@ namespace SharpReportCore.Exporters
}
return null;
}
}
public List<SinglePage> Pages {
get {
return pages;
}
}
}
}

15
src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/SinglePage.cs

@ -8,16 +8,17 @@ @@ -8,16 +8,17 @@
*/
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Drawing;
using System.Drawing.Printing;
namespace SharpReportCore.Exporters
{
public class SinglePage
{
// List<IPerformLine> items;
public class SinglePage{
ExporterCollection<BaseExportColumn> items;
SectionBounds sectionBounds;
@ -29,7 +30,6 @@ namespace SharpReportCore.Exporters @@ -29,7 +30,6 @@ namespace SharpReportCore.Exporters
public SinglePage(SectionBounds sectionBounds)
{
this.sectionBounds = sectionBounds;
// items = new List <IPerformLine>();
items = new ExporterCollection<BaseExportColumn>();
}
@ -57,7 +57,6 @@ namespace SharpReportCore.Exporters @@ -57,7 +57,6 @@ namespace SharpReportCore.Exporters
this.sectionBounds.MeasurePageHeader(reportModel.PageHeader,
rectangle,graphics);
//
//PageFooter
@ -93,9 +92,5 @@ namespace SharpReportCore.Exporters @@ -93,9 +92,5 @@ namespace SharpReportCore.Exporters
}
}
public class ExporterCollection<T> : List<T>
where T : BaseExportColumn {
}
}

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

@ -67,6 +67,26 @@ namespace SharpReportCore { @@ -67,6 +67,26 @@ namespace SharpReportCore {
s);
}
public static void PaintString (Graphics graphics,string text,
SharpReportCore.Exporters.BaseStyleDecorator 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,
decorator.Location.Y,
decorator.Size.Width,
decorator.Size.Height),
decorator.StringFormat);
}
public static StringFormat BuildStringFormat(StringTrimming stringTrimming,ContentAlignment alignment){
StringFormat format = StringFormat.GenericTypographic;

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

@ -0,0 +1,194 @@ @@ -0,0 +1,194 @@
/*
* Created by SharpDevelop.
* User: Forstmeier Helmut
* Date: 16.10.2006
* Time: 22:15
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
namespace SharpReportCore.ReportViewer
{
partial class PreviewControl : System.Windows.Forms.UserControl
// partial class PreviewControl : System.Windows.Forms.ScrollableControl
{
/// <summary>
/// Designer variable used to keep track of non-visual components.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Disposes resources used by the form.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PreviewControl));
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.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();
//
// panel1
//
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panel1.AutoScroll = true;
this.panel1.AutoScrollMargin = new System.Drawing.Size(5, 5);
this.panel1.BackColor = System.Drawing.SystemColors.ControlDark;
this.panel1.Controls.Add(this.panel2);
this.panel1.Location = new System.Drawing.Point(5, 33);
this.panel1.Margin = new System.Windows.Forms.Padding(0);
this.panel1.Name = "panel1";
this.panel1.Padding = new System.Windows.Forms.Padding(5);
this.panel1.Size = new System.Drawing.Size(525, 373);
this.panel1.TabIndex = 3;
//
// panel2
//
this.panel2.BackColor = System.Drawing.SystemColors.Window;
this.panel2.Location = new System.Drawing.Point(5, 5);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(496, 500);
this.panel2.TabIndex = 0;
this.panel2.Paint += new System.Windows.Forms.PaintEventHandler(this.Panel2Paint);
//
// toolStrip1
//
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButton1,
this.toolStripButton2,
this.toolStripSeparator1,
this.toolStripTextBox1,
this.toolStripSeparator2,
this.toolStripComboBox1,
this.printToolStripButton,
this.newToolStripButton});
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";
this.toolStrip1.Size = new System.Drawing.Size(520, 25);
this.toolStrip1.Stretch = true;
this.toolStrip1.TabIndex = 4;
this.toolStrip1.Text = "toolStrip1";
//
// toolStripButton1
//
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);
//
// toolStripButton2
//
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);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
//
// toolStripTextBox1
//
this.toolStripTextBox1.Name = "toolStripTextBox1";
this.toolStripTextBox1.Size = new System.Drawing.Size(150, 25);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
//
// toolStripComboBox1
//
this.toolStripComboBox1.Name = "toolStripComboBox1";
this.toolStripComboBox1.Size = new System.Drawing.Size(80, 25);
this.toolStripComboBox1.SelectedIndexChanged += new System.EventHandler(this.ToolStripComboBox1SelectedIndexChanged);
//
// printToolStripButton
//
this.printToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.printToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("printToolStripButton.Image")));
this.printToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.printToolStripButton.Name = "printToolStripButton";
this.printToolStripButton.Size = new System.Drawing.Size(23, 22);
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;
this.Controls.Add(this.toolStrip1);
this.Controls.Add(this.panel1);
this.Name = "PreviewControl";
this.Padding = new System.Windows.Forms.Padding(5);
this.Size = new System.Drawing.Size(530, 411);
this.panel1.ResumeLayout(false);
this.toolStrip1.ResumeLayout(false);
this.toolStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.ToolStripButton toolStripButton2;
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.Panel panel1;
private System.Windows.Forms.ToolStrip toolStrip1;
void PrintToolStripButtonClick(object sender, System.EventArgs e)
{
}
}
}

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

@ -0,0 +1,198 @@ @@ -0,0 +1,198 @@
/*
* Created by SharpDevelop.
* User: Forstmeier Helmut
* Date: 16.10.2006
* Time: 22:15
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;
using SharpReportCore;
using SharpReportCore.Exporters;
namespace SharpReportCore.ReportViewer
{
/// <summary>
/// Description of UserControl1.
/// </summary>
public partial class PreviewControl
{
private PageSettings pageSettings;
private float zoom;
private Bitmap bitmap;
private List<SinglePage> pages;
private int pageNumber;
private Rectangle PageRectangle () {
return new Rectangle (this.pageSettings.Margins.Left,
this.pageSettings.Margins.Top,
this.pageSettings.Bounds.Width - this.pageSettings.Margins.Left - this.pageSettings.Margins.Right,
this.pageSettings.Bounds.Height - this.pageSettings.Margins.Top - this.pageSettings.Margins.Bottom);
}
private void AdjustDrawArea() {
if (this.pageSettings != null) {
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);
}
public PreviewControl()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
InitZoomCombo ();
}
private void InitZoomCombo (){
this.toolStripComboBox1.Items.Add("100%");
this.toolStripComboBox1.Items.Add("75%");
this.toolStripComboBox1.Items.Add("50%");
this.toolStripComboBox1.SelectedIndex = 0;
}
void Panel2Paint(object sender, System.Windows.Forms.PaintEventArgs e){
e.Graphics.Clear(this.panel2.BackColor);
if (this.bitmap != null) {
e.Graphics.DrawImage(this.bitmap,0,0);
}
}
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());
TextDrawer.PaintString(gr,ex.ToString(),ex.StyleDecorator);
} else {
DrawItems(gr,cont.Items);
}
}
}
}
private Bitmap BuildBitmap (SinglePage page) {
System.Console.WriteLine("BuildBitmap(SinglePage)");
System.Console.WriteLine("\tstart createBitmap {0}",DateTime.Now);
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(Color.Beige);
gr.ScaleTransform(this.zoom,this.zoom);
// if (this.pageSettings != null) {
// gr.DrawRectangle(new Pen(Color.Black),
// this.PageRectangle ());
// }
DrawItems (gr,page.Items);
}
System.Console.WriteLine("\tready createBitmap {0}",DateTime.Now);
return bm;
}
private void ShowPages () {
System.Console.WriteLine("ReportViewer:ShowPages {0}",this.pages.Count);
this.pageNumber = 0;
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 ("Page {0} of {1}",this.pageNumber +1,this.pages.Count);
this.toolStripTextBox1.Text = str;
this.Invalidate(true);
}
void ToolStripComboBox1SelectedIndexChanged(object sender, System.EventArgs e)
{
switch (this.toolStripComboBox1.SelectedIndex) {
case 0:
this.zoom = (float)1.0;
break;
case 1:
this.zoom = (float)0.75;
break;
case 2:
this.zoom = (float) 0.5;
break;
default:
this.zoom = (float)1.0;
break;
}
this.AdjustDrawArea();
}
void ToolStripTextBox1Click(object sender, System.EventArgs e)
{
MessageBox.Show ("TextBox Chlicked");
}
void BackButton(object sender, System.EventArgs e)
{
MessageBox.Show ("BackButton not implemented");
}
void ForwardButton(object sender, System.EventArgs e)
{
MessageBox.Show ("´Forward not implemented");
}
void PrintButton(object sender, System.EventArgs e)
{
MessageBox.Show ("Print not implemented");
}
public PageSettings PageSettings {
get {
return pageSettings;
}
set {
pageSettings = value;
this.AdjustDrawArea();
}
}
public List<SinglePage> Pages {
set {
pages = value;
ShowPages();
}
}
}
}

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

@ -0,0 +1,175 @@ @@ -0,0 +1,175 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<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">
<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==
</value>
</data>
<data name="toolStripButton2.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
</value>
</data>
<data name="printToolStripButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAaFJREFUOE+Vkr9O
wlAUxnV3YMPRR9A34AXYfADjwGzYWRiQAegqIXGhMSlgCOHPIIPypzJA0lKIUGhDtCkyQJoYHFj47LlJ
B2gNepMvtzk93+/ce849PrKXZcF396Rb9L2/rgOnF37/iez1byd2K2jwWhQ/aHZOQcnmF1z6M4QSlQVc
+hfgZQbs688AVX2/ouTHN+DVAORPQPr4BsUGg8HNwV6YpvlMyY1GwyVJklCr1aAoCucCbTab81KpBEe9
Xg+z2QzL5RKWPePVaoXFYoH5fI5qtQpd13ch2WwW0+kU/X4fw+GQgQzDYGbayeSo3W4jlUrtjpYAmqZh
MpkwiKqqDOKYxuMxZFmGKIrged4bkM/nQaBut8sgo9GIQXK5HDiOQzKZZOJL996A9XoNu4msajqdRjwe
RywWY2ZBEFCv11EsFhGNRr0B2+0WBKGG0b0rlQroVJlMBpFIBOFwmEEp1mw2vSF0BQdCFcvlMoLBS4RC
IWbudDqsF05vXOO0u+4jCKnValHDrETiQSoUxJ1JHHxQNujMfgcBSqSdKv5m+gHDX/T8L6cjXgAAAABJ
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>
</root>

BIN
src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.BrowserAfter.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 B

BIN
src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.BrowserBefore.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 923 B

BIN
src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.Print.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 714 B

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

@ -146,6 +146,14 @@ @@ -146,6 +146,14 @@
<Compile Include="Exporter\ExportColumns\ExportContainer.cs" />
<Compile Include="Exporter\ExportColumns\ExportText.cs" />
<Compile Include="Exporter\ExportColumns\IExportColumnBuilder .cs" />
<Compile Include="ReportViewer\ReportViewer.cs" />
<Compile Include="ReportViewer\ReportViewer.Designer.cs">
<DependentUpon>ReportViewer.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="ReportViewer\ReportViewer.resx">
<DependentUpon>ReportViewer.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="Exporter\ExporterCollection.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="BaseItems" />
@ -171,6 +179,11 @@ @@ -171,6 +179,11 @@
<Folder Include="BaseClasses" />
<Folder Include="Exporter" />
<Folder Include="Exporter\ExportColumns" />
<Folder Include="ReportViewer" />
<Folder Include="ReportViewer\Resources" />
<Content Include="ReportViewer\Resources\Icons.16x16.Print.png" />
<Content Include="ReportViewer\Resources\Icons.16x16.BrowserBefore.png" />
<Content Include="ReportViewer\Resources\Icons.16x16.BrowserAfter.png" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>
Loading…
Cancel
Save