📄 sharpreportview.cs
字号:
using (ParameterInput parameterInput = new ParameterInput (e.ReportName,collection)){
DialogResult result = parameterInput.ShowDialog();
}
}
}
void SetTabTitel (string name) {
base.TitleName = String.Format(CultureInfo.CurrentCulture,
"{0} [{1}]",name,this.tabControl.SelectedTab.Text);
}
private void OnTabPageChanged (object sender, EventArgs e) {
string name;
if (String.IsNullOrEmpty(base.FileName)) {
base.UntitledName = GlobalValues.SharpReportPlainFileName;
base.TitleName = GlobalValues.SharpReportPlainFileName;
base.FileName = GlobalValues.SharpReportPlainFileName;
name = base.TitleName;
} else {
name = Path.GetFileName (base.FileName);
}
SetTabTitel (name);
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(true);
this.previewPage.Visible = true;
break;
default:
break;
}
}
//Something was dropped on the designer
private void OnItemDragDrop (object sender,ItemDragDropEventArgs e) {
base.IsDirty = true;
}
private void OnPropertyChanged (object sender,
System.ComponentModel.PropertyChangedEventArgs e) {
base.IsDirty = true;
OnObjectSelected (this,EventArgs.Empty);
}
private void OnModelFileNameChanged (object sender,EventArgs e) {
base.FileName = designerControl.ReportModel.ReportSettings.FileName;
if (designerControl.ReportModel.ReportSettings.InitDone) {
base.IsDirty = true;
this.OnFileNameChanged(e);
this.SetTabTitel(Path.GetFileName (base.FileName));
}
}
private void OnObjectSelected (object sender,EventArgs e) {
if (designerControl.ReportControl.SelectedObject != null) {
BaseReportObject newobj = designerControl.ReportControl.SelectedObject;
newobj.ResumeLayout();
if (PropertyPad.Grid != null) {
PropertyPad.Grid.SelectedObject = designerControl.ReportControl.SelectedObject;
}
}
}
#endregion
#region Calls from outside commands
/// <summary>
/// Set PropertyGrid to ReportSettings
/// </summary>
public void ShowReportSettings () {
if (PropertyPad.Grid != null) {
PropertyPad.Grid.SelectedObject = designerControl.ReportControl.ReportSettings;
PropertyPad.Grid.Refresh();
}
}
/// <summary>
/// Show's Report in PreviewControl
/// </summary>
public void OnPreviewClick () {
reportManager.NoData -= new EventHandler<SharpReportEventArgs> (OnNoDataForReport);
reportManager.NoData += new EventHandler<SharpReportEventArgs> (OnNoDataForReport);
reportManager.ParametersRequest -= new EventHandler<SharpReportParametersEventArgs> (OnParametersRequest);
reportManager.ParametersRequest += new EventHandler<SharpReportParametersEventArgs>(OnParametersRequest);
base.OnSaving(EventArgs.Empty);
this.RunPreview(false);
}
/// <summary>
/// Remove the selected Item from <see cref="BaseDesignerControl"></see>
/// </summary>
public void RemoveSelectedItem () {
this.designerControl.RemoveSelectedItem ();
}
/// <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();
if (setViewDirty) {
this.OnPropertyChanged (this,new System.ComponentModel.PropertyChangedEventArgs("Fired from UpdateView"));
}
}
/// <summary>
/// Tells the <see cref="BaseDesignerControl"></see> to fire an Event if
/// something in the report layout changes
/// </summary>
public void RegisterPropertyChangedEvents () {
SetOnPropertyChangedEvents();
this.designerControl.RegisterEvents();
}
#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;
}
}
public bool Disposed {
get {
return disposed;
}
}
#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;
if (FileUtility.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) {
MessageService.ShowError(e,"SharpReportView:Save");
throw;
}
}
public override void Save() {
this.Save (designerControl.ReportModel.ReportSettings.FileName);
}
/// <summary>
/// Creates a new SharpReportView object
/// </summary>
public SharpReportView():base() {
if (GlobalValues.IsValidPrinter()) {
InitView();
this.UpdateView(false);
} 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 EventHandler <EventArgs>(OnObjectSelected);
reportManager.LoadFromFile (fileName);
base.FileName = fileName;
designerControl.ReportModel.ReportSettings.FileName = fileName;
designerControl.ReportControl.ObjectSelected += new EventHandler <EventArgs>(OnObjectSelected);
if (PropertyPad.Grid != null) {
PropertyPad.Grid.SelectedObject = designerControl.ReportModel.ReportSettings;
PropertyPad.Grid.Refresh();
}
this.designerControl.ReportModel.ReportSettings.AvailableFieldsCollection = reportManager.AvailableFieldsCollection;
// this.designerControl.RegisterEvents();
} catch (Exception e) {
MessageService.ShowError(e,"SharpReportView:Load");
throw ;
}
}
#endregion
#region ICSharpCode.SharpDevelop.Gui.IPrintable interface implementation
public System.Drawing.Printing.PrintDocument PrintDocument {
get {
AbstractRenderer renderer;
if (this.designerControl.ReportModel.DataModel == GlobalEnums.enmPushPullModel.PushData) {
renderer = reportManager.GetRendererForPushDataReports(this.designerControl.ReportModel,
SharpReportView.DataSetFromFile());
} else {
renderer = reportManager.GetRendererForStandartReports(this.designerControl.ReportModel);
}
return renderer.ReportDocument;
}
}
#endregion
#region IDisposable
public override void Dispose(){
if (PropertyPad.Grid != null) {
PropertyPad.Grid.SelectedObject = null;
}
this.disposed = true;
RemoveSideBarItem();
this.Dispose(true);
GC.SuppressFinalize(this);
}
~SharpReportView(){
Dispose(false);
}
protected void Dispose(bool disposing){
if (disposing) {
// Free other state (managed objects).
if (this.reportManager != null) {
this.reportManager.Dispose();
}
if (this.designerControl != null) {
this.designerControl.Dispose();
}
if (this.panel != null) {
this.panel.Dispose();
}
}
// Release unmanaged resources.
// Set large fields to null.
// Call Dispose on your base class.
base.Dispose();
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -