ActiveReports中提供不同平台的报表浏览器来加载报表,而不同平台的报表浏览器功能也不一致,今天我们来学习如何定制Winforms Viewer控件。
预览效果:
核心代码:
C#
// C# private ToolStripButton tsbPrint = new System.Windows.Forms.ToolStripButton(); private void frmViewer_Load(object sender, EventArgs e) { System.Windows.Forms.ToolStrip toolStrip; System.Windows.Forms.ToolStripItem orgItem; System.Windows.Forms.ToolStripButton orgBtn = null; // Get the image from the standard Print button. toolStrip = this.viewer1.Toolbar.ToolStrip; orgItem = toolStrip.Items[2]; if (orgItem is System.Windows.Forms.ToolStripButton) { orgBtn = (System.Windows.Forms.ToolStripButton)orgItem; } // Delete the standard Print button. toolStrip.Items.RemoveAt(2); // Create a custom button to use in place of the standard Print button. tsbPrint.Text = “HQ Print”; tsbPrint.ToolTipText = “Print to the company headquarters main printer”; tsbPrint.Image = orgBtn.Image; tsbPrint.Enabled = false; // Set the event handler. (viewer.LoadCompleted can be set from the designer) tsbPrint.Click += this.PrintButtonClick; viewer1.LoadCompleted += this.viewer1_LoadCompleted; // Add the custom button to the toolbar. toolStrip.Items.Insert(2, tsbPrint); // Instantiate the report. GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(); // Load a report definition file. rpt.Load(new System.IO.FileInfo(@”..\..\PageReport1.rdlx”)); GrapeCity.ActiveReports.Document.PageDocument pageDocument = new GrapeCity.ActiveReports.Document.PageDocument(rpt); // Load the report into the viewer. viewer1.LoadDocument(pageDocument); } // The event to call when the report is loaded into the Viewer. private void viewer1_LoadCompleted(object sender, EventArgs e) { // Enable the custom button. tsbPrint.Enabled = true; } // The event to call when the custom button is clicked. private void PrintButtonClick(System.Object sender, System.EventArgs e) { // Perform print processing. this.viewer1.Print(true, true, false); }
VB.NET
‘ VB.NET Private tsbPrint As New System.Windows.Forms.ToolStripButton Private Sub frmViewer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim toolStrip As System.Windows.Forms.ToolStrip Dim orgBtn As System.Windows.Forms.ToolStripButton = Nothing Dim orgItem As System.Windows.Forms.ToolStripItem ‘ Get the image from the standard Print button. toolStrip = Me.Viewer1.Toolbar.ToolStrip orgItem = toolStrip.Items(2) If TypeOf orgItem Is System.Windows.Forms.ToolStripButton Then orgBtn = CType(orgItem, ToolStripButton) End If ‘ Delete the standard Print button. toolStrip.Items.RemoveAt(2) ‘ Create a custom button to use in place of the standard Print button. tsbPrint.Text = “HQ Print” tsbPrint.ToolTipText = “Print to the company headquarters main printer” tsbPrint.Image = orgBtn.Image tsbPrint.Enabled = False ‘ Set the event handler (Viewer.LoadCompleted can also be set in the designer) AddHandler tsbPrint.Click, AddressOf Me.PrintButtonClick AddHandler Viewer1.LoadCompleted, AddressOf Me.Viewer1_LoadCompleted ‘ Add the custom button to the toolbar. toolStrip.Items.Insert(2, tsbPrint) ‘ Instantiate the report. Dim rpt As New GrapeCity.ActiveReports.PageReport() ‘ Load a report definition file. rpt.Load(New System.IO.FileInfo(“..\..\PageReport1.rdlx”)) Dim pageDocument As New GrapeCity.ActiveReports.Document.PageDocument(rpt) ‘ Load the report into the viewer. viewer1.LoadDocument(pageDocument) End Sub ‘ The event to call when the report loads in the Viewer. Private Sub Viewer1_LoadCompleted(sender As Object, e As EventArgs) ‘ Enable the custom button. tsbPrint.Enabled = True End Sub ‘ The event to call when the custom button is clicked. Private Sub PrintButtonClick(ByVal sender As Object, ByVal e As System.EventArgs) ‘ Perform print processing. Me.Viewer1.Print(True, True, False) End Sub
了解ActiveReports产品更多特性:
下载产品体验产品功能: