sharpreportengine.cs
来自「SharpDevelop2.0.0 c#开发免费工具」· CS 代码 · 共 580 行 · 第 1/2 页
CS
580 行
}
}
#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("fileName");
}
PreviewStandartReport (fileName,null);
}
public void PreviewStandartReport (string fileName,ReportParameters reportParameters) {
if (fileName.Length == 0) {
throw new ArgumentNullException("fileName");
}
ReportModel model = null;
AbstractRenderer renderer = null;
try {
model = ModelFromFile (fileName);
if (CheckReportParameters (model,reportParameters)) {
renderer = SetupStandartRenderer (model);
if (renderer != null) {
PreviewControl.ShowPreview(renderer,1.5,false);
}
}
} 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 (String.IsNullOrEmpty(fileName)) {
throw new ArgumentNullException("fileName");
}
if (dataTable == null) {
throw new ArgumentNullException("dataTable");
}
ReportModel model = null;
AbstractRenderer renderer = null;
try {
model = ModelFromFile (fileName);
if (!CheckForPushModel(model)) {
throw new SharpReportException ("PrintPushdataReport: No valid ReportModel");
}
renderer = this.SetupPushDataRenderer (model,dataTable);
if (renderer != null) {
PreviewControl.ShowPreview(renderer,1.5,false);
}
} 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 (String.IsNullOrEmpty(fileName)) {
throw new ArgumentNullException("fileName");
}
PrintStandartReport (fileName,null);
}
public void PrintStandartReport (string fileName,ReportParameters reportParameters) {
if (String.IsNullOrEmpty(fileName)) {
throw new ArgumentNullException("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 (String.IsNullOrEmpty(fileName)) {
throw new ArgumentNullException("fileName");
}
if (dataTable == null) {
throw new ArgumentNullException("dataTable");
}
ReportModel model = null;
AbstractRenderer renderer = null;
try {
model = ModelFromFile (fileName);
if (!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 ArgumentNullException("fileName");
}
if (dataTable == null) {
throw new ArgumentNullException("dataTable");
}
ReportModel model = null;
AbstractRenderer renderer = null;
try {
model = ModelFromFile (fileName);
if (!CheckForPushModel(model)) {
throw new MissingModelException();
}
renderer = this.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 (String.IsNullOrEmpty(fileName)) {
throw new ArgumentNullException("fileName");
}
try {
ReportModel model = new ReportModel();
SharpReportCore.LoadModelVisitor modelVisitor = new SharpReportCore.LoadModelVisitor(model,fileName);
model.Accept (modelVisitor);
return model;
} catch (Exception) {
throw;
}
}
#endregion
#region Properties
///<summary>
/// Use this Dialog for previewing a Report
/// This Control is also used by the Designer
/// </summary>
public SharpReportCore.PreviewControl PreviewControl {
get {
if (this.previewControl == null) {
previewControl = new PreviewControl();
}
return this.previewControl;
}
}
public ConnectionObject ConnectionObject {
get {
return connectionObject;
}
set {
connectionObject = value;
}
}
#endregion
#region IDisposable
public void Dispose(){
this.Dispose(true);
GC.SuppressFinalize(this);
}
~SharpReportEngine(){
Dispose(false);
}
protected virtual void Dispose(bool disposing){
try {
if (disposing) {
// Free other state (managed objects).
if (this.connectionObject != null) {
this.connectionObject.Dispose();
}
if (this.dataManager != null) {
this.dataManager.Dispose();
this.dataManager = null;
}
if (this.previewControl != null) {
this.previewControl.Dispose();
}
}
} finally {
// Release unmanaged resources.
// Set large fields to null.
// Call Dispose on your base class.
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?