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.

1097 lines
46 KiB

Imports System.Windows.Forms
Imports System.Drawing
Public Class FrmReportSelect
#Region "Deklarationen"
Dim auswertungen As New TKB.Auswertung.clsAuswertung
Dim CtrlList As New List(Of Control)
Dim splits() As String
Dim dr As DataRow
Dim s As String = ""
Dim SQLWhere As String = ""
Friend selectPoint As New System.Drawing.Point()
Dim Auswertungsdaten As New DataSet
Dim On_Load As Boolean = False
Dim DescriptionToolTip As New ToolTip
Dim WhereModified As Boolean = False
Dim sec As New Utils.MySecurity
#End Region
#Region "Formular"
''' <summary>
''' Formular schliessen
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub btnAbbruch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Close()
End Sub
''' <summary>
''' Formualr schliessen
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click
btnAbbruch_Click(sender, e)
End Sub
''' <summary>
''' Formular schliessen
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click
btnAbbruch_Click(sender, e)
End Sub
#End Region
Private Sub FrmReportSelect_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
auswertungen.Get_Auswertungen(Me.TreeAuswertungen)
Me.TreeAuswertungen.ExpandAll()
Me.TreeAuswertungen.SelectedNode = Me.TreeAuswertungen.Nodes(0)
Me.TreeAuswertungen.SelectedNode.ExpandAll()
Catch
End Try
sec.Set_Form_Security(Me)
End Sub
Private Sub btnAufbereiten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAufbereitenCSV.Click
Me.Cursor = Cursors.WaitCursor
If Me.WhereModified = False Then Get_SQLWhere()
Me.Auswertungsdaten = Me.auswertungen.Get_Auswertungsdaten(Me.auswertungen.Auswertung.sSQL.Value, SQLWhere, Me.auswertungen.Auswertung.sSQLType.Value)
Dim f As New frmAuswertung(Me.TreeAuswertungen.SelectedNode.Text, Me.Auswertungsdaten)
f.MdiParent = Me.MdiParent
Me.Cursor = Cursors.Default
f.Show()
End Sub
Private Sub BtnAufbereitenCR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAufbereitenCR.Click
showreport()
End Sub
Public Sub showreport()
Me.Cursor = Cursors.WaitCursor
Me.auswertungen.TitelZeile1 = Me.txtTitel1.Text
Me.auswertungen.TitelZeile2 = Me.txtTitel2.Text
If Me.WhereModified = False Then Get_SQLWhere()
Me.Auswertungsdaten = Me.auswertungen.Get_Auswertungsdaten(Me.auswertungen.Auswertung.sSQL.Value, SQLWhere, Me.auswertungen.Auswertung.sSQLType.Value)
Dim f As New frmcrreporting(Me.Auswertungsdaten, Me.auswertungen.Auswertung.iAuswertungNr.Value, Me.auswertungen, Me.checkboxprintparam.Checked, False)
f.Text = "Auswertung " + Me.TreeAuswertungen.SelectedNode.Text
f.MdiParent = Me.MdiParent
Me.Cursor = Cursors.Default
f.Show()
f.DisplayReport()
End Sub
Public Sub showreport_withdata(daten As DataSet, ByVal Auswertungsnr As Integer, design As Boolean, ByVal export_to_pdf As Boolean)
Me.Cursor = Cursors.WaitCursor
'Me.auswertungen.TitelZeile1 = Me.txtTitel1.Text
'Me.auswertungen.TitelZeile2 = Me.txtTitel2.Text
Me.Auswertungsdaten = daten
Dim f As New frmcrreporting(Me.Auswertungsdaten, Auswertungsnr, Me.auswertungen, False, design)
Try
f.Text = "Auswertung " + Me.TreeAuswertungen.SelectedNode.Text
Catch ex As Exception
End Try
f.MdiParent = Me.MdiParent
Me.Cursor = Cursors.Default
If design = True Then
f.DesignReport()
Exit Sub
End If
If export_to_pdf = True Then
f.Visible = False
f.Height = 0
f.WindowState = FormWindowState.Minimized
End If
f.Show()
If export_to_pdf = False Then
f.DisplayReport()
Else
Dim fn As String = f.Export_To_PDF
f.Close()
Process.Start(fn)
End If
End Sub
Private Sub TreeAuswertungen_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeAuswertungen.DoubleClick
'If Me.TreeAuswertungen.SelectedNode.Tag > -1 Then btnAufbereiten_Click(sender, e)
End Sub
''' <summary>
''' Mousedown-Ereignis auf dem Tree
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub TreeStruktur_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeAuswertungen.MouseDown
Try
Dim mouseEvents As MouseEventArgs
mouseEvents = e
selectPoint.Y = mouseEvents.Y
selectPoint.X = mouseEvents.X
Me.TreeAuswertungen.SelectedNode = Me.TreeAuswertungen.GetNodeAt(selectPoint)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
''' <summary>
''' Nach Selektion eines Nodes Parameter neu aufbereiten und Auswerungsm<73>glichkeit (CR/CSV) anzeigen
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub TreeAuswertungen_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeAuswertungen.AfterSelect
Me.On_Load = True
Me.WhereModified = False
Me.PictureBox1.Visible = False
Try
Me.txtTitel1.Text = Me.TreeAuswertungen.SelectedNode.Text
Me.txtTitel2.Text = ""
Me.checkboxprintparam.Checked = True
Me.txtbeschreibung.Text = Me.TreeAuswertungen.SelectedNode.ToolTipText
DescriptionToolTip.SetToolTip(Me.txtbeschreibung, Me.txtbeschreibung.Text)
If Me.TreeAuswertungen.SelectedNode.Tag < 1 Then
Me.GrpParameter.Enabled = False
Me.BtnAufbereitenCR.Enabled = False
Me.btnAufbereitenCSV.Enabled = False
Me.grpcr.Enabled = False
Me.grpdb.Enabled = False
Exit Sub
End If
Me.auswertungen.Get_Auswertung(Me.TreeAuswertungen.SelectedNode.Tag)
If Me.auswertungen.MitarbeiterAuswertungsparameter.Rows.Count > 0 Then
Me.ComboboxMAParameter.Visible = True
Try
Me.ComboboxMAParameter.DataSource = Nothing
Me.ComboboxMAParameter.DataSource = Me.auswertungen.MitarbeiterAuswertungsparameter
Me.ComboboxMAParameter.DisplayMember = "Beschreibung"
Me.ComboboxMAParameter.ValueMember = "Mitarbeiter_AuswertungsparameterNr"
Me.ComboboxMAParameter.SelectedIndex = -1
Catch ex As Exception
End Try
Else
Me.ComboboxMAParameter.Visible = False
End If
If Me.auswertungen.AuswertungParameter.Rows.Count = 0 Then
Me.GrpParameter.Enabled = False
Else
Me.GrpParameter.Enabled = True
End If
If Me.auswertungen.Auswertung.bReport.Value = True Then
Me.BtnAufbereitenCR.Enabled = True
Me.grpcr.Enabled = True
Else
Me.BtnAufbereitenCR.Enabled = False
Me.grpcr.Enabled = False
End If
If Me.auswertungen.Auswertung.bExcel_Report.Value = True Then
Me.btnAufbereitenCSV.Enabled = True
Me.grpdb.Enabled = True
Else
Me.btnAufbereitenCSV.Enabled = False
Me.grpdb.Enabled = False
End If
Init_Params()
Catch ex As Exception
End Try
Me.On_Load = False
End Sub
#Region "Parameters"
#Region "Utils"
''' <summary>
''' Sucht in den Base-Controls s<>mtliche Controls mit dem Namen in "Key" (Wildcards * m<>glich) und listet
''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung
''' </summary>
''' <param name="BaseControl">Base-Contrlo (z.B. aktuelles Formular</param>
''' <param name="Key">Schl<68>ssel welcher gesucht werden soll</param>
''' <param name="L">Liste der gefundenen Objekte</param>
''' <returns>True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde.
''' </returns>
''' <remarks></remarks>
Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean
If L Is Nothing Then L = New List(Of Control)
Dim Gut As Boolean
Dim ReturnFlag As Boolean = False
If Key IsNot Nothing Then Key = Key.ToLower
If BaseControl.HasChildren = True Then
For Each ctl As Control In BaseControl.Controls
Gut = False
If Key Is Nothing Then
Gut = True
Else
If ctl.Name.Length >= Key.Length Then
Key = Key.ToLower
If Key.StartsWith("*") Then
If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True
ElseIf Key.EndsWith("*") Then
If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True
Else
If Key = ctl.Name.ToLower Then Gut = True
End If
End If
End If
If Gut = True Then
L.Add(ctl)
If ReturnAtFirstElement = True Then ReturnFlag = True
End If
If ReturnFlag = False Then
Call GetControl(ctl, Key, L)
End If
Next
End If
If L.Count - 1 > -1 Then
Return True
Else
Return False
End If
End Function
#End Region
''' <summary>
''' Parameter initialisieren
''' </summary>
''' <remarks></remarks>
Private Sub Init_Params(Optional ByVal Initialize_ComboBox As Boolean = True)
If Initialize_ComboBox = True Then Me.ComboboxMAParameter.SelectedIndex = -1
Me.CtrlList.Clear()
Me.GetControl(Me, "cb*", CtrlList)
For Each x As ComboBox In CtrlList
Try
x.DataSource = Nothing
x.Items.Clear()
x.Enabled = False
x.Text = ""
Catch ex As Exception
End Try
Next
CtrlList.Clear()
Me.GetControl(Me, "cbandor*", CtrlList)
For Each x As ComboBox In CtrlList
x.Items.Clear()
x.Items.Add("und")
x.Items.Add("oder")
Next
Me.cbparam1.Enabled = True
Me.cbop1.Enabled = True
Me.cbvalue1.Enabled = True
Me.cbandor1.Enabled = True
Me.CtrlList.Clear()
Me.GetControl(Me, "cbparam*", CtrlList)
For Each x As ComboBox In CtrlList
For Each dr As DataRow In Me.auswertungen.AuswertungParameter.Rows
x.Items.Add(dr.Item("Bezeichnung"))
Next
Next
End Sub
''' <summary>
''' Selektion Parameter
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub cbparam1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbparam1.SelectedIndexChanged, cbparam2.SelectedIndexChanged, _
cbparam3.SelectedIndexChanged, cbparam4.SelectedIndexChanged, cbparam5.SelectedIndexChanged, cbparam6.SelectedIndexChanged, cbparam7.SelectedIndexChanged
If Me.On_Load Then Exit Sub
Me.WhereModified = False
Me.PictureBox1.Visible = False
Dim s As String = ParamNr(sender.name)
Dim cbop As String = "cbop" + s
dr = Findrow(sender.text)
'Operatoren festlegen
CtrlList.Clear()
Me.GetControl(Me, "cbop" + s, CtrlList)
For Each ob As ComboBox In CtrlList
ob.Items.Clear()
splits = dr.Item("Operator").ToString.Split(";")
For Each x As String In splits
ob.Items.Add(x)
Next
ob.SelectedIndex = 0
Next
' Wenn ein Datenbezug ab DB oder eingegeben, dann aufbereiten
If dr.Item("Feldbezug").ToString <> "" Then
'Feldbezug ab DB
If UCase(dr.Item("feldbezug").ToString.Substring(0, 3)) = "SP_" Then
Dim fb As New DataTable
fb = Me.auswertungen.get_rptparam_values(dr.Item("Feldbezug"))
CtrlList.Clear()
Me.GetControl(Me, "cbvalue" + s, CtrlList)
For Each x As ComboBox In CtrlList
x.DataSource = Nothing
x.Items.Clear()
x.DataSource = fb
x.DisplayMember = "Bezeichnung"
x.ValueMember = "KeyValue"
Next
Else
If UCase(dr.Item("Feldbezug").ToString.Substring(0, 6)) = "SELECT" Then
Dim fb As New DataTable
fb = Me.auswertungen.get_rptparam_values(dr.Item("Feldbezug"))
CtrlList.Clear()
Me.GetControl(Me, "cbvalue" + s, CtrlList)
For Each x As ComboBox In CtrlList
x.DataSource = Nothing
x.Items.Clear()
x.DataSource = fb
x.DisplayMember = "Bezeichnung"
x.ValueMember = "KeyValue"
Next
Else
'Fixer Feldbezug
If dr.Item("Feldbezug").ToString <> "" Then
Dim selval() As String = dr.Item("Feldbezug").ToString.Split(";")
Dim cbvalue As String = "cbvalue" + s
CtrlList.Clear()
Me.GetControl(Me, "cbvalue" + s, CtrlList)
For Each x As ComboBox In CtrlList
x.DataSource = Nothing
x.Items.Clear()
For Each ss As String In selval
x.Items.Add(ss)
Next
Next
End If
End If
End If
End If
End Sub
''' <summary>
''' Datenrow in den zur Auswertung geh<65>renden Parameterliste suchen
''' </summary>
''' <param name="key"></param>
''' <returns></returns>
''' <remarks></remarks>
Private Function Findrow(ByVal key As String) As DataRow
For Each dr As DataRow In Me.auswertungen.AuswertungParameter.Rows
If dr.Item("Bezeichnung") = key Then
Return dr
End If
Next
End Function
'Param-Nr auslesen
Private Function ParamNr(ByVal s As String) As String
Return s.Substring(Len(s) - 1, 1)
End Function
''' <summary>
''' Where Bedingung f<>r die Abfrage zusammenstellen
''' </summary>
''' <remarks></remarks>
Private Sub Get_SQLWhere()
Me.auswertungen.ParamCollection.Clear()
Dim s As String
Dim i As Integer
Me.SQLWhere = ""
If Me.cbparam1.Text <> "" And Me.cbop1.Text <> "" And Me.cbvalue1.Text <> "" Then
Me.auswertungen.ParamCollection.Add(cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text)
s = cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text
SQLWhere = SQLWhere + get_where(1)
End If
If Me.cbandor1.Text <> "" And Me.cbparam2.Text <> "" And Me.cbop2.Text <> "" And Me.cbvalue2.Text <> "" Then
If Me.cbandor1.Text = "und" Then SQLWhere = SQLWhere + " and " + get_where(2)
If Me.cbandor1.Text = "oder" Then SQLWhere = SQLWhere + " or " + get_where(2)
Me.auswertungen.ParamCollection.Add(cbandor1.Text + " " + cbparam2.Text & " " & cbop2.Text & " " & cbvalue2.Text)
s = s & "' & Chr(10) & Chr(13) & '" & cbandor1.Text & " " & cbparam2.Text & " " & cbop2.Text & " " & cbvalue2.Text
End If
If Me.cbandor2.Text <> "" And Me.cbparam3.Text <> "" And Me.cbop3.Text <> "" And Me.cbvalue3.Text <> "" Then
If Me.cbandor2.Text = "und" Then SQLWhere = SQLWhere + " and " + get_where(3)
If Me.cbandor2.Text = "oder" Then SQLWhere = SQLWhere + " or " + get_where(3)
Me.auswertungen.ParamCollection.Add(cbandor2.Text + " " + cbparam3.Text & " " & cbop3.Text & " " & cbvalue3.Text)
s = s + " " + cbandor2.Text + " " + cbparam3.Text & " " & cbop3.Text & " " & cbvalue3.Text
End If
If Me.cbandor3.Text <> "" And Me.cbparam4.Text <> "" And Me.cbop4.Text <> "" And Me.cbvalue4.Text <> "" Then
If Me.cbandor3.Text = "und" Then SQLWhere = SQLWhere + " and " + get_where(4)
If Me.cbandor3.Text = "oder" Then SQLWhere = SQLWhere + " or " + get_where(4)
Me.auswertungen.ParamCollection.Add(cbandor3.Text + " " + cbparam4.Text & " " & cbop4.Text & " " & cbvalue4.Text)
s = s + " " + cbandor3.Text + " " + cbparam4.Text & " " & cbop4.Text & " " & cbvalue4.Text
End If
If Me.cbandor4.Text <> "" And Me.cbparam5.Text <> "" And Me.cbop5.Text <> "" And Me.cbvalue5.Text <> "" Then
If Me.cbandor4.Text = "und" Then SQLWhere = SQLWhere + " and " + get_where(5)
If Me.cbandor4.Text = "oder" Then SQLWhere = SQLWhere + " or " + get_where(5)
Me.auswertungen.ParamCollection.Add(cbandor4.Text + " " + cbparam5.Text & " " & cbop5.Text & " " & cbvalue5.Text)
s = s + " " + cbandor4.Text + " " + cbparam5.Text & " " & cbop5.Text & " " & cbvalue5.Text
End If
If Me.cbandor5.Text <> "" And Me.cbparam6.Text <> "" And Me.cbop6.Text <> "" And Me.cbvalue6.Text <> "" Then
If Me.cbandor5.Text = "und" Then SQLWhere = SQLWhere + " and " + get_where(6)
If Me.cbandor5.Text = "oder" Then SQLWhere = SQLWhere + " or " + get_where(6)
Me.auswertungen.ParamCollection.Add(cbandor5.Text + " " + cbparam6.Text & " " & cbop6.Text & " " & cbvalue6.Text)
s = s + " " + cbandor5.Text + " " + cbparam6.Text & " " & cbop6.Text & " " & cbvalue6.Text
End If
If Me.cbandor6.Text <> "" And Me.cbparam7.Text <> "" And Me.cbop7.Text <> "" And Me.cbvalue7.Text <> "" Then
If Me.cbandor6.Text = "und" Then SQLWhere = SQLWhere + " and " + get_where(7)
If Me.cbandor6.Text = "oder" Then SQLWhere = SQLWhere + " or " + get_where(7)
Me.auswertungen.ParamCollection.Add(cbandor6.Text + " " + cbparam7.Text & " " & cbop7.Text & " " & cbvalue7.Text)
s = s + " " + cbandor6.Text + " " + cbparam7.Text & " " & cbop7.Text & " " & cbvalue7.Text
End If
Me.auswertungen.FullParam = s
End Sub
''' <summary>
''' Where zusammenstellen
''' </summary>
''' <param name="nr"></param>
''' <returns></returns>
''' <remarks></remarks>
Private Function get_where(ByVal nr As Integer) As String
Dim param As New ComboBox
Dim op As New ComboBox
Dim val As New ComboBox
Dim wertvalue As String = ""
Dim wertdbfeld As String = ""
Dim wertop As String = op.Text
CtrlList.Clear()
Me.GetControl(Me, "cbparam" + Trim(Str(nr)), CtrlList)
param = CtrlList.Item(0)
CtrlList.Clear()
Me.GetControl(Me, "cbop" + Trim(Str(nr)), CtrlList)
op = CtrlList.Item(0)
CtrlList.Clear()
Me.GetControl(Me, "cbvalue" + Trim(Str(nr)), CtrlList)
val = CtrlList.Item(0)
dr = Me.Findrow(param.Text)
wertop = op.Text
Dim paramtyp As String = ""
Dim paramsplit() As String = dr.Item("Paramtype").ToString.Split(";")
Dim dbfeldsplit() As String = dr.Item("dbfeldname").ToString.Split(";")
If dbfeldsplit.Length > 1 And val.SelectedIndex > -1 Then
wertvalue = val.SelectedValue
wertdbfeld = dbfeldsplit(0)
paramtyp = paramsplit(0)
Else
wertvalue = val.Text
If dbfeldsplit.Length > 1 Then
wertdbfeld = dbfeldsplit(1)
paramtyp = paramsplit(1)
Else
wertdbfeld = dbfeldsplit(0)
paramtyp = paramsplit(0)
End If
End If
Select Case UCase(paramtyp)
Case "VARCHAR", "STRING", "CHAR"
Return wertdbfeld + " " + wertop + " '" + wertvalue + "'"
Case "INTEGER", "INT"
Return wertdbfeld + " " + wertop + " " + wertvalue + ""
Case "DATEPART"
Select Case wertvalue
Case "letzte Woche"
Return wertdbfeld & " between dbo.get_dateperiode('LastWeek',1) and dbo.get_dateperiode('LastWeek',0)"
Case "letzter Monat"
Return wertdbfeld & " between dbo.get_dateperiode('LastMonth',1) and dbo.get_dateperiode('LastMonth',0)"
Case "letztes Quartal"
Return wertdbfeld & " between dbo.get_dateperiode('LastQuarter',1) and dbo.get_dateperiode('LastQuarter',0)"
Case "letztes Jahr"
Return wertdbfeld & " between dbo.get_dateperiode('LastYear',1) and dbo.get_dateperiode('LastYear',0)"
Case "aktuelle Woche"
Return wertdbfeld & " between dbo.get_dateperiode('ActWeek',1) and dbo.get_dateperiode('ActWeek',0)"
Case "aktueller Monat"
Return wertdbfeld & " between dbo.get_dateperiode('ActMonth',1) and dbo.get_dateperiode('ActMonth',0)"
Case "aktuelles Quartal"
Return wertdbfeld & " between dbo.get_dateperiode('ActQuarter',1) and dbo.get_dateperiode('ActQuarter',0)"
Case "aktuelles Jahr"
Return wertdbfeld & " between dbo.get_dateperiode('ActYear',1) and dbo.get_dateperiode('ActYear',0)"
End Select
'Dim dtfrom As DateTime
'Dim dtto As DateTime
'dtfrom = Today
'CalcDate(wertvalue, dtfrom, dtto)
'Return wertdbfeld & " between '" & Formateddate(dtfrom, True) & "' and '" & Formateddate(dtto, False) + "'"
'Dim dp As String
'Select Case wertvalue
' Case "letzte Woche"
' CalcDate(wertvalue, dtfrom, dtto)
' Case "letzte Woche"
' Return "cast(datepart(week," & wertdbfeld & ") as int) " & wertop & " cast(datepart(week, getdate()) as int) - 1"
' Case "letzer Monat"
' Return "cast(datepart(month," & wertdbfeld & ") as int) " & wertop & " cast(datepart(month, getdate()) as int) - 1"
' Case "letztes Quartal"
' Return "cast(datepart(quarter," & wertdbfeld & ") as int) " & wertop & " cast(datepart(quarter, getdate()) as int) - 1"
' Case "letztes Jahr"
' Return "year(" & wertdbfeld & ") " & wertop & " year(getdate()) - 1"
' Case "aktuelle Woche"
' Return "cast(datepart(week," & wertdbfeld & ") as int) " & wertop & " cast(datepart(week, getdate()) as int)"
' Case "aktueller Monat"
' Return "cast(datepart(month," & wertdbfeld & ") as int) " & wertop & " cast(datepart(month, getdate()) as int)"
' Case "aktuelles Quartal"
' Return "cast(datepart(quarter," & wertdbfeld & ") as int) " & wertop & " cast(datepart(quarter, getdate()) as int)"
' Case "aktuelles Jahr"
' Return "year(" & wertdbfeld & ") " & wertop & " year(getdate())"
'End Select
Case "DATUM"
Select Case wertop
Case "="
Return wertdbfeld + " > convert(datetime,'" + wertvalue + " 00:00:00',104) and " + wertdbfeld + " < convert(datetime,'" + wertvalue + " 23:59:59',104)"
Case "<>"
Return wertdbfeld + " < convert(datetime,'" + wertvalue + " 00:00:00',104) and " + wertdbfeld + " > convert(datetime,'" + wertvalue + " 23:59:59',104)"
Case ">="
Return wertdbfeld + " " + wertop + " convert(datetime,'" + wertvalue + " 00:00:00',104)"
Case ">"
Return wertdbfeld + " " + wertop + " convert(datetime,'" + wertvalue + " 23:59:59',104)"
Case "<"
Return wertdbfeld + " " + wertop + " convert(datetime,'" + wertvalue + " 00:00:00',104)"
Case "<="
Return wertdbfeld + " " + wertop + " convert(datetime,'" + wertvalue + " 23:59:59',104)"
Case Else
Return wertdbfeld + " " + wertop + " convert(datetime,'" + wertvalue + " 00:00:00',104)"
End Select
Case "DATUM+1"
Dim d As DateTime = wertvalue
d = DateAdd(DateInterval.Day, 1, d)
wertvalue = d.ToString
Return wertdbfeld + " " + wertop + " convert(datetime,'" + wertvalue + " 00:00:00',104)"
Case "BOOLEAN"
If UCase(wertvalue) = "TRUE" Or UCase(wertvalue) = "JA" Then
Return wertdbfeld + " " + wertop + " 1"
Else
Return wertdbfeld + " " + wertop + " 0"
End If
Case Else
End Select
End Function
#End Region
Private Sub cbvalue1_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbvalue1.DropDown, cbvalue2.DropDown, _
cbvalue3.DropDown, cbvalue4.DropDown, cbvalue5.DropDown, cbvalue6.DropDown, cbvalue7.DropDown
Try
Dim s As String = ParamNr(sender.name)
Dim nr As Integer = s
Dim param As New ComboBox
Dim op As New ComboBox
Dim val As New ComboBox
CtrlList.Clear()
Me.GetControl(Me, "cbparam" + Trim(Str(nr)), CtrlList)
param = CtrlList.Item(0)
CtrlList.Clear()
Me.GetControl(Me, "cbvalue" + Trim(Str(nr)), CtrlList)
val = CtrlList.Item(0)
dr = Me.Findrow(param.Text)
If dr.Item("Paramtype") = "Datum" Then
Dim LocalMousePosition As Point
LocalMousePosition = val.PointToClient(Cursor.Position)
Dim f As New frmCalendar
f.Top = Me.Top + val.Top + 200
f.Left = Me.Left + val.Width + 399
f.ShowDialog()
If f.DialogResult = Windows.Forms.DialogResult.OK Then
CtrlList.Clear()
Me.GetControl(Me, "cbvalue" + Trim(Str(nr)), CtrlList)
param = CtrlList.Item(0)
param.Text = f.MonthCalendar1.SelectionRange.Start.Date
param.Focus()
End If
End If
Catch ex As Exception
End Try
End Sub
Private Sub BtnInitParam_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnInitParam.Click
Me.Init_Params()
End Sub
Private Sub cbandor1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbandor1.SelectedIndexChanged, _
cbandor2.SelectedIndexChanged, cbandor3.SelectedIndexChanged, cbandor3.SelectedIndexChanged, cbandor4.SelectedIndexChanged, cbandor5.SelectedIndexChanged, _
cbandor6.SelectedIndexChanged
If Me.On_Load Then Exit Sub
Me.WhereModified = False
Me.PictureBox1.Visible = False
s = Me.ParamNr(sender.name)
s = s + 1
CtrlList.Clear()
Me.GetControl(Me, "cbparam" + s, CtrlList)
For Each x As ComboBox In CtrlList
x.Enabled = True
Next
CtrlList.Clear()
Me.GetControl(Me, "cbop" + s, CtrlList)
For Each x As ComboBox In CtrlList
x.Enabled = True
Next
CtrlList.Clear()
Me.GetControl(Me, "cbvalue" + s, CtrlList)
For Each x As ComboBox In CtrlList
x.Enabled = True
Next
CtrlList.Clear()
Me.GetControl(Me, "cbandor" + s, CtrlList)
For Each x As ComboBox In CtrlList
x.Enabled = True
Next
End Sub
Private Sub Init_ParamRow(ByVal s As String)
s = s + 1
CtrlList.Clear()
Me.GetControl(Me, "cbparam" + s, CtrlList)
For Each x As ComboBox In CtrlList
Try
x.Text = ""
Catch ex As Exception
End Try
x.Enabled = False
Next
CtrlList.Clear()
Me.GetControl(Me, "cbop" + s, CtrlList)
For Each x As ComboBox In CtrlList
x.Text = ""
x.Enabled = False
Next
CtrlList.Clear()
Me.GetControl(Me, "cbvalue" + s, CtrlList)
For Each x As ComboBox In CtrlList
x.Text = ""
x.Enabled = False
Next
CtrlList.Clear()
Me.GetControl(Me, "cbandor" + s, CtrlList)
For Each x As ComboBox In CtrlList
x.Text = ""
Next
End Sub
Private Sub BtnParamDel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnParamDel1.Click, BtnParamDel2.Click, _
BtnParamDel3.Click, BtnParamDel4.Click, BtnParamDel5.Click, BtnParamDel6.Click
Init_ParamRow(Me.ParamNr(sender.name))
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Me.On_Load = True
Dim s As String
CtrlList.Clear()
Me.GetControl(Me, "cbandor*", CtrlList)
For Each x As ComboBox In CtrlList
s = s + ParamNr(x.Name) + "~" + x.Text + ";"
Next
s = s + "|"
CtrlList.Clear()
Me.GetControl(Me, "cbparam*", CtrlList)
For Each x As ComboBox In CtrlList
s = s + ParamNr(x.Name) + "~" + x.Text + ";"
Next
s = s + "|"
CtrlList.Clear()
Me.GetControl(Me, "cbop*", CtrlList)
For Each x As ComboBox In CtrlList
s = s + ParamNr(x.Name) + "~" + x.Text + ";"
Next
s = s + "|"
CtrlList.Clear()
Me.GetControl(Me, "cbval*", CtrlList)
For Each x As ComboBox In CtrlList
s = s + ParamNr(x.Name) + "~" + x.Text + ";"
Next
Dim Bez As String = InputBox("Bezeichnung f<>r die Parameter:", "Auswertungsparameter sichern")
If Me.WhereModified = False Then
If Bez <> "" Then Me.auswertungen.Save_MAParameter(Me.auswertungen.Auswertung.iAuswertungNr.Value, Bez, s, Me.txtTitel1.Text, Me.txtTitel2.Text, Me.checkboxprintparam.Checked, "")
Else
If Bez <> "" Then Me.auswertungen.Save_MAParameter(Me.auswertungen.Auswertung.iAuswertungNr.Value, Bez, s, Me.txtTitel1.Text, Me.txtTitel2.Text, Me.checkboxprintparam.Checked, Me.SQLWhere)
End If
If Me.auswertungen.MitarbeiterAuswertungsparameter.Rows.Count > 0 Then
Me.ComboboxMAParameter.Visible = True
Try
Me.ComboboxMAParameter.DataSource = Nothing
Me.ComboboxMAParameter.DataSource = Me.auswertungen.MitarbeiterAuswertungsparameter
Me.ComboboxMAParameter.DisplayMember = "Beschreibung"
Me.ComboboxMAParameter.ValueMember = "Mitarbeiter_AuswertungsparameterNr"
Catch ex As Exception
End Try
Else
Me.ComboboxMAParameter.Visible = False
End If
Me.On_Load = False
Try
For Each dr As DataRow In Me.auswertungen.MitarbeiterAuswertungsparameter.Rows
If dr.Item("Beschreibung") = Bez Then
Me.ComboboxMAParameter.SelectedValue = dr.Item(0)
Me.ComboboxMAParameter_SelectedIndexChanged(sender, e)
End If
Next
Catch
End Try
End Sub
Private Sub ComboboxMAParameter_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboboxMAParameter.SelectedIndexChanged
If Me.On_Load = True Then Exit Sub
Dim wheremod As Boolean = False
Me.WhereModified = False
Me.PictureBox1.Visible = False
Try
Dim s As String = ""
For Each dr As DataRow In Me.auswertungen.MitarbeiterAuswertungsparameter.Rows
If dr.Item("Mitarbeiter_AuswertungsparameterNr") = Me.ComboboxMAParameter.SelectedValue Then
s = dr.Item("Parameterdaten")
Me.txtTitel1.Text = dr.Item("Titelzeile1")
Me.txtTitel2.Text = dr.Item("Titelzeile2")
Me.checkboxprintparam.Checked = dr.Item("ParamPrint")
If dr.Item("SQLWhere").ToString <> "" Then
Me.SQLWhere = dr.Item("SQLWhere").ToString
Me.WhereModified = True
wheremod = True
Me.PictureBox1.Visible = True
End If
End If
Next
If s = "" Then Exit Sub
Me.Init_Params(False)
Dim grp() As String = s.Split("|")
Dim andor As String = grp(0)
Dim param As String = grp(1)
Dim op As String = grp(2)
Dim val As String = grp(3)
Dim tmpvalue() As String
Dim ValueItem() As String
Dim tmpparam() As String
Dim ParamItem() As String
Dim tmpop() As String
Dim opItem() As String
Dim tmpandor() As String
Dim andorItem() As String
Dim tmpcbidx As Integer
Dim vals() As String
Dim CTLIndex As Integer
Dim CTLAndOr As String
Dim CTLParam As String
Dim CTLOP As String
Dim CTLValue As String
Dim CTLSplit() As String
Dim SelIndexSet As Boolean
Dim i As Integer
For i = 6 To 0 Step -1
tmpvalue = val.ToString.Split(";")
If tmpvalue(i).ToString.Length > 2 Then
ValueItem = tmpvalue(i).Split("~")
CTLIndex = ValueItem(0)
CTLValue = ValueItem(1)
tmpparam = param.Split(";")
ParamItem = tmpparam(i).Split("~")
CTLParam = ParamItem(1)
tmpop = op.Split(";")
opItem = tmpop(i).Split("~")
CTLOP = opItem(1)
If i > 1 Then
tmpandor = andor.Split(";")
andorItem = tmpandor(i - 1).Split("~")
CTLAndOr = andorItem(1)
End If
'Parameter
Dim l As New List(Of Control)
Me.GetControl(Me, "cbparam" + Trim(Str(CTLIndex)), l)
Dim x As ComboBox = l(0)
SelIndexSet = False
Dim ii As Integer = 0
For ii = 0 To x.Items.Count - 1
If x.Items(ii).ToString = CTLParam Then
x.SelectedIndex = ii
SelIndexSet = True
End If
Next
If SelIndexSet = False Then x.Text = CTLParam
'Operator
l.Clear()
Me.GetControl(Me, "cbop" + Trim(Str(CTLIndex)), l)
x = l(0)
SelIndexSet = False
For ii = 0 To x.Items.Count - 1
If x.Items(ii).ToString = CTLOP Then
x.SelectedIndex = ii
SelIndexSet = True
End If
Next
If SelIndexSet = False Then x.Text = CTLOP
'value
l.Clear()
Me.GetControl(Me, "cbvalue" + Trim(Str(CTLIndex)), l)
x = l(0)
SelIndexSet = False
For ii = 0 To x.Items.Count - 1
If x.Items(ii).ToString = CTLValue Then
x.SelectedIndex = ii
SelIndexSet = True
End If
Next
If SelIndexSet = False Then x.Text = CTLValue
'andor
l.Clear()
Me.GetControl(Me, "cbandor" + Trim(Str(CTLIndex)), l)
x = l(0)
SelIndexSet = False
For ii = 0 To x.Items.Count - 1
If x.Items(ii).ToString = CTLAndOr Then
x.SelectedIndex = ii
SelIndexSet = True
End If
Next
If SelIndexSet = False Then x.Text = CTLAndOr
End If
Next
If wheremod = True Then
Me.WhereModified = True
Me.PictureBox1.Visible = True
End If
Catch ex As Exception
End Try
End Sub
Private Sub ComboboxMAParameter_VisibleChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboboxMAParameter.VisibleChanged
Me.btnDeleteSavedParam.Visible = Me.ComboboxMAParameter.Visible
End Sub
Private Sub btnDeleteSavedParam_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeleteSavedParam.Click
Me.On_Load = True
If Me.ComboboxMAParameter.SelectedIndex = -1 Then Exit Sub
Me.auswertungen.Delete_Parameter(Me.ComboboxMAParameter.SelectedValue)
'Me.Init_Params()
Me.txtTitel1.Text = Me.TreeAuswertungen.SelectedNode.Text
Me.txtTitel2.Text = ""
Me.checkboxprintparam.Checked = True
If Me.auswertungen.MitarbeiterAuswertungsparameter.Rows.Count > 0 Then
Me.ComboboxMAParameter.Visible = True
Try
Me.ComboboxMAParameter.DataSource = Nothing
Me.ComboboxMAParameter.DataSource = Me.auswertungen.MitarbeiterAuswertungsparameter
Me.ComboboxMAParameter.DisplayMember = "Beschreibung"
Me.ComboboxMAParameter.ValueMember = "Mitarbeiter_AuswertungsparameterNr"
Me.ComboboxMAParameter.SelectedIndex = -1
Catch ex As Exception
End Try
Me.On_Load = False
Else
Me.ComboboxMAParameter.Visible = False
End If
End Sub
Private Sub AlleKnotenSchliessenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AlleKnotenSchliessenToolStripMenuItem.Click
Me.TreeAuswertungen.CollapseAll()
End Sub
Private Sub AlleKnoten<EFBFBD>ffnenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AlleKnoten<EFBFBD>ffnenToolStripMenuItem.Click
Me.TreeAuswertungen.ExpandAll()
End Sub
'#Region "Datumsfunktionen"
' Private Function CalcDate(ByVal typ As String, ByRef dtfrom As DateTime, ByRef dtto As DateTime)
' Select Case UCase(typ)
' Case "LETZTE WOCHE"
' GetDates(dtfrom, dtto)
' Case "LETZTER MONAT"
' dtfrom = DateAdd(DateInterval.Month, -1, dtfrom)
' dtto = GetLastDayOfMonth(dtfrom)
' dtfrom = GetFirstDayOfMonth(dtfrom)
' Case "LETZTES QUARTAL"
' Dim d As DateTime
' d = DateAdd(DateInterval.Quarter, -1, dtfrom)
' dtfrom = FirstDayOfQuarter(d)
' dtto = LastDayOfQuarter(d)
' Case "LETZTES JAHR"
' dtfrom = DateAdd(DateInterval.Year, -1, dtfrom)
' Dim y As Integer = Year(dtfrom)
' dtfrom = "01.01." + Str(y)
' dtto = "31.12." + Str(y)
' Case "AKTUELLE WOCHE"
' dtfrom = DateAdd(DateInterval.Day, 7, dtfrom)
' GetDates(dtfrom, dtto)
' Case "AKTUELLER MONAT"
' dtfrom = dtfrom
' dtto = GetLastDayOfMonth(dtfrom)
' dtfrom = GetFirstDayOfMonth(dtfrom)
' Case "AKTUELLES QUARTAL"
' Dim d As DateTime
' d = dtfrom
' dtfrom = FirstDayOfQuarter(d)
' dtto = LastDayOfQuarter(d)
' Case "AKTUELLES JAHR"
' Dim y As Integer = Year(dtfrom)
' dtfrom = "01.01." + Str(y)
' dtto = "31.12." + Str(y)
' End Select
' End Function
' Private Sub GetDates(ByRef stDate As Date, ByRef endDate As Date)
' Dim offset As Double = 0
' Select Case stDate.DayOfWeek
' Case DayOfWeek.Monday : offset = 0
' Case DayOfWeek.Tuesday : offset = -1
' Case DayOfWeek.Wednesday : offset = -2
' Case DayOfWeek.Thursday : offset = -3
' Case DayOfWeek.Friday : offset = -4
' Case DayOfWeek.Saturday : offset = -5
' Case DayOfWeek.Sunday : offset = -6
' End Select
' endDate = DateAdd(DateInterval.Day, (offset - 1), stDate)
' stDate = DateAdd(DateInterval.Day, -7 + offset, stDate)
' End Sub
' Private Function GetFirstDayOfMonth(ByVal dtDate As Date) As DateTime
' Dim dtFrom As Date = dtDate
' dtFrom = dtFrom.AddDays(-(dtFrom.Day - 1))
' Return dtFrom
' End Function
' Private Function GetLastDayOfMonth(ByVal dtDate As Date) As DateTime
' Dim dtTo As Date = dtDate
' dtTo = dtTo.AddMonths(1)
' dtTo = dtTo.AddDays(-(dtTo.Day))
' Return dtTo
' End Function
' Public Function FirstDayOfQuarter(ByVal DateIn As DateTime) _
' As DateTime
' ' Calculate first day of DateIn quarter,
' ' with quarters starting at the beginning of Jan/Apr/Jul/Oct
' Dim intQuarterNum As Integer = (Month(DateIn) - 1) \ 3 + 1
' Return DateSerial(Year(DateIn), 3 * intQuarterNum - 2, 1)
' End Function
' Public Function LastDayOfQuarter(ByVal DateIn As Date) As Date
' ' Calculate last day of DateIn quarter,
' ' with quarters ending at the end of Mar/Jun/Sep/Dec
' Dim intQuarterNum As Integer = (Month(DateIn) - 1) \ 3 + 1
' Return DateSerial(Year(DateIn), 3 * intQuarterNum + 1, 0)
' End Function
' Private Function Formateddate(ByVal dt As DateTime, ByVal start As Boolean) As String
' If start Then
' Return Format(dt, Globals.clsapplication.sReport_Datum_Format.Value) & " 00:00:00"
' Else
' Return Format(dt, Globals.clsapplication.sReport_Datum_Format.Value) & " 23:59:59"
' End If
' End Function
'#End Region
Private Sub btnEditSQL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEditSQL.Click
If Me.WhereModified = False Then Get_SQLWhere()
Dim f As New frmEditWhere
f.sql = Me.SQLWhere
f.ShowDialog()
If f.DialogResult = Windows.Forms.DialogResult.OK Then
If f.sql <> "" Then
Me.SQLWhere = f.sql
Me.WhereModified = True
Me.PictureBox1.Visible = True
Else
Me.WhereModified = False
Me.PictureBox1.Visible = False
End If
End If
f.Dispose()
End Sub
Private Sub cbop1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbop1.SelectedIndexChanged, cbop2.SelectedIndexChanged, _
cbop3.SelectedIndexChanged, cbop4.SelectedIndexChanged, cbop5.SelectedIndexChanged, cbop6.SelectedIndexChanged, cbop7.SelectedIndexChanged
If Me.On_Load Then Exit Sub
Me.WhereModified = False
Me.PictureBox1.Visible = False
End Sub
Private Sub cbvalue1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbvalue1.SelectedIndexChanged, _
cbvalue2.SelectedIndexChanged, cbvalue3.SelectedIndexChanged, cbvalue4.SelectedIndexChanged, cbvalue5.SelectedIndexChanged, cbvalue6.SelectedIndexChanged, cbvalue7.SelectedIndexChanged, _
cbvalue1.TextChanged, cbvalue2.TextChanged, cbvalue3.TextChanged, cbvalue4.TextChanged, cbvalue5.TextChanged, cbvalue6.TextChanged, cbvalue7.TextChanged
If Me.On_Load Then Exit Sub
Me.WhereModified = False
Me.PictureBox1.Visible = False
End Sub
Private Sub tsbtnReportDesign_Click(sender As Object, e As EventArgs) Handles tsbtnReportDesign.Click
Me.Cursor = Cursors.WaitCursor
Me.auswertungen.TitelZeile1 = Me.txtTitel1.Text
Me.auswertungen.TitelZeile2 = Me.txtTitel2.Text
If Me.WhereModified = False Then Get_SQLWhere()
Me.Auswertungsdaten = Me.auswertungen.Get_Auswertungsdaten(Me.auswertungen.Auswertung.sSQL.Value, SQLWhere, Me.auswertungen.Auswertung.sSQLType.Value)
Dim f As New frmcrreporting(Me.Auswertungsdaten, Me.auswertungen.Auswertung.iAuswertungNr.Value, Me.auswertungen, Me.checkboxprintparam.Checked, True)
f.Text = "Auswertung " + Me.TreeAuswertungen.SelectedNode.Text
f.MdiParent = Me.MdiParent
Me.Cursor = Cursors.Default
f.Show()
f.DesignReport()
End Sub
Private Sub TSBtnSetSecurityObject_Click(sender As Object, e As EventArgs) Handles TSBtnSetSecurityObject.Click
If InputBox("Passwort:") <> "341211" Then Exit Sub
sec.List_Form_Controls(Me)
sec.Print_Screen(Me)
End Sub
End Class