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

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

@ -280,9 +280,7 @@ namespace SharpReportAddin{ @@ -280,9 +280,7 @@ namespace SharpReportAddin{
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);
@ -292,21 +290,6 @@ namespace SharpReportAddin{ @@ -292,21 +290,6 @@ namespace SharpReportAddin{
#endregion
#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,
/// you can take this as an example how to react to an request for Parameters
@ -415,12 +398,10 @@ namespace SharpReportAddin{ @@ -415,12 +398,10 @@ namespace SharpReportAddin{
/// Show's Report in PreviewControl
/// </summary>
public void OnPreviewClick () {
reportManager.NoData -= new EventHandler<SharpReportEventArgs> (OnNoDataForReport);
reportManager.NoData += new EventHandler<SharpReportEventArgs> (OnNoDataForReport);
public void OnPreviewClick () {
reportManager.ParametersRequest -= new EventHandler<SharpReportParametersEventArgs> (OnParametersRequest);
reportManager.ParametersRequest += new EventHandler<SharpReportParametersEventArgs>(OnParametersRequest);
base.OnSaving(EventArgs.Empty);
this.RunPreview(false);
}

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

@ -48,7 +48,7 @@ namespace SharpReportCore{ @@ -48,7 +48,7 @@ namespace SharpReportCore{
private void ShowPreviewWithUserControl (AbstractRenderer renderer,double zoomFaktor) {
System.Drawing.Printing.PrintDocument doc = renderer.ReportDocument;
printPreviewControl1.InvalidatePreview();
printPreviewControl1.Document = null;
printPreviewControl1.Document = doc;
@ -60,7 +60,8 @@ namespace SharpReportCore{ @@ -60,7 +60,8 @@ namespace SharpReportCore{
private void ShowPreviewWithDialog (AbstractRenderer renderer,double zoomFaktor) {
System.Drawing.Printing.PrintDocument doc = renderer.ReportDocument;
printPreviewControl1.InvalidatePreview();
previewDlg.Document = doc;
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 { @@ -173,6 +173,14 @@ namespace SharpReportCore {
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
///<summary>
/// Use this function to draw controlling rectangles

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

@ -159,8 +159,9 @@ namespace SharpReportCore { @@ -159,8 +159,9 @@ namespace SharpReportCore {
if (this.dataNavigator.Count == 0){
this.ReportDocument.ReportHasData = false;
}
PrintNoDataMessage(rpea.PrintPageEventArgs);
}
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 { @@ -83,7 +83,6 @@ namespace SharpReportCore {
if (BodyStart != null) {
BodyStart (this,pea);
}
System.Console.WriteLine("ReportDocumnet:'NoData' = {0}",this.reportHasData);
if (this.reportHasData == true) {
if (this.RenderDetails != null) {

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

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

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

@ -41,7 +41,6 @@ namespace SharpReportCore { @@ -41,7 +41,6 @@ namespace SharpReportCore {
private ConnectionObject connectionObject;
private DataManager dataManager;
public event EventHandler <SharpReportEventArgs> NoData;
public event EventHandler <SharpReportParametersEventArgs> ParametersRequest;
/// <summary>
/// This event is fired before a Section is Rendered, you can use
@ -158,7 +157,7 @@ namespace SharpReportCore { @@ -158,7 +157,7 @@ namespace SharpReportCore {
protected SharpReportCore.AbstractRenderer SetupStandartRenderer (ReportModel model) {
AbstractRenderer abstr = null;
try {
switch (model.ReportSettings.ReportType) {
@ -173,29 +172,13 @@ namespace SharpReportCore { @@ -173,29 +172,13 @@ namespace SharpReportCore {
if (this.dataManager.DataSource != null) {
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;
default:
throw new SharpReportException ("SharpReportmanager:SetupRenderer -> Unknown Reporttype");
}
abstr.Rendering += new EventHandler<SectionRenderEventArgs>(OnSectionPrinting);
abstr.SectionRendered +=new EventHandler<SectionRenderEventArgs>(OnSectionPrinted);
return abstr;
@ -234,12 +217,12 @@ namespace SharpReportCore { @@ -234,12 +217,12 @@ namespace SharpReportCore {
AbstractRenderer abstr = null;
this.dataManager = new DataManager (list,model.ReportSettings);
if (this.dataManager != null) {
this.dataManager.DataBind();
if (this.dataManager.DataSource != null) {
abstr = new RendererFactory().Create (model,dataManager);
}
abstr.Rendering += new EventHandler<SectionRenderEventArgs>(OnSectionPrinting);
abstr.SectionRendered +=new EventHandler<SectionRenderEventArgs>(OnSectionPrinted);
return abstr;
@ -270,6 +253,7 @@ namespace SharpReportCore { @@ -270,6 +253,7 @@ namespace SharpReportCore {
if (this.dataManager.DataSource != null) {
abstr = new RendererFactory().Create (model,dataManager);
}
abstr.Rendering += new EventHandler<SectionRenderEventArgs>(OnSectionPrinting);
abstr.SectionRendered +=new EventHandler<SectionRenderEventArgs>(OnSectionPrinted);
@ -290,12 +274,12 @@ namespace SharpReportCore { @@ -290,12 +274,12 @@ namespace SharpReportCore {
/// <returns></returns>
protected AbstractRenderer AbstractRenderer (ReportModel model) {
if (model == null) {
throw new MissingModelException();
}
try {
AbstractRenderer abstr = SetupStandartRenderer(model);
return abstr;
return SetupStandartRenderer(model);
} catch (Exception) {
throw;
}
@ -480,38 +464,7 @@ namespace SharpReportCore { @@ -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>
/// Print a PushModel Report, if <see cref="UseStandartPrinter"></see> in

Loading…
Cancel
Save