You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

431 lines
16 KiB

Imports System
Imports System.Data
Imports System.Data.SqlTypes
Imports System.Data.SqlClient
Public Class frmLifeCiclyReporting
Public imglist As New ImageList
Dim clslc As New TKB.VV.Lifecycle.clslifeCycle
Dim produkte As New TKB.VV.Lifecycle.clsProdukt
Dim phase As New TKB.VV.Lifecycle.clslcProduktPhase
Dim OnLoad As Boolean = True
Dim IDVAuswertungen As New DataTable
Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click
Me.Close()
End Sub
Private Sub frmLifeCiclyReporting_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Get_Phasen()
get_idvauswertungen()
clslc.Get_Produktliste()
Me.chkLBProdukte.CheckOnClick = True
Me.chklbPhasen.CheckOnClick = True
For Each r As DataRow In PhaseStammdaten.Rows
Me.chklbPhasen.Items.Add(r("Bezeichnung"))
Next
For Each r As DataRow In clslc.Produkte.Rows
Me.chkLBProdukte.Items.Add(r("Bezeichnung"))
Next
Me.cbboxEntscheidungInTagen.SelectedText = 10
Me.cbboxProdukteInTagen.SelectedText = 10
Me.cbboxUeberpruefungInTagen.SelectedText = 10
Me.txtvon.Text = Now.ToString
Me.txtvon1.Text = Now.ToString
Me.cbboxProdukttyp.DataSource = clslc.Produkttypen_Copy
Me.cbboxProdukttyp.DisplayMember = "Bezeichnung"
Me.cbboxProdukttyp.ValueMember = "LC_Produkttypnr"
Me.cbboxProdukttyp1.DataSource = clslc.Produkttypen_Copy1
Me.cbboxProdukttyp1.DisplayMember = "Bezeichnung"
Me.cbboxProdukttyp1.ValueMember = "LC_Produkttypnr"
Me.cbboxidvauswertungen.DataSource = Me.IDVAuswertungen
Me.cbboxidvauswertungen.DisplayMember = "Bezeichnung"
Me.cbboxidvauswertungen.ValueMember = "lc_sqlnr"
OnLoad = False
End Sub
Private Sub dtvon1_ValueChanged(sender As Object, e As EventArgs) Handles dtvon1.ValueChanged
Me.txtvon1.Text = Me.dtvon1.Text
End Sub
Private Sub dtbis1_ValueChanged(sender As Object, e As EventArgs) Handles dtbis1.ValueChanged
Me.txtbis1.Text = Me.dtbis1.Text
End Sub
Private Sub dtvon_ValueChanged(sender As Object, e As EventArgs) Handles dtvon.ValueChanged
Me.txtvon.Text = Me.dtvon.Text
End Sub
Private Sub dtbis_ValueChanged(sender As Object, e As EventArgs) Handles dtbis.ValueChanged
Me.txtbis.Text = Me.dtbis.Text
End Sub
#Region "Phasen"
Dim PhaseStammdaten As New DataTable
Sub Get_Phasen()
Try
Me.PhaseStammdaten.Rows.Clear()
Dim Connection As New SqlConnection(Globals.sConnectionString)
Dim DA As New SqlDataAdapter("select * from lc_phase where aktiv=1 order by bezeichnung", Connection)
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
DA.Fill(PhaseStammdaten)
Catch
End Try
End Sub
#End Region
Private Sub btnUeberpruefungAbgelaufen_Click(sender As Object, e As EventArgs) Handles btnUeberpruefungAbgelaufen.Click
Me.C1Result.DataSource = Nothing
Get_Reportdata(1)
Me.C1Result.DataSource = Reportdata
End Sub
Private Sub btnUeberpruefungInTagen_Click(sender As Object, e As EventArgs) Handles btnUeberpruefungInTagen.Click
Me.C1Result.DataSource = Nothing
Get_Reportdata(2)
Me.C1Result.DataSource = Reportdata
End Sub
Private Sub btnEntscheidungAbgelaufen_Click(sender As Object, e As EventArgs) Handles btnEntscheidungAbgelaufen.Click
Me.C1Result.DataSource = Nothing
Get_Reportdata(3)
Me.C1Result.DataSource = Reportdata
End Sub
Private Sub btnEntscheidungInTagen_Click(sender As Object, e As EventArgs) Handles btnEntscheidungInTagen.Click
Me.C1Result.DataSource = Nothing
Get_Reportdata(4)
Me.C1Result.DataSource = Reportdata
End Sub
Dim selProdukte As String = ""
Dim selDatumvon As String = ""
Dim selDatumbis As String = ""
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim i As Integer
selProdukte = ""
For i = 0 To Me.chklbPhasen.CheckedItems.Count - 1
For Each r As DataRow In PhaseStammdaten.Rows
If r("bezeichnung") = Me.chklbPhasen.CheckedItems(i) Then
If selProdukte <> "" Then selProdukte = selProdukte + ","
selProdukte = selProdukte + r("lc_phasenr").ToString
End If
Next
Next
Me.C1Result.DataSource = Nothing
If Me.txtvon.Text = " . ." Then selDatumvon = "" Else selDatumvon = Me.txtvon.Text
If Me.txtbis.Text = " . ." Then selDatumbis = "" Else selDatumbis = Me.txtbis.Text
Get_Reportdata(7)
Me.C1Result.DataSource = Reportdata
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim i As Integer
selProdukte = ""
For i = 0 To Me.chklbPhasen.CheckedItems.Count - 1
For Each r As DataRow In PhaseStammdaten.Rows
If r("bezeichnung") = Me.chklbPhasen.CheckedItems(i) Then
If selProdukte <> "" Then selProdukte = selProdukte + ","
selProdukte = selProdukte + r("lc_phasenr").ToString
End If
Next
Next
Me.C1Result.DataSource = Nothing
If Me.txtvon.Text = " . ." Then selDatumvon = "" Else selDatumvon = Me.txtvon.Text
If Me.txtbis.Text = " . ." Then selDatumbis = "" Else selDatumbis = Me.txtbis.Text
Get_Reportdata(5)
Me.C1Result.DataSource = Reportdata
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim i As Integer
selProdukte = ""
For i = 0 To Me.chkLBProdukte.CheckedItems.Count - 1
For Each r As DataRow In clslc.Produkte.Rows
If r("bezeichnung") = Me.chkLBProdukte.CheckedItems(i) Then
If selProdukte <> "" Then selProdukte = selProdukte + ","
selProdukte = selProdukte + r("ID").ToString
End If
Next
Next
Me.C1Result.DataSource = Nothing
If Me.txtvon1.Text = " . ." Then selDatumvon = "" Else selDatumvon = Me.txtvon1.Text
If Me.txtbis1.Text = " . ." Then selDatumbis = "" Else selDatumbis = Me.txtbis1.Text
Get_Reportdata(6)
Me.C1Result.DataSource = Reportdata
End Sub
Dim Reportdata As DataTable
Sub Get_Reportdata(ByVal fnkt As Integer)
Try
Reportdata = Nothing
Catch
End Try
Reportdata = New DataTable
Dim selectcommand As New SqlCommand
Dim connection As New SqlConnection()
Dim da As New SqlDataAdapter("", connection)
selectcommand.CommandText = "sp_lc_reporting"
selectcommand.Parameters.Add("@fnkt", SqlDbType.Int, 4)
selectcommand.Parameters.Add("@param1", SqlDbType.VarChar, 4096)
selectcommand.Parameters.Add("@param2", SqlDbType.VarChar, 4096)
selectcommand.Parameters.Add("@param3", SqlDbType.VarChar, 4096)
selectcommand.Parameters.Add("@param4", SqlDbType.VarChar, 4096)
selectcommand.Parameters.Add("@param5", SqlDbType.VarChar, 4096)
selectcommand.Parameters.Add("@param6", SqlDbType.VarChar, 4096)
selectcommand.Parameters(0).Value = fnkt
selectcommand.Parameters(1).Value = ""
selectcommand.Parameters(2).Value = ""
selectcommand.Parameters(3).Value = ""
selectcommand.Parameters(4).Value = ""
selectcommand.Parameters(5).Value = ""
selectcommand.Parameters(6).Value = ""
Select Case fnkt
Case 1, 3
Case 2
selectcommand.Parameters(1).Value = Me.cbboxUeberpruefungInTagen.Text.ToString
Case 4
selectcommand.Parameters(1).Value = Me.cbboxEntscheidungInTagen.Text.ToString
Case 5
selectcommand.Parameters(1).Value = Me.selProdukte
selectcommand.Parameters(2).Value = Me.selDatumvon
selectcommand.Parameters(3).Value = Me.selDatumbis
selectcommand.Parameters(4).Value = Me.cbboxProdukttyp.SelectedValue
Case 6
selectcommand.Parameters(1).Value = Me.selProdukte
selectcommand.Parameters(2).Value = Me.selDatumvon
selectcommand.Parameters(3).Value = Me.selDatumbis
selectcommand.Parameters(4).Value = Me.cbboxProdukttyp.SelectedValue
Case 7
selectcommand.Parameters(1).Value = Me.selProdukte
selectcommand.Parameters(2).Value = Me.cbboxProdukteInTagen.Text.ToString
selectcommand.Parameters(3).Value = ""
selectcommand.Parameters(4).Value = Me.cbboxProdukttyp.SelectedValue
End Select
selectcommand.CommandType = CommandType.StoredProcedure
selectcommand.Connection = connection
Try
connection.ConnectionString = Globals.sConnectionString
connection.Open()
da.SelectCommand = selectcommand
da.Fill(Reportdata)
Catch ex As Exception
MsgBox(ex.Message)
Finally
connection.Close()
da.Dispose()
selectcommand.Dispose()
End Try
End Sub
Private Sub C1Result_DoubleClick(sender As Object, e As EventArgs) Handles C1Result.DoubleClick
Try
Dim f As New frmLifeCycle(Me.C1Result.Columns("Produktnr").Value, True)
f.MdiParent = Me.MdiParent
f.Show()
Catch ex As Exception
End Try
End Sub
Private Sub ListBoxAdv1_ItemClick(sender As Object, e As EventArgs)
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim f As New frmStrukturSelect(TKB.VV.Lifecycle.clslifeCycle.SelectionType.nur_eingesetzt, TKB.VV.Lifecycle.clslifeCycle.SingleMultiSelectionType.MultiSelection)
f.CheckedNodes.Clear()
For Each s As String In Me.chkLBProdukte.CheckedItems
f.CheckedNodes.Add(s)
Next
f.ImgList = Me.imglist
f.ShowDialog()
For i As Integer = chkLBProdukte.Items.Count - 1 To 0 Step -1
chkLBProdukte.SetItemCheckState(i, CheckState.Unchecked)
Next
For i As Integer = f.CheckedNodes.Count - 1 To 0 Step -1
For i1 As Integer = Me.chkLBProdukte.Items.Count - 1 To 0 Step -1
If chkLBProdukte.Items(i1) = f.CheckedNodes(i) Then
chkLBProdukte.SetItemCheckState(i1, CheckState.Checked)
End If
Next
Next
End Sub
Private Sub cbboxProdukttyp1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbboxProdukttyp1.SelectedIndexChanged
If Me.OnLoad Then Exit Sub
Me.chkLBProdukte.Items.Clear()
For Each r As DataRow In clslc.Produkte.Rows
If r.Item("Produkttypnr") <> 1 Then
' MsgBox("Hallo")
End If
If Me.cbboxProdukttyp1.SelectedValue = -1 Or Me.cbboxProdukttyp1.SelectedValue = r("Produkttypnr") Then
Me.chkLBProdukte.Items.Add(r("Bezeichnung"))
End If
Next
End Sub
Private Sub TSBtnExcelExport_Click(sender As Object, e As EventArgs) Handles TSBtnExcelExport.Click
Cursor = Cursors.WaitCursor
Dim fn As String = System.IO.Path.GetRandomFileName
fn = fn.Substring(0, Len(fn) - 4)
fn = Globals.clsapplication.sTmp_filepath.ToString + "\" + fn + ""
Dim xls As New XLSLib.clsXLSLib
xls.Write_Excel(fn, Reportdata)
Dim fnn As String = fn + ".xls"
Rename(fn, fnn)
Process.Start(fnn)
Cursor = Cursors.Default
Exit Sub
End Sub
Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click
Me.SaveFileDialog1.AddExtension = True
Me.SaveFileDialog1.Filter = "Excel-Dateien|*.xls|CSV-Dateien|*.CSV"
Me.SaveFileDialog1.DefaultExt.Insert(0, "*.xls")
Me.SaveFileDialog1.ShowDialog()
If Me.SaveFileDialog1.FileName <> "" Then
If Me.SaveFileDialog1.FileName.EndsWith("xls") Then
Me.DatatableToExcel(Reportdata, Me.SaveFileDialog1.FileName)
Process.Start(Me.SaveFileDialog1.FileName)
Else
Me.C1Result.ExportToDelimitedFile(Me.SaveFileDialog1.FileName, C1.Win.C1TrueDBGrid.RowSelectorEnum.AllRows, ";", "", "", True, System.Text.Encoding.Default.BodyName)
Process.Start(Me.SaveFileDialog1.FileName)
End If
End If
End Sub
Public Shared Function DatatableToExcel(ByVal aDataTable As DataTable, ByVal aOutputFilename As String) As Boolean
Application.DoEvents()
'Dim f As New FrmFortschritt
Dim app As New Object
Dim wb As New Object
Dim ws As New Object
Try
' f.Show()
Application.DoEvents()
' f.ProgressBar1.Minimum = 0
' f.ProgressBar1.Maximum = aDataTable.Rows.Count
app = CreateObject("Excel.application")
'Dim wb As Object
'Dim ws As Object
' Dim app As New Excel.ApplicationClass
' Dim wb As Excel.Workbook
' Dim ws As Excel.Worksheet
wb = app.Workbooks.add()
'wb = app.Workbooks.Add()
ws = wb.ActiveSheet()
Dim dc As DataColumn
Dim dr As DataRow
Dim colIndex As Integer
Dim rowIndex As Integer
' Columns erstellen
For Each dc In aDataTable.Columns
colIndex += 1
app.Cells(1, colIndex) = dc.ColumnName
Next
' Rows hinzufügen
For Each dr In aDataTable.Rows
' f.ProgressBar1.Value = rowIndex
rowIndex += 1
colIndex = 0
For Each dc In aDataTable.Columns
colIndex += 1
Try
app.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)
Catch ex As Exception
Dim s As String = dr(dc.ColumnName)
s = "'" + s
Try
app.Cells(rowIndex + 1, colIndex) = s
Catch ex1 As Exception
app.Cells(rowIndex + 1, colIndex) = "'* Text beim Export entfernt"
End Try
End Try
Next
Next
ws.Columns.AutoFit()
wb.SaveAs(aOutputFilename)
app.Workbooks.Open(aOutputFilename)
' Excel anzeigen wenn fertig exportiert
app.Visible = True
ws = Nothing
wb = Nothing
app = Nothing
'f.Close()
Return True
Catch ex As Exception
'f.Close()
MsgBox(ex.Message)
End Try
End Function
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
For Each r As DataRow In IDVAuswertungen.Rows
If r("Bezeichnung") = cbboxidvauswertungen.Text Then
Run_SQL(r("beschreibung"))
End If
Next
End Sub
Sub Run_SQL(sqlstring As String)
Try
Reportdata = Nothing
Catch
End Try
Reportdata = New DataTable
Dim Connection As New SqlConnection(Globals.sConnectionString)
Dim DA As New SqlDataAdapter(sqlstring, Connection)
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
DA.Fill(Reportdata)
Me.C1Result.DataSource = Reportdata
End Sub
Public Sub Get_IDVAuswertungen()
Try
Me.IDVAuswertungen.Rows.Clear()
Dim Connection As New SqlConnection(Globals.sConnectionString)
Dim DA As New SqlDataAdapter("select * from lc_sql where aktiv=1 order by bezeichnung", Connection)
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
DA.Fill(IDVAuswertungen)
Catch
End Try
End Sub
Private Sub C1Result_Click(sender As Object, e As EventArgs) Handles C1Result.Click
End Sub
End Class