From 15b08db258ad6b3a8e1ac60e9d9823647b99b9a5 Mon Sep 17 00:00:00 2001 From: JenneJ Date: Tue, 15 Mar 2016 14:41:45 +0100 Subject: [PATCH 1/2] jj 15.03 datagridview can add rows --- .../ClassControlBuilder.vb | 57 ++++++++++++++++--- .../ClassControlCommands.vb | 12 ---- .../ClassControlCommandsUI.vb | 20 +++++++ app/DD-Record-Organiser/ClassControlLoader.vb | 14 ++--- .../ClassControlProperties.vb | 12 ---- app/DD-Record-Organiser/ClassControlValues.vb | 10 ++-- .../frmTool_ControlProperties.vb | 3 - 7 files changed, 80 insertions(+), 48 deletions(-) diff --git a/app/DD-Record-Organiser/ClassControlBuilder.vb b/app/DD-Record-Organiser/ClassControlBuilder.vb index c5e0cb7..67f15c6 100644 --- a/app/DD-Record-Organiser/ClassControlBuilder.vb +++ b/app/DD-Record-Organiser/ClassControlBuilder.vb @@ -220,9 +220,54 @@ Public Class ClassControlBuilder Case "CheckedListBoxControl" Dim chklistbox As DevExpress.XtraEditors.CheckedListBoxControl = CType(control, DevExpress.XtraEditors.CheckedListBoxControl) AddHandler chklistbox.ItemCheck, AddressOf RecordChanged + 'Case "DataGridView" + ' Dim gridview As DataGridView = CType(control, DataGridView) + ' AddHandler gridview.UserDeletingRow, AddressOf UserDeletingRow + ' AddHandler gridview.CellEndEdit, AddressOf CellEndEdit End Select End Sub + 'Private Function GetAllItems(dgv As DataGridView) As List(Of String) + ' Dim list As New List(Of String) + + ' 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 list + 'End Function + + 'Private Sub SaveAllItems(controlId As Integer, items As String) + ' Try + ' Dim SQL As String = String.Format("UPDATE TBPMO_CONTROL SET STATIC_LIST='{0}' WHERE GUID = {1}", items, controlId) + ' ClassDatabase.Execute_non_Query(SQL) + ' Catch ex As Exception + ' MsgBox("Error in SaveAllItems:" & vbNewLine & ex.Message) + ' End Try + 'End Sub + + 'Private Sub UserDeletingRow(ByVal sender As Object, ByVal e As DataGridViewRowCancelEventArgs) + ' Dim dgv As DataGridView = DirectCast(sender, DataGridView) + ' Dim id As Integer = DirectCast(dgv.Tag, ClassControlMetadata).Id + ' Dim list As List(Of String) = GetAllItems(dgv) + ' list.RemoveAt(e.Row.Index) + ' Dim items As String = String.Join(";", list.ToArray()) + + ' SaveAllItems(id, items) + 'End Sub + + 'Private Sub CellEndEdit(ByVal sender As Object, e As DataGridViewCellEventArgs) + ' Dim dgv As DataGridView = DirectCast(sender, DataGridView) + ' Dim id As Integer = DirectCast(dgv.Tag, ClassControlMetadata).Id + ' Dim list As List(Of String) = GetAllItems(dgv) + ' Dim items As String = String.Join(";", list.ToArray()) + + ' SaveAllItems(id, items) + 'End Sub + Private Sub SetDragDropHandler(groupbox As GroupBox) If Not IsNothing(_group_box_drag_drop_handler) Then AddHandler groupbox.DragDrop, Me._group_box_drag_drop_handler @@ -1096,18 +1141,16 @@ Public Class ClassControlBuilder control.Name = name control.BackgroundColor = SystemColors.ControlDark - control.AllowUserToAddRows = False - control.AllowUserToDeleteRows = False + control.AllowUserToAddRows = True + control.AllowUserToDeleteRows = True control.AllowUserToResizeColumns = False control.AllowUserToResizeRows = False control.Parent = _master_panel control.ReadOnly = read_only - - - 'column.HeaderText = "" - 'column.Name = "column1" - 'control.Columns.Add(column) + column.HeaderText = "Data" + column.Name = "column1" + control.Columns.Add(column) If _new And IsNothing(parent) Then control.Location = Me.GetCursorPosition() diff --git a/app/DD-Record-Organiser/ClassControlCommands.vb b/app/DD-Record-Organiser/ClassControlCommands.vb index d57ccb8..b7f21b5 100644 --- a/app/DD-Record-Organiser/ClassControlCommands.vb +++ b/app/DD-Record-Organiser/ClassControlCommands.vb @@ -233,18 +233,6 @@ DEFAULTVALUE = properties.DefaultValue End If - 'If type = "TextBox" OrElse - ' type = "ComboBox" OrElse - ' type = "CheckBox" OrElse - ' type = "RadioButton" OrElse - ' type = "CheckedListBoxControl" OrElse - ' type = "ListBoxControl" Then - - ' SHOW_COLUMN = BoolToInt(properties.ShowColumn) - 'Else - ' SHOW_COLUMN = BoolToInt(True) - 'End If - If propExists(properties, "ShowColumn") Then SHOW_COLUMN = BoolToInt(properties.ShowColumn) End If diff --git a/app/DD-Record-Organiser/ClassControlCommandsUI.vb b/app/DD-Record-Organiser/ClassControlCommandsUI.vb index 808fb7c..68fdcd2 100644 --- a/app/DD-Record-Organiser/ClassControlCommandsUI.vb +++ b/app/DD-Record-Organiser/ClassControlCommandsUI.vb @@ -501,6 +501,12 @@ Public Class ClassControlCommandsUI Continue For End If + If TypeOf ctrl Is Windows.Forms.DataGridView Then + Dim id As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id + UpdateMultipleValues(id, RecordID, CONTROL_VALUE) + 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)) If ValueExists Then ' Control Updaten @@ -654,6 +660,20 @@ Public Class ClassControlCommandsUI 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 diff --git a/app/DD-Record-Organiser/ClassControlLoader.vb b/app/DD-Record-Organiser/ClassControlLoader.vb index 58564f9..64b92bf 100644 --- a/app/DD-Record-Organiser/ClassControlLoader.vb +++ b/app/DD-Record-Organiser/ClassControlLoader.vb @@ -399,15 +399,11 @@ Public Class DataGridView : Inherits _ListControl - Public Shared Sub LoadList(control As Windows.Forms.DataGridView, formId As Integer, ConnId As Object, SQLCommand As String) - Dim controlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id - Dim dynamic As DynamicValue = GetDynamicValue(DirectCast(control.Tag, ClassControlMetadata).Id, formId, ConnId, SQLCommand) - - ' SQLCommand ignorieren - If dynamic.StaticList IsNot Nothing Then - control.DataSource = dynamic.StaticList - End If - + Public Shared Sub LoadValue(control As Windows.Forms.DataGridView, values As List(Of Object)) + control.Rows.Clear() + For Each item In values + control.Rows.Add(item.ToString) + Next End Sub End Class diff --git a/app/DD-Record-Organiser/ClassControlProperties.vb b/app/DD-Record-Organiser/ClassControlProperties.vb index b8b2361..8351aca 100644 --- a/app/DD-Record-Organiser/ClassControlProperties.vb +++ b/app/DD-Record-Organiser/ClassControlProperties.vb @@ -401,7 +401,6 @@ Module ClassControlProperties Inherits CommonProperties Private _show_column As Boolean - Private _static_list As String @@ -413,17 +412,6 @@ Module ClassControlProperties _show_column = value End Set End Property - - - - Public Property StaticList() As String - Get - Return _static_list - End Get - Set(value As String) - _static_list = value - End Set - End Property End Class Public Class PictureBoxProperties Inherits CommonProperties diff --git a/app/DD-Record-Organiser/ClassControlValues.vb b/app/DD-Record-Organiser/ClassControlValues.vb index f02e932..22ed161 100644 --- a/app/DD-Record-Organiser/ClassControlValues.vb +++ b/app/DD-Record-Organiser/ClassControlValues.vb @@ -233,6 +233,11 @@ Public Class ClassControlValues Dim picturebox = DirectCast(control, PictureBox) LoadImage(recordId, controlId, picturebox) + Case GetType(DataGridView) + If LogErrorsOnly = False Then ClassLogger.Add(">> Sub LoadControlValueNeu - GetType(DataGridView) ", False) + Dim gridview = DirectCast(control, DataGridView) + ControlLoader.DataGridView.LoadValue(gridview, values) + Case Else If LogErrorsOnly = False Then ClassLogger.Add(">> Sub LoadControlValue - Control-Type nicht berücksichtigt: " & GetType(Control).ToString(), False) End Select @@ -297,11 +302,6 @@ Public Class ClassControlValues Dim chlistbox = DirectCast(Ctrl, DevExpress.XtraEditors.CheckedListBoxControl) ControlLoader.CheckedListBox.LoadList(chlistbox, FormID, ConnID, sqlcommand) - Case GetType(DataGridView) - Dim gridview = DirectCast(Ctrl, DataGridView) - Dim noSQL As String = "" - ControlLoader.DataGridView.LoadList(gridview, FormID, ConnID, noSQL) - End Select swcontrol.Stop() diff --git a/app/DD-Record-Organiser/frmTool_ControlProperties.vb b/app/DD-Record-Organiser/frmTool_ControlProperties.vb index fa265f8..a919dd3 100644 --- a/app/DD-Record-Organiser/frmTool_ControlProperties.vb +++ b/app/DD-Record-Organiser/frmTool_ControlProperties.vb @@ -150,7 +150,6 @@ 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.StaticList = NotNull(r.Item("CONTROL_STATIC_LIST"), "") props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), "")) props.IsRequired = r.Item("CONTROL_REQUIRED") props.IsReadOnly = r.Item("CONTROL_READ_ONLY") @@ -538,7 +537,6 @@ lblStatus.Visible = True Else lblStatus.Visible = False - ' MsgBox("Änderungen gespeichert!", MsgBoxStyle.Information) End If End Sub @@ -574,7 +572,6 @@ ctrl.BackColor = newValue End Select - lblStatus.Text = "Ausstehende Änderungen" lblStatus.Visible = True End Sub From 052635e53ab5c5b803eb2bf2c632cff4d1980125 Mon Sep 17 00:00:00 2001 From: JenneJ Date: Tue, 15 Mar 2016 15:50:08 +0100 Subject: [PATCH 2/2] jj 15.03 clean up --- app/DD-Record-Organiser/ClassControlBuilder.vb | 2 +- app/DD-Record-Organiser/ClassControlCommands.vb | 2 +- app/DD-Record-Organiser/ClassControlValues.vb | 5 +++++ app/DD-Record-Organiser/frmConstructor_Main.resx | 12 ++++++------ app/DD-Record-Organiser/frmForm_Input.vb | 1 + app/DD-Record-Organiser/frmTool_ControlProperties.vb | 4 ++++ 6 files changed, 18 insertions(+), 8 deletions(-) diff --git a/app/DD-Record-Organiser/ClassControlBuilder.vb b/app/DD-Record-Organiser/ClassControlBuilder.vb index 67f15c6..1539b30 100644 --- a/app/DD-Record-Organiser/ClassControlBuilder.vb +++ b/app/DD-Record-Organiser/ClassControlBuilder.vb @@ -1280,7 +1280,7 @@ Public Class ClassControlBuilder control.Name = name control.Parent = _master_panel control.Text = Caption - control.Font = New Font(fontfamily, fontsize, CType(fontstyle, FontStyle)) + 'control.Font = New Font(fontfamily, fontsize, CType(fontstyle, FontStyle)) control.ForeColor = IntToColor(fontcolor) control.BackColor = IntToColor(backcolor) diff --git a/app/DD-Record-Organiser/ClassControlCommands.vb b/app/DD-Record-Organiser/ClassControlCommands.vb index b7f21b5..f5f6e6b 100644 --- a/app/DD-Record-Organiser/ClassControlCommands.vb +++ b/app/DD-Record-Organiser/ClassControlCommands.vb @@ -321,7 +321,7 @@ HEIGHT = properties.Size.Height WIDTH = properties.Size.Width - If propExists(properties, "Font") Then + If propExists(properties, "Font") AndAlso Not IsNothing(properties.Font) Then Dim f As Font = properties.Font FONT_FAMILY = f.FontFamily.Name FONT_SIZE = CType(f.Size, Integer) diff --git a/app/DD-Record-Organiser/ClassControlValues.vb b/app/DD-Record-Organiser/ClassControlValues.vb index 22ed161..348c2e9 100644 --- a/app/DD-Record-Organiser/ClassControlValues.vb +++ b/app/DD-Record-Organiser/ClassControlValues.vb @@ -449,6 +449,11 @@ Public Class ClassControlValues Dim lb As DevExpress.XtraEditors.ListBoxControl = DirectCast(control, DevExpress.XtraEditors.ListBoxControl) lb.SelectedIndex = -1 + + Case GetType(DataGridView) + Dim dgv As DataGridView = DirectCast(control, DataGridView) + dgv.Rows.Clear() + End Select End Sub #End Region diff --git a/app/DD-Record-Organiser/frmConstructor_Main.resx b/app/DD-Record-Organiser/frmConstructor_Main.resx index 402cc16..51c12b8 100644 --- a/app/DD-Record-Organiser/frmConstructor_Main.resx +++ b/app/DD-Record-Organiser/frmConstructor_Main.resx @@ -289,7 +289,7 @@ 0, 0 - 788, 270 + 795, 270 0 @@ -361,7 +361,7 @@ 0, 0 - 1069, 312 + 1072, 316 0 @@ -379,7 +379,7 @@ 0 - 1069, 312 + 1072, 316 Detailansicht @@ -397,7 +397,7 @@ 0 - 1071, 340 + 1078, 347 1 @@ -1367,7 +1367,7 @@ 0, 0 - 1071, 25 + 1078, 25 0 @@ -1472,7 +1472,7 @@ Panel2 - 1083, 365 + 1083, 372 0 diff --git a/app/DD-Record-Organiser/frmForm_Input.vb b/app/DD-Record-Organiser/frmForm_Input.vb index 471cf05..d78091b 100644 --- a/app/DD-Record-Organiser/frmForm_Input.vb +++ b/app/DD-Record-Organiser/frmForm_Input.vb @@ -459,6 +459,7 @@ Public Class frmFormInput Private Sub tsButtonAdd_Click(sender As Object, e As EventArgs) Handles tsButtonAdd.Click 'CtrlCommandUI.LoadControls(thisformid) + ClassControlValues.ClearControlValues(pnlView.Controls) ClassControlValues.UnloadControlValuesList(SelectedRecordID, thisformid, pnlView.Controls) ClassControlValues.LoadControlValuesList(thisformid, pnlView.Controls) ClassControlValues.LoadDefaultValues(thisformid, SelectedRecordID, pnlView.Controls) diff --git a/app/DD-Record-Organiser/frmTool_ControlProperties.vb b/app/DD-Record-Organiser/frmTool_ControlProperties.vb index a919dd3..713fc9c 100644 --- a/app/DD-Record-Organiser/frmTool_ControlProperties.vb +++ b/app/DD-Record-Organiser/frmTool_ControlProperties.vb @@ -123,6 +123,10 @@ 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),