Imports System.Data Imports System.Data.SqlTypes Imports System.Data.SqlClient Imports System.ComponentModel Imports UtilityLibrary.Win32 Public Class frmStatuswechsel Inherits System.Windows.Forms.Form #Region " Vom Windows Form Designer generierter Code " Public Sub New() MyBase.New() ' Dieser Aufruf ist für den Windows Form-Designer erforderlich. InitializeComponent() ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen End Sub ' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub ' Für Windows Form-Designer erforderlich Private components As System.ComponentModel.IContainer 'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich 'Sie kann mit dem Windows Form-Designer modifiziert werden. 'Verwenden Sie nicht den Code-Editor zur Bearbeitung. Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents Button2 As System.Windows.Forms.Button Friend WithEvents cbStatus As System.Windows.Forms.ComboBox Friend WithEvents cbMitarbeiter As System.Windows.Forms.ComboBox Friend WithEvents Label1 As System.Windows.Forms.Label Friend WithEvents Label2 As System.Windows.Forms.Label Friend WithEvents Button3 As System.Windows.Forms.Button Friend WithEvents cbmoeglicheStati As System.Windows.Forms.ComboBox Friend WithEvents cbsave As System.Windows.Forms.ComboBox Friend WithEvents Panel1 As System.Windows.Forms.Panel Friend WithEvents txtstatus As System.Windows.Forms.Label Friend WithEvents Label3 As System.Windows.Forms.Label Friend WithEvents Label4 As System.Windows.Forms.Label Friend WithEvents txtBemerkung As System.Windows.Forms.TextBox Private Sub InitializeComponent() Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(frmStatuswechsel)) Me.Button1 = New System.Windows.Forms.Button() Me.Button2 = New System.Windows.Forms.Button() Me.cbStatus = New System.Windows.Forms.ComboBox() Me.cbMitarbeiter = New System.Windows.Forms.ComboBox() Me.Label1 = New System.Windows.Forms.Label() Me.Label2 = New System.Windows.Forms.Label() Me.Button3 = New System.Windows.Forms.Button() Me.cbmoeglicheStati = New System.Windows.Forms.ComboBox() Me.cbsave = New System.Windows.Forms.ComboBox() Me.Panel1 = New System.Windows.Forms.Panel() Me.txtstatus = New System.Windows.Forms.Label() Me.Label3 = New System.Windows.Forms.Label() Me.Label4 = New System.Windows.Forms.Label() Me.txtBemerkung = New System.Windows.Forms.TextBox() Me.SuspendLayout() ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(8, 232) Me.Button1.Name = "Button1" Me.Button1.TabIndex = 0 Me.Button1.Text = "&Abbruch" ' 'Button2 ' Me.Button2.Location = New System.Drawing.Point(304, 232) Me.Button2.Name = "Button2" Me.Button2.TabIndex = 1 Me.Button2.Text = "&OK" ' 'cbStatus ' Me.cbStatus.Location = New System.Drawing.Point(112, 16) Me.cbStatus.Name = "cbStatus" Me.cbStatus.Size = New System.Drawing.Size(264, 21) Me.cbStatus.TabIndex = 2 Me.cbStatus.Text = "ComboBox1" ' 'cbMitarbeiter ' Me.cbMitarbeiter.Location = New System.Drawing.Point(112, 48) Me.cbMitarbeiter.Name = "cbMitarbeiter" Me.cbMitarbeiter.Size = New System.Drawing.Size(240, 21) Me.cbMitarbeiter.TabIndex = 3 Me.cbMitarbeiter.Text = "ComboBox1" ' 'Label1 ' Me.Label1.Location = New System.Drawing.Point(8, 16) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(96, 23) Me.Label1.TabIndex = 4 Me.Label1.Text = "Dokumentstatus" ' 'Label2 ' Me.Label2.Location = New System.Drawing.Point(8, 48) Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(80, 23) Me.Label2.TabIndex = 5 Me.Label2.Text = "Verantwortlich" ' 'Button3 ' Me.Button3.Image = CType(resources.GetObject("Button3.Image"), System.Drawing.Bitmap) Me.Button3.Location = New System.Drawing.Point(176, 264) Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(24, 24) Me.Button3.TabIndex = 6 Me.Button3.Visible = False ' 'cbmoeglicheStati ' Me.cbmoeglicheStati.Items.AddRange(New Object() {"abc", "def", "gagas d sd", "sdf sdf sfd "}) Me.cbmoeglicheStati.Location = New System.Drawing.Point(354, 48) Me.cbmoeglicheStati.Name = "cbmoeglicheStati" Me.cbmoeglicheStati.Size = New System.Drawing.Size(21, 21) Me.cbmoeglicheStati.TabIndex = 7 Me.cbmoeglicheStati.Text = "ComboBox1" ' 'cbsave ' Me.cbsave.Items.AddRange(New Object() {"abc", "def", "gagas d sd", "sdf sdf sfd "}) Me.cbsave.Location = New System.Drawing.Point(352, 48) Me.cbsave.Name = "cbsave" Me.cbsave.Size = New System.Drawing.Size(21, 21) Me.cbsave.TabIndex = 8 Me.cbsave.Text = "ComboBox1" Me.cbsave.Visible = False ' 'Panel1 ' Me.Panel1.Location = New System.Drawing.Point(374, 8) Me.Panel1.Name = "Panel1" Me.Panel1.Size = New System.Drawing.Size(16, 100) Me.Panel1.TabIndex = 9 ' 'txtstatus ' Me.txtstatus.Location = New System.Drawing.Point(112, 80) Me.txtstatus.Name = "txtstatus" Me.txtstatus.Size = New System.Drawing.Size(224, 23) Me.txtstatus.TabIndex = 10 Me.txtstatus.Text = "Label3" Me.txtstatus.Visible = False ' 'Label3 ' Me.Label3.Location = New System.Drawing.Point(8, 72) Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(96, 32) Me.Label3.TabIndex = 11 Me.Label3.Text = "Berechtigt für Folgestatus" Me.Label3.Visible = False ' 'Label4 ' Me.Label4.Location = New System.Drawing.Point(8, 104) Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(192, 16) Me.Label4.TabIndex = 12 Me.Label4.Text = "Bemerkung für den Verantwortlichen" ' 'txtBemerkung ' Me.txtBemerkung.Location = New System.Drawing.Point(8, 120) Me.txtBemerkung.Multiline = True Me.txtBemerkung.Name = "txtBemerkung" Me.txtBemerkung.Size = New System.Drawing.Size(368, 104) Me.txtBemerkung.TabIndex = 13 Me.txtBemerkung.Text = "" ' 'frmStatuswechsel ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(384, 263) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.txtBemerkung, Me.Label4, Me.Label3, Me.txtstatus, Me.Panel1, Me.cbsave, Me.Button3, Me.Label2, Me.Label1, Me.cbMitarbeiter, Me.cbStatus, Me.Button2, Me.Button1, Me.cbmoeglicheStati}) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "frmStatuswechsel" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "Status / Verantwortlicher wechseln" Me.ResumeLayout(False) End Sub #End Region Dim m_dokumentid As String Property Dokumentid() As String Get Return m_dokumentid End Get Set(ByVal Value As String) m_dokumentid = Value End Set End Property Dim m_mitarbeiternr As Integer Property Mitarbeiternr() As Integer Get Return m_mitarbeiternr End Get Set(ByVal Value As Integer) m_mitarbeiternr = Value End Set End Property Dim m_currentstatus As Integer Property currentstatus() As Integer Get Return m_currentstatus End Get Set(ByVal Value As Integer) m_currentstatus = Value End Set End Property Dim WithEvents mcbstatus As New MultiComboBox() Dim WithEvents mcbmitarbeiter As New MultiComboBox() Dim moeglichstati As DataTable Dim Funktionsliste As String Dim selectedstatus As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.mcbstatus = New MultiComboBox(Me.cbStatus) Me.mcbstatus.CheckNullValue = True Me.mcbstatus.NullValueMessage = MyTxt.gettext(18) Me.mcbstatus.DisplayColumnName = "Bezeichnung" Me.mcbstatus.ValueColumnName = "dokumentstatusnr" Me.mcbstatus.Fill_Data(Generic_Select(2), False) Me.mcbstatus.SelectedValue = Me.currentstatus Me.moeglichstati = Generic_Select(6) Me.cbmoeglicheStati.Items.Clear() Dim i As Integer For i = 0 To Me.moeglichstati.Rows.Count - 1 Me.cbmoeglicheStati.Items.Add(Me.moeglichstati.Rows(i).Item("bezeichnung")) Next Me.Funktionsliste = "" mcbmitarbeiter = New MultiComboBox(Me.cbMitarbeiter) fill_mcbmitarbeiter() Dim ttip As New ToolTip() ttip.SetToolTip(Me.cbmoeglicheStati, Globals.MyTxt.gettext(22000)) End Sub Private Sub fill_mcbmitarbeiter() Me.mcbmitarbeiter.DataSource = Nothing Me.mcbmitarbeiter.Items.Clear() Me.mcbmitarbeiter.CheckNullValue = True Me.mcbmitarbeiter.NullValueMessage = MyTxt.gettext(18) Me.mcbmitarbeiter.DisplayColumnName = "mitarbeiter" Me.mcbmitarbeiter.ValueColumnName = "mitarbeiternr" Me.mcbmitarbeiter.Fill_Data(DivFnkt.Berechtigte_Mitarbeiter(0, 0, 0, Me.Dokumentid, 3, 0, 0, 0, Me.Funktionsliste), False) ' Me.mcbmitarbeiter.Fill_Data(DivFnkt.Berechtigte_Mitarbeiter(0, 0, 0, Me.Dokumentid, 3, 0, 0, 0, Me.Funktionsliste), False) Me.mcbmitarbeiter.SelectedValue = Me.Mitarbeiternr End Sub Private Function Generic_Select(ByVal typ As Integer) As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() Select Case typ Case 2 scmCmdToExecute.CommandText = "sp_dokumentbearbeitung_statuswechsel" Case 3 scmCmdToExecute.CommandText = "SP_Dokumentbearbeitung_Mitarbeiter" Case 4 scmCmdToExecute.CommandText = "SP_message_generate_verantwortlicher_wechsel" Case 6 scmCmdToExecute.CommandText = "sp_dokumentbearbeitung_statuswechsel" Case 7 scmCmdToExecute.CommandText = "sp_dokumentbearbeitung_statuswechsel_funktionen" Case 13 scmCmdToExecute.CommandText = "sp_dokumentbearbeitung_ist_kundenberater" Case Else End Select scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.Connection = conn.scoDBConnection Try Select Case typ Case 2 scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumentid)) scmCmdToExecute.Parameters.Add(New SqlParameter("@currentstatus", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0)) Case 4 scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumentid)) scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.mcbstatus.SelectedValue)) scmCmdToExecute.Parameters.Add(New SqlParameter("@verantwortlicher", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.mcbmitarbeiter.SelectedValue)) Case 6 scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumentid)) scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1)) scmCmdToExecute.Parameters.Add(New SqlParameter("@currentstatus", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0)) Case 7 scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumentid)) scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0)) scmCmdToExecute.Parameters.Add(New SqlParameter("@currentstatus", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.selectedstatus)) Case 13 scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumentid)) scmCmdToExecute.Parameters.Add(New SqlParameter("@nrpar00", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0)) scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr)) Case Else End Select If typ = 1 Then End If sdaAdapter.Fill(dtToReturn) If typ = 2 Then Me.currentstatus = scmCmdToExecute.Parameters("@currentstatus").Value End If Return dtToReturn Catch ex As Exception ' // some error occured. Bubble it to caller and encapsulate Exception object Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() End Try End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '26.10.03 - Hutter Dim statuswechsel As Boolean = False Dim verantwechsel As Boolean = False If Me.mcbstatus.Text = "In Bearbeitung" Then If Archivfnkt.check_bereits_archiviert(Me.Dokumentid, False) = False Then Windows.Forms.Application.DoEvents() Me.Cursor = Cursors.Default Exit Sub Else If Globals.dokumentid_changed Then Me.Dokumentid = Globals.DokumentID_New_Copy End If End If End If '26.10.03 Dim sth As New Statushandling() Dim doc As New edokadb.clsDokument() doc.cpMainConnectionProvider = conn conn.OpenConnection() doc.sDokumentid = New SqlString(CType(Me.Dokumentid, String)) doc.SelectOne() Dim statush As New Statushandling() statush.NeuerStatus = Me.mcbstatus.SelectedValue statush.Check_Neuer_Status() If statush.Folgestatus = True And Me.mcbmitarbeiter.SelectedValue = Me.Mitarbeiternr Then MyMsg.show_standardmessage(21, MsgBoxStyle.Critical) Me.mcbmitarbeiter.Focus() statush.Dispose() doc.Dispose() Exit Sub End If If UCase(Me.mcbstatus.Text) <> "KONTROLLIERT (JEDERZEIT)" Then doc.bBereit_zur_archivierung = New SqlBoolean(CType(False, Boolean)) End If If statush.Ausgangsarchivierung = True Then doc.bBereit_zur_archivierung = New SqlBoolean(CType(True, Boolean)) End If If doc.iVerantwortlich.Value <> Me.mcbmitarbeiter.SelectedValue Then '26.10.03 - hutter verantwechsel = True '26.10.03 doc.iVerantwortlich = New SqlInt32(CType(Me.mcbmitarbeiter.SelectedValue, Int32)) sth.BemerkungVerantwortlicher = Me.txtBemerkung.Text sth.Meldung_Verantwortlicher(Me.Dokumentid, Me.mcbmitarbeiter.SelectedValue) End If If statush.Ablgeschossen = True Or Me.mcbstatus.Text = "Abgeschlossen" Then doc.iVerantwortlich = New SqlInt32(CType(9998, Int32)) End If If doc.iStatusnr.Value <> Me.mcbstatus.SelectedValue Then '26.10.03 statuswechsel = True '26.10.03 Dim st As New SqlDataAdapter("Select status_bezeichnungnr from dokument_status where dokument_statusnr=" & Me.mcbstatus.SelectedValue, Globals.sConnectionString) Dim std As New DataSet() st.Fill(std, "bez") If std.Tables(0).Rows(0).Item(0) <> 8 Then doc.iStatusnr = New SqlInt32(CType(Me.mcbstatus.SelectedValue, Int32)) End If sth.Meldung_Status(Me.Dokumentid, Me.mcbstatus.SelectedValue) std.Dispose() st.Dispose() End If doc.iMutierer = New SqlInt32(CType(Globals.MitarbeiterNr, Int32)) doc.daMutiertam = New SqlDateTime(CType(Now, DateTime)) If Not doc.iDokdurchkubeweitergegeben.Value = 1 Then Dim tx As DataTable tx = Generic_Select(13) If tx.Rows(0).Item(0) = 1 Then doc.iDokdurchkubeweitergegeben = New SqlInt32(CType(1, Int32)) Else doc.iDokdurchkubeweitergegeben = New SqlInt32(CType(0, Int32)) End If tx.Dispose() End If '26.10.03 - Hutter If Me.mcbstatus.Text = "In Bearbeitung" Then doc.bAusgangsarchiviert = New SqlBoolean(CType(False, Boolean)) doc.bEingangsarchiviert = New SqlBoolean(CType(False, Boolean)) End If doc.Update() conn.CloseConnection(True) If statuswechsel Or verantwechsel Then statush.insert_history_status(CType(Me.mcbstatus.SelectedValue, Int32), Me.Dokumentid, Me.mcbmitarbeiter.SelectedValue) End If statush.check_abschluss(Me.Dokumentid, Me.mcbmitarbeiter.SelectedValue) Me.Close() doc.Dispose() statush.Dispose() '26.10.03 End Sub Private Sub cbmoeglicheStati_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbmoeglicheStati.DropDown Me.cbmoeglicheStati.Width = 200 Me.cbsave.Visible = True End Sub Private Sub cbmoeglicheStati_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbmoeglicheStati.Leave Me.cbsave.Visible = False Me.cbmoeglicheStati.Width = 21 End Sub Private Sub cbmoeglicheStati_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbmoeglicheStati.SelectedValueChanged Dim i As Integer Dim DATA As DataTable Me.cbsave.Visible = False Me.cbmoeglicheStati.Width = 21 Me.txtstatus.Text = Me.cbmoeglicheStati.Text Me.Label3.Visible = True Me.txtstatus.Visible = True If Me.txtstatus.Text = Me.mcbstatus.Text Then Me.Label3.Visible = False Me.txtstatus.Visible = False Me.Funktionsliste = "" Me.selectedstatus = 0 Else For i = 0 To Me.moeglichstati.Rows.Count - 1 If Me.txtstatus.Text = Me.moeglichstati.Rows(i).Item("bezeichnung") Then Me.selectedstatus = Me.moeglichstati.Rows(i).Item("nr") End If Next End If Me.Funktionsliste = "" DATA = Generic_Select(7) For i = 0 To DATA.Rows.Count - 1 If Me.Funktionsliste <> "" Then Me.Funktionsliste = Me.Funktionsliste + ";" Me.Funktionsliste = Me.Funktionsliste + LTrim(DATA.Rows(i).Item("funktionnr")) Next fill_mcbmitarbeiter() Me.mcbmitarbeiter.Focus() End Sub Private Sub cbsave_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbsave.SelectedIndexChanged End Sub Private Sub cbmoeglicheStati_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbmoeglicheStati.SelectedIndexChanged End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBemerkung.TextChanged End Sub End Class