866 lines
46 KiB
VB.net
866 lines
46 KiB
VB.net
Imports DD_Record_Organizer.ClassDatabase
|
|
Imports DD_Record_Organizer.ClassControlBuilder
|
|
Imports DD_LIB_Standards
|
|
|
|
|
|
Public Class ClassControlCommandsUI
|
|
Private _CtrlBuilder As ClassControlBuilder
|
|
Private _AddAppointmentHandler As System.EventHandler
|
|
Private _AddFormDataHandler As System.EventHandler
|
|
Private _ContextMenuStrip As ContextMenuStrip
|
|
|
|
Private _isinsert As Boolean = False
|
|
Private _isedit As Boolean = False
|
|
|
|
Public Property IsInsert As Boolean
|
|
Get
|
|
Return _isinsert
|
|
End Get
|
|
Set(value As Boolean)
|
|
_isinsert = value
|
|
_CtrlBuilder.IsInsert = value
|
|
End Set
|
|
End Property
|
|
Public Property IsEdit As Boolean
|
|
Get
|
|
Return _isedit
|
|
End Get
|
|
Set(value As Boolean)
|
|
_isedit = value
|
|
_CtrlBuilder.IsEdit = value
|
|
End Set
|
|
End Property
|
|
''' <summary>
|
|
''' Erstellt eine neue Instanz der ClassControlCommandsUI Klasse
|
|
''' </summary>
|
|
''' <param name="ControlBuilder">Eine ControlBuilder Instanz</param>
|
|
''' <param name="AddAppointmentDelegate">Ein Delegate, der auf eine AddAppointment-Methode verweist, mit AddressOf verwenden</param>
|
|
''' <param name="AddFormDataDelegate">Ein Delegate, der auf eine AddFormData-Methode verweist, mit AddressOf verwenden</param>
|
|
''' <remarks></remarks>
|
|
Sub New(ControlBuilder As ClassControlBuilder, ContextMenuStrip As ContextMenuStrip, AddAppointmentDelegate As System.EventHandler) ', AddFormDataDelegate As System.EventHandler)
|
|
_CtrlBuilder = ControlBuilder
|
|
_ContextMenuStrip = ContextMenuStrip
|
|
_AddAppointmentHandler = AddAppointmentDelegate
|
|
' _AddFormDataHandler = AddFormDataDelegate
|
|
End Sub
|
|
|
|
Sub LoadControls(FormId As Integer)
|
|
_CtrlBuilder.ClearControls()
|
|
_CtrlBuilder.MasterPanel.SuspendLayout()
|
|
|
|
Dim sw As New SW("LoadControls")
|
|
|
|
Dim SQL As String = String.Format("SELECT T.*, dbo.FNPMO_GET_CONTROL_CAPTION ('{2}', {3},T.CONTROL_ID) AS 'CAPTION' FROM VWPMO_CONTROL_SCREEN T WHERE T.SCREEN_ID = {0} AND T.FORM_ID = {1} AND T.CONTROL_VISIBLE = 1", CURRENT_SCREEN_ID, FormId, USER_LANGUAGE, CURRENT_SCREEN_ID)
|
|
|
|
Dim DT As DataTable = ClassDatabase.Return_Datatable(SQL, True)
|
|
|
|
For Each dr As DataRow In DT.Rows
|
|
Dim parent As GroupBox = Nothing
|
|
If (dr.Item("CONTROL_PARENT_ID") <> 0) Then
|
|
Dim parentname As String = Get_Name_for_ControlID(dr.Item("CONTROL_PARENT_ID"), FormId)
|
|
parent = _CtrlBuilder.GetControlByName(parentname)
|
|
End If
|
|
Dim control As String
|
|
Select Case dr.Item("CTRLTYPE_ID")
|
|
Case 1 ' Label
|
|
_CtrlBuilder.AddLabel(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CAPTION"),
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_FONT_FAMILY"),
|
|
dr.Item("CTRLSCR_FONT_COLOR"),
|
|
dr.Item("CTRLSCR_FONT_SIZE"),
|
|
dr.Item("CTRLSCR_FONT_STYLE"),
|
|
dr.Item("CONTROL_SQLCOMMAND_1"),
|
|
False,
|
|
parent)
|
|
control = "Label - " & dr.Item("CONTROL_ID")
|
|
Case 2 ' TextBox
|
|
_CtrlBuilder.AddTextBox(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_FONT_FAMILY"),
|
|
dr.Item("CTRLSCR_FONT_COLOR"),
|
|
dr.Item("CTRLSCR_FONT_SIZE"),
|
|
dr.Item("CTRLSCR_FONT_STYLE"),
|
|
dr.Item("CTRLSCR_TAB_INDEX"),
|
|
dr.Item("CTRLSCR_TAB_STOP"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
dr.Item("CONTROL_MULTILINE"),
|
|
dr.Item("CONTROL_READ_ONLY"),
|
|
dr.Item("CONTROL_REQUIRED"),
|
|
dr.Item("CONTROL_FORMAT_TYPE"),
|
|
dr.Item("CONTROL_AUTO_SUGGEST"),
|
|
False,
|
|
parent)
|
|
control = "Text - " & dr.Item("CONTROL_ID")
|
|
Case 3 ' ComboBox
|
|
_CtrlBuilder.AddComboBox(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_FONT_FAMILY"),
|
|
dr.Item("CTRLSCR_FONT_COLOR"),
|
|
dr.Item("CTRLSCR_FONT_SIZE"),
|
|
dr.Item("CTRLSCR_FONT_STYLE"),
|
|
dr.Item("CTRLSCR_TAB_INDEX"),
|
|
dr.Item("CTRLSCR_TAB_STOP"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
dr.Item("CONTROL_FORMAT_TYPE"),
|
|
False,
|
|
dr.Item("CONTROL_READ_ONLY"),
|
|
dr.Item("CONTROL_SELECT_ONLY"),
|
|
dr.Item("CONTROL_REQUIRED"),
|
|
dr.Item("CONTROL_STATIC_LIST"),
|
|
dr.Item("CONTROL_SQLCOMMAND_1"),
|
|
parent)
|
|
Case 4 ' DateTimePicker
|
|
_CtrlBuilder.AddDateTimePicker(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_FONT_FAMILY"),
|
|
dr.Item("CTRLSCR_FONT_SIZE"),
|
|
dr.Item("CTRLSCR_FONT_STYLE"),
|
|
dr.Item("CTRLSCR_TAB_INDEX"),
|
|
dr.Item("CTRLSCR_TAB_STOP"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
dr.Item("CONTROL_READ_ONLY"),
|
|
dr.Item("CONTROL_REQUIRED"),
|
|
False,
|
|
parent)
|
|
control = "DatePicker - " & dr.Item("CONTROL_ID")
|
|
Case 5 ' GroupBox
|
|
_CtrlBuilder.AddGroupBox(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_CAPTION"),
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
dr.Item("CTRLSCR_BACK_COLOR"),
|
|
dr.Item("CTRLSCR_FONT_COLOR"),
|
|
dr.Item("CTRLSCR_FONT_FAMILY"),
|
|
dr.Item("CTRLSCR_FONT_SIZE"),
|
|
dr.Item("CTRLSCR_FONT_STYLE"),
|
|
False,
|
|
parent)
|
|
control = "GroupBox - " & dr.Item("CONTROL_ID")
|
|
Case 6 ' PictureBox
|
|
_CtrlBuilder.AddPictureBox(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
False,
|
|
dr.Item("CONTROL_READ_ONLY"),
|
|
dr.Item("CONTROL_REQUIRED"),
|
|
parent)
|
|
Case 7 ' DataGridView
|
|
_CtrlBuilder.AddDataGridView(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
False,
|
|
dr.Item("CONTROL_READ_ONLY"),
|
|
dr.Item("CONTROL_REQUIRED"),
|
|
dr.Item("CONTROL_COL_NAME"),
|
|
parent)
|
|
control = "Datagridview - " & dr.Item("CONTROL_ID")
|
|
Case 10 ' Checkbox
|
|
Dim Checked As Boolean = False
|
|
'If IsDBNull(dr.Item("CONTROL_DEF_VALUE")) Then
|
|
' Checked = False
|
|
'Else
|
|
' Checked = StrToBool(dr.Item("CONTROL_DEF_VALUE"))
|
|
'End If
|
|
_CtrlBuilder.AddCheckBox(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_CAPTION"),
|
|
Checked,
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_FONT_FAMILY"),
|
|
dr.Item("CTRLSCR_FONT_COLOR"),
|
|
dr.Item("CTRLSCR_FONT_SIZE"),
|
|
dr.Item("CTRLSCR_FONT_STYLE"),
|
|
dr.Item("CTRLSCR_TAB_INDEX"),
|
|
dr.Item("CTRLSCR_TAB_STOP"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
False,
|
|
dr.Item("CONTROL_READ_ONLY"),
|
|
dr.Item("CONTROL_REQUIRED"),
|
|
parent)
|
|
control = "CheckBox - " & dr.Item("CONTROL_ID")
|
|
Case 8 ' Function AddAppointment
|
|
_CtrlBuilder.FunctionAddAppointment(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_CAPTION"),
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
False,
|
|
parent)
|
|
AddHandler _CtrlBuilder.CurrentControl.Click, _AddAppointmentHandler
|
|
control = "Appointment - " & dr.Item("CONTROL_ID")
|
|
Case 9 ' Function AddFormData
|
|
_CtrlBuilder.FunctionAddFormData(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_CAPTION"),
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
False,
|
|
parent)
|
|
AddHandler _CtrlBuilder.CurrentControl.Click, _AddFormDataHandler
|
|
control = "AddFormData - " & dr.Item("CONTROL_ID")
|
|
Case 11 ' RadioButton
|
|
Dim Checked As Boolean = False
|
|
'If IsDBNull(dr.Item("CONTROL_DEF_VALUE")) Then
|
|
' Checked = False
|
|
'Else
|
|
' Checked = StrToBool(dr.Item("CONTROL_DEF_VALUE"))
|
|
'End If
|
|
_CtrlBuilder.AddRadioButton(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_CAPTION"),
|
|
Checked,
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_FONT_FAMILY"),
|
|
dr.Item("CTRLSCR_FONT_COLOR"),
|
|
dr.Item("CTRLSCR_FONT_SIZE"),
|
|
dr.Item("CTRLSCR_FONT_STYLE"),
|
|
dr.Item("CTRLSCR_TAB_INDEX"),
|
|
dr.Item("CTRLSCR_TAB_STOP"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
False,
|
|
dr.Item("CONTROL_READ_ONLY"),
|
|
dr.Item("CONTROL_REQUIRED"),
|
|
parent)
|
|
control = "Radiobutton - " & dr.Item("CONTROL_ID")
|
|
Case 12 'CheckedListBox
|
|
_CtrlBuilder.AddCheckedListBox(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_FONT_FAMILY"),
|
|
dr.Item("CTRLSCR_FONT_COLOR"),
|
|
dr.Item("CTRLSCR_FONT_SIZE"),
|
|
dr.Item("CTRLSCR_FONT_STYLE"),
|
|
dr.Item("CTRLSCR_TAB_INDEX"),
|
|
dr.Item("CTRLSCR_TAB_STOP"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
False,
|
|
dr.Item("CONTROL_READ_ONLY"),
|
|
dr.Item("CONTROL_REQUIRED"),
|
|
dr.Item("CONTROL_STATIC_LIST"),
|
|
dr.Item("CONTROL_SQLCOMMAND_1"),
|
|
parent)
|
|
control = "CheckedlistBox - " & dr.Item("CONTROL_ID")
|
|
Case 13 'CheckedListBox
|
|
_CtrlBuilder.AddListBox(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_FONT_FAMILY"),
|
|
dr.Item("CTRLSCR_FONT_COLOR"),
|
|
dr.Item("CTRLSCR_FONT_SIZE"),
|
|
dr.Item("CTRLSCR_FONT_STYLE"),
|
|
dr.Item("CTRLSCR_TAB_INDEX"),
|
|
dr.Item("CTRLSCR_TAB_STOP"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
False,
|
|
dr.Item("CONTROL_READ_ONLY"),
|
|
dr.Item("CONTROL_REQUIRED"),
|
|
dr.Item("CONTROL_STATIC_LIST"),
|
|
dr.Item("CONTROL_SQLCOMMAND_1"),
|
|
parent)
|
|
control = "Listbox - " & dr.Item("CONTROL_ID")
|
|
Case 14 'DataGridViewCheckable
|
|
_CtrlBuilder.AddDataGridViewCheckable(dr.Item("CONTROL_ID"),
|
|
dr.Item("CONTROL_NAME"),
|
|
dr.Item("CTRLSCR_X_LOC"),
|
|
dr.Item("CTRLSCR_Y_LOC"),
|
|
dr.Item("CTRLSCR_WIDTH"),
|
|
dr.Item("CTRLSCR_HEIGHT"),
|
|
False,
|
|
dr.Item("CTRLSCR_TAB_INDEX"),
|
|
dr.Item("CTRLSCR_TAB_STOP"),
|
|
dr.Item("CONTROL_READ_ONLY"),
|
|
dr.Item("CONTROL_REQUIRED"),
|
|
dr.Item("CONTROL_COL_NAME"),
|
|
parent)
|
|
control = "DataGridViewCheckable - " & dr.Item("CONTROL_ID")
|
|
End Select
|
|
|
|
|
|
' ContextMenuStrip zuweisen
|
|
' MasterDataID im ContextMenuStrip Speichern
|
|
If dr.Item("CTRLSCR_MASTER_DATA_ID") <> 0 Then
|
|
_CtrlBuilder.CurrentControl.ContextMenuStrip = _ContextMenuStrip
|
|
' Tag wird für ControlId verwendet, master data id bei rechtsklick herausfinden
|
|
'_CtrlBuilder.CurrentControl.Tag = dr.Item("CTRLSCR_MASTER_DATA_ID")
|
|
End If
|
|
Next
|
|
|
|
sw.Done()
|
|
|
|
_CtrlBuilder.MasterPanel.ResumeLayout()
|
|
|
|
End Sub
|
|
|
|
Function DeleteRecord(RecordID As Integer)
|
|
Return ClassHelper.DeleteRecord(RecordID)
|
|
End Function
|
|
|
|
|
|
Function SaveRecord(RecordID As Integer, FormID As Integer, Optional foreignRecordID As Integer = 0) As String
|
|
Try
|
|
Dim ADDED_WHO As String = USER_USERNAME
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> (SaveRecord) Update RecordID: " & RecordID, False)
|
|
UpdateAllControls(FormID, RecordID, _CtrlBuilder.AllControls)
|
|
Return "Datensatz aktualisiert - " & Now
|
|
'End If
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in SaveRecord: " & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Private Sub InsertAllControls(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
|
|
For Each ctrl As Control In controls
|
|
Dim CONTROL_ID As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id 'GetControlID_for_Name(ctrl.Name, FormID)
|
|
Dim CONTROL_VALUE As String = Nothing
|
|
|
|
If TypeOf ctrl Is PictureBox Then
|
|
'Dim id As Integer = GetControlID_for_Name(ctrl.Name, FormID)
|
|
UpsertImage(CONTROL_ID, RecordID, ctrl.BackgroundImage)
|
|
Continue For
|
|
End If
|
|
|
|
' Control existiert
|
|
If CONTROL_ID <> -1 Then
|
|
CONTROL_VALUE = GetControlValue(ctrl)
|
|
End If
|
|
'If TypeName(ctrl).ToString = "DateEdit" Then
|
|
' CONTROL_VALUE = CDate(CONTROL_VALUE)
|
|
'End If
|
|
'If CONTROL_ID = 489 Then
|
|
' Console.WriteLine(TypeName(ctrl))
|
|
'End If
|
|
' Kein Bekanntes Control oder Groupbox
|
|
If IsNothing(CONTROL_VALUE) Then
|
|
If TypeOf ctrl Is GroupBox Then
|
|
InsertAllControls(FormID, RecordID, DirectCast(ctrl, GroupBox).Controls)
|
|
End If
|
|
Else
|
|
InsertControlValue(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID)
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub UpsertImage(ControlID As Integer, RecordID As Integer, image As Bitmap)
|
|
Dim existsSQL As String = "SELECT GUID FROM TBPMO_CONTROL_IMAGE WHERE CONTROL_ID = " & ControlID & " AND RECORD_ID = " & RecordID
|
|
Dim exists = ClassDatabase.Execute_Scalar(existsSQL)
|
|
|
|
If IsNothing(exists) Then
|
|
InsertImage(ControlID, RecordID, image)
|
|
Else
|
|
UpdateImage(ControlID, RecordID, image)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub InsertImage(ControlID As Integer, RecordID As Integer, image As Bitmap)
|
|
Try
|
|
Dim bimage() As Byte
|
|
Dim SQL As String = "INSERT INTO TBPMO_CONTROL_IMAGE (CONTROL_ID, RECORD_ID, IMG, ADDED_WHO) VALUES (@CONTROL_ID, @RECORD_ID, @IMG, @ADDED_WHO)"
|
|
Dim conn As New SqlClient.SqlConnection(MyConnectionString)
|
|
Dim cmd As New SqlClient.SqlCommand(SQL, conn)
|
|
|
|
If IsNothing(image) Then
|
|
DeleteImage(ControlID, RecordID)
|
|
Exit Sub
|
|
End If
|
|
|
|
bimage = BitmapToByteArray(image)
|
|
|
|
cmd.Parameters.Add("@CONTROL_ID", SqlDbType.Int).Value = ControlID
|
|
cmd.Parameters.Add("@RECORD_ID", SqlDbType.Int).Value = RecordID
|
|
cmd.Parameters.Add("@RECORDID", SqlDbType.Int).Value = RecordID
|
|
cmd.Parameters.Add("@IMG", SqlDbType.VarBinary).Value = bimage
|
|
cmd.Parameters.Add("@ADDED_WHO", SqlDbType.VarChar).Value = USER_USERNAME
|
|
|
|
conn.Open()
|
|
cmd.ExecuteNonQuery()
|
|
conn.Close()
|
|
|
|
LinkImage(ControlID, RecordID)
|
|
Catch ex As Exception
|
|
MsgBox("Error in InsertImage: ", ex.Message, vbCritical)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub LinkImage(ControlID As Integer, RecordID As Integer)
|
|
Try
|
|
Dim SQL = String.Format("SELECT GUID FROM TBPMO_CONTROL_IMAGE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", ControlID, RecordID)
|
|
Dim ImageID As Integer = ClassDatabase.Execute_Scalar(SQL)
|
|
|
|
SQL = String.Format("SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", ControlID, RecordID)
|
|
Dim valueExists = ClassDatabase.Execute_Scalar(SQL)
|
|
|
|
Dim VALUE = "%%" & ImageID.ToString & "%%"
|
|
|
|
If valueExists Then
|
|
SQL = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}', CHANGED_WHO = '{1}' WHERE CONTROL_ID = {2} AND RECORD_ID = {3}", VALUE, USER_USERNAME, ControlID, RecordID)
|
|
Else
|
|
SQL = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (RECORD_ID, CONTROL_ID, VALUE, ADDED_WHO) VALUES ({0}, {1}, '{2}', '{3}')", RecordID, ControlID, VALUE, USER_USERNAME)
|
|
End If
|
|
ClassDatabase.Execute_non_Query(SQL)
|
|
Catch ex As Exception
|
|
MsgBox("Error in LinkImage: " & vbNewLine & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub UpdateImage(ControlID As Integer, RecordID As Integer, image As Bitmap)
|
|
Try
|
|
Dim bimage() As Byte
|
|
Dim SQL As String = "UPDATE TBPMO_CONTROL_IMAGE SET IMG = @IMG, CHANGED_WHO = @CHANGED_WHO WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @RECORD_ID"
|
|
Dim conn As New SqlClient.SqlConnection(MyConnectionString)
|
|
Dim cmd As New SqlClient.SqlCommand(SQL, conn)
|
|
|
|
If IsNothing(image) Then
|
|
DeleteImage(ControlID, RecordID)
|
|
Exit Sub
|
|
End If
|
|
|
|
bimage = BitmapToByteArray(image)
|
|
|
|
cmd.Parameters.Add("@CONTROL_ID", SqlDbType.Int).Value = ControlID
|
|
cmd.Parameters.Add("@RECORD_ID", SqlDbType.Int).Value = RecordID
|
|
cmd.Parameters.Add("@RECORDID", SqlDbType.Int).Value = RecordID
|
|
cmd.Parameters.Add("@IMG", SqlDbType.VarBinary).Value = bimage
|
|
cmd.Parameters.Add("@CHANGED_WHO", SqlDbType.VarChar).Value = USER_USERNAME
|
|
|
|
conn.Open()
|
|
cmd.ExecuteNonQuery()
|
|
conn.Close()
|
|
|
|
LinkImage(ControlID, RecordID)
|
|
Catch ex As Exception
|
|
MsgBox("Error in UpdateImage: ", ex.Message, vbCritical)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
Private Sub DeleteImage(ControlID As Integer, RecordID As Integer)
|
|
Try
|
|
' Delete Image
|
|
Dim SQL = String.Format("DELETE FROM TBPMO_CONTROL_IMAGE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", ControlID, RecordID)
|
|
Dim result = ClassDatabase.Execute_non_Query(SQL)
|
|
|
|
' Delete Value
|
|
SQL = String.Format("DELETE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", ControlID, RecordID)
|
|
result = ClassDatabase.Execute_non_Query(SQL)
|
|
Catch ex As Exception
|
|
MsgBox("Fehler beim löschen des Bildes:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub UpdateAllControls(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
|
|
Try
|
|
Dim sw As New SW("UpdateAllControls")
|
|
Dim del = String.Format("DELETE FROM TBPMO_CONTROL_VALUE_CHANGE_HISTORY WHERE UPPER(ADDED_WHO) = '{0}'", USER_USERNAME.ToUpper)
|
|
ClassDatabase.Execute_non_Query(del)
|
|
CURRENT_CHANGE_STEP += 1
|
|
Dim sel = String.Format("SELECT RECORD_ID, CONTROL_ID FROM VWPMO_VALUES WHERE RECORD_ID = {0}", RecordID)
|
|
Dim VALUE_EXISTS_DT As DataTable = ClassDatabase.Return_Datatable(sel, True)
|
|
|
|
For Each ctrl As Control In controls
|
|
Console.WriteLine("Updating Control " + ctrl.Name)
|
|
|
|
Dim CONTROL_ID As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id 'GetControlID_for_RecordID(ctrl.Name, RecordID)
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> CONTROL_ID: " & CONTROL_ID, False)
|
|
Dim CONTROL_VALUE As String = GetControlValue(ctrl)
|
|
Dim controltype = ctrl.GetType.ToString
|
|
If TypeOf ctrl Is PictureBox Then
|
|
Dim id As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id 'GetControlID_for_Name(ctrl.Name, FormID)
|
|
UpsertImage(id, RecordID, ctrl.BackgroundImage)
|
|
Continue For
|
|
End If
|
|
|
|
If TypeOf ctrl Is GroupBox Then
|
|
Dim ctrls As Control.ControlCollection = DirectCast(ctrl, GroupBox).Controls
|
|
UpdateAllControls(FormID, RecordID, ctrls)
|
|
Continue For
|
|
End If
|
|
|
|
If TypeOf ctrl Is System.Windows.Forms.DataGridView Then
|
|
Dim id As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id
|
|
UpdateMultipleValues(id, RecordID, CONTROL_VALUE)
|
|
Continue For
|
|
End If
|
|
|
|
' UpdateMultipleValues wird für diese Controls bereits beim CheckedChanged-Event ausgeführt
|
|
If TypeOf ctrl Is DevExpress.XtraGrid.GridControl Or TypeOf ctrl Is DevExpress.XtraEditors.CheckedListBoxControl Then
|
|
Continue For
|
|
End If
|
|
|
|
'Dim ValueExists = ClassDatabase.Execute_Scalar(String.Format("SELECT RECORD_ID FROM VWPMO_VALUES WHERE RECORD_ID = {0} AND CONTROL_ID = {1}", RecordID, CONTROL_ID))
|
|
Dim ValueExists = VALUE_EXISTS_DT.Select(String.Format("CONTROL_ID = {0}", CONTROL_ID))
|
|
Dim ValueChanged As Boolean = _CtrlBuilder.ControlsChanged.Contains(CONTROL_ID)
|
|
|
|
If Not ValueChanged Then
|
|
Continue For
|
|
End If
|
|
|
|
If ValueExists.Length = 0 Then ' Neues Control
|
|
'If CONTROL_ID = 995 Or CONTROL_ID = 996 Or CONTROL_ID = 997 Or CONTROL_ID = 810 Then
|
|
' Console.WriteLine("sdasd")
|
|
'End If
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> InsertControlValue: " & CONTROL_ID & "|" & RecordID & "|" & CONTROL_VALUE, False)
|
|
If Not IsNothing(CONTROL_VALUE) Then
|
|
If TypeOf ctrl Is CustomComboBox And CONTROL_VALUE = "" Then
|
|
'Exit Sub - Zuviel des guten
|
|
Continue For
|
|
End If
|
|
If CONTROL_VALUE <> "" Then
|
|
InsertControlValue(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID)
|
|
End If
|
|
End If
|
|
Else ' Update Control
|
|
If Not IsNothing(CONTROL_VALUE) Then
|
|
Dim sw2 As New SW("UpdateControlValue")
|
|
UpdateControlValue(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID)
|
|
sw2.Done()
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
sw.Done()
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in UpdateAllControls: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Public Shared Sub UpdateMultipleValues(ControlId As Integer, RecordId As Integer, value As String)
|
|
Try
|
|
Dim val = String.Format("SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", ControlId, RecordId)
|
|
Dim dt As DataTable = ClassDatabase.Return_Datatable(val, True)
|
|
If IsNothing(dt) Then
|
|
Exit Sub
|
|
End If
|
|
' Konvertiere datatable zu liste
|
|
Dim oldValues = dt.AsEnumerable().Select(Of String)(Function(r)
|
|
Return r.Item("VALUE")
|
|
End Function).ToList()
|
|
If IsNothing(value) And dt.Rows.Count = 0 Then
|
|
Exit Sub
|
|
End If
|
|
Dim values As New List(Of String)
|
|
If Not IsNothing(value) Then
|
|
values = New List(Of String)(value.Split(";"))
|
|
Else
|
|
values.Add("")
|
|
|
|
End If
|
|
'Dim values As New List(Of String)(value.Split(";"))
|
|
Dim AddValues = values.Except(oldValues)
|
|
Dim RemoveValues = oldValues.Except(values)
|
|
For Each _addValue As String In AddValues
|
|
If Not _addValue = "" Then
|
|
Dim converted_value = Check_and_Format_Value(ControlId, RecordId, _addValue)
|
|
If Not IsNothing(converted_value) Then
|
|
ClassControlCommandsUI.InsertControlValue(ControlId, RecordId, converted_value, CURRENT_ENTITY_ID)
|
|
|
|
'Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID, RECORD_ID, VALUE,ADDED_WHO) VALUES({0}, {1}, '{2}','{3}')", ControlId, RecordId, converted_value, USER_USERNAME)
|
|
'ClassDatabase.Execute_non_Query(ins)
|
|
'ClassProxy.PRPROXY_CONTROL_VALUE_UPD_INS(CURRENT_ENTITY_ID, ControlId, RecordId, converted_value)
|
|
End If
|
|
End If
|
|
Next
|
|
For Each v As String In RemoveValues
|
|
ClassDatabase.Execute_non_Query(String.Format("DELETE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1} AND VALUE = '{2}'", ControlId, RecordId, v))
|
|
ClassProxy.PRPROXY_CONTROL_DEL(RecordId, CURRENT_ENTITY_ID, ControlId)
|
|
Next
|
|
|
|
Catch ex As Exception
|
|
MsgBox("Error in UpdateMultipleValues:" & vbNewLine & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Shared Function GetControlValue(ctrl As Control) As String
|
|
|
|
Dim type = ctrl.GetType().Name
|
|
Dim CONTROL_ID As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id ' GetControlID_for_RecordID(ctrl.Name, CURRENT_RECORD_ID)
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> GetControlValue CONTROL_ID: " & CONTROL_ID, False)
|
|
Dim CONTROL_VALUE As String = Nothing
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> type = " & type.ToString, False)
|
|
Select Case type
|
|
Case "TextBox"
|
|
Return DirectCast(ctrl, TextBox).Text
|
|
Case "CustomComboBox"
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> Return Value: " & DirectCast(ctrl, CustomComboBox).Text, False)
|
|
Return DirectCast(ctrl, CustomComboBox).Text
|
|
Case "CheckBox"
|
|
Return DirectCast(ctrl, CheckBox).Checked.ToString()
|
|
Case "RadioButton"
|
|
Return DirectCast(ctrl, RadioButton).Checked.ToString()
|
|
Case "DateEdit"
|
|
Dim Value = DirectCast(ctrl, DevExpress.XtraEditors.DateEdit).EditValue
|
|
|
|
If IsDBNull(Value) Then
|
|
Return ""
|
|
Else
|
|
Return DirectCast(ctrl, DevExpress.XtraEditors.DateEdit).DateTime.ToString("yyyy-MM-dd")
|
|
End If
|
|
Case "PictureBox"
|
|
'Return "PictureBox" 'Es ist egal was für ein String hier zurückgegeben wird, hauptsache nicht Nothing
|
|
Case "CheckedListBoxControl"
|
|
Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl
|
|
chklbx = DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl)
|
|
Dim SQL_COMAMND = ClassDatabase.Execute_Scalar("SELECT UPPER(SQL_COMMAND_1) FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID, True)
|
|
|
|
'TODO: Wenn keine Datasource vorhanden, angecheckte einträge als string speichern
|
|
If IsNothing(chklbx.DataSource) Then
|
|
Dim result As New List(Of String)
|
|
Dim result_string As String
|
|
|
|
For Each item As DevExpress.XtraEditors.Controls.CheckedListBoxItem In chklbx.CheckedItems
|
|
result.Add(item.Value.ToString.Trim)
|
|
Next
|
|
|
|
result_string = String.Join(";", result)
|
|
|
|
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
|
|
' Überspringt den Rest der funktion
|
|
Return result_string
|
|
End If
|
|
|
|
If SQL_COMAMND.ToString.StartsWith("SELECT [RECORD_ID]") Or SQL_COMAMND.ToString.StartsWith("SELECT [RECORD-ID]") Then
|
|
'Alle Recorddatensätze durchlaufen und überprüfen ob nicht angehakt
|
|
'Wenn nicht angehakt dann Record löschen
|
|
Dim index As Integer = 0
|
|
For i As Integer = 0 To chklbx.ItemCount - 1
|
|
Dim item = chklbx.GetItem(i)
|
|
Dim row As DataRowView = CType(item, DataRowView)
|
|
If chklbx.GetItemCheckState(i) = 0 Then
|
|
If CInt(row(0)) > 0 Then
|
|
'Überprüfen ob es den Record gibt
|
|
Dim SQL = "SELECT COUNT(*) FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
|
|
If ClassDatabase.Execute_Scalar(SQL, True) = 1 Then
|
|
SQL = "DELETE FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
|
|
If ClassDatabase.Execute_non_Query(SQL) = True Then
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> TBPMO_RECORD_CONNECT-Entry after 'deselect CheckedListBox' deleted", False)
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
|
|
'Für jeden gecheckten Eintrag den Record der Stammentität mit dem selektierten linken
|
|
Dim checked_result As New List(Of String)
|
|
Dim checked_result_string As String
|
|
If SQL_COMAMND.ToString.StartsWith("SELECT [RECORD_ID]") Or SQL_COMAMND.ToString.StartsWith("SELECT [RECORD-ID]") Then
|
|
|
|
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
|
|
Dim row As DataRowView = CType(item, DataRowView)
|
|
Try
|
|
If CInt(row(0)) > 0 Then
|
|
Dim rid = CInt(row(0))
|
|
Dim checked_value = row(1)
|
|
checked_result.Add(checked_value)
|
|
checked_result_string = String.Join(";", checked_result)
|
|
Dim SQL = "SELECT COUNT(*) FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
|
|
If ClassDatabase.Execute_Scalar(SQL, True) = 0 Then
|
|
If CURRENT_RECORD_ID = 0 Then
|
|
MsgBox("Attention: no current record Selected!", MsgBoxStyle.Exclamation)
|
|
Else
|
|
If ClassRecordCommands.ConnectRecord(CURRENT_RECORD_ID, CInt(row(0)), "CheckedListBox;" & ctrl.Name) = True Then
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> Checked ListBox record '" & rid.ToString & "' was linked successfully.", False)
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
ClassLogger.Add("Error in CheckedListBoxGetControlValue: " & ex.Message, True)
|
|
End Try
|
|
|
|
Next
|
|
Else
|
|
|
|
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
|
|
Dim row As DataRowView = CType(item, DataRowView)
|
|
If row.DataView.Table.Columns.Count = 1 Then
|
|
Dim checked_value = row(0)
|
|
checked_result.Add(checked_value)
|
|
ElseIf row.DataView.Table.Columns.Count = 2 Then
|
|
Dim checked_value = row(1)
|
|
checked_result.Add(checked_value)
|
|
End If
|
|
checked_result_string = String.Join(";", checked_result)
|
|
Next
|
|
End If
|
|
|
|
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
|
|
' Überspringt den Rest der funktion
|
|
If Not IsNothing(checked_result_string) Then
|
|
'Dim sql = String.Format("select count(*) from TBPMO_CONTROL_VALUE where CONTROL_ID = {0} and RECORD_ID = {1}", CONTROL_ID, CURRENT_RECORD_ID)
|
|
'If ClassDatabase.Execute_Scalar(sql) = 0 Then
|
|
' InsertControlValue(CONTROL_ID, CURRENT_RECORD_ID, "")
|
|
'End If
|
|
Return checked_result_string
|
|
Else
|
|
'In jedem Fall Nothing zurückgeben
|
|
Return Nothing
|
|
End If
|
|
|
|
Case "GridControl"
|
|
Dim chk_grid As DevExpress.XtraGrid.GridControl
|
|
chk_grid = DirectCast(ctrl, DevExpress.XtraGrid.GridControl)
|
|
Dim gridview As DevExpress.XtraGrid.Views.Grid.GridView = chk_grid.MainView
|
|
Dim SQL_COMAMND = ClassDatabase.Execute_Scalar("SELECT UPPER(SQL_COMMAND_1) FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID, True)
|
|
|
|
Dim result As New List(Of String)
|
|
Dim result_string As String
|
|
|
|
For Each index As Integer In gridview.GetSelectedRows()
|
|
Dim fieldName As String = gridview.Columns(0).FieldName
|
|
Dim value As String = gridview.GetRowCellValue(index, fieldName)
|
|
result.Add(value)
|
|
Next
|
|
|
|
result_string = String.Join(";", result)
|
|
|
|
If Not IsNothing(result_string) Then
|
|
Return result_string
|
|
Else
|
|
Return Nothing
|
|
End If
|
|
|
|
|
|
Case "ListBoxControl"
|
|
Dim listbox As DevExpress.XtraEditors.ListBoxControl = DirectCast(ctrl, DevExpress.XtraEditors.ListBoxControl)
|
|
Return listbox.SelectedValue
|
|
|
|
Case "DataGridView"
|
|
Dim list As New List(Of String)
|
|
Dim dgv As DataGridView = DirectCast(ctrl, DataGridView)
|
|
|
|
For Each row As DataGridViewRow In dgv.Rows
|
|
Dim cell As DataGridViewCell = row.Cells(0)
|
|
If Not IsNothing(cell.Value) Then
|
|
list.Add(cell.Value)
|
|
End If
|
|
Next
|
|
|
|
Return String.Join(";", list)
|
|
|
|
Case Else
|
|
Return Nothing
|
|
End Select
|
|
End Function
|
|
Public Shared Function Check_and_Format_Value(ControlID As Integer, RecordID As Integer, Value As String)
|
|
Try
|
|
Dim expression As String
|
|
expression = "GUID = " & ControlID
|
|
Dim CONTROL_ROW() As DataRow
|
|
' Use the Select method to find all rows matching the filter.
|
|
CONTROL_ROW = CURRENT_TBPMO_CONTROL.Select(expression)
|
|
Dim i As Integer
|
|
Dim FORMAT_TYPE As String, CONTROL_TYPE As Integer
|
|
For i = 0 To CONTROL_ROW.GetUpperBound(0)
|
|
FORMAT_TYPE = CONTROL_ROW(i)("FORMAT_TYPE")
|
|
CONTROL_TYPE = CONTROL_ROW(i)("CONTROL_TYPE_ID")
|
|
Next
|
|
|
|
Select Case FORMAT_TYPE
|
|
Case "Currency"
|
|
If Not Value = String.Empty Then
|
|
Value = Decimal.Parse(Value, Globalization.NumberStyles.Currency).ToString
|
|
End If
|
|
|
|
Case "Decimal"
|
|
If Not Value = String.Empty Then
|
|
Value = Decimal.Parse(Value, Globalization.NumberStyles.Integer)
|
|
End If
|
|
|
|
End Select
|
|
Select Case CONTROL_TYPE
|
|
Case 4
|
|
Dim oDate = ClassHelper.Convert_to_Database_Date(Value)
|
|
Value = oDate.ToString()
|
|
End Select
|
|
Return Value
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in Check_and_Format_Value: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
ClassLogger.Add("Unexpected Error in Check_and_Format_Value: " & ex.Message, True)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
Public Shared Function InsertControlValue(ControlID As Integer, RecordID As Integer, Value As String, ENTITY_ID As Integer)
|
|
Try
|
|
Dim AddedWho = USER_USERNAME
|
|
Dim converted_value = Check_and_Format_Value(ControlID, RecordID, Value)
|
|
If Not IsNothing(converted_value) Then
|
|
Dim ins As String = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID, RECORD_ID, VALUE, ADDED_WHO) VALUES ({0}, {1}, '{2}', '{3}')", ControlID, RecordID, converted_value, AddedWho)
|
|
If LICENSE_PROXY = True Or clsDatabase.DB_PROXY_INITIALIZED = True Then
|
|
If ClassDatabase.Execute_non_Query(ins) = True Then
|
|
Return ClassProxy.PRPROXY_CONTROL_VALUE_UPD_INS(ENTITY_ID, ControlID, RecordID, converted_value)
|
|
Else
|
|
Return False
|
|
End If
|
|
Else
|
|
Return ClassDatabase.Execute_non_Query(ins)
|
|
End If
|
|
Else
|
|
Return False
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in inserting Control-Value: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
ClassLogger.Add("Unexpected Error in inserting Control-Value: " & ex.Message, True)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
Public Shared Function UpdateControlValue(ControlID As Integer, RecordID As Integer, Value As String, ENTITY_ID As Integer)
|
|
Try
|
|
Dim CHANGED_WHO = USER_USERNAME
|
|
Dim converted_value = Check_and_Format_Value(ControlID, RecordID, Value)
|
|
Dim def = "SELECT FORMAT_TYPE,CONTROL_TYPE_ID FROM TBPMO_CONTROL WHERE GUID = " & ControlID
|
|
Dim upd = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}', CHANGED_WHO = '{1}', CHANGE_STEP = {2} WHERE CONTROL_ID = {3} AND RECORD_ID = {4}",
|
|
converted_value, CHANGED_WHO, CURRENT_CHANGE_STEP, ControlID, RecordID)
|
|
If LICENSE_PROXY = True Or clsDatabase.DB_PROXY_INITIALIZED = True Then
|
|
If ClassDatabase.Execute_non_Query(upd) = True Then
|
|
Return ClassProxy.PRPROXY_CONTROL_VALUE_UPD_INS(ENTITY_ID, ControlID, RecordID, converted_value)
|
|
Else
|
|
Return False
|
|
End If
|
|
Else
|
|
Return ClassDatabase.Execute_non_Query(upd)
|
|
End If
|
|
Catch ex As Exception
|
|
ClassLogger.Add("Unerwarteter Fehler in UpdateControlValue: " & ex.Message, True)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
End Class
|