Files
RecordOrganizer/app/DD-Record-Organiser/frmMass_Change.vb
2016-06-22 16:06:34 +02:00

115 lines
7.0 KiB
VB.net

Public Class frmMass_Change
Private Sub frmMass_Change_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
SUCCESSFULL = False
Dim msg = "Anzahl zu ändernde Datensätze: "
If USER_LANGUAGE <> "de-DE" Then
msg = "Count of records to be changed:"
End If
lblCount.Text = msg & MASS_RECORD_IDs2CHANGE.Count
cmbColumn.Items.Clear()
For Each Str As String In MASS_COLUMN_LIST
If Str.ToLower = "addedwho" Or Str.ToLower = "changedwho" Or Str.ToLower = "addedwhen" Or Str.ToLower = "changedwhen" Then
Continue For
Else
cmbColumn.Items.Add(Str)
End If
Next
Catch ex As Exception
MsgBox("Unexpected Error in load form:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub btncancel_Click(sender As Object, e As EventArgs) Handles btncancel.Click
Me.Close()
End Sub
Private Sub btnRefresh_Click(sender As Object, e As EventArgs) Handles btnRefresh.Click
Try
If txtNewValue.Text <> "" And Me.cmbColumn.SelectedIndex <> -1 And cmbColumn.Text <> "" Then
Dim msg = "Sind Sie sicher, dass Sie diese Massenänderung durchführen wollen?" & vbNewLine & MASS_RECORD_IDs2CHANGE.Count.ToString & " Datensätze werden geändert!"
If USER_LANGUAGE <> "de-DE" Then
msg = "Are You sure You want to execute this mass change?" & vbNewLine & MASS_RECORD_IDs2CHANGE.Count.ToString & " records will be changed!"
End If
Cursor = Cursors.WaitCursor
Dim result As MsgBoxResult
result = MessageBox.Show(msg, "Confirmation:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = MsgBoxResult.Yes Then
Dim val = txtNewValue.Text
Dim SQL = String.Format("SELECT GUID FROM TBPMO_CONTROL WHERE COL_NAME = '{0}' AND FORM_ID = {1}", cmbColumn.Text, CURRENT_FORM_ID)
Dim control_Id = ClassDatabase.Execute_Scalar(SQL)
If Not IsNothing(control_Id) Then
If control_Id > 0 Then
SQL = String.Format("SELECT CONTROL_TYPE_ID FROM TBPMO_CONTROL WHERE GUID = {0}", control_Id)
Dim control_type_ID = ClassDatabase.Execute_Scalar(SQL)
If control_type_ID = 4 Then
Try
val = CDate(val)
Catch ex As Exception
MsgBox("Error in Converting value '" & val & "' to date", MsgBoxStyle.Critical)
Cursor = Cursors.Default
Exit Sub
End Try
End If
If control_type_ID = 7 Or control_type_ID = 12 Or control_type_ID = 14 Then
msg = "Achtung: für diese Spalte existieren mehrere Werte. Diese Werte werden gelöscht." & vbNewLine & "Wollen Sie dennoch fortfahren?"
If USER_LANGUAGE <> "de-DE" Then
msg = "Attention: there are multiple values for this column. These values will be deleted." & vbNewLine & "Would You like to continue?"
End If
Dim result1 As MsgBoxResult
result1 = MessageBox.Show(msg, "Confirmation:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result1 = MsgBoxResult.No Then
Exit Sub
Else
For Each Record As String In MASS_RECORD_IDs2CHANGE
Dim del = String.Format("DELETE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", control_Id, CInt(Record))
ClassDatabase.Execute_non_Query(del)
Next
End If
End If
Try
Dim err As Boolean = False
For Each Record As String In MASS_RECORD_IDs2CHANGE
SQL = String.Format("SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", control_Id, CInt(Record))
Dim ex_GUID = ClassDatabase.Execute_Scalar(SQL)
If Not IsNothing(ex_GUID) Then
SQL = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}',CHANGED_WHO = '{1}' WHERE GUID = {2}", val, Environment.UserName, ex_GUID)
If ClassDatabase.Execute_non_Query(SQL) = False Then
MsgBox("Error in updating the value for Record: " & Record & vbNewLine & "Please check the logfile.", MsgBoxStyle.Exclamation)
End If
Else
SQL = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID, RECORD_ID, VALUE, ADDED_WHO) VALUES ({0},{1},'{2}','{3}')", control_Id, CInt(Record), val, Environment.UserName)
If ClassDatabase.Execute_non_Query(SQL) = False Then
MsgBox("Error in inserting the value for Record: " & Record & vbNewLine & "Please check the logfile.", MsgBoxStyle.Exclamation)
End If
End If
Next
SUCCESSFULL = True
msg = "Alle Änderungen wurden ausgeführt!"
If USER_LANGUAGE <> "de-DE" Then
msg = "All changes were executed!"
End If
MsgBox(msg, MsgBoxStyle.Information)
Catch ex As Exception
MsgBox("Unexpected Error in Getting record to be changed:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
Else
MsgBox("No defined column found! (1)", MsgBoxStyle.Information)
End If
Else
MsgBox("No defined column found! (2)", MsgBoxStyle.Information)
End If
End If
End If
Catch ex As Exception
MsgBox("Unexpected Error in Execute mass change:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
Cursor = Cursors.Default
End Sub
End Class