'Option Strict On 'Option Explicit On Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Imports System.Data Imports System.Data.SqlTypes Imports System.Data.SqlClient Imports System.ComponentModel Public Class frmReportViewer Inherits System.Windows.Forms.Form #Region " Vom Windows Form Designer generierter Code " Public Sub New() MyBase.New() ' Dieser Aufruf ist für den Windows Form-Designer erforderlich. InitializeComponent() ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen End Sub ' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub ' Für Windows Form-Designer erforderlich Private components As System.ComponentModel.IContainer 'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich 'Sie kann mit dem Windows Form-Designer modifiziert werden. 'Verwenden Sie nicht den Code-Editor zur Bearbeitung. Friend WithEvents ToolBar1 As System.Windows.Forms.ToolBar Friend WithEvents ImageList1 As System.Windows.Forms.ImageList Friend WithEvents CrystalReportViewer1 As CrystalDecisions.Windows.Forms.CrystalReportViewer Friend WithEvents mnuClose As System.Windows.Forms.ToolBarButton Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmReportViewer)) Me.ToolBar1 = New System.Windows.Forms.ToolBar Me.mnuClose = New System.Windows.Forms.ToolBarButton Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) Me.CrystalReportViewer1 = New CrystalDecisions.Windows.Forms.CrystalReportViewer Me.SuspendLayout() ' 'ToolBar1 ' Me.ToolBar1.Buttons.AddRange(New System.Windows.Forms.ToolBarButton() {Me.mnuClose}) Me.ToolBar1.DropDownArrows = True Me.ToolBar1.ImageList = Me.ImageList1 Me.ToolBar1.Location = New System.Drawing.Point(0, 0) Me.ToolBar1.Name = "ToolBar1" Me.ToolBar1.ShowToolTips = True Me.ToolBar1.Size = New System.Drawing.Size(816, 28) Me.ToolBar1.TabIndex = 0 ' 'mnuClose ' Me.mnuClose.ImageIndex = 4 Me.mnuClose.Name = "mnuClose" Me.mnuClose.ToolTipText = "Schliessen" ' 'ImageList1 ' Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent Me.ImageList1.Images.SetKeyName(0, "") Me.ImageList1.Images.SetKeyName(1, "") Me.ImageList1.Images.SetKeyName(2, "") Me.ImageList1.Images.SetKeyName(3, "") Me.ImageList1.Images.SetKeyName(4, "") ' 'CrystalReportViewer1 ' Me.CrystalReportViewer1.ActiveViewIndex = -1 Me.CrystalReportViewer1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.CrystalReportViewer1.Dock = System.Windows.Forms.DockStyle.Fill Me.CrystalReportViewer1.Location = New System.Drawing.Point(0, 28) Me.CrystalReportViewer1.Name = "CrystalReportViewer1" Me.CrystalReportViewer1.Size = New System.Drawing.Size(816, 497) Me.CrystalReportViewer1.TabIndex = 7 ' 'frmReportViewer ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(816, 525) Me.Controls.Add(Me.CrystalReportViewer1) Me.Controls.Add(Me.ToolBar1) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "frmReportViewer" Me.Text = "Report-Viewer" Me.WindowState = System.Windows.Forms.FormWindowState.Maximized Me.ResumeLayout(False) Me.PerformLayout() End Sub #End Region #Region " Declaration " Dim i As Integer Dim s As String Dim tbCurrent As CrystalDecisions.CrystalReports.Engine.Table Dim tliCurrent As CrystalDecisions.Shared.TableLogOnInfo Dim m_sWindowTitel As String Dim rpt As New ReportDocument() Dim crParameterValues As ParameterValues Dim crParameterDiscreteValue As ParameterDiscreteValue Dim crParameterFieldDefinitions As ParameterFieldDefinitions Dim crParameterFieldDefinition As ParameterFieldDefinition #End Region #Region " Property " Property WindowTitel() As String Get Return m_sWindowTitel End Get Set(ByVal Value As String) m_sWindowTitel = Value End Set End Property #End Region Private Sub frmReportViewer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub #Region "EDOKA" Public Function show_reportWithParameter(ByVal sreportpath As String, ByVal ReportName As String, ByVal param As String) As Boolean Dim rpt As New ReportDocument rpt.Load(sreportpath + ReportName) Dim crParameterDiscreteValue As ParameterDiscreteValue Dim crParameterFieldDefinitions As ParameterFieldDefinitions Dim crParameterFieldLocation As ParameterFieldDefinition Dim crParameterValues As ParameterValues crParameterFieldDefinitions = rpt.DataDefinition.ParameterFields Dim strParValPair() As String Dim strVal() As String Dim index As Integer Dim paraValue As New CrystalDecisions.Shared.ParameterDiscreteValue() Dim currValue As CrystalDecisions.Shared.ParameterValues If Trim(param) <> "" Then strParValPair = param.Split(CType("&", Char)) If strParValPair.Length = 0 Then param = param + "&" strParValPair = param.Split(CType("&", Char)) End If End If For index = 0 To UBound(strParValPair) strVal = strParValPair(index).Split(CType("=", Char)) If strVal.Length > 0 Then crParameterFieldLocation = crParameterFieldDefinitions.Item(strVal(0)) crParameterValues = crParameterFieldLocation.CurrentValues crParameterDiscreteValue = New CrystalDecisions.Shared.ParameterDiscreteValue crParameterDiscreteValue.Value = strVal(1) crParameterValues.Add(crParameterDiscreteValue) crParameterFieldLocation.ApplyCurrentValues(crParameterValues) End If Next Dim ConInfo As New CrystalDecisions.Shared.TableLogOnInfo() ConInfo.ConnectionInfo.UserID = Globals.LoginInfo.UserId ConInfo.ConnectionInfo.Password = Globals.LoginInfo.Password ConInfo.ConnectionInfo.ServerName = Globals.LoginInfo.Server ConInfo.ConnectionInfo.DatabaseName = Globals.LoginInfo.Db Dim myDataSourceConnections As DataSourceConnections = rpt.DataSourceConnections Dim myConnectInfo As IConnectionInfo = myDataSourceConnections(0) myConnectInfo.SetConnection(Globals.LoginInfo.Server, Globals.LoginInfo.Db, Globals.LoginInfo.UserId, Globals.LoginInfo.Password) Dim mySubReportObject As CrystalDecisions.CrystalReports.Engine.SubreportObject Dim mySubRepDoc As New CrystalDecisions.CrystalReports.Engine.ReportDocument() For index = 0 To rpt.ReportDefinition.Sections.Count - 1 For intCounter = 0 To rpt.ReportDefinition.Sections(index).ReportObjects.Count - 1 With rpt.ReportDefinition.Sections(index) If .ReportObjects(intCounter).Kind = CrystalDecisions.Shared.ReportObjectKind.SubreportObject Then mySubReportObject = CType(.ReportObjects(intCounter), CrystalDecisions.CrystalReports.Engine.SubreportObject) mySubRepDoc = mySubReportObject.OpenSubreport(mySubReportObject.SubreportName) Dim mySubDataSourceConnections As DataSourceConnections = mySubRepDoc.DataSourceConnections Dim mySubConnectInfo As IConnectionInfo = myDataSourceConnections(0) mySubConnectInfo.SetConnection(Globals.LoginInfo.Server, Globals.LoginInfo.Db, Globals.LoginInfo.UserId, Globals.LoginInfo.Password) End If End With Next Next CrystalReportViewer1.ReportSource = rpt End Function #End Region #Region " Menue Funktionen " Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick Me.Close() End Sub #End Region End Class