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.

1802 lines
74 KiB

Imports System.Windows.Forms
Imports System.Drawing
Imports System.Security.Principal
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 DataTable
Dim tt As New TKB.VV.Utils.clsToolTips
Dim On_Load As Boolean = False
Dim DescriptionToolTip As New ToolTip
Dim WhereModified As Boolean = False
Dim sec As New TKB.VV.Utils.MySecurity
Dim CurrentUser As String = ""
Dim ParamCollection As New Collection
Dim paramvalue1 As String
Dim paramvalue2 As String
Dim paramvalue3 As String
#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
#Region "User"
''' <summary>
''' Security-Deklaration zum Auslesen der UserID vom Windows-User
''' </summary>
''' <remarks></remarks>
Dim ouser As New WindowsPrincipal(WindowsIdentity.GetCurrent)
''' <summary>
''' Windows-User auslesen
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Private Function Get_Username() As String
With ouser.Identity.Name
Return (.Substring(.IndexOf("\") + 1))
End With
End Function
#End Region
Private Sub FrmReportSelect_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Try
tt.Set_ToolTips(Me)
Catch
End Try
auswertungen.Get_Auswertungen(Me.TreeAuswertungen)
Me.TreeAuswertungen.CollapseAll()
Me.TreeAuswertungen.SelectedNode = Me.TreeAuswertungen.Nodes(0)
sec.Set_Form_Security(Me)
Catch
End Try
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.auswertungen.Auswertung.bTXP_Auswertung.Value = True Then
TXP_Auswertung()
Me.Cursor = Cursors.Default
Exit Sub
End If
If Me.WhereModified = False Then Get_SQLWhere()
Me.Auswertungsdaten = Me.auswertungen.Get_Auswertungsdaten(Me.auswertungen.Auswertung.sSQL.Value, Me.ParamCollection)
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
Me.Cursor = Cursors.WaitCursor
Me.auswertungen.TitelZeile1 = Me.txtTitel1.Text
Me.auswertungen.TitelZeile2 = Me.txtTitel2.Text
'If Me.cbpa1.Text <> "" Then
' Me.ParamCollection.Clear()
' Dim i As Integer
' Dim pname As String
' Dim pvalue As String
' For i = 1 To 7
' CtrlList.Clear()
' Me.GetControl(Me, "cbpa" + i.ToString, CtrlList)
' For Each x As ComboBox In CtrlList
' pname = x.Text
' Next
' CtrlList.Clear()
' Me.GetControl(Me, "cbvalue" + i.ToString, CtrlList)
' For Each x As ComboBox In CtrlList
' pvalue = x.Text
' Next
' Dim params As New TKB.Auswertung.RptParams(pname, pvalue)
' If pname <> "" Then Me.ParamCollection.Add(params)
' Next i
'End If
If Me.auswertungen.Auswertung.bTXP_Auswertung.Value = True Then
TXP_AuswertungCR()
Me.Cursor = Cursors.Default
Exit Sub
End If
If Me.WhereModified = False Then Get_SQLWhere()
Me.Auswertungsdaten = Me.auswertungen.Get_Auswertungsdaten(Me.auswertungen.Auswertung.sSQL.Value, Me.ParamCollection)
Dim f As New frmcrreporting(Me.Auswertungsdaten, Me.auswertungen.Auswertung.iAuswertungNr.Value, Me.auswertungen, Me.checkboxprintparam.Checked, CurrentUser)
f.Text = "Auswertung " + Me.TreeAuswertungen.SelectedNode.Text
f.MdiParent = Me.MdiParent
Me.Cursor = Cursors.Default
f.Show()
End Sub
Private Sub TXP_Auswertung()
If Me.WhereModified = False Then Get_SQLWhere()
Me.Auswertungsdaten = Me.auswertungen.Get_Auswertungsdaten(Me.auswertungen.Auswertung.sSQL.Value, Me.ParamCollection, True)
Dim f As New frmAuswertung(Me.TreeAuswertungen.SelectedNode.Text, Me.Auswertungsdaten)
f.Text = "Auswertung " + Me.TreeAuswertungen.SelectedNode.Text
f.MdiParent = Me.MdiParent
f.Show()
End Sub
Private Sub TXP_AuswertungCR()
If Me.WhereModified = False Then Get_SQLWhere()
Me.Auswertungsdaten = Me.auswertungen.Get_Auswertungsdaten(Me.auswertungen.Auswertung.sSQL.Value, Me.ParamCollection, True)
Dim f As New frmcrreporting(Me.Auswertungsdaten, Me.auswertungen.Auswertung.iAuswertungNr.Value, Me.auswertungen, Me.checkboxprintparam.Checked, CurrentUser)
f.MdiParent = Me.MdiParent
Me.Cursor = Cursors.Default
f.Show()
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.bCR_Report.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.bCSV_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()
sec.Set_Form_Security(Me)
Catch ex As Exception
MsgBox(ex.Message)
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 SetControl(ByVal ctrlname As String, visible As Boolean, enabled As Boolean, inahalt As String)
Me.CtrlList.Clear()
Me.GetControl(Me, ctrlname, CtrlList)
For Each x As ComboBox In CtrlList
Try
x.DataSource = Nothing
x.Items.Clear()
x.Enabled = enabled
x.Visible = visible
x.Text = inahalt
Catch ex As Exception
End Try
Next
End Sub
Private Sub SetControl_Tabledata(ByVal ctrlname As String, visible As Boolean, enabled As Boolean, inhalt As String)
Dim fb As New DataTable
fb = Me.auswertungen.get_rptparam_values(inhalt)
Me.CtrlList.Clear()
Me.GetControl(Me, ctrlname, CtrlList)
For Each x As ComboBox In CtrlList
Try
x.Items.Clear()
x.Enabled = enabled
x.Visible = visible
x.DataSource = Nothing
x.DataSource = fb
x.DisplayMember = "Bezeichnung"
x.ValueMember = "keyvalue"
Catch ex As Exception
End Try
Next
End Sub
Sub Set_Value(ByVal name As String, int As Integer, values As String)
Dim selval() As String = values.Split(";")
CtrlList.Clear()
Me.GetControl(Me, name + int.ToString, CtrlList)
For Each x As ComboBox In CtrlList
For Each ss As String In selval
x.Items.Add(ss)
Next
x.Enabled = True
x.SelectedItem = x.Items(0)
Next
End Sub
Sub Enable_Combo(ByVal name As String, Int As Integer)
CtrlList.Clear()
Me.GetControl(Me, name + Int.ToString, CtrlList)
For Each x As ComboBox In CtrlList
x.Enabled = True
Next
End Sub
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
Dim i As Integer
For i = 1 To 6
SetControl("cbandor" + i.ToString, True, True, "")
Next
i = 0
For Each r As DataRow In Me.auswertungen.AuswertungParameter.Rows
If r("Fix") = True Then
i = i + 1
SetControl("cbparam" + i.ToString, True, False, r("Bezeichnung"))
SetControl("cbop" + i.ToString, True, False, r("FixOperator"))
Dim pv As String
If Len(r("defaultvalue")) > 0 Then
If Len(r("Defaultvalue")) > 3 Then
If r("defaultvalue").ToString.Substring(0, 1) = "@" Then
pv = Get_Param1(r("defaultvalue"))
SetControl("cbvalue" + i.ToString, True, r("editable"), Get_Param1(r("defaultvalue")))
Else
If UCase(r("defaultvalue").ToString.Substring(0, 3)) = "SP_" Then
pv = Get_Param1(r("defaultvalue"))
SetControl_Tabledata("cbvalue" + i.ToString, True, r("editable"), r("defaultvalue"))
Else
pv = r("defaultvalue")
SetControl("cbvalue" + i.ToString, True, r("editable"), pv)
Set_Value("cbvalue", i, pv)
End If
End If
SetControl("cbandor" + i.ToString, False, False, "")
Else
pv = r("defaultvalue")
SetControl("cbvalue" + i.ToString, True, r("editable"), pv)
Set_Value("cbvalue", i, pv)
End If
Else
pv = r("defaultvalue")
SetControl("cbvalue" + i.ToString, True, r("editable"), pv)
Set_Value("cbvalue", i, pv)
End If
End If
Next
Dim AnzahlFixParameter As Integer = i
Dim i1 As Integer
For i1 = AnzahlFixParameter + 1 To 7
Me.CtrlList.Clear()
Me.GetControl(Me, "cb*" + i1.ToString, 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
Next
For i1 = AnzahlFixParameter + 1 To 7
CtrlList.Clear()
Me.GetControl(Me, "cbandor" + i1.ToString, CtrlList)
For Each x As ComboBox In CtrlList
x.Items.Clear()
x.Items.Add("und")
x.Items.Add("oder")
Next
Next i1
Enable_Combo("cbparam", AnzahlFixParameter + 1)
Enable_Combo("cbop", AnzahlFixParameter + 1)
Enable_Combo("cbvalue", AnzahlFixParameter + 1)
Enable_Combo("cbandor", AnzahlFixParameter + 1)
For i1 = AnzahlFixParameter + 1 To 7
Me.CtrlList.Clear()
Me.GetControl(Me, "cbparam" + i1.ToString, CtrlList)
For Each x As ComboBox In CtrlList
For Each dr As DataRow In Me.auswertungen.AuswertungParameter.Rows
If dr.Item("Fix") = False Then x.Items.Add(dr.Item("Bezeichnung"))
Next
Next
Next i1
Exit Sub
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
Dim fix As Boolean
If Me.auswertungen.AuswertungParameter.Rows.Count > 0 Then
fix = True
End If
For Each r As DataRow In Me.auswertungen.AuswertungParameter.Rows
If r.Item("Fix") = False Then fix = False
Next
If fix Then
Setup_Fix_Param()
Exit Sub
End If
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
If dr.Item("Fix") = False Then x.Items.Add(dr.Item("Bezeichnung"))
Next
Next
For Each r As DataRow In Me.auswertungen.AuswertungParameter.Rows
Next
End Sub
Private Sub Setup_Fix_Param()
Dim i1 As Integer
For i1 = 1 To 7
Me.CtrlList.Clear()
Me.GetControl(Me, "cbpa" + i1.ToString, CtrlList)
For Each x As ComboBox In CtrlList
x.Visible = False
Next
Next
Me.CtrlList.Clear()
Me.GetControl(Me, "cbandor*", CtrlList)
For Each x As ComboBox In CtrlList
Try
x.DataSource = Nothing
x.Items.Clear()
x.Enabled = False
x.Text = ""
x.Visible = False
Catch ex As Exception
End Try
Next
Me.lblundoder.Visible = False
Dim i As Integer = 0
For Each dr As DataRow In Me.auswertungen.AuswertungParameter.Rows
i = i + 1
Me.CtrlList.Clear()
Me.GetControl(Me, "cbparam" + i.ToString, CtrlList)
For Each x As ComboBox In CtrlList
x.Enabled = False
x.Text = dr.Item("Bezeichnung")
Next
Me.CtrlList.Clear()
Me.GetControl(Me, "cbop" + i.ToString, CtrlList)
For Each x As ComboBox In CtrlList
x.Enabled = False
x.Text = dr.Item("FixOperator")
Next
Me.CtrlList.Clear()
Me.GetControl(Me, "cbpa" + i.ToString, CtrlList)
For Each x As ComboBox In CtrlList
x.Enabled = False
x.Visible = False
x.Text = dr.Item("Param_Name")
Next
Me.CtrlList.Clear()
Me.GetControl(Me, "cbvalue" + i.ToString, CtrlList)
For Each x As ComboBox In CtrlList
x.Text = Set_DefaultValue(dr.Item("Defaultvalue"))
If dr.Item("Editable") = False Then x.Enabled = False Else x.Enabled = True
If dr.Item("Feldbezug").ToString <> "" Then
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"))
x.DataSource = Nothing
x.Items.Clear()
x.DataSource = fb
x.DisplayMember = "Bezeichnung"
x.ValueMember = "KeyValue"
Else
'Fixer Feldbezug
If dr.Item("Feldbezug").ToString <> "" Then
Dim selval() As String = dr.Item("Feldbezug").ToString.Split(";")
Dim cbvalue As String = "cbvalue" + s
x.DataSource = Nothing
x.Items.Clear()
For Each ss As String In selval
x.Items.Add(ss)
Next
End If
End If
End If
Next
Next
End Sub
Private Function Set_DefaultValue(ByVal Inputvalue As String) As String
Return Get_Param1(Inputvalue)
End Function
''' <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
'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 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.ParamCollection.Clear()
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
' If cbparam1.Enabled = True Then
' Me.auswertungen.ParamCollection.Add(cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text)
' s = cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text
' SQLWhere = SQLWhere + get_where(1)
' Else
' Set_Fixparameter(1, s)
' End If
'End If
If Me.cbparam1.Text <> "" And Me.cbop1.Text <> "" And Me.cbvalue1.Text <> "" Then
If cbparam1.Enabled = True Then
Me.auswertungen.ParamCollection.Add(cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text)
s = cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text
SQLWhere = SQLWhere + get_where(1)
Else
Set_Fixparameter(1, s)
End If
End If
If Me.cbparam2.Text <> "" And Me.cbop2.Text <> "" And Me.cbvalue2.Text <> "" Then
If cbparam2.Enabled = True Then
If cbandor1.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
Else
Me.auswertungen.ParamCollection.Add(cbparam2.Text & " " & cbop2.Text & " " & cbvalue2.Text)
s = cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text
SQLWhere = SQLWhere + get_where(2)
End If
Else
Set_Fixparameter(2, s)
End If
End If
If Me.cbparam3.Text <> "" And Me.cbop3.Text <> "" And Me.cbvalue3.Text <> "" Then
If cbparam3.Enabled = True Then
If Me.cbandor2.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
Else
Me.auswertungen.ParamCollection.Add(cbparam3.Text & " " & cbop3.Text & " " & cbvalue3.Text)
s = cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text
SQLWhere = SQLWhere + get_where(3)
End If
Else
Set_Fixparameter(3, s)
End If
End If
If Me.cbparam4.Text <> "" And Me.cbop4.Text <> "" And Me.cbvalue4.Text <> "" Then
If cbparam4.Enabled = True Then
If Me.cbandor3.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
Else
Me.auswertungen.ParamCollection.Add(cbparam4.Text & " " & cbop4.Text & " " & cbvalue4.Text)
s = cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text
SQLWhere = SQLWhere + get_where(4)
End If
Else
Set_Fixparameter(4, s)
End If
End If
If Me.cbparam5.Text <> "" And Me.cbop5.Text <> "" And Me.cbvalue5.Text <> "" Then
If cbparam5.Enabled = True Then
If Me.cbandor4.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
Else
Me.auswertungen.ParamCollection.Add(cbparam5.Text & " " & cbop5.Text & " " & cbvalue5.Text)
s = cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text
SQLWhere = SQLWhere + get_where(5)
End If
Else
Set_Fixparameter(5, s)
End If
End If
If Me.cbparam6.Text <> "" And Me.cbop6.Text <> "" And Me.cbvalue6.Text <> "" Then
If cbparam6.Enabled = True Then
If Me.cbandor5.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
Else
Me.auswertungen.ParamCollection.Add(cbparam6.Text & " " & cbop6.Text & " " & cbvalue6.Text)
s = cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text
SQLWhere = SQLWhere + get_where(6)
End If
Else
Set_Fixparameter(6, s)
End If
End If
If Me.cbparam7.Text <> "" And Me.cbop7.Text <> "" And Me.cbvalue7.Text <> "" Then
If cbparam7.Enabled = True Then
If Me.cbandor6.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
Else
Me.auswertungen.ParamCollection.Add(cbparam7.Text & " " & cbop7.Text & " " & cbvalue7.Text)
s = cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text
SQLWhere = SQLWhere + get_where(7)
End If
Else
Set_Fixparameter(6, 7)
End If
End If
If Me.auswertungen.Auswertung.sSQL.ToString.IndexOf("(CurrentUser)") > 0 Then
Me.CurrentUser = Me.Get_Username
If SQLWhere = "" Then
SQLWhere = " ForUserID='" + Me.Get_Username + "'"
Else
SQLWhere = "(" + SQLWhere + ") AND ForUserID='" + Me.Get_Username + "'"
End If
End If
'For Each r As DataRow In Me.auswertungen.AuswertungParameter.Rows
' If r("Fix") = True Then
' Dim x As String
' x = Get_Param1(r("Feldbezug"))
' get_where(-1, True, r("DBfeldname"), r("Operator"), x, r("paramtype"))
' If r("Param_name") <> "" Then
' 'Eigener Parameter
' Me.ParamCollection.Add(New TKB.Auswertung.RptParams(r("Param_name"), x))
' Me.auswertungen.ParamCollection.Add("" + " " + r.Item("Bezeichnung").ToString & " " & r("Operator").ToString & " " & x)
' s = s & "' & Chr(10) & Chr(13) & '" & "" + " " + r.Item("Bezeichnung").ToString & " " & r("Operator").ToString & " " & x
' Else
' 'Erweiterung SQL-Wehere
' If LCase(r("fixandor")) = "and" Then
' SQLWhere = SQLWhere + " und " + get_where(-1, True, r("DBfeldname"), r("Operator"), x, r("paramtype"))
' Me.auswertungen.ParamCollection.Add("und" + " " + r.Item("Bezeichnung").ToString & " " & r("Operator").ToString & " " & x)
' s = s & "' & Chr(10) & Chr(13) & '" & "und" + " " + r.Item("Bezeichnung").ToString & " " & r("Operator").ToString & " " & x
' Else
' SQLWhere = SQLWhere + " oder " + get_where(-1, True, r("DBfeldname"), r("Operator"), x, r("paramtype"))
' Me.auswertungen.ParamCollection.Add("oder" + " " + r.Item("Bezeichnung").ToString & " " & r("Operator").ToString & " " & x)
' s = s & "' & Chr(10) & Chr(13) & '" & "oder" + " " + r.Item("Bezeichnung").ToString & " " & r("Operator").ToString & " " & x
' End If
' End If
' End If
'Next
If SQLWhere <> "" Then
If ParamCollection.Count > 0 Then
Me.ParamCollection.Add(New TKB.Auswertung.RptParams("@sqlwhere", SQLWhere), , 1)
Else
Me.ParamCollection.Add(New TKB.Auswertung.RptParams("@sqlwhere", SQLWhere))
End If
End If
Me.auswertungen.FullParam = s
End Sub
Private Sub Set_Fixparameter(ByVal Itemnr As Integer, ByRef s As String)
Dim ParamName As String
Dim ParamOP As String
Dim ParamValue As String
Dim ParamValueText As String = ""
CtrlList.Clear()
Me.GetControl(Me, "cbparam" + Itemnr.ToString, CtrlList)
For Each ob As ComboBox In CtrlList
ParamName = ob.Text
Next
CtrlList.Clear()
Me.GetControl(Me, "cbop" + Itemnr.ToString, CtrlList)
For Each ob As ComboBox In CtrlList
ParamOP = ob.Text
Next
Dim Set_CBBoxValue As Boolean = False
For Each r As DataRow In Me.auswertungen.AuswertungParameter.Rows
If r("bezeichnung") = ParamName Then
If UCase(r("Paramtype")) = "INT;VARCHAR" Then
set_cbboxvalue = True
End If
End If
Next
CtrlList.Clear()
Me.GetControl(Me, "cbvalue" + Itemnr.ToString, CtrlList)
For Each ob As ComboBox In CtrlList
If Set_CBBoxValue = True Then
ParamValue = ob.SelectedValue
ParamValueText = ob.Text
Else
ParamValue = ob.Text
ParamValueText = ob.Text
End If
Next
For Each r As DataRow In Me.auswertungen.AuswertungParameter.Rows
If r("bezeichnung") = ParamName Then
Dim x As String
x = ParamValue
x = get_where_fix(-1, True, r("DBfeldname"), r("Operator"), x, r("paramtype"))
If UCase(r("Paramtype")) = "DATEPART" Then
Dim paramsplit() As String = r("param_name").ToString.Split(";")
Me.ParamCollection.Add(New TKB.Auswertung.RptParams(paramsplit(0), Me.paramvalue1))
Me.ParamCollection.Add(New TKB.Auswertung.RptParams(paramsplit(1), Me.paramvalue2))
Me.auswertungen.ParamCollection.Add(ParamName + " " + ParamOP + " " + ParamValue)
' Me.auswertungen.ParamCollection.Add("" + " " + paramsplit(0).ToString & " " & ParamOP & " " & Me.paramvalue1)
' s = s & "' & Chr(10) & Chr(13) & '" & "und" + " " + paramsplit(0).ToString & " " & ParamOP & " " & Me.paramvalue1
' Me.auswertungen.ParamCollection.Add("" + " " + paramsplit(1).ToString & " " & ParamOP & " " & Me.paramvalue2)
' s = s & "' & Chr(10) & Chr(13) & '" & "und" + " " + paramsplit(1).ToString & " " & ParamOP & " " & Me.paramvalue2
Else
Me.ParamCollection.Add(New TKB.Auswertung.RptParams(r("Param_Name"), x))
Me.auswertungen.ParamCollection.Add("" + " " + r("Bezeichnung").ToString & " " & ParamOP & " " & ParamValueText)
s = s & "' & Chr(10) & Chr(13) & '" & "und" + " " + r.Item("Bezeichnung").ToString & " " & ParamOP & " " & ParamValueText
End If
End If
Next
End Sub
''' <summary>
''' Where zusammenstellen
''' </summary>
''' <param name="nr"></param>
''' <returns></returns>
''' <remarks></remarks>
Private Function get_where(ByVal nr As Integer, Optional fixparam As Boolean = False, Optional wdbfeld As String = "", Optional wop As String = "", Optional wvalue As String = "", Optional wparamtyp As String = "") 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
Dim paramtyp As String = ""
If fixparam = False Then
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 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
Else
wertdbfeld = wdbfeld
wertop = wop
wertvalue = wvalue
paramtyp = wparamtyp
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 LCase(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
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
Private Function get_where_fix(ByVal nr As Integer, Optional fixparam As Boolean = False, Optional wdbfeld As String = "", Optional wop As String = "", Optional wvalue As String = "", Optional wparamtyp As String = "") 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
Dim paramtyp As String = ""
wertdbfeld = wdbfeld
wertop = wop
wertvalue = wvalue
paramtyp = wparamtyp
Select Case UCase(paramtyp)
Case "VARCHAR", "STRING", "CHAR"
Return wertvalue
Case "INTEGER", "INT"
Return wertvalue
Case "DATEPART"
Select Case LCase(wertvalue)
Case "letzte woche"
Me.paramvalue1 = Get_Param1("@FIRSTOFLASTWEEK") + " 00:00:00"
Me.paramvalue2 = Get_Param1("@LASTOFLASTWEEK") + " 23:59:59"
Return ""
Case "letzter monat"
Me.paramvalue1 = Get_Param1("@FIRSTOFLASTMONTH") + " 00:00:00"
Me.paramvalue2 = Get_Param1("@LASTOFLASTMONTH") + " 23:59:59"
Return ""
Case "letztes quartal"
Me.paramvalue1 = Get_Param1("@FIRSTOFLASTQUARTER") + " 00:00:00"
Me.paramvalue2 = Get_Param1("@LASTOFLASTQUARTER") + " 23:59:59"
Return ""
Case "letztes jahr"
Me.paramvalue1 = Get_Param1("@FIRSTOFLASTYEAR") + " 00:00:00"
Me.paramvalue2 = Get_Param1("@LASTOFLASTYEAR") + " 23:59:59"
Return ""
Case "aktuelle woche"
Me.paramvalue1 = Get_Param1("@FIRSTOFACTWEEK") + " 00:00:00"
Me.paramvalue2 = Get_Param1("@LASTOFACTWEEK") + " 23:59:59"
Return ""
Case "aktueller monat"
Me.paramvalue1 = Get_Param1("@FIRSTOFACTMONTH") + " 00:00:00"
Me.paramvalue2 = Get_Param1("@LASTOFACTMONTH") + " 23:59:59"
Return ""
Case "aktuelles quartal"
Me.paramvalue1 = Get_Param1("@FIRSTOFACTQUARTER") + " 00:00:00"
Me.paramvalue2 = Get_Param1("@LASTOFACTQUARTER") + " 23:59:59"
Return ""
Case "aktuelles jahr"
Me.paramvalue1 = Get_Param1("@FIRSTOFACTYEAR") + " 00:00:00"
Me.paramvalue2 = Get_Param1("@LASTOFACTYEAR") + " 23:59:59"
Return ""
Case "aktuelles jahr bis ende letzter monat"
Me.paramvalue1 = Get_Param1("@FIRSTOFACTYEAR") + " 00:00:00"
Me.paramvalue2 = Get_Param1("@LASTOFLASTMONTH") + " 23:59:59"
Return ""
End Select
Case "DATUM"
Return wertvalue
Case "DATUM+1"
Return wertvalue
Case "BOOLEAN"
If UCase(wertvalue) = "TRUE" Or UCase(wertvalue) = "JA" Then
Return "1"
Else
Return "0"
End If
Case Else
Return wertvalue
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.StartPosition = FormStartPosition.Manual
f.Location = System.Windows.Forms.Cursor.Position
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.DropDownStyle = ComboBoxStyle.Simple
param.Text = f.MonthCalendar1.SelectionRange.Start.Date
param.DropDownStyle = ComboBoxStyle.DropDown
param.Focus()
param.DropDownStyle = ComboBoxStyle.DropDown
End If
End If
If dr.Item("Feldbezug") = "OESelectSingle" Or dr.Item("Feldbezug") = "OESelectMulti" Or dr.Item("Feldbezug") = "OEMa" Then
Dim LocalMousePosition As Point
LocalMousePosition = val.PointToClient(Cursor.Position)
Dim f As New frmTreeselect(dr.Item("Feldbezug"))
' f.Top = Me.Top + val.Top + 200
' f.Left = Me.Left + val.Width + 399
f.StartPosition = FormStartPosition.Manual
f.Location = System.Windows.Forms.Cursor.Position
f.ShowDialog()
If f.DialogResult = Windows.Forms.DialogResult.OK Then
If dr.Item("Feldbezug") = "OESelectSingle" Then
Me.GetControl(Me, "cbvalue" + Trim(Str(nr)), CtrlList)
param = CtrlList.Item(0)
param.DropDownStyle = ComboBoxStyle.Simple
param.SelectedValue = f.SelectedValues
param.DropDownStyle = ComboBoxStyle.DropDown
Else
Me.GetControl(Me, "cbvalue" + Trim(Str(nr)), CtrlList)
param = CtrlList.Item(0)
param.DropDownStyle = ComboBoxStyle.Simple
param.Items.Clear()
param.Items.Add(f.SelectedValues)
param.Text = f.SelectedValues
param.DropDownStyle = ComboBoxStyle.DropDown
End If
f.Dispose()
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 Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim f As New frmReportDescription
f.txtbeschreibung.Text = Me.txtbeschreibung.Text
f.ShowDialog()
End Sub
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
#Region "Param-Funktionen"
Function Get_Param1(inputvalue As String) As String
Select Case UCase(inputvalue)
Case "@FIRSTOFACTWEEK"
Dim Dt As Date = Now.AddDays(-Now.DayOfWeek).ToShortDateString
Dt = Dt.AddDays(1)
Return Dt.ToShortDateString
Case "@LASTOFACTWEEK"
Dim Dt As Date = Now.AddDays(-Now.DayOfWeek + 6).ToShortDateString
Dt = Dt.AddDays(1)
Return Dt.ToShortDateString
Case "@FIRSTOFACTMONTH"
Return GetFirstDayOfMonth(Now).ToShortDateString
Case "@LASTOFACTMONTH"
Dim dt As String = Now.ToShortDateString
Return GetLastDayOfMonth(dt).ToShortDateString
Case "@FIRSTOFACTQUARTER"
Return GetFirstDayOfQuarter(Now).ToShortDateString
Case "@LASTOFACTQUARTER"
Return GetLastDayOfQuarter(Now).ToShortDateString
Case "@FIRSTOFACTYEAR"
Return FirstDayOfYear(Now)
Case "@LASTOFACTYEAR"
Return LastDayOfYear(Now)
Case "@FIRSTOFLASTWEEK"
Dim Dt As Date
Dt = Now.AddDays(-7)
Dt = Dt.AddDays(-Now.DayOfWeek).ToShortDateString
Dt = Dt.AddDays(1)
Return Dt.ToShortDateString
Case "@LASTOFLASTWEEK"
Dim Dt As Date
Dt = Now.AddDays(-7)
Dt = Dt.AddDays(-Now.DayOfWeek + 6).ToShortDateString
Dt = Dt.AddDays(1)
Return Dt.ToShortDateString
Case "@FIRSTOFLASTMONTH"
Return GetFirstDayOfMonth(Now.AddMonths(-1)).ToShortDateString
Case "@LASTOFLASTMONTH"
Return GetLastDayOfMonth(Now.AddMonths(-1)).ToShortDateString
Case "@FIRSTOFLASTQUARTER"
Return GetFirstDayOfQuarter(Now.AddMonths(-3)).ToShortDateString
Case "@LASTOFLASTQUARTER"
Return GetLastDayOfQuarter(Now.AddMonths(-3)).ToShortDateString
Case "@FIRSTOFLASTYEAR"
Return FirstDayOfYear(Now.AddYears(-1))
Case "@LASTOFLASTYEAR"
Return LastDayOfYear(Now.AddYears(-1))
Case "@CURRENTUSER"
Return Get_Username()
End Select
End Function
Private Function FirstDayOfYear(ByVal y As DateTime) As DateTime
Return New DateTime(y.Year, 1, 1)
End Function
Private Function LastDayOfYear(ByVal d As DateTime) As DateTime
Dim time As New DateTime((d.Year + 1), 1, 1)
Return time.AddDays(-1)
End Function
Public Shared Function GetFirstDayOfQuarter(ByVal originalDate As DateTime) As DateTime
Return AddQuarters(New DateTime(originalDate.Year, 1, 1), GetQuarter(originalDate) - 1)
End Function
Public Shared Function GetLastDayOfQuarter(ByVal originalDate As DateTime) As DateTime
Return AddQuarters(New DateTime(originalDate.Year, 1, 1), GetQuarter(originalDate)).AddDays(-1)
End Function
Public Shared Function AddQuarters(ByVal originalDate As DateTime, ByVal quarters As Integer) As DateTime
Return originalDate.AddMonths(quarters * 3)
End Function
Public Shared Function GetQuarter(ByVal fromDate As DateTime) As Integer
Return ((fromDate.Month - 1) \ 3) + 1
End Function
Private Function GetFirstDayOfMonth(ByVal dtDate As DateTime) As DateTime
Dim dtFrom As DateTime = dtDate
dtFrom = dtFrom.AddDays(-(dtFrom.Day - 1))
Return dtFrom
End Function
Private Function GetLastDayOfMonth(ByVal dtDate As DateTime) As DateTime
Dim dtTo As New DateTime(dtDate.Year, dtDate.Month, 1)
dtTo = dtTo.AddMonths(1)
dtTo = dtTo.AddDays(-(dtTo.Day))
Return dtTo
End Function
#End Region
Private Sub TSBtnSuche_Click(sender As Object, e As EventArgs) Handles TSBtnSuche.Click
auswertungen.Init_Search()
Try
Me.TreeAuswertungen.SelectedNode = auswertungen.SearchNode(Me.TreeAuswertungen, Me.ToolStriptxtSuche.Text)
Me.TreeAuswertungen.SelectedNode.EnsureVisible()
Catch
End Try
End Sub
Private Sub TSBtnNext_Click(sender As Object, e As EventArgs) Handles TSBtnNext.Click
Me.TreeAuswertungen.SelectedNode = auswertungen.FindNextNode(Me.TreeAuswertungen)
End Sub
Private Sub ToolStriptxtSuche_KeyDown(sender As Object, e As KeyEventArgs) Handles ToolStriptxtSuche.KeyDown
If e.KeyCode = Keys.Enter Then TSBtnSuche_Click(sender, e)
End Sub
Private Sub TSBtnPrevious_Click(sender As Object, e As EventArgs) Handles TSBtnPrevious.Click
Me.TreeAuswertungen.SelectedNode = auswertungen.FindPrevNode(Me.TreeAuswertungen)
End Sub
Private Sub TSBtnFirst_Click(sender As Object, e As EventArgs) Handles TSBtnFirst.Click
Me.TreeAuswertungen.SelectedNode = auswertungen.FindFirst(Me.TreeAuswertungen)
End Sub
Private Sub TSBtnLast_Click(sender As Object, e As EventArgs) Handles TSBtnLast.Click
Me.TreeAuswertungen.SelectedNode = auswertungen.FindLastNode(Me.TreeAuswertungen)
End Sub
Private Sub TSBtnFilterAufheben_Click(sender As Object, e As EventArgs) Handles TSBtnFilterAufheben.Click
Me.ToolStriptxtSuche.Text = ""
auswertungen.Init_Search()
End Sub
End Class