|
|
|
@ -59,7 +59,7 @@ namespace SharpReportCore {
@@ -59,7 +59,7 @@ namespace SharpReportCore {
|
|
|
|
|
if (model.ReportSettings.ReportType != GlobalEnums.enmReportType.FormSheet) { |
|
|
|
|
if (this.connectionObject == null) { |
|
|
|
|
|
|
|
|
|
if (String.IsNullOrEmpty(model.ReportSettings.ConnectionString)) { |
|
|
|
|
if (!String.IsNullOrEmpty(model.ReportSettings.ConnectionString)) { |
|
|
|
|
this.connectionObject = new ConnectionObject (model.ReportSettings.ConnectionString); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -93,7 +93,7 @@ namespace SharpReportCore {
@@ -93,7 +93,7 @@ namespace SharpReportCore {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SetSqlParameters (ReportModel model,AbstractParametersCollection sqlParams) { |
|
|
|
|
private static void SetSqlParameters (ReportModel model,AbstractParametersCollection sqlParams) { |
|
|
|
|
if ((sqlParams == null)||(sqlParams.Count == 0)) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
@ -112,18 +112,6 @@ namespace SharpReportCore {
@@ -112,18 +112,6 @@ namespace SharpReportCore {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void ApplyReportParameters (ReportModel model,ReportParameters parameters){ |
|
|
|
|
if (model == null) { |
|
|
|
|
throw new MissingModelException(); |
|
|
|
|
} |
|
|
|
|
if (parameters == null ){ |
|
|
|
|
throw new ArgumentNullException("parameters"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
SetSqlParameters (model,parameters.SqlParameters); |
|
|
|
|
SetCustomSorting (model,parameters.SortColumnCollection); |
|
|
|
|
} |
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Setup for print/preview
|
|
|
|
@ -136,7 +124,7 @@ namespace SharpReportCore {
@@ -136,7 +124,7 @@ namespace SharpReportCore {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void InitDataContainer (ReportSettings settings) { |
|
|
|
|
|
|
|
|
|
System.Console.WriteLine("Engine:InitDataContainer eortType {0}",settings.ReportType); |
|
|
|
|
if (settings.ReportType == GlobalEnums.enmReportType.DataReport) { |
|
|
|
|
if (settings.CommandText != null) { |
|
|
|
|
try { |
|
|
|
@ -147,8 +135,6 @@ namespace SharpReportCore {
@@ -147,8 +135,6 @@ namespace SharpReportCore {
|
|
|
|
|
settings); |
|
|
|
|
|
|
|
|
|
this.dataManager.DataBind(); |
|
|
|
|
}else { |
|
|
|
|
throw new NullReferenceException("SetupContainer:connectionObject is missing"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
@ -183,46 +169,49 @@ namespace SharpReportCore {
@@ -183,46 +169,49 @@ namespace SharpReportCore {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected SharpReportCore.AbstractRenderer SetupStandartRenderer (ReportModel model) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AbstractRenderer abstr = null; |
|
|
|
|
switch (model.ReportSettings.ReportType) { |
|
|
|
|
//FormSheets reports
|
|
|
|
|
case GlobalEnums.enmReportType.FormSheet: |
|
|
|
|
abstr = new RendererFactory().Create (model,null); |
|
|
|
|
break; |
|
|
|
|
//Databased reports
|
|
|
|
|
case GlobalEnums.enmReportType.DataReport : |
|
|
|
|
// DataManager dataManager = SetupDataContainer (model.ReportSettings);
|
|
|
|
|
InitDataContainer (model.ReportSettings); |
|
|
|
|
if (this.dataManager != null) { |
|
|
|
|
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); |
|
|
|
|
try { |
|
|
|
|
switch (model.ReportSettings.ReportType) { |
|
|
|
|
//FormSheets reports
|
|
|
|
|
case GlobalEnums.enmReportType.FormSheet: |
|
|
|
|
abstr = new RendererFactory().Create (model,null); |
|
|
|
|
break; |
|
|
|
|
//Databased reports
|
|
|
|
|
case GlobalEnums.enmReportType.DataReport : |
|
|
|
|
InitDataContainer (model.ReportSettings); |
|
|
|
|
if (this.dataManager != null) { |
|
|
|
|
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"); |
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
throw new SharpReportException ("SharpReportmanager:SetupRenderer -> Unknown Reporttype"); |
|
|
|
|
} |
|
|
|
|
return abstr; |
|
|
|
|
} catch (Exception) { |
|
|
|
|
throw; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return abstr; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -268,8 +257,13 @@ namespace SharpReportCore {
@@ -268,8 +257,13 @@ namespace SharpReportCore {
|
|
|
|
|
if (model == null) { |
|
|
|
|
throw new MissingModelException(); |
|
|
|
|
} |
|
|
|
|
AbstractRenderer abstr = SetupStandartRenderer(model); |
|
|
|
|
return abstr; |
|
|
|
|
try { |
|
|
|
|
AbstractRenderer abstr = SetupStandartRenderer(model); |
|
|
|
|
return abstr; |
|
|
|
|
} catch (Exception) { |
|
|
|
|
throw; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -316,6 +310,7 @@ namespace SharpReportCore {
@@ -316,6 +310,7 @@ namespace SharpReportCore {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void PreviewStandartReport (string fileName,ReportParameters reportParameters) { |
|
|
|
|
|
|
|
|
|
if (String.IsNullOrEmpty(fileName)) { |
|
|
|
|
throw new ArgumentNullException("fileName"); |
|
|
|
|
} |
|
|
|
@ -361,7 +356,7 @@ namespace SharpReportCore {
@@ -361,7 +356,7 @@ namespace SharpReportCore {
|
|
|
|
|
PreviewControl.ShowPreview(renderer,1.5,false); |
|
|
|
|
} |
|
|
|
|
} catch (Exception) { |
|
|
|
|
|
|
|
|
|
throw; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -369,16 +364,18 @@ namespace SharpReportCore {
@@ -369,16 +364,18 @@ namespace SharpReportCore {
|
|
|
|
|
|
|
|
|
|
#region Printing
|
|
|
|
|
|
|
|
|
|
private void ReportToPrinter (AbstractRenderer renderer,ReportModel model) { |
|
|
|
|
private static void ReportToPrinter (AbstractRenderer renderer,ReportModel model) { |
|
|
|
|
if (renderer == null) { |
|
|
|
|
throw new NullReferenceException("SparpReportEngine:ReportToPrinter: No valid Renderer"); |
|
|
|
|
throw new ArgumentNullException("renderer"); |
|
|
|
|
} |
|
|
|
|
if (model == null) { |
|
|
|
|
throw new ArgumentNullException("model"); |
|
|
|
|
} |
|
|
|
|
PrintDocument doc = null; |
|
|
|
|
if (renderer.Cancel == false) { |
|
|
|
|
doc = renderer.ReportDocument; |
|
|
|
|
using (PrintDialog dlg = new PrintDialog()) { |
|
|
|
|
dlg.Document = doc; |
|
|
|
|
// MessageBox.Show (model.ReportSettings.UseStandartPrinter.ToString());
|
|
|
|
|
if (model.ReportSettings.UseStandartPrinter == true) { |
|
|
|
|
dlg.Document.Print(); |
|
|
|
|
} else { |
|
|
|
@ -417,12 +414,13 @@ namespace SharpReportCore {
@@ -417,12 +414,13 @@ namespace SharpReportCore {
|
|
|
|
|
model = ModelFromFile (fileName); |
|
|
|
|
if (CheckReportParameters (model,reportParameters)) { |
|
|
|
|
renderer = SetupStandartRenderer (model); |
|
|
|
|
this.ReportToPrinter (renderer,model); |
|
|
|
|
SharpReportEngine.ReportToPrinter (renderer,model); |
|
|
|
|
} |
|
|
|
|
} catch (Exception) { |
|
|
|
|
throw; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Print a PullModel Report
|
|
|
|
|
/// </summary>
|
|
|
|
@ -450,9 +448,10 @@ namespace SharpReportCore {
@@ -450,9 +448,10 @@ namespace SharpReportCore {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
renderer = SetupPushDataRenderer (model,dataTable); |
|
|
|
|
this.ReportToPrinter(renderer,model); |
|
|
|
|
SharpReportEngine.ReportToPrinter(renderer,model); |
|
|
|
|
|
|
|
|
|
} catch (Exception) { |
|
|
|
|
throw; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -481,9 +480,10 @@ namespace SharpReportCore {
@@ -481,9 +480,10 @@ namespace SharpReportCore {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
renderer = this.SetupPushDataRenderer (model,dataTable); |
|
|
|
|
this.ReportToPrinter(renderer,model); |
|
|
|
|
SharpReportEngine.ReportToPrinter(renderer,model); |
|
|
|
|
|
|
|
|
|
} catch (Exception) { |
|
|
|
|
throw; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|