diff --git a/app/DD-Record-Organiser/ClassControlBuilder.vb b/app/DD-Record-Organiser/ClassControlBuilder.vb index dbaa59e..b8e5536 100644 --- a/app/DD-Record-Organiser/ClassControlBuilder.vb +++ b/app/DD-Record-Organiser/ClassControlBuilder.vb @@ -289,7 +289,8 @@ Public Class ClassControlBuilder ' DependingControlId bezeichnet das Control, das die Abhängigkeit enthält Dim dependingControlId As Integer = row.Item("GUID") - Dim panel As Panel = DirectCast(control.Parent, Panel) + Dim panel As Panel = CtrlBuilder.MasterPanel + 'Dim panel As Panel = DirectCast(control.Parent, Panel) ' Über die Id das Control finden Dim dependingControl As Control = panel.Controls.OfType(Of Control)().Where(Function(c As Control) Return DirectCast(c.Tag, ClassControlMetadata).Id = dependingControlId @@ -464,9 +465,13 @@ Public Class ClassControlBuilder If CURRENT_RECORD_ID = 0 Then Exit Sub End If - If CtrlCommandUI.IsInsert = False Then - ClassControlCommandsUI.UpdateMultipleValues(controlId, CURRENT_RECORD_ID, CONTROL_VALUE) - End If + + + ' Da wir beim Klick auf Hinzfügen einen Record anlegen, + ' muss UpdateMultipleValues auch aufgerufen werden, wenn wir IsInsert = True ist + 'If CtrlCommandUI.IsInsert = False Then + ClassControlCommandsUI.UpdateMultipleValues(controlId, CURRENT_RECORD_ID, CONTROL_VALUE) + 'End If Dim datatable As DataTable = ClassDatabase.Return_Datatable(SQL) diff --git a/app/DD-Record-Organiser/ClassControlLoader.vb b/app/DD-Record-Organiser/ClassControlLoader.vb index 1639b2c..c4e6e8f 100644 --- a/app/DD-Record-Organiser/ClassControlLoader.vb +++ b/app/DD-Record-Organiser/ClassControlLoader.vb @@ -396,6 +396,7 @@ End If If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then + 'control.Items.Clear() SetDataSource(control, dynamic.DataTable) End If diff --git a/app/DD-Record-Organiser/cx4mqlti.wsf b/app/DD-Record-Organiser/cx4mqlti.wsf deleted file mode 100644 index 6113791..0000000 --- a/app/DD-Record-Organiser/cx4mqlti.wsf +++ /dev/null @@ -1,976 +0,0 @@ -Public Class frmLevel_Designer -#Region "+++++ Konstanten +++++" - 'Private akt_ctrl As Control - Private Shared _Instance As frmLevel_Designer = Nothing - Private Mouse_Moving As Boolean = False - Private Mouse_Down As Boolean = False - Private Current_Properties As Object = Nothing - - Private LastCursor As Point = Nothing -#End Region - Dim formloaded As Boolean = False - Public Shared Function Instance() As frmLevel_Designer - If _Instance Is Nothing OrElse _Instance.IsDisposed = True Then - _Instance = New frmLevel_Designer - End If - _Instance.BringToFront() - Return _Instance - End Function - - Public Sub SetFormTitle(title As String) - Me.Text = "Formdesigner: " & title - End Sub - - Public Sub SetFormName(name As String) - Me.lblFormName.Text = "Name: " & name & " - Form-ID: " & CURRENT_FORM_ID - End Sub - - -#Region "+++++ Drag Drop Funktionen +++++" - - Public Sub ControlDragDrop(type As String, Parent As GroupBox) - Try - Dim r As New System.Random() - Dim def_font_family As String = DefaultFont.Name - Dim def_font_color As Integer = DefaultForeColor.ToArgb - Dim def_font_style As Integer = 0 - Dim def_font_size As Integer = 8 - - Dim defaultCaption As String = "Bezeichner definieren" - If USER_LANGUAGE <> "de-DE" Then - defaultCaption = "Define Identifier" - End If - - Dim defaultCalendarCaption As String = "Zu Kalender hinzufügen" - If USER_LANGUAGE <> "de-DE" Then - defaultCalendarCaption = "Add to Calendar" - End If - - Dim random As String = ShortGUID() - 'Dim random As Integer = r.Next(8, 100) - Select Case type - Case "lbl" - CtrlBuilder.AddLabel(0, "lbl" & random, defaultCaption, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, "", True, Parent) - ' Aktuelles Control in die Datenbank speichern - ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) - Case "txt" - CtrlBuilder.AddTextBox(0, "txt" & random, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, True, 0, 0, False, False, False, "String", True, Parent) - ' Aktuelles Control in die Datenbank speichern - ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) - Case "cmb" - CtrlBuilder.AddComboBox(0, "cmb" & random, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, True, 0, 0, "String", True, False, False, "", "", Parent) - ' Aktuelles Control in die Datenbank speichern - ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) - Case "dtp" - CtrlBuilder.AddDateTimePicker(0, "dtp" & random, 0, 0, def_font_family, def_font_size, def_font_style, 0, False, 0, 0, False, False, True, Parent) - ' Aktuelles Control in die Datenbank speichern - ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) - Case "dgv" - CtrlBuilder.AddDataGridView(0, "dgv" & random, 0, 0, 0, 0, True, False, False, "dgv" & random, Parent) - ' Aktuelles Control in die Datenbank speichern - ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) - Case "chk" - CtrlBuilder.AddCheckBox(0, "chk" & random, defaultCaption, False, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, False, 0, 0, True, False, False, Parent) - ' Aktuelles Control in die Datenbank speichern - ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) - Case "rb" - CtrlBuilder.AddRadioButton(0, "rb" & random, defaultCaption, False, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, False, 0, 0, True, False, False, Parent) - ' Aktuelles Control in die Datenbank speichern - ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) - - Case "pb" - CtrlBuilder.AddPictureBox(0, "pb" & random, 0, 0, 0, 0, True, False, False, Parent) - ' Aktuelles Control in die Datenbank speichern - ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) - Case "gb" - CtrlBuilder.AddGroupBox(0, "gb" & random, defaultCaption, 0, 0, 0, 0, ColorToInt(SystemColors.Control), def_font_color, def_font_family, def_font_size, def_font_style, True, Parent) - ' Aktuelles Control in die Datenbank speichern - ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) - Case "f_addappointment" - CtrlBuilder.FunctionAddAppointment(0, "f_addappointment" & random, defaultCalendarCaption, 0, 0, 0, 0, True, Parent) - - If ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) = True Then - Dim ControlId = GetControlID_for_Name(CtrlBuilder.CurrentControl.Name, CURRENT_FORM_ID) - ClassFunctionCommands.InsertFunction(ControlId, "ADDAPPOINTMENT") - End If - Case "f_addformdata" - CtrlBuilder.FunctionAddFormData(0, "f_addformdata" & random, "Add Form Data", 0, 0, 0, 0, True, Parent) - - If ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) = True Then - Dim ControlId = GetControlID_for_Name(CtrlBuilder.CurrentControl.Name, CURRENT_FORM_ID) - ClassFunctionCommands.InsertFunction(ControlId, "ADDFORMDATA") - End If - Case "lstbxcheck" - CtrlBuilder.AddCheckedListBox(0, "chlb" & random, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, True, 0, 0, True, False, False, "", "", Parent) - ' Aktuelles Control in die Datenbank speichern - ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) - Case "lstbx" - CtrlBuilder.AddListBox(0, "lbx" & random, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, True, 0, 0, True, False, False, "", "", Parent) - ' Aktuelles Control in die Datenbank speichern - ClassControlCommands.InsertControl(CtrlBuilder.CurrentControl) - Case Else - MsgBox("Event '" & type & "' nicht definiert") - End Select - Catch ex As Exception - MsgBox("unexpected Error in ControlDragDrop: " & vbNewLine, MsgBoxStyle.Critical) - End Try - - End Sub - - Public Sub Groupbox_DragDrop(sender As Object, e As DragEventArgs) - Dim type As String = e.Data.GetData(DataFormats.Text) - Dim GroupBox As GroupBox = CType(sender, GroupBox) - - ControlDragDrop(type, GroupBox) - End Sub - - Private Sub pnlDesigner_DragDrop(sender As Object, e As DragEventArgs) - Dim type As String = e.Data.GetData(DataFormats.Text) - - ControlDragDrop(type, Nothing) - End Sub - - Private Sub pnlDesigner_DragEnter(sender As Object, e As DragEventArgs) - ' Check the format of the data being dropped. - If (e.Data.GetDataPresent(DataFormats.Text)) Then - ' Display the copy cursor. - e.Effect = DragDropEffects.Copy - Else - ' Display the no-drop cursor. - e.Effect = DragDropEffects.None - End If - End Sub - -#End Region - -#Region "+++++ Form Events +++++" - Private Sub frmLevel_Designer_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing - Try - Dim sw - - sw = Stopwatch.StartNew() - ClassWindowLocation.SaveFormLocationSize(Me, 1, CURRENT_SCREEN_ID, "frmLevel_Designer") - sw.Stop() - Console.WriteLine(String.Format("SaveFormLocationSize took {0}ms", sw.ElapsedMilliseconds)) - - sw = Stopwatch.StartNew() - My.Settings.Save() - sw.Stop() - Console.WriteLine(String.Format("My.Settings.Save took {0}ms", sw.ElapsedMilliseconds)) - - sw = Stopwatch.StartNew() - RebuildView() - sw.Stop() - Console.WriteLine(String.Format("RebuildView took {0}ms", sw.ElapsedMilliseconds)) - - Dim wid As Integer = Me.Width - Dim update_sizepnl As String = "UPDATE TBPMO_FORM_VIEW SET HEIGHT = " & pnlDesigner.Height & ",WIDTH = " & wid & " where FORM_ID = " & CURRENT_FORM_ID & " and SCREEN_ID = " & CURRENT_SCREEN_ID - ClassDatabase.Execute_non_Query(update_sizepnl) - 'frmTool_ControlProperties.Instance.Close() - 'frmTool_ControlDesigner.Instance.Close() - - - Catch ex As Exception - - End Try - End Sub - - Private Sub frmLevel_Designer_Load(sender As Object, e As EventArgs) Handles Me.Load - ClassWindowLocation.LoadFormLocationSize(Me, 1, CURRENT_SCREEN_ID, "frmLevel_Designer") - - ' ADDED 18.11 - CtrlBuilder = New ClassControlBuilder(pnlDesigner, - AddressOf Control_MouseDown, - AddressOf Control_MouseUp, - AddressOf Control_MouseMove, - AddressOf Control_Click, - AddressOf Groupbox_DragDrop) - - If ClassDatabase.Init = True Then - LoadFormProperties() - LoadControls() - End If - - End Sub - - Private Sub HandleToolTip(sender As Object, e As EventArgs) - Console.WriteLine("show tooltip") - End Sub -#End Region - -#Region "+++++ Load Funktionen +++++" - Public Sub LoadFormProperties() - Dim NAME_SQL As String = "SELECT NAME FROM TBPMO_FORM WHERE GUID = " & CURRENT_FORM_ID - Dim formviewid = ClassDatabase.Execute_Scalar("SELECT GUID FROM TBPMO_FORM_VIEW WHERE FORM_ID = " & CURRENT_FORM_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) - Dim TITLE_SQL As String = "SELECT CAPTION FROM TBPMO_LANGUAGE_OBJECT WHERE PMO_OBJECT_NAME = 'FORMVIEW_TITLE" & formviewid & "' and SCREEN_ID = " & CURRENT_SCREEN_ID & " AND LANGUAGE_TYPE = '" & USER_LANGUAGE & "'" - Dim Height = ClassDatabase.Execute_Scalar("SELECT HEIGHT FROM TBPMO_FORM_VIEW WHERE FORM_ID = " & CURRENT_FORM_ID & " and SCREEN_ID = " & CURRENT_SCREEN_ID) - Dim width = ClassDatabase.Execute_Scalar("SELECT WIDTH FROM TBPMO_FORM_VIEW WHERE FORM_ID = " & CURRENT_FORM_ID & " and SCREEN_ID = " & CURRENT_SCREEN_ID) - Dim name = ClassDatabase.Execute_Scalar(NAME_SQL) - Dim title = ClassDatabase.Execute_Scalar(TITLE_SQL) - ' Check_Document_Config(CURRENT_FORM_ID) - If Not IsDBNull(Height) Then - If Height > 100 Then - Me.pnlDesigner.Height = Height - End If - 'If Not IsDBNull(width) Then - If width > 500 Then - ' Me.Width = width - End If - - 'End If - End If - SetFormName(name) - SetFormTitle(title) - End Sub - - Public Sub LoadControls() - Dim sql = String.Format("SELECT T.*, dbo.FNPMO_GET_CONTROL_CAPTION ('{0}', {1},T.CONTROL_ID) AS 'CAPTION' FROM VWPMO_CONTROL_SCREEN T" & _ - " where T.FORM_ID = {2} and T.SCREEN_ID = {3}", USER_LANGUAGE, CURRENT_SCREEN_ID, CURRENT_FORM_ID, CURRENT_SCREEN_ID) - Dim dt As DataTable = ClassDatabase.Return_Datatable(sql) - - 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"), CURRENT_FORM_ID) - parent = CtrlBuilder.GetControlByName(parentname) - End If - - 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, - True) - 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"), - False, - parent, - True) - 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_REQUIRED"), - dr.Item("CONTROL_STATIC_LIST"), - dr.Item("CONTROL_SQLCOMMAND_1"), - parent, - True) - 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, - True) - 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, - True) - 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, - True) - 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, - True) - Case 10 ' Checkbox - Dim Checked As Boolean - 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, - True) - Case 8 'AddAppointment Button - 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, - True) - Case 9 '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, - True) - - Case 11 ' RadioButton - Dim Checked As Boolean - 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, - True) - 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, - True) - Case 13 'ListBox - 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, - True) - End Select - Next - End Sub - - -#End Region - -#Region "+++++ Mouse Events +++++" - Private Sub Control_Click(sender As Object, e As EventArgs) - Dim control As Control = DirectCast(sender, Control) - - ' Aktuelles Control highlighten - control.BringToFront() - CtrlBuilder.SetAllActiveColor() - - ' GUID des aktuellen Controls speichern - CURRENT_CONTROL_ID = ClassControlCommands.GetControlGuid(CtrlBuilder.CurrentControl.Name) - - ' Control Eigenschaften laden - 'frmTool_ControlProperties.Instance.pgControlProperties.Enabled = True - pgControlProperties.Enabled = True - - 'frmTool_ControlProperties.Instance.LoadControlProperties(CtrlBuilder.CurrentControl) - 'frmTool_ControlProperties.Instance.LoadControlPropertiesNeu(CtrlBuilder.CurrentControl) - LoadControlPropertiesNeu(CtrlBuilder.CurrentControl) - End Sub - - - Private Sub Control_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown - ' Check to see if the correct button has been pressed - If e.Button = Windows.Forms.MouseButtons.Left Then - CtrlBuilder.CurrentControl = sender - CtrlBuilder.BeginLocation = e.Location - - ' Set the mode flag to signal the MouseMove event handler that it - ' needs to now calculate new positions for our control - Mouse_Moving = True - End If - End Sub - - Private Sub ControlButton_MouseDown(sender As Object, e As MouseEventArgs) Handles btntextbox.MouseDown, - btnlabel.MouseDown, - btndtp.MouseDown, - btncmb.MouseDown, - btnCheckbox.MouseDown, - btnpb.MouseDown, - btngb.MouseDown, - btn_addtocal.MouseDown, - btn_addformdata.MouseDown, - btnRadioButton.MouseDown, - btnListBoxCheckable.MouseDown, - btnListBox.MouseDown - Mouse_Down = True - End Sub - - Private Sub ControlButton_MouseMove(sender As Object, e As MouseEventArgs) Handles btntextbox.MouseMove, - btnlabel.MouseMove, - btndtp.MouseMove, - btncmb.MouseMove, - btnCheckbox.MouseMove, - btnpb.MouseMove, - btngb.MouseMove, - btn_addtocal.MouseMove, - btn_addformdata.MouseMove, - btnRadioButton.MouseMove, - btnListBoxCheckable.MouseMove, - btnListBox.MouseMove - - If Mouse_Down = True Then - Dim control As Control = DirectCast(sender, Control) - control.DoDragDrop(control.Tag, DragDropEffects.Copy) - End If - Mouse_Down = False - End Sub - - Private Sub Control_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp - ' The button was released, so we're going back to Static mode. - If Mouse_Moving = True Then - Mouse_Moving = False - 'end_location = e.Location - CtrlBuilder.EndLocation = e.Location - - 'frmTool_ControlProperties.Instance.UpdateControlLocation(CtrlBuilder.CurrentControl) - UpdateControlLocation(CtrlBuilder.CurrentControl) - ClassControlCommands.UpdateControlPosition(CtrlBuilder.CurrentControl.Location.X, - CtrlBuilder.CurrentControl.Location.Y, - CtrlBuilder.CurrentControl) - - 'Save_Control() - End If - ' Restore the cursor image to the way we found it when the mouse - ' button was pressed - MyBase.Cursor = Cursors.Default - End Sub - Private Sub Control_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove - Try - If CtrlBuilder.CurrentControl Is Nothing Then - Exit Sub - End If - - If Mouse_Moving = True Then - Me.Cursor = Cursors.Hand - Me.Refresh() - - Dim control As Control = DirectCast(sender, Control) - Dim NowCursor As Point = CtrlBuilder.GetCursorPosition() - - ' Wenn das Control in einer GroupBox steckt - If ParentIsGroupBox(control) Then - Dim p As Control = control.Parent - Dim newPos As Point = New Point(NowCursor.X - p.Location.X - e.Location.X, - NowCursor.Y - p.Location.Y - e.Location.Y) - - ' Verhindert, dass das Control links+oben außerhalb der Groupbox geschoben wird = unerreichbar - If newPos.X < 0 Or newPos.Y < 0 Then - Exit Sub - End If - - ' Verhindert, dass das Control rechts+unten außerhalb der Groupbox geschoben wird = unerreichbar - If (newPos.X + control.Size.Width) > p.Size.Width Or (newPos.Y + control.Size.Height) > p.Size.Height Then - Exit Sub - End If - - If Point.op_Inequality(NowCursor, LastCursor) Then - control.Location = newPos - LastCursor = NowCursor - End If - - Else - ' Alle normalen Controls - control.Location = New Point(NowCursor.X - CtrlBuilder.BeginLocation.X, - NowCursor.Y - CtrlBuilder.BeginLocation.Y) - End If - End If - Catch ex As Exception - MsgBox(ex.Message, MsgBoxStyle.Exclamation, "MovableLabel_MouseMove") - Mouse_Moving = False - End Try - - End Sub -#End Region - - Private Sub Control_PressTab(sender As Object, e As PreviewKeyDownEventArgs) - 'NOOP - End Sub - - Private Function RebuildView() - Try - 'Dim sql = "EXECUTE PRPMO_CREATE_SQL " & CURRENT_FORM_ID - 'ClassDatabase.Execute_non_Query_Async(sql) - 'Dim sql2 = "EXECUTE PRPMO_CREATE_TEMP_VIEWS" - 'ClassDatabase.Execute_non_Query_Async(sql2) - 'Return True - - Dim noerror As Boolean = False - Dim sql = "EXECUTE PRPMO_CREATE_SQL " & CURRENT_FORM_ID - noerror = ClassDatabase.Execute_non_Query_withConn(sql, 1) - sql = "EXECUTE PRPMO_CREATE_TEMP_VIEWS" - noerror = ClassDatabase.Execute_non_Query_withConn(sql, 1) - Return noerror - Catch ex As Exception - MsgBox("Error in btnexecute_CreateViewSql:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) - Return False - End Try - End Function - - - Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click - If RebuildView() = True Then - MsgBox("The Views have been created successful.", MsgBoxStyle.Information) - End If - End Sub - - Private Sub frmLevel_Designer_Shown(sender As Object, e As EventArgs) Handles Me.Shown - formloaded = True - End Sub - - Public Sub LoadControlPropertiesNeu(ctrl As Control) - Try - - Dim controlId = DirectCast(ctrl.Tag, ClassControlMetadata).Id - Dim sql As String = String.Format("SELECT * FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0}", ControlId) - 'Dim sqlHint As String = String.Format("SELECT HINT FROM TBPMO_CONTROL_LANGUAGE WHERE CONTROL_SCREEN_ID = {0} AND LANGUAGE_TYPE = '{1}'", controlId, USER_LANGUAGE) - Dim sqlHint = String.Format("SELECT HINT FROM TBPMO_CONTROL_LANGUAGE WHERE CONTROL_SCREEN_ID = (SELECT GUID FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0} AND SCREEN_ID = {1}) AND LANGUAGE_TYPE = '{2}'", controlId, CURRENT_SCREEN_ID, USER_LANGUAGE) - - Dim dt As DataTable = ClassDatabase.Return_Datatable(sql) - Dim hint As String = ClassConverter.ToStringOrDefault(ClassDatabase.Execute_Scalar(sqlHint), Nothing) - - Dim props As Object = Nothing - Dim r As DataRow = Nothing - Dim type As String = Nothing - - If dt.Rows.Count <> 1 Then - MsgBox("Unexpected behaviour in LoadControlProperties: No Control could be loaded!" & vbNewLine & "Tag.ControlID: " & ControlId.ToString, MsgBoxStyle.Exclamation) - Exit Sub - End If - - r = dt.Rows(0) - type = r.Item("CTRLTYPE_NAME") - - 'Props Object initialisieren - Select Case type - Case "Label" : props = New LabelProperties() - Case "Textbox" : props = New TextBoxProperties() - Case "Combobox" : props = New ComboBoxProperties() - Case "Checkbox" : props = New CheckBoxProperties() - Case "RadioButton" : props = New RadioButtonProperties() - Case "Datepicker" : props = New DateTimePickerProperties() - Case "Datagridview" : props = New DataGridViewProperties() - Case "Groupbox" : props = New GroupBoxProperties() - Case "Picturebox" : props = New PictureBoxProperties() - Case "ListBox" : props = New ComboBoxProperties() - Case "CheckedListBox" : props = New ComboBoxProperties() - Case "F_AddAppointment" : props = New FunctionAddAppointment() - Case "F_AddFormData" : props = New FunctionAddFormData() - End Select - - 'Generische Properties laden - props.ID = r.Item("CONTROL_ID") - props.Name = r.Item("CONTROL_NAME") - props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) - props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) - props.Hint = hint - - 'Control-spezifische Properties laden - Select Case type - Case "Label" - props.Type = "Label" - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = r.Item("CONTROL_COL_NAME") - props.Caption = r.Item("CTRLSCR_CAPTION") - props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), "")) - - Case "Textbox" - props.Type = "Textbox" - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = r.Item("CONTROL_COL_NAME") - props.DefaultValue = ClassConverter.ToStringOrDefault(r.Item("CONTROL_DEF_VALUE")) - props.Format = NotNull([Enum].Parse(GetType(EnumFormatOptions), r.Item("CONTROL_FORMAT_TYPE")), EnumFormatOptions.String) - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - props.TabStop = r.Item("CTRLSCR_TAB_STOP") - props.TabIndex = r.Item("CTRLSCR_TAB_INDEX") - props.ShowColumn = NotNull(CBool(r.Item("CONTROL_SHOW_COLUMN")), True) - props.Multiline = r.Item("CONTROL_MULTILINE") - props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), "")) - - Case "Combobox" - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = r.Item("CONTROL_COL_NAME") - props.DefaultValue = ClassConverter.ToStringOrDefault(r.Item("CONTROL_DEF_VALUE")) - props.MasterDataId = r.Item("CTRLSCR_MASTER_DATA_ID") - props.Format = NotNull([Enum].Parse(GetType(EnumFormatOptions), r.Item("CONTROL_FORMAT_TYPE")), EnumFormatOptions.String) - props.StaticList = NotNull(r.Item("CONTROL_STATIC_LIST"), "") - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - props.TabStop = r.Item("CTRLSCR_TAB_STOP") - props.TabIndex = r.Item("CTRLSCR_TAB_INDEX") - props.ShowColumn = NotNull(CBool(r.Item("CONTROL_SHOW_COLUMN")), True) - props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), "")) - - Case "Checkbox" - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = r.Item("CONTROL_COL_NAME") - props.Caption = r.Item("CTRLSCR_CAPTION") - props.DefaultValue = ClassConverter.ToBooleanOrDefault(r.Item("CONTROL_DEF_VALUE")) - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - props.ShowColumn = NotNull(CBool(r.Item("CONTROL_SHOW_COLUMN")), True) - props.TabStop = r.Item("CTRLSCR_TAB_STOP") - props.TabIndex = r.Item("CTRLSCR_TAB_INDEX") - - Case "RadioButton" - props.ColumnTitle = r.Item("CONTROL_COL_NAME") - props.Caption = r.Item("CTRLSCR_CAPTION") - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - - Case "Datepicker" - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = r.Item("CONTROL_COL_NAME") - Dim i = r.Item("CONTROL_DEF_VALUE") - props.DefaultValue = NotNull(r.Item("CONTROL_DEF_VALUE"), EnumDateTimePickerDefaultValueOptions.Empty) - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - props.ShowColumn = NotNull(CBool(r.Item("CONTROL_SHOW_COLUMN")), True) - props.TabStop = r.Item("CTRLSCR_TAB_STOP") - props.TabIndex = r.Item("CTRLSCR_TAB_INDEX") - - Case "Datagridview" - ' Keine zusätzliche Properties - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = ClassConverter.ToStringOrDefault(r.Item("CONTROL_COL_NAME"), ctrl.Name) - props.ShowColumn = ClassConverter.ToBooleanOrDefault(r.Item("CONTROL_SHOW_COLUMN"), True) - props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), "")) - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - - Case "Groupbox" - props.Caption = r.Item("CTRLSCR_CAPTION") - props.BackColor = IntToColor(r.Item("CTRLSCR_BACK_COLOR")) - - Case "Picturebox" - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - - Case "ListBox" - props.StaticList = ClassConverter.ToStringOrDefault(r.Item("CONTROL_STATIC_LIST")) - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = ClassConverter.ToStringOrDefault(r.Item("CONTROL_COL_NAME"), ctrl.Name) - props.ShowColumn = ClassConverter.ToBooleanOrDefault(r.Item("CONTROL_SHOW_COLUMN"), True) - - Case "CheckedListBox" - props.StaticList = ClassConverter.ToStringOrDefault(r.Item("CONTROL_STATIC_LIST")) - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = ClassConverter.ToStringOrDefault(r.Item("CONTROL_COL_NAME"), ctrl.Name) - props.ShowColumn = ClassConverter.ToBooleanOrDefault(r.Item("CONTROL_SHOW_COLUMN"), True) - - Case "F_AddAppointment" - props.Caption() = r.Item("CTRLSCR_CAPTION") - - Dim f = ClassFunctionCommands.LoadFunction(controlId) - Dim FromDateId, ToDateId, SubjectString, Subject2String, PlaceString, DescString - - FromDateId = f.Item("INTEGER1") - If IsDBNull(FromDateId) OrElse FromDateId = 0 Then - props.FromDate = "" - Else - props.FromDate = Get_Name_for_ControlID(FromDateId, CURRENT_FORM_ID) - End If - - ToDateId = f.Item("INTEGER2") - If IsDBNull(ToDateId) OrElse ToDateId = 0 Then - props.ToDate = "" - Else - props.ToDate = Get_Name_for_ControlID(ToDateId, CURRENT_FORM_ID) - End If - - SubjectString = f.Item("STRING1") - If IsDBNull(SubjectString) OrElse String.IsNullOrEmpty(SubjectString) Then - props.Subject = "" - Else - props.Subject = SubjectString - End If - - Subject2String = f.Item("STRING2") - If IsDBNull(Subject2String) OrElse String.IsNullOrEmpty(Subject2String) Then - props.Subject2 = "" - Else - props.Subject2 = Subject2String - End If - - PlaceString = f.Item("STRING3") - If IsDBNull(PlaceString) OrElse String.IsNullOrEmpty(PlaceString) Then - props.Place = "" - Else - props.Place = PlaceString - End If - - DescString = f.Item("STRING4") - If IsDBNull(DescString) OrElse String.IsNullOrEmpty(DescString) Then - props.Description = "" - Else - props.Description = DescString - End If - - - Case "F_AddFormData" - props.Caption = r.Item("CTRLSCR_CAPTION") - - Dim f = ClassFunctionCommands.LoadFunction(controlId) - - Dim FormId = f.Item("INTEGER1") - props.FormID = NotNullInt(FormId, 0) - - Dim ScreenId = f.Item("INTEGER2") - props.ScreenID = NotNullInt(ScreenId, 0) - - End Select - - CURRENT_CONTROL_ID = r.Item("CONTROL_ID") - ' Aktuelle Control Eigenschaften anzeigen - Me.pgControlProperties.SelectedObject = props - ' Fenster Titel aktualisieren - - Catch ex As Exception - MsgBox("Error in LoadControlProperties" & vbNewLine & ex.Message, MsgBoxStyle.Critical) - End Try - End Sub - - Public Sub UpdateControlLocation(ctrl As Control) - Current_Properties = Me.pgControlProperties.SelectedObject - - If Current_Properties IsNot Nothing Then - Current_Properties.Location = ctrl.Location - Me.pgControlProperties.SelectedObject = Current_Properties - End If - - End Sub - - Public Function SaveControlProperties(ctrl As Control, properties As Object) As Boolean - If ClassControlCommands.UpdateControl(ctrl, properties) Then - LoadControlPropertiesNeu(ctrl) - Return True - Else - MsgBox("Fehler beim Speichern der Elementeigenschaften.", MsgBoxStyle.Critical) - Return False - End If - End Function - - Private Sub btnSaveControl_Click(sender As Object, e As EventArgs) Handles btnSaveControl.Click - If SaveControlProperties(CtrlBuilder.CurrentControl, pgControlProperties.SelectedObject) Then - lblStatus.Text = "Änderungen gespeichert - " & Now - lblStatus.Visible = True - Else - lblStatus.Visible = False - End If - End Sub - - Private Sub btnDeleteControl_Click(sender As Object, e As EventArgs) Handles btnDeleteControl.Click - If MsgBox("Wollen Sie das Element wirklich löschen?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then - If IsGroupBox(CtrlBuilder.CurrentControl) Then - Dim parentID As Integer = GetControlID_for_Name(CtrlBuilder.CurrentControl.Name, CURRENT_FORM_ID) - Dim SQL = "SELECT GUID FROM TBPMO_CONTROL WHERE PARENT_CONTROL_ID = " & parentID - Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL) - - For Each dr As DataRow In dt.Rows - Dim id As Integer = dr.Item(0) - ClassControlCommands.DeleteControl(id) - Next - - End If - - If ClassControlCommands.DeleteControl() = True Then - 'MsgBox("Element gelöscht, Elemente werden neu geladen.", MsgBoxStyle.Information) - CtrlBuilder.ClearControls() - frmLevel_Designer.Instance.LoadControls() - End If - End If - End Sub - - Private Sub pgControlProperties_PropertyValueChanged(s As Object, e As PropertyValueChangedEventArgs) - - Dim oldValue As Object = e.OldValue - Dim newValue As Object = e.ChangedItem.Value - Dim currentProperty As String = e.ChangedItem.Label - Dim ctrl As Control = CtrlBuilder.CurrentControl - - Select Case currentProperty - Case "Location" - ctrl.Location = newValue - Case "X" - ctrl.Location = New Point(newValue, ctrl.Location.Y) - Case "Y" - ctrl.Location = New Point(ctrl.Location.X, newValue) - Case "Size" - ctrl.Size = newValue - Case "Width" - ctrl.Size = New Size(newValue, ctrl.Size.Height) - Case "Height" - ctrl.Size = New Size(ctrl.Size.Width, newValue) - Case "Name" - ctrl.Name = newValue - Case "Caption" - ctrl.Text = newValue - Case "Font" - ctrl.Font = newValue - Case "FontColor" - ctrl.ForeColor = newValue - Case "BackColor" - ctrl.BackColor = newValue - End Select - - lblStatus.Text = "Ausstehende Änderungen" - lblStatus.Visible = True - End Sub -End Class diff --git a/app/DD-Record-Organiser/dlaccljf.x0i b/app/DD-Record-Organiser/dlaccljf.x0i deleted file mode 100644 index 7765342..0000000 --- a/app/DD-Record-Organiser/dlaccljf.x0i +++ /dev/null @@ -1,648 +0,0 @@ -Public Class frmTool_ControlProperties - Private Shared _Instance As frmTool_ControlProperties = Nothing - Private CurrentProperties As Object = Nothing - - Public Shared Function Instance() As frmTool_ControlProperties - If _Instance Is Nothing OrElse _Instance.IsDisposed = True Then - _Instance = New frmTool_ControlProperties - End If - _Instance.BringToFront() - Return _Instance - End Function - - Private Sub frmTool_ControlProperties_Load(sender As Object, e As EventArgs) Handles MyBase.Load - ClassWindowLocation.LoadFormLocationSize(Me, 1, CURRENT_SCREEN_ID, "frmTool_ControlProperties") - End Sub - - Private Sub frmTool_ControlProperties_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing - Try - ClassWindowLocation.SaveFormLocationSize(Me, 1, CURRENT_SCREEN_ID, "frmTool_ControlProperties") - My.Settings.Save() - Catch ex As Exception - MsgBox("Settings could not be saved.\n" & ex.ToString) - End Try - End Sub - - Public Sub LoadControlPropertiesNeu(ctrl As Control) - Try - 'TODO: LoadControlProperties Neuschreiben!!! - Dim sql As String = String.Format("SELECT * FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0}", DirectCast(ctrl.Tag, ClassControlMetadata).Id) - Dim dt As DataTable = ClassDatabase.Return_Datatable(sql) - Dim props As Object = Nothing - Dim r As DataRow = Nothing - Dim type As String = Nothing - - If dt.Rows.Count <> 1 Then - Exit Sub - End If - - r = dt.Rows(0) - type = r.Item("CTRLTYPE_NAME") - - Select Case type - Case "Label" - props = New LabelProperties() - ' Default Values - props.ID = r.Item("CONTROL_ID") - props.Name = r.Item("CONTROL_NAME") - props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) - props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = r.Item("CONTROL_COL_NAME") - - props.Caption = r.Item("CTRLSCR_CAPTION") - props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), "")) - - Case "Textbox" - props = New TextBoxProperties() - ' Default Values - props.ID = r.Item("CONTROL_ID") - props.Name = r.Item("CONTROL_NAME") - props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) - props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = r.Item("CONTROL_COL_NAME") - - props.DefaultValue = ClassConverter.ToStringOrDefault(r.Item("CONTROL_DEF_VALUE")) - props.Format = NotNull([Enum].Parse(GetType(EnumFormatOptions), r.Item("CONTROL_FORMAT_TYPE")), EnumFormatOptions.String) - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - props.TabStop = r.Item("CTRLSCR_TAB_STOP") - props.TabIndex = r.Item("CTRLSCR_TAB_INDEX") - props.ShowColumn = NotNull(r.Item("CONTROL_SHOW_COLUMN"), True) - props.Multiline = r.Item("CONTROL_MULTILINE") - props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), "")) - - Case "Combobox" - props = New ComboBoxProperties() - ' Default Values - props.ID = r.Item("CONTROL_ID") - props.Name = r.Item("CONTROL_NAME") - props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) - props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = r.Item("CONTROL_COL_NAME") - - props.DefaultValue = ClassConverter.ToStringOrDefault(r.Item("CONTROL_DEF_VALUE")) - props.MasterDataId = r.Item("CTRLSCR_MASTER_DATA_ID") - props.Format = NotNull([Enum].Parse(GetType(EnumFormatOptions), r.Item("CONTROL_FORMAT_TYPE")), EnumFormatOptions.String) - props.StaticList = NotNull(r.Item("CONTROL_STATIC_LIST"), "") - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - props.TabStop = r.Item("CTRLSCR_TAB_STOP") - props.TabIndex = r.Item("CTRLSCR_TAB_INDEX") - props.ShowColumn = NotNull(r.Item("CONTROL_SHOW_COLUMN"), True) - props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), "")) - - Case "Checkbox" - props = New CheckBoxProperties() - ' Default Values - props.ID = r.Item("CONTROL_ID") - props.Name = r.Item("CONTROL_NAME") - props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) - props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = r.Item("CONTROL_COL_NAME") - - props.Caption = r.Item("CTRLSCR_CAPTION") - props.DefaultValue = ClassConverter.ToBooleanOrDefault(r.Item("CONTROL_DEF_VALUE")) - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - props.ShowColumn = NotNull(r.Item("CONTROL_SHOW_COLUMN"), True) - props.TabStop = r.Item("CTRLSCR_TAB_STOP") - props.TabIndex = r.Item("CTRLSCR_TAB_INDEX") - - Case "RadioButton" - props = New RadioButtonProperties() - props.Caption = r.Item("CTRLSCR_CAPTION") - props.ID = r.Item("CONTROL_ID") - props.Name = r.Item("CONTROL_NAME") - props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) - props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - - Case "Datepicker" - props = New DateTimePickerProperties() - ' Default Values - props.ID = r.Item("CONTROL_ID") - props.Name = r.Item("CONTROL_NAME") - props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) - props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) - props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR")) - props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(), - CType(r.Item("CTRLSCR_FONT_SIZE"), Single), - CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)) - props.ColumnTitle = r.Item("CONTROL_COL_NAME") - - props.DefaultValue = NotNull(r.Item("CONTROL_DEF_VALUE"), EnumDateTimePickerDefaultValueOptions.Empty) - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - props.ShowColumn = NotNull(r.Item("CONTROL_SHOW_COLUMN"), True) - props.TabStop = r.Item("CTRLSCR_TAB_STOP") - props.TabIndex = r.Item("CTRLSCR_TAB_INDEX") - - Case "Datagridview" - props = New DataGridViewProperties() - ' Default Values - props.ID = r.Item("CONTROL_ID") - props.Name = r.Item("CONTROL_NAME") - props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) - props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) - - Case "Groupbox" - props = New GroupBoxProperties() - ' Default Values - props.ID = r.Item("CONTROL_ID") - props.Name = r.Item("CONTROL_NAME") - props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) - props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) - - props.Caption = r.Item("CTRLSCR_CAPTION") - props.BackColor = IntToColor(r.Item("CTRLSCR_BACK_COLOR")) - - Case "Picturebox" - props = New PictureBoxProperties() - ' Default Values - props.ID = r.Item("CONTROL_ID") - props.Name = r.Item("CONTROL_NAME") - props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) - props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) - - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - - Case "ListBox" - props = New ComboBoxProperties() - ' Default Values - props.ID = r.Item("CONTROL_ID") - props.Name = r.Item("CONTROL_NAME") - props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) - props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) - - props.StaticList = ClassConverter.ToStringOrDefault(r.Item("CONTROL_STATIC_LIST")) - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - - Case "CheckedListBox" - props = New ComboBoxProperties() - ' Default Values - props.ID = r.Item("CONTROL_ID") - props.Name = r.Item("CONTROL_NAME") - props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) - props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) - - props.StaticList = ClassConverter.ToStringOrDefault(r.Item("CONTROL_STATIC_LIST")) - props.IsRequired = r.Item("CONTROL_REQUIRED") - props.IsReadOnly = r.Item("CONTROL_READ_ONLY") - - Case "F_AddAppointment" - props = New FunctionAddAppointment() - props.Caption() = r.Item("CTRLSCR_CAPTION") - - Dim controlId = DirectCast(ctrl.Tag, ClassControlMetadata).Id - Dim f = ClassFunctionCommands.LoadFunction(controlId) - Dim FromDateId, ToDateId, SubjectString, Subject2String, PlaceString, DescString - - FromDateId = f.Item("INTEGER1") - If IsDBNull(FromDateId) OrElse FromDateId = 0 Then - props.FromDate = "" - Else - props.FromDate = GetName_for_ControlID(FromDateId, CURRENT_FORM_ID) - End If - - ToDateId = f.Item("INTEGER2") - If IsDBNull(ToDateId) OrElse ToDateId = 0 Then - props.ToDate = "" - Else - props.ToDate = GetName_for_ControlID(ToDateId, CURRENT_FORM_ID) - End If - - SubjectString = f.Item("STRING1") - If IsDBNull(SubjectString) OrElse String.IsNullOrEmpty(SubjectString) Then - props.Subject = "" - Else - props.Subject = SubjectString - End If - - Subject2String = f.Item("STRING2") - If IsDBNull(Subject2String) OrElse String.IsNullOrEmpty(Subject2String) Then - props.Subject2 = "" - Else - props.Subject2 = Subject2String - End If - - PlaceString = f.Item("STRING3") - If IsDBNull(PlaceString) OrElse String.IsNullOrEmpty(PlaceString) Then - props.Place = "" - Else - props.Place = PlaceString - End If - - DescString = f.Item("STRING4") - If IsDBNull(DescString) OrElse String.IsNullOrEmpty(DescString) Then - props.Description = "" - Else - props.Description = DescString - End If - - - Case "F_AddFormData" - props = New FunctionAddFormData() - props.Caption = r.Item("CTRLSCR_CAPTION") - - Dim controlId = DirectCast(ctrl.Tag, ClassControlMetadata).Id - Dim f = ClassFunctionCommands.LoadFunction(controlId) - - Dim FormId = f.Item("INTEGER1") - If IsDBNull(FormId) OrElse FormId = 0 Then - props.FormID = 0 - Else - props.FormID = FormId - End If - - Dim ScreenId = f.Item("INTEGER2") - If IsDBNull(ScreenId) OrElse ScreenId = 0 Then - props.ScreenID = 0 - Else - props.ScreenID = ScreenId - End If - - End Select - - CURRENT_CONTROL_ID = r.Item("CONTROL_ID") - ' Aktuelle Control Eigenschaften anzeigen - Me.pgControlProperties.SelectedObject = props - ' Fenster Titel aktualisieren - Me.Text = String.Format("Eigenschaften von {0}({1})", type, props.ID.ToString()) - ' Control Name akutalisieren - Me.tslControlName.Text = r.Item("CONTROL_NAME") - - Catch ex As Exception - MsgBox("Error in LoadControlProperties" & vbNewLine & ex.Message, MsgBoxStyle.Critical) - End Try - End Sub - - - - ' ADDED 25.11 - ' Lade Control Eigenschaften und zeige diese an - ' Wird von frmLevelDesigner aufgerufen - Public Sub LoadControlProperties(ctrl As Control) - Try - Dim sql As String = "SELECT CTRLSCR_ID FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_NAME = '" & ctrl.Name & "' AND FORM_ID = " & CURRENT_FORM_ID & " and SCREEN_ID = " & CURRENT_SCREEN_ID - Dim CTRLSCR_ID = ClassDatabase.Execute_Scalar(sql) - If CTRLSCR_ID > 0 Then - Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM VWPMO_CONTROL_SCREEN WHERE CTRLSCR_ID = " & CTRLSCR_ID) - If DT.Rows.Count = 1 Then - Dim row As DataRow = DT.Rows(0) - Dim type As String = row.Item("CTRLTYPE_NAME") - Dim props As Object = Nothing - Dim fontcolor As Color - Dim fontfamily As String - Dim fontstyle As FontStyle - Dim fontsize As Single - Dim isreadonly As Boolean - Dim isrequired As Boolean - Dim columntitle As String - Dim DefaultValue As String - - - Select Case type - Case "Label" - props = New LabelProperties() - props.Caption = row.Item("CTRLSCR_CAPTION") - Case "Textbox" - props = New TextBoxProperties() - props.DefaultValue = ClassConverter.ToStringOrDefault(row.Item("CONTROL_DEF_VALUE")) - - If Not IsDBNull(row.Item("CONTROL_FORMAT_TYPE")) Then - props.Format = DirectCast([Enum].Parse(GetType(EnumFormatOptions), row.Item("CONTROL_FORMAT_TYPE")), Integer) - Else - props.Format = "String" - End If - Case "Combobox" - props = New ComboBoxProperties() - props.MasterDataId = row.Item("CTRLSCR_MASTER_DATA_ID") - props.DefaultValue = ClassConverter.ToStringOrDefault(row.Item("CONTROL_DEF_VALUE")) - - If Not IsDBNull(row.Item("CONTROL_FORMAT_TYPE")) Then - props.Format = DirectCast([Enum].Parse(GetType(EnumFormatOptions), row.Item("CONTROL_FORMAT_TYPE")), Integer) - Else - props.Format = "String" - End If - - props.StaticList = ClassConverter.ToStringOrDefault(row.Item("CONTROL_STATIC_LIST")) - Case "Checkbox" - props = New CheckBoxProperties() - props.Caption = row.Item("CTRLSCR_CAPTION") - props.DefaultValue = ClassConverter.ToBooleanOrDefault(row.Item("CONTROL_DEF_VALUE")) - Case "Datepicker" - props = New DateTimePickerProperties() - props.DefaultValue = NotNull(row.Item("CONTROL_DEF_VALUE"), EnumDateTimePickerDefaultValueOptions.Empty) - 'props.DefaultValue = ClassConverter.ToDateTimePickerOptionsOrDefault(row.Item("CONTROL_DEF_VALUE")) - Case "Datagridview" - props = New DataGridViewProperties() - Case "Groupbox" - props = New GroupBoxProperties() - props.Caption = row.Item("CTRLSCR_CAPTION") - props.BackColor = IntToColor(row.Item("CTRLSCR_BACK_COLOR")) - Case "Picturebox" - props = New PictureBoxProperties() - Case "RadioButton" - props = New RadioButtonProperties() - props.Caption = row.Item("CTRLSCR_CAPTION") - props.DefaultValue = ClassConverter.ToBooleanOrDefault(row.Item("CONTROL_DEF_VALUE")) - props.IsRequired = row.Item("CONTROL_REQUIRED") - Case "F_AddAppointment" - props = New FunctionAddAppointment() - Case "F_AddFormData" - props = New FunctionAddFormData() - Case "CheckedListBox" - props = New ComboBoxProperties() - props.StaticList = ClassConverter.ToStringOrDefault(row.Item("CONTROL_STATIC_LIST")) - Case "ListBox" - props = New ComboBoxProperties() - props.StaticList = ClassConverter.ToStringOrDefault(row.Item("CONTROL_STATIC_LIST")) - Case Else - MsgBox("Unknown control type " & type, MsgBoxStyle.Exclamation, "Error in LoadControlProperties:") - End Select - - ' Generic Properties - props.ID = row.Item("CONTROL_ID") - props.Name = row.Item("CONTROL_NAME") - props.Size = New Size(row.Item("CTRLSCR_WIDTH"), row.Item("CTRLSCR_HEIGHT")) - - 'TODO: calc location - 'If row.Item("CONTROL_PARENT_ID") <> 0 Then - ' Dim parentSQL = "SELECT CTRLSCR_X_LOC, CTRLSCR_Y_LOC FROM VWPMO_VALUES WHERE = CONTROL_ID = " & row.Item("CONTROL_PARENT_ID") - 'End If - - - props.Location = New Point(row.Item("CTRLSCR_X_LOC"), row.Item("CTRLSCR_Y_LOC")) - - Me.Text = "Eigenschaften Control-ID: " & props.ID - - If type = "F_AddAppointment" Then - Dim ControlId = GetControlID_for_Name(ctrl.Name, CURRENT_FORM_ID) - Dim dr = ClassFunctionCommands.LoadFunction(ControlId) - - Dim FromDateId, ToDateId, SubjectString, Subject2String, PlaceString, DescString - - FromDateId = dr.Item("INTEGER1") - ToDateId = dr.Item("INTEGER2") - SubjectString = dr.Item("STRING1") - Subject2String = dr.Item("STRING2") - PlaceString = dr.Item("STRING3") - DescString = dr.Item("STRING4") - - - If IsDBNull(FromDateId) OrElse FromDateId = 0 Then - props.FromDate = "" - Else - props.FromDate = GetName_for_ControlID(FromDateId, CURRENT_FORM_ID) - End If - - If IsDBNull(ToDateId) OrElse ToDateId = 0 Then - props.ToDate = "" - Else - props.ToDate = GetName_for_ControlID(ToDateId, CURRENT_FORM_ID) - End If - - - - If IsDBNull(SubjectString) OrElse String.IsNullOrEmpty(SubjectString) Then - props.Subject = "" - Else - props.Subject = SubjectString - End If - - If IsDBNull(Subject2String) OrElse String.IsNullOrEmpty(Subject2String) Then - props.Subject2 = "" - Else - props.Subject2 = Subject2String - End If - - If IsDBNull(PlaceString) OrElse String.IsNullOrEmpty(PlaceString) Then - props.Place = "" - Else - props.Place = PlaceString - End If - - If IsDBNull(DescString) OrElse String.IsNullOrEmpty(DescString) Then - props.Description = "" - Else - props.Description = DescString - End If - - props.Caption = row.Item("CTRLSCR_CAPTION") - ElseIf type = "F_AddFormData" Then - ' TODO - Dim ControlId = GetControlID_for_Name(ctrl.Name, CURRENT_FORM_ID) - Dim dr = ClassFunctionCommands.LoadFunction(ControlId) - - Dim FormId, ScreenId - - FormId = dr.Item("INTEGER1") - ScreenId = dr.Item("INTEGER2") - - If IsDBNull(FormId) OrElse FormId = 0 Then - props.FormID = 0 - Else - props.FormID = FormId - End If - - If IsDBNull(ScreenId) OrElse ScreenId = 0 Then - props.ScreenID = 0 - Else - props.ScreenID = ScreenId - End If - - props.Caption = row.Item("CTRLSCR_CAPTION") - End If - - ' Control Properties - If Not type.Contains("F_") Then - ' PreSave and Convert Properties - fontcolor = IntToColor(row.Item("CTRLSCR_FONT_COLOR")) - fontfamily = row.Item("CTRLSCR_FONT_FAMILY") - fontstyle = CType(row.Item("CTRLSCR_FONT_STYLE"), FontStyle) - fontsize = CType(row.Item("CTRLSCR_FONT_SIZE"), Single) - isreadonly = row.Item("CONTROL_READ_ONLY") - isrequired = row.Item("CONTROL_REQUIRED") - columntitle = row.Item("CONTROL_COL_NAME") - - ' Assign Properties to Class - props.FontColor = fontcolor - props.Font = New Font(fontfamily, fontsize, fontstyle) - props.ColumnTitle = columntitle - - 'ReadOnly - If type = "Textbox" Or type = "Datepicker" Or type = "Combobox" Or type = "Picturebox" Or type = "RadioButton" Or type = "Checkbox" Or type = "CheckedListBox" _ - Or type = "ListBox" Then - props.IsReadOnly = row.Item("CONTROL_READ_ONLY") - End If - - ' Nicht verfügbar für label - If type = "Textbox" Or type = "Combobox" Or type = "Datepicker" Or type = "Checkbox" Or type = "RadioButton" Or type = "CheckedListBox" _ - Or type = "ListBox" Then - props.TabStop = row.Item("CTRLSCR_TAB_STOP") - props.TabIndex = row.Item("CTRLSCR_TAB_INDEX") - - If Not IsDBNull(row.Item("CONTROL_SHOW_COLUMN")) Then - props.ShowColumn = row.Item("CONTROL_SHOW_COLUMN") - Else - props.ShowColumn = True - End If - End If - - If type = "Textbox" Then - props.Multiline = row.Item("CONTROL_MULTILINE") - End If - - If type = "Combobox" Or type = "CheckedListBox" Or type = "ListBox" Or type = "Textbox" Then - If row.Item("CONTROL_SQLCOMMAND_1").ToString.Length > 1 Then - Dim value As New SQLValue(row.Item("CONTROL_SQLCOMMAND_1").ToString) - props.SQLCommand = value - 'props.SQLCommand = row.Item("CONTROL_SQLCOMMAND_1").ToString - End If - - 'props.ParentFormID = row.Item("PARENT_FORM_ID") - props.IsRequired = isrequired - props.IsReadOnly = isreadonly - End If - - If type = "Label" Then - If row.Item("CONTROL_SQLCOMMAND_1").ToString.Length > 1 Then - Dim value As New SQLValue(row.Item("CONTROL_SQLCOMMAND_1").ToString) - props.SQLCommand = value - 'props.SQLCommand = row.Item("CONTROL_SQLCOMMAND_1").ToString - End If - End If - - - End If - - ' Globale Variable setzen - CURRENT_CONTROL_ID = row.Item("CONTROL_ID") - Me.pgControlProperties.SelectedObject = props - End If - End If - - Catch ex As Exception - MsgBox("Error in loadcontrolproperties" & vbNewLine & ex.Message, MsgBoxStyle.Critical) - End Try - - - End Sub - - ' Aktualisiert die Position des akutellen Controls und speichert diese in der Klasse - Public Sub UpdateControlLocation(ctrl As Control) - CurrentProperties = Me.pgControlProperties.SelectedObject - - If CurrentProperties IsNot Nothing Then - CurrentProperties.Location = ctrl.Location - Me.pgControlProperties.SelectedObject = CurrentProperties - End If - - End Sub - - Public Function SaveControlProperties(ctrl As Control, properties As Object) As Boolean - If ClassControlCommands.UpdateControl(ctrl, properties) Then - LoadControlProperties(ctrl) - Return True - Else - MsgBox("Fehler beim Speichern der Elementeigenschaften.", MsgBoxStyle.Critical) - Return False - End If - End Function - - Private Sub btnSaveControl_Click(sender As Object, e As EventArgs) Handles btnSaveControl.Click - If SaveControlProperties(CtrlBuilder.CurrentControl, pgControlProperties.SelectedObject) Then - lblStatus.Text = "Änderungen gespeichert - " & Now - lblStatus.Visible = True - Else - lblStatus.Visible = False - ' MsgBox("Änderungen gespeichert!", MsgBoxStyle.Information) - End If - End Sub - - Private Sub pgControlProperties_PropertyValueChanged(s As Object, e As PropertyValueChangedEventArgs) Handles pgControlProperties.PropertyValueChanged - - Dim oldValue As Object = e.OldValue - Dim newValue As Object = e.ChangedItem.Value - Dim currentProperty As String = e.ChangedItem.Label - Dim ctrl As Control = CtrlBuilder.CurrentControl - - Select Case currentProperty - Case "Location" - ctrl.Location = newValue - Case "X" - ctrl.Location = New Point(newValue, ctrl.Location.Y) - Case "Y" - ctrl.Location = New Point(ctrl.Location.X, newValue) - Case "Size" - ctrl.Size = newValue - Case "Width" - ctrl.Size = New Size(newValue, ctrl.Size.Height) - Case "Height" - ctrl.Size = New Size(ctrl.Size.Width, newValue) - Case "Name" - ctrl.Name = newValue - Case "Caption" - ctrl.Text = newValue - Case "Font" - ctrl.Font = newValue - Case "FontColor" - ctrl.ForeColor = newValue - Case "BackColor" - ctrl.BackColor = newValue - End Select - - - lblStatus.Text = "Ausstehende Änderungen" - lblStatus.Visible = True - End Sub - - Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click - If MsgBox("Wollen Sie das Element wirklich löschen?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then - If IsGroupBox(CtrlBuilder.CurrentControl) Then - Dim parentID As Integer = GetControlID_for_Name(CtrlBuilder.CurrentControl.Name, CURRENT_FORM_ID) - Dim SQL = "SELECT GUID FROM TBPMO_CONTROL WHERE PARENT_CONTROL_ID = " & parentID - Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL) - - For Each dr As DataRow In dt.Rows - Dim id As Integer = dr.Item(0) - ClassControlCommands.DeleteControl(id) - Next - - End If - - If ClassControlCommands.DeleteControl() = True Then - MsgBox("Element gelöscht, Elemente werden neu geladen.", MsgBoxStyle.Information) - CtrlBuilder.ClearControls() - frmLevel_Designer.Instance.LoadControls() - End If - End If - End Sub - - Private Sub frmTool_ControlProperties_Shown(sender As Object, e As EventArgs) Handles Me.Shown - If Me.WindowState = FormWindowState.Maximized Then - Me.WindowState = FormWindowState.Normal - End If - End Sub -End Class \ No newline at end of file diff --git a/app/DD-Record-Organiser/frmConstructor_Main.vb b/app/DD-Record-Organiser/frmConstructor_Main.vb index cc5b595..def9ed1 100644 --- a/app/DD-Record-Organiser/frmConstructor_Main.vb +++ b/app/DD-Record-Organiser/frmConstructor_Main.vb @@ -1282,9 +1282,9 @@ Public Class frmConstructor_Main #Region "DetailView - Toolstrip" Private Sub tsButtonAdd_Click(sender As Object, e As EventArgs) Handles tsButtonAdd.Click - If CtrlCommandUI.IsInsert Then - Exit Sub - End If + 'If CtrlCommandUI.IsInsert Then + ' Exit Sub + 'End If Me.Cursor = Cursors.WaitCursor Try If TCDetails.SelectedTabPage.Text.StartsWith("Pos") = False Then @@ -1295,14 +1295,23 @@ Public Class frmConstructor_Main tsButtonShowWorkflowTasks.Enabled = True CURRENT_PARENT_ID = PARENT_ID ClassControlValues.LoadDefaultValues(ENTITY_ID, SELECTED_RECORD_ID, pnlDetails.Controls, CURRENT_PARENT_ID, ENTITY_ID) - dff() + ' Den Record anlegen, damit wir eine RECORD_ID bekommen + ClassControlCommandsUI.CreateRecord(ENTITY_ID) + ' Die RECORD_ID auslesen und setzen + Dim NewRecordId As Integer = ClassControlCommandsUI.GetLastRecord() + CURRENT_RECORD_ID = NewRecordId + RECORD_ID = NewRecordId + SELECTED_RECORD_ID = NewRecordId + ' Das StatusLabel aktualisieren + Update_Record_Label(NewRecordId) ' Im gegensatz zu EnableEditMode muss hier nur der save button enabled werden tsButtonSave.Enabled = True ' Muss aktiviert werden, sonst funktionieren die Combobox Abhängigkeits Events nicht CURRENT_RECORD_ENABLED = True - EDIT_STATE = EditState.Insert + ' EDIT_STATE muss hier (immer?) Update sein, sonst wird beim Speichern noch ein Datensatz angelegt + EDIT_STATE = EditState.Update RECORD_CHANGED = True - tsslblRecord.Text = "Adding record ......" + 'tsslblRecord.Text = "Adding record ......" RIGHT_ONLY_READ = False tslblLocked.Visible = False tslblFileslocked.Visible = False @@ -1311,6 +1320,8 @@ Public Class frmConstructor_Main MsgBox("Unexpected Error in Insert: " & ex.Message) Finally Me.Cursor = Cursors.Default + ' IsInsert muss true sein, damit wir wissen ob wir bei + ' Abbruch den Record Wieder löschen können CtrlCommandUI.IsInsert = True End Try End Sub @@ -2270,6 +2281,13 @@ Public Class frmConstructor_Main Catch ex As Exception MsgBox("Error in Save Record Changes: " & vbNewLine & ex.Message, MsgBoxStyle.Exclamation) End Try + Else + ' Wenn nicht gespeichert werden soll, den Record wieder löschen + If CtrlCommandUI.IsInsert = True Then + CtrlCommandUI.DeleteRecord(CURRENT_RECORD_ID) + End If + + End If CtrlCommandUI.IsInsert = False RECORD_CHANGED = False