frmReportViewer Imports RunBase.ModuleBase Imports CrystalDecisions.Shared Imports CrystalDecisions.CrystalReports.Engine Public Class frmReportViewer Dim RptFileName As String Dim ReportName As String Dim ReportDoc As New ReportDocument Dim SQLStr As String Public Sub New(ByRef RptDoc As ReportDocument, ByVal RptTitle As String, Optional ByVal _SQLStr As String = "") InitializeComponent() ReportDoc = RptDoc Me.ReportName = RptTitle Me.Text = ReportName SQLStr = _SQLStr If gRptInNewWin = 0 Then Me.MdiParent = MainForm Me.Size = New Size(MainForm.clientsize.width * 3 / 4, MainForm.clientsize.height * 3 / 4) Else Me.WindowState = FormWindowState.Maximized End If End Sub Private Sub frmReportViewer_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated Dim clsLayout As New RunBase.clsParentLayout If gRptInNewWin = 0 Then Call clsLayout.SetToolBarButton(False, False, False, False, False, False, False, False, False, True, True) End If End Sub Private Sub frmReportViewer_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown Dim myLogonInfo As New TableLogOnInfo Dim IO As New RunBase.clsParentFileSystem If Not IO.CheckFileExist(Microsoft.VisualBasic.Right(ReportDoc.FileName, Len(ReportDoc.FileName) - 9)) Then MsgBox(GL("@DSL263"), MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, ReportName) Call MouseDefault() Me.Close() Exit Sub End If For Each myTable As CrystalDecisions.CrystalReports.Engine.Table In ReportDoc.Database.Tables myLogonInfo = myTable.LogOnInfo myLogonInfo.ConnectionInfo.ServerName = gServer myLogonInfo.ConnectionInfo.DatabaseName = gDatabase myLogonInfo.ConnectionInfo.UserID = gServerLogIn myLogonInfo.ConnectionInfo.Password = gSQLPwd myTable.ApplyLogOnInfo(myLogonInfo) Next myTable With Me.CrystalReportViewer .DisplayBackgroundEdge = True .DisplayGroupTree = False .DisplayStatusBar = True .DisplayToolbar = True .ShowCloseButton = True .ShowExportButton = True .ShowGotoPageButton = True .ShowGroupTreeButton = False .ShowPageNavigateButtons = True .ShowPrintButton = True .ShowRefreshButton = True .ShowTextSearchButton = True .ShowZoomButton = True End With Me.CrystalReportViewer.SelectionFormula = ReportDoc.RecordSelectionFormula Me.CrystalReportViewer.ReportSource = ReportDoc MouseDefault() End Sub Private Sub CrystalReportViewer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrystalReportViewer.Load End Sub Private Sub frmReportViewer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub frmReportViewer_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Dim Ado As RunBase.clsParentAdo If Trim(SQLStr) <> "" Then Ado = New RunBase.clsParentAdo() Ado.ExecuteCmd(SQLStr) End If End Sub Public Sub ExportFile(ByVal Orpt As CrystalDecisions.CrystalReports.Engine.ReportDocument, ByVal FileName As String) ''导出文件 Dim CrExportOptions As New CrystalDecisions.Shared.ExportOptions() Dim crDiskFileDestinationOptions As New CrystalDecisions.Shared.DiskFileDestinationOptions() Dim Info As New TableLogOnInfo crDiskFileDestinationOptions.DiskFileName = gRptPath & FileName + ".pdf" CrExportOptions = ReportDoc.ExportOptions CrExportOptions.DestinationOptions = crDiskFileDestinationOptions CrExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile CrExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat Info.ConnectionInfo.Password = "soft$dev" Orpt.Database.Tables(0).ApplyLogOnInfo(Info) Orpt.Export() Orpt.Close() 'rptDoc.Database.Tables[0].ApplyLogOnInfo(Info); 'Orpt.ExportToDisk(CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat, gRptPath & "222.pdf") End Sub End Class调用 frmreportviewer Private Sub btnPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrint.Click Dim ReportDoc As New CrystalDecisions.CrystalReports.Engine.ReportDocument Dim strFormula As String MouseWait() ReportDoc.Load(gRptPath & "EmploymentCessationRpt.rpt") strFormula = " {Employee.CompanyCode} = '" & RP2(gCompanyCode) If IsDate(mskLastDateFrom.Text) Then strFormula &= "'and {Employee.lastdate}>= date(" & Format(CDate(mskLastDateFrom.Text), "yyyy,MM,dd") & ")and {Employee.CompanyCode} = '" & RP2(gCompanyCode) End If If IsDate(mskLastDateTo.Text) Then strFormula &= "'and {Employee.lastdate}<= date(" & Format(CDate(mskLastDateTo.Text), "yyyy,MM,dd") & ")and {Employee.CompanyCode} = '" & RP2(gCompanyCode) End If strFormula &= "'" ReportDoc.RecordSelectionFormula = "" ReportDoc.SetParameterValue("Title", GL("@DSL1610")) ReportDoc.SetParameterValue("OrgUnit", GL("@DSL497")) ReportDoc.SetParameterValue("From", GL("@DSL382")) ReportDoc.SetParameterValue("To", GL("@DSL383")) ReportDoc.SetParameterValue("EmpID", GL("@DSL1603")) ReportDoc.SetParameterValue("Name", GL("@GZL181")) ReportDoc.SetParameterValue("Page", GL("@DSL1590")) ReportDoc.SetParameterValue("Date", GL("@DSL212")) ReportDoc.SetParameterValue("LastDate", GL("@DSL714")) If IsDate(mskLastDateFrom.Text) Then ReportDoc.SetParameterValue("Lastdate1", Replace(Format(CDate(mskLastDateFrom.Text), "dd/MM/yyyy"), "-", "/")) Else ReportDoc.SetParameterValue("Lastdate1", "") End If If IsDate(mskLastDateTo.Text) Then ReportDoc.SetParameterValue("Lastdate2", Replace(Format(CDate(mskLastDateTo.Text), "dd/MM/yyyy"), "-", "/")) Else ReportDoc.SetParameterValue("Lastdate2", "") End If ReportDoc.SetParameterValue("OrgUnit", GL("@DSL1604")) ReportDoc.SetParameterValue("Total", GL("@DSL1605")) ReportDoc.SetParameterValue("Type", GL("@DSL170")) ReportDoc.SetParameterValue("TypeDesc", GL("@DSL1611")) ReportDoc.SetParameterValue("person", GL("@DSL1606")) ReportDoc.SetParameterValue("datejoined", GL("@GZL41")) ReportDoc.SetParameterValue("CompanyName", gCompanyCode) If gLanguage = 0 Then ReportDoc.SetParameterValue("language", 0) ElseIf gLanguage = 1 Then ReportDoc.SetParameterValue("language", 1) ElseIf gLanguage = 2 Then ReportDoc.SetParameterValue("language", 2) End If Dim F As New Reports.frmReportViewer(ReportDoc, GL("@DSL1610")) F.Show() '导出报表 F.ExportFile(ReportDoc, GL("@DSL1610")) MouseDefault() End Sub