📄 sharpreportview.cs
字号:
}
case GlobalEnums.enmPushPullModel.PushData:{
PreviewPushReport ();
break;
}
default:
throw new SharpReportException("Wrong ReportType");
}
} catch (Exception e) {
MessageBox.Show("Error in RunPreview" + e.Message);
}
}
private void PreviewPushReport (){
try {
using (OpenFileDialog openFileDialog = new OpenFileDialog()){
openFileDialog.Filter = GlobalValues.XsdFileFilter;
openFileDialog.DefaultExt = GlobalValues.XsdExtension;
openFileDialog.AddExtension = true;
if(openFileDialog.ShowDialog() == DialogResult.OK){
if (openFileDialog.FileName.Length > 0) {
DataSet ds = new DataSet();
ds.ReadXml (openFileDialog.FileName);
reportManager.ReportPreviewPushData(designerControl.ReportModel,
ds.Tables[0],
true);
}
}
}
}catch (Exception e){
this.messageService.ShowError (e,e.Message);
}
}
private void PreviewStandartReport(){
reportManager.NoData -= new SharpReportEventHandler (OnNoDataForReport);
reportManager.NoData += new SharpReportEventHandler (OnNoDataForReport);
reportManager.ParametersRequest -= new SharpReportParametersEventHandler (OnParametersRequest);
reportManager.ParametersRequest += new SharpReportParametersEventHandler (OnParametersRequest);
reportManager.ReportPreview (designerControl.ReportModel, true);
}
#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
/// The other posibillity is, to fill/change the ParametersCollection by Code or
/// just write an small Dialog to enter the Parameter values
/// </summary>
private void OnParametersRequest (object sender,SharpReportParametersEventArgs e) {
AbstractParametersCollection collection = e.SqlParametersCollection;
if (collection != null && collection.Count > 0) {
using (ParameterInput parameterInput = new ParameterInput (e.ReportName,collection)){
DialogResult result = parameterInput.ShowDialog();
}
}
}
private void OnTabPageChanged (object sender, EventArgs e) {
string name = Path.GetFileName (base.FileName);
base.TitleName = name + "[" + tabControl.SelectedTab.Text + "]";
switch (tabControl.SelectedIndex) {
case 0 :
break;
case 1:
//Create the preview Control only when needed
if (tabControl.SelectedTab.Controls.Count == 0 ){
tabControl.SelectedTab.Controls.Add(reportManager.PreviewControl);
}
RunPreview();
this.previewPage.Visible = true;
break;
default:
break;
}
}
//Something was dropped on the designer
private void OnItemDragDrop (object sender,ItemDragDropEventArgs e) {
base.IsDirty = true;
}
public void OnPropertyChanged (object sender,PropertyChangeEventArgs e) {
base.IsDirty = true;
}
private void OnSettingsChanged (object sender,EventArgs e) {
base.IsDirty = true;
}
private void OnModelFileNameChanged (object sender,EventArgs e) {
base.FileName = designerControl.ReportModel.ReportSettings.FileName;
base.IsDirty = true;
this.OnFileNameChanged(e);
}
private void OnObjectSelected (object sender,EventArgs e) {
if (designerControl.ReportControl.SelectedObject != null) {
PropertyPad.Grid.SelectedObject = designerControl.ReportControl.SelectedObject;
}
}
protected override void OnFileNameChanged(System.EventArgs e) {
base.OnFileNameChanged(e);
}
#endregion
#region Calls from outside commands
/// <summary>
/// Set PropertyGrid to ReportSettings
/// </summary>
public void ShowReportSettings () {
PropertyPad.Grid.SelectedObject = designerControl.ReportControl.ReportSettings;
PropertyPad.Grid.Refresh();
}
/// <summary>
/// Show's Report in PreviewControl
/// </summary>
public void OnPreviewClick () {
reportManager.NoData -= new SharpReportEventHandler (OnNoDataForReport);
reportManager.NoData += new SharpReportEventHandler (OnNoDataForReport);
reportManager.ParametersRequest -= new SharpReportParametersEventHandler (OnParametersRequest);
reportManager.ParametersRequest += new SharpReportParametersEventHandler (OnParametersRequest);
base.OnSaving(EventArgs.Empty);
reportManager.ReportPreview (designerControl.ReportModel,
false);
}
/// <summary>
/// This Method is called after something has changed like Load a new report
/// Change Sorting or Grouping etc. to update the View and set the DirtyFlag
/// </summary>
/// <param name="setViewDirty">If true, set the DirtyFlag and Fire the PropertyChanged Event</param>
public void UpdateView(bool setViewDirty) {
this.tabControl.SelectedIndex = 0;
this.OnTabPageChanged(this,EventArgs.Empty);
SetOnPropertyChangedEvents();
this.SetFieldsExplorer();
if (setViewDirty) {
this.OnPropertyChanged (this,new PropertyChangeEventArgs("Fired from UpdateView"));
}
}
#endregion
#region Propertys
/// <summary>
/// Returns the complete Designer
/// </summary>
public BaseDesignerControl DesignerControl {
get {
return designerControl;
}
}
///<summary>
/// returns a ReportManager
/// </summary>
public SharpReportManager ReportManager {
get {
return reportManager;
}
}
#endregion
#region AbstractViewContent requirements
/// <summary>
/// The <see cref="System.Windows.Forms.Control"/> representing the view
/// </summary>
public override Control Control {
get {
return panel;
}
}
public override void RedrawContent() {
SetHeadLines();
}
/// <summary>
/// Save's the Report
/// </summary>
/// <param name="fileName"></param>
public override void Save(string fileName) {
try {
designerControl.ReportModel.ReportSettings.FileName = fileName;
FileUtilityService fileUtilityService = (FileUtilityService)ServiceManager.Services.GetService(typeof(FileUtilityService));
if (fileUtilityService.IsValidFileName(fileName)) {
OnSaving(EventArgs.Empty);
reportManager.SaveToFile (fileName);
base.IsDirty = false;
OnSaved(new SaveEventArgs(true));
} else {
messageService.ShowError ("<" + fileName + "> invalid Filename");
base.IsDirty = true;
}
} catch (Exception e) {
MessageBox.Show (e.Message,"View:Save");
throw;
}
}
public override void Save() {
this.Save (designerControl.ReportModel.ReportSettings.FileName);
}
/// <summary>
/// Creates a new SharpReportView object
/// </summary>
public SharpReportView():base() {
GrapServices();
if (GlobalValues.IsValidPrinter()) {
InitView();
} else {
messageService.ShowError(resourceService.GetString("Sharpreport.Error.NoPrinter"));
}
}
/// <summary>
/// Loads a new file into View
/// </summary>
/// <param name="fileName">A valid Filename</param>
public override void Load(string fileName){
try {
designerControl.ReportControl.ObjectSelected -= new SelectedEventHandler (OnObjectSelected);
reportManager.LoadFromFile (fileName);
base.FileName = fileName;
designerControl.ReportModel.ReportSettings.FileName = fileName;
designerControl.ReportControl.ObjectSelected += new SelectedEventHandler (OnObjectSelected);
PropertyPad.Grid.SelectedObject = designerControl.ReportModel.ReportSettings;
PropertyPad.Grid.Refresh();
UpdateView(false);
} catch (Exception e) {
messageService.ShowError(e.Message);
throw ;
}
}
/// <summary>
/// Cleans up all used resources
/// </summary>
public override void Dispose(){
try {
PropertyPad.Grid.SelectedObject = null;
RemoveSideBarItem();
this.designerControl.Dispose();
this.reportManager = null;
} catch (Exception e){
messageService.ShowError(e.Message);
return;
}
}
#endregion
#region ICSharpCode.SharpDevelop.Gui.IPrintable interface implementation
public System.Drawing.Printing.PrintDocument PrintDocument {
get {
// AbstractRenderer renderer = reportManager.AbstractRenderer(this.designerControl.ReportModel);
AbstractRenderer renderer = reportManager.GetRenderer(this.designerControl.ReportModel);
return renderer.ReportDocument;
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -