Browse Source

If a Report has no Data, SharpReport prints a message, this message can be set within the ReportSettings, so no localisation is needed.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1696 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Peter Forstmeier 20 years ago
parent
commit
d6ab5a3ec8
  1. 4
      src/AddIns/Misc/SharpReport/SharpReport/SharpReportManager.cs
  2. 25
      src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportView.cs
  3. 5
      src/AddIns/Misc/SharpReport/SharpReportCore/Dialogs/PreviewControl.cs
  4. 8
      src/AddIns/Misc/SharpReport/SharpReportCore/Printing/AbstractRenderer.cs
  5. 5
      src/AddIns/Misc/SharpReport/SharpReportCore/Printing/RenderDataReport.cs
  6. 1
      src/AddIns/Misc/SharpReport/SharpReportCore/Printing/ReportDocument.cs
  7. 11
      src/AddIns/Misc/SharpReport/SharpReportCore/ReportSettings.cs
  8. 63
      src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportEngine.cs

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

@ -193,7 +193,6 @@ namespace SharpReport{
try { try {
AbstractRenderer abstr = this.BuildStandartRenderer (model); AbstractRenderer abstr = this.BuildStandartRenderer (model);
if (abstr != null) { if (abstr != null) {
PreviewControl.ShowPreview (abstr,1.5,standAlone); PreviewControl.ShowPreview (abstr,1.5,standAlone);
} }
@ -217,7 +216,8 @@ namespace SharpReport{
} }
public AbstractRenderer GetRendererForPushDataReports (ReportModel model,DataSet dataSet) { public AbstractRenderer GetRendererForPushDataReports (ReportModel model,
DataSet dataSet) {
if (model == null) { if (model == null) {
throw new ArgumentNullException("model"); throw new ArgumentNullException("model");
} }

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

@ -280,9 +280,7 @@ namespace SharpReportAddin{
private void PreviewStandartReport(bool standAlone){ private void PreviewStandartReport(bool standAlone){
reportManager.NoData -= new EventHandler<SharpReportEventArgs> (OnNoDataForReport);
reportManager.NoData += new EventHandler<SharpReportEventArgs> (OnNoDataForReport);
reportManager.ParametersRequest -= new EventHandler<SharpReportParametersEventArgs> (OnParametersRequest); reportManager.ParametersRequest -= new EventHandler<SharpReportParametersEventArgs> (OnParametersRequest);
reportManager.ParametersRequest += new EventHandler<SharpReportParametersEventArgs>(OnParametersRequest); reportManager.ParametersRequest += new EventHandler<SharpReportParametersEventArgs>(OnParametersRequest);
@ -292,21 +290,6 @@ namespace SharpReportAddin{
#endregion #endregion
#region Events #region Events
void OnNoDataForReport (object sender,SharpReportEventArgs e) {
DialogResult result = MessageBox.Show("This Report contains no Data. Show it as FormSheet",
"SharpReport",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button1);
switch(result) {
case DialogResult.OK:
e.Cancel = false;
break;
case DialogResult.Cancel:
e.Cancel = true;
break;
}
}
///<summary>This Event is called if the Report need's Parameters to run a Query, ///<summary>This Event is called if the Report need's Parameters to run a Query,
/// you can take this as an example how to react to an request for Parameters /// you can take this as an example how to react to an request for Parameters
@ -415,12 +398,10 @@ namespace SharpReportAddin{
/// Show's Report in PreviewControl /// Show's Report in PreviewControl
/// </summary> /// </summary>
public void OnPreviewClick () { public void OnPreviewClick () {
reportManager.NoData -= new EventHandler<SharpReportEventArgs> (OnNoDataForReport);
reportManager.NoData += new EventHandler<SharpReportEventArgs> (OnNoDataForReport);
reportManager.ParametersRequest -= new EventHandler<SharpReportParametersEventArgs> (OnParametersRequest); reportManager.ParametersRequest -= new EventHandler<SharpReportParametersEventArgs> (OnParametersRequest);
reportManager.ParametersRequest += new EventHandler<SharpReportParametersEventArgs>(OnParametersRequest); reportManager.ParametersRequest += new EventHandler<SharpReportParametersEventArgs>(OnParametersRequest);
base.OnSaving(EventArgs.Empty); base.OnSaving(EventArgs.Empty);
this.RunPreview(false); this.RunPreview(false);
} }

5
src/AddIns/Misc/SharpReport/SharpReportCore/Dialogs/PreviewControl.cs

@ -48,7 +48,7 @@ namespace SharpReportCore{
private void ShowPreviewWithUserControl (AbstractRenderer renderer,double zoomFaktor) { private void ShowPreviewWithUserControl (AbstractRenderer renderer,double zoomFaktor) {
System.Drawing.Printing.PrintDocument doc = renderer.ReportDocument; System.Drawing.Printing.PrintDocument doc = renderer.ReportDocument;
printPreviewControl1.InvalidatePreview();
printPreviewControl1.Document = null; printPreviewControl1.Document = null;
printPreviewControl1.Document = doc; printPreviewControl1.Document = doc;
@ -60,7 +60,8 @@ namespace SharpReportCore{
private void ShowPreviewWithDialog (AbstractRenderer renderer,double zoomFaktor) { private void ShowPreviewWithDialog (AbstractRenderer renderer,double zoomFaktor) {
System.Drawing.Printing.PrintDocument doc = renderer.ReportDocument; System.Drawing.Printing.PrintDocument doc = renderer.ReportDocument;
printPreviewControl1.InvalidatePreview();
previewDlg.Document = doc; previewDlg.Document = doc;
previewDlg.Text = renderer.ReportSettings.ReportName; previewDlg.Text = renderer.ReportSettings.ReportName;
previewDlg.Text = renderer.ReportSettings.ReportName; previewDlg.Text = renderer.ReportSettings.ReportName;

8
src/AddIns/Misc/SharpReport/SharpReportCore/Printing/AbstractRenderer.cs

@ -173,6 +173,14 @@ namespace SharpReportCore {
pea.ForceNewPage = true; pea.ForceNewPage = true;
} }
protected void PrintNoDataMessage(PrintPageEventArgs e){
e.Graphics.DrawString(this.reportSettings.NoDataMessage,
this.ReportSettings.DefaultFont,
new SolidBrush(Color.Black),
page.DetailArea);
}
#region Debugg Code #region Debugg Code
///<summary> ///<summary>
/// Use this function to draw controlling rectangles /// Use this function to draw controlling rectangles

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

@ -159,8 +159,9 @@ namespace SharpReportCore {
if (this.dataNavigator.Count == 0){ if (this.dataNavigator.Count == 0){
this.ReportDocument.ReportHasData = false; this.ReportDocument.ReportHasData = false;
} PrintNoDataMessage(rpea.PrintPageEventArgs);
}
base.CurrentSection.SectionOffset = (int)this.page.DetailStart.Y + AbstractRenderer.Gap; base.CurrentSection.SectionOffset = (int)this.page.DetailStart.Y + AbstractRenderer.Gap;
} }

1
src/AddIns/Misc/SharpReport/SharpReportCore/Printing/ReportDocument.cs

@ -83,7 +83,6 @@ namespace SharpReportCore {
if (BodyStart != null) { if (BodyStart != null) {
BodyStart (this,pea); BodyStart (this,pea);
} }
System.Console.WriteLine("ReportDocumnet:'NoData' = {0}",this.reportHasData);
if (this.reportHasData == true) { if (this.reportHasData == true) {
if (this.RenderDetails != null) { if (this.RenderDetails != null) {

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

@ -39,7 +39,7 @@ namespace SharpReportCore{
private string connectionString; private string connectionString;
private string commandText; private string commandText;
private string noDataMessage = "No Data for this Report";
private System.Data.CommandType commandType; private System.Data.CommandType commandType;
private Font defaultFont = new Font("Microsoft Sans Serif", private Font defaultFont = new Font("Microsoft Sans Serif",
@ -633,6 +633,15 @@ namespace SharpReportCore{
} }
} }
[Category("Data")]
public string NoDataMessage {
get {
return noDataMessage;
}
set {
noDataMessage = value;
}
}
#endregion #endregion

63
src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportEngine.cs

@ -41,7 +41,6 @@ namespace SharpReportCore {
private ConnectionObject connectionObject; private ConnectionObject connectionObject;
private DataManager dataManager; private DataManager dataManager;
public event EventHandler <SharpReportEventArgs> NoData;
public event EventHandler <SharpReportParametersEventArgs> ParametersRequest; public event EventHandler <SharpReportParametersEventArgs> ParametersRequest;
/// <summary> /// <summary>
/// This event is fired before a Section is Rendered, you can use /// This event is fired before a Section is Rendered, you can use
@ -158,7 +157,7 @@ namespace SharpReportCore {
protected SharpReportCore.AbstractRenderer SetupStandartRenderer (ReportModel model) { protected SharpReportCore.AbstractRenderer SetupStandartRenderer (ReportModel model) {
AbstractRenderer abstr = null; AbstractRenderer abstr = null;
try { try {
switch (model.ReportSettings.ReportType) { switch (model.ReportSettings.ReportType) {
@ -173,29 +172,13 @@ namespace SharpReportCore {
if (this.dataManager.DataSource != null) { if (this.dataManager.DataSource != null) {
abstr = new RendererFactory().Create (model,dataManager); abstr = new RendererFactory().Create (model,dataManager);
} }
}
} else {
if (NoData != null) {
SharpReportEventArgs e = new SharpReportEventArgs();
e.PageNumber = 0;
e.Cancel = false;
NoData (this,e);
if (e.Cancel == true) {
// If we cancel, we have to create an instance of any kind of renderer
//to set the cancel flag to true
abstr = new RendererFactory().Create (model,null);
abstr.Cancel = true;
} else {
// Print the report only as Formsheet -> only Text and Graphic Items
abstr = new RendererFactory().Create (model,null);
}
}
}
break; break;
default: default:
throw new SharpReportException ("SharpReportmanager:SetupRenderer -> Unknown Reporttype"); throw new SharpReportException ("SharpReportmanager:SetupRenderer -> Unknown Reporttype");
} }
abstr.Rendering += new EventHandler<SectionRenderEventArgs>(OnSectionPrinting); abstr.Rendering += new EventHandler<SectionRenderEventArgs>(OnSectionPrinting);
abstr.SectionRendered +=new EventHandler<SectionRenderEventArgs>(OnSectionPrinted); abstr.SectionRendered +=new EventHandler<SectionRenderEventArgs>(OnSectionPrinted);
return abstr; return abstr;
@ -234,12 +217,12 @@ namespace SharpReportCore {
AbstractRenderer abstr = null; AbstractRenderer abstr = null;
this.dataManager = new DataManager (list,model.ReportSettings); this.dataManager = new DataManager (list,model.ReportSettings);
if (this.dataManager != null) { if (this.dataManager != null) {
this.dataManager.DataBind(); this.dataManager.DataBind();
if (this.dataManager.DataSource != null) { if (this.dataManager.DataSource != null) {
abstr = new RendererFactory().Create (model,dataManager); abstr = new RendererFactory().Create (model,dataManager);
} }
abstr.Rendering += new EventHandler<SectionRenderEventArgs>(OnSectionPrinting); abstr.Rendering += new EventHandler<SectionRenderEventArgs>(OnSectionPrinting);
abstr.SectionRendered +=new EventHandler<SectionRenderEventArgs>(OnSectionPrinted); abstr.SectionRendered +=new EventHandler<SectionRenderEventArgs>(OnSectionPrinted);
return abstr; return abstr;
@ -270,6 +253,7 @@ namespace SharpReportCore {
if (this.dataManager.DataSource != null) { if (this.dataManager.DataSource != null) {
abstr = new RendererFactory().Create (model,dataManager); abstr = new RendererFactory().Create (model,dataManager);
} }
abstr.Rendering += new EventHandler<SectionRenderEventArgs>(OnSectionPrinting); abstr.Rendering += new EventHandler<SectionRenderEventArgs>(OnSectionPrinting);
abstr.SectionRendered +=new EventHandler<SectionRenderEventArgs>(OnSectionPrinted); abstr.SectionRendered +=new EventHandler<SectionRenderEventArgs>(OnSectionPrinted);
@ -290,12 +274,12 @@ namespace SharpReportCore {
/// <returns></returns> /// <returns></returns>
protected AbstractRenderer AbstractRenderer (ReportModel model) { protected AbstractRenderer AbstractRenderer (ReportModel model) {
if (model == null) { if (model == null) {
throw new MissingModelException(); throw new MissingModelException();
} }
try { try {
AbstractRenderer abstr = SetupStandartRenderer(model); return SetupStandartRenderer(model);
return abstr;
} catch (Exception) { } catch (Exception) {
throw; throw;
} }
@ -480,38 +464,7 @@ namespace SharpReportCore {
} }
} }
/*
/// <summary>
/// Print a PullModel Report
/// </summary>
/// <param name="fileName"></param>
/// <param name="dataTable"></param>
/// <param name="showPrintDialog">if set to true, show the <see cref="PrintDialog"></see>
/// </param>
[Obsolete("Use public void PrintPushDataReport (string fileName,DataTable dataTable)")]
public void PrintPushDataReport (string fileName,
DataTable dataTable,
bool showPrintDialog) {
if (String.IsNullOrEmpty(fileName)) {
throw new ArgumentNullException("fileName");
}
if (dataTable == null) {
throw new ArgumentNullException("dataTable");
}
AbstractRenderer renderer = null;
try {
ReportModel model = this.ValidatePushModel(fileName);
renderer = SetupPushDataRenderer (model,dataTable);
SharpReportEngine.ReportToPrinter(renderer,model);
} catch (Exception) {
throw;
}
}
*/
/// <summary> /// <summary>
/// Print a PushModel Report, if <see cref="UseStandartPrinter"></see> in /// Print a PushModel Report, if <see cref="UseStandartPrinter"></see> in

Loading…
Cancel
Save