📄 sharpreportengine.cs
字号:
public ReportParameters LoadParameters (string fileName) {
if (fileName.Length == 0) {
throw new ArgumentNullException("PreviewPushDataReport FileName");
}
ReportModel model = null;
try {
model = ModelFromFile (fileName);
ReportParameters pars = new ReportParameters();
pars.ConnectionObject = null;
pars.SqlParameters.AddRange (model.ReportSettings.SqlParametersCollection);
return pars;
} catch (Exception) {
throw;
}
}
#endregion
#region Preview
///<summary>
/// Opens the PreviewDialog as standalone, so, no need for Designer
/// </summary>
///<param name="fileName">Report's Filenema</param>
/// <param name="/// <summary>
/// send report to printer
/// </summary>
/// <param name="fileName">Path to ReportFile</param>
public void PreviewStandartReport (string fileName) {
if (fileName.Length == 0) {
throw new ArgumentNullException("PreviewPushDataReport FileName");
}
PreviewStandartReport (fileName,null);
}
public void PreviewStandartReport (string fileName,ReportParameters reportParameters) {
if (fileName.Length == 0) {
throw new ArgumentNullException("PreviewPushDataReport:FileName");
}
ReportModel model = null;
AbstractRenderer renderer = null;
PrintDocument doc = null;
try {
model = ModelFromFile (fileName);
if (CheckReportParameters (model,reportParameters)) {
renderer = SetupStandartRenderer (model);
if (renderer.Cancel == false) {
doc = renderer.ReportDocument;
PreviewControl.ShowPreviewWithDialog (renderer,1.5);
}
}
} catch (Exception) {
throw;
}
}
/// <summary>
/// Preview a "PushModel - Report"
/// </summary>
/// <param name="fileName">Filename to the location of the ReportFile</param>
/// <param name="dataTable">a Datatable, containing the data</param>
public void PreviewPushDataReport (string fileName,DataTable dataTable) {
if (fileName.Length == 0) {
throw new ArgumentException("PreviewPushDataReport fileName");
}
if (dataTable == null) {
throw new ArgumentNullException("PreviewPushDataReport dataTable");
}
ReportModel model = null;
AbstractRenderer renderer = null;
PrintDocument doc = null;
try {
model = ModelFromFile (fileName);
if (!this.CheckForPushModel(model)) {
throw new SharpReportException ("PrintPushdataReport: No valid ReportModel");
}
renderer = SetupPushDataRenderer (model,dataTable);
if (renderer.Cancel == false) {
doc = renderer.ReportDocument;
PreviewControl.ShowPreviewWithDialog (renderer,1.5);
}
} catch (Exception) {
}
}
#endregion
#region Printing
private void ReportToPrinter (AbstractRenderer renderer,ReportModel model) {
if (renderer == null) {
throw new NullReferenceException("SparpReportEngine:ReportToPrinter: No valid Renderer");
}
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 {
DialogResult result = dlg.ShowDialog();
// If the result is OK then print the document.
if (result==DialogResult.OK){
dlg.Document.Print();
}
}
}
}
}
/// <summary>
/// send a Standart (PullModel/FormSheet) Report to printer
/// </summary>
/// <param name="fileName">Path to ReportFile</param>
/// <param name="renderTo">Type of renderer currently only "ToText" is implemented</param>
public void PrintStandartReport (string fileName) {
if (fileName.Length == 0) {
throw new ArgumentException("PreviewPushDataReport fileName");
}
PrintStandartReport (fileName,null);
}
public void PrintStandartReport (string fileName,ReportParameters reportParameters) {
if (fileName.Length == 0) {
throw new ArgumentException("PreviewPushDataReport fileName");
}
ReportModel model = null;
AbstractRenderer renderer = null;
try {
model = ModelFromFile (fileName);
if (CheckReportParameters (model,reportParameters)) {
renderer = SetupStandartRenderer (model);
this.ReportToPrinter (renderer,model);
}
} catch (Exception) {
throw;
}
}
/// <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>
public void PrintPushDataReport (string fileName,
DataTable dataTable,
bool showPrintDialog) {
if (fileName.Length == 0) {
throw new ArgumentException("PreviewPushDataReport fileName");
}
if (dataTable == null) {
throw new ArgumentNullException("PreviewPushDataReport dataTable");
}
ReportModel model = null;
AbstractRenderer renderer = null;
try {
model = ModelFromFile (fileName);
if (!this.CheckForPushModel(model)) {
throw new SharpReportException ("PrintPushdataReport: No valid ReportModel");
}
renderer = SetupPushDataRenderer (model,dataTable);
this.ReportToPrinter(renderer,model);
} catch (Exception) {
}
}
/// <summary>
/// Print a PullModel Report, if <see cref="UseStandartPrinter"></see> in
/// <see cref="ReportSettings"></see> is true, the Report is send directly to the printer,
/// otherwise, we show a <see cref="PrintDialog"></see>
/// </summary>
/// <param name="fileName"></param>
/// <param name="dataTable"></param>
public void PrintPushDataReport (string fileName,DataTable dataTable) {
if (fileName.Length == 0) {
throw new ArgumentException("PreviewPushDataReport FileName");
}
if (dataTable == null) {
throw new ArgumentNullException("PreviewPushDataReport DataTable");
}
ReportModel model = null;
AbstractRenderer renderer = null;
try {
model = ModelFromFile (fileName);
if (!this.CheckForPushModel(model)) {
throw new SharpReportException ("PrintPushdataReport: No valid ReportModel");
}
renderer = SetupPushDataRenderer (model,dataTable);
this.ReportToPrinter(renderer,model);
} catch (Exception) {
}
}
#endregion
#region Loading report
/// <summary>
/// Load's a <see cref="ReportModel"></see> from File using the
/// <see cref="LoadModelVisitor"></see>
/// </summary>
/// <param name="fileName"></param>
/// <returns><see cref="ReportModel"></see></returns>
protected ReportModel ModelFromFile (string fileName) {
if (fileName.Length == 0) {
throw new ArgumentException("ModelfromFile:FileName");
}
ReportModel model = new ReportModel();
SharpReportCore.LoadModelVisitor modelVisitor = new SharpReportCore.LoadModelVisitor(model,fileName);
model.Accept (modelVisitor);
return model;
}
#endregion
#region Properties
///<summary>
/// Use this Dialog for previewing a Report
/// This Control is also used by the Designer
/// </summary>
public SharpReportCore.PaintArea PreviewControl {
get {
if (paintArea == null) {
paintArea = new PaintArea();
paintArea.BackColor = System.Drawing.Color.White;
paintArea.Dock = DockStyle.Fill;
}
return paintArea;
}
}
public ConnectionObject ConnectionObject {
get {
return connectionObject;
}
set {
connectionObject = value;
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -