jj 25.05.16

This commit is contained in:
JenneJ 2016-05-25 16:50:30 +02:00
parent 26bf6ea6aa
commit 48a12ca8c2
6 changed files with 150 additions and 1 deletions

View File

@ -1660,6 +1660,60 @@ Public Class ClassControlBuilder
control.MainView = gridview
Dim defaultSize = New Size(200, 150)
gridview.OptionsView.ShowGroupPanel = False
gridview.OptionsView.EnableAppearanceEvenRow = True
gridview.Appearance.EvenRow.BackColor = Color.Aqua
If _designMode Then
Dim CheckEdit As New DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit()
CheckEdit.ValueChecked = True
CheckEdit.ValueUnchecked = False
Dim CheckColumn = gridview.Columns.Add()
CheckColumn.Caption = " "
CheckColumn.FieldName = "CHECKED"
'CheckColumn.UnboundType = DevExpress.Data.UnboundColumnType.Boolean
CheckColumn.ColumnEdit = CheckEdit
CheckColumn.Visible = True
CheckColumn.Width = 30
Dim DataColumn = gridview.Columns.Add()
DataColumn.Caption = "Data"
DataColumn.FieldName = "DATA"
'DataColumn.UnboundType = DevExpress.Data.UnboundColumnType.Object
DataColumn.Visible = True
gridview.OptionsBehavior.ReadOnly = True
gridview.OptionsBehavior.Editable = False
' Beispieldaten hinzufügen
Dim dt As New DataTable
dt.Columns.Add(CheckColumn.FieldName)
dt.Columns.Add(DataColumn.FieldName)
' Diese Zeile sorgt dafür, dass die checkboxen richtig angezeigt werden.
' Wenn eine Datenquelle an das Control gebunden wird, muss diese in der Ersten
' Spalte den Typ Boolean haben bzw. das Ergebnis muss ein Boolean sein
dt.Columns(CheckColumn.FieldName).DataType = GetType(Boolean)
Dim row1 As DataRow = dt.NewRow()
row1.Item(CheckColumn.FieldName) = True
row1.Item(DataColumn.FieldName) = "Datensatz 1"
dt.Rows.Add(row1)
Dim row2 As DataRow = dt.NewRow()
row2.Item(CheckColumn.FieldName) = False
row2.Item(DataColumn.FieldName) = "Datensatz 2"
dt.Rows.Add(row2)
control.DataSource = dt
Else
' Filter funktioniert nicht mit den MouseEvents des LevelDesigners
gridview.OptionsView.ShowAutoFilterRow = True
End If
Dim metadata As New ClassControlMetadata()
metadata.Id = id
metadata.Name = name

View File

@ -268,6 +268,19 @@ Public Class ClassControlCommandsUI
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("CONTROL_READ_ONLY"),
dr.Item("CONTROL_REQUIRED"),
dr.Item("CONTROL_COL_NAME"),
parent)
control = "DataGridViewCheckable - " & dr.Item("CONTROL_ID")
End Select
_CtrlBuilder.MasterPanel.ResumeLayout()

View File

@ -108,6 +108,39 @@
End Try
End Function
Overloads Shared Sub SetDataSource(control As DevExpress.XtraGrid.GridControl, dt As DataTable)
Dim sw As Stopwatch = Stopwatch.StartNew()
Dim columnCount As Integer = dt.Columns.Count
control.BeginUpdate()
Dim DT_Check As New DataTable
Dim col_chk As New DataColumn(" ", GetType(Boolean))
Dim col_str As New DataColumn("String_Value", GetType(String))
col_str.Caption = dt.Columns(0).Caption
col_str.ReadOnly = True
DT_Check.Columns.Add(col_chk)
DT_Check.Columns.Add(col_str)
' Daten füllen
For Each row As DataRow In dt.Rows
DT_Check.Rows.Add(False, row.Item(0))
Next
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
' Als letztes setzen wir die DataSource
control.DataSource = DT_Check
DirectCast(control.MainView, DevExpress.XtraGrid.Views.Grid.GridView).Columns(0).Width = 10
control.EndUpdate()
sw.Stop()
' Console.WriteLine("SetDataSource for {0} took {1}ms", control.Name, sw.ElapsedMilliseconds)
End Sub
Overloads Shared Sub SetDataSource(control As CustomComboBox, dt As DataTable)
Dim sw As Stopwatch = Stopwatch.StartNew()
Dim columnCount As Integer = dt.Columns.Count
@ -483,4 +516,21 @@
End Class
Public Class DataGridViewCheckable : Inherits _ListControl
Public Shared Sub LoadList(control As DevExpress.XtraGrid.GridControl, formId As Integer, ConnId As Object, SQLCommand As String)
Dim dynamic As DynamicValue = GetDynamicValue(DirectCast(control.Tag, ClassControlMetadata).Id, formId, ConnId, SQLCommand)
If dynamic.StaticList IsNot Nothing Then
control.DataSource = dynamic.StaticList
End If
If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then
SetDataSource(control, dynamic.DataTable)
End If
End Sub
End Class
End Namespace

View File

@ -452,6 +452,7 @@ Module ClassControlProperties
End Set
End Property
End Class
Public Class PictureBoxProperties
Inherits CommonProperties
End Class

View File

@ -351,6 +351,10 @@ Public Class ClassControlValues
Dim chlistbox = DirectCast(Ctrl, DevExpress.XtraEditors.CheckedListBoxControl)
ControlLoader.CheckedListBox.LoadList(chlistbox, FormID, ConnID, sqlcommand)
Case GetType(DevExpress.XtraGrid.GridControl)
Dim grid = DirectCast(Ctrl, DevExpress.XtraGrid.GridControl)
ControlLoader.DataGridViewCheckable.LoadList(grid, FormID, ConnID, sqlcommand)
End Select
Next

View File

@ -460,6 +460,20 @@
dr.Item("CONTROL_SQLCOMMAND_1"),
parent,
True)
Case 14 'DataGridViewCheckable
DesignerCtrlBuilder.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("CONTROL_READ_ONLY"),
dr.Item("CONTROL_REQUIRED"),
dr.Item("CONTROL_COL_NAME"),
parent,
True)
End Select
Next
End Sub
@ -678,6 +692,7 @@
Case "Picturebox" : props = New PictureBoxProperties()
Case "ListBox" : props = New ComboBoxProperties()
Case "CheckedListBox" : props = New ComboBoxProperties()
Case "DatagridviewCheckable" : props = New ComboBoxProperties()
Case "F_AddAppointment" : props = New FunctionAddAppointment()
Case "F_AddFormData" : props = New FunctionAddFormData()
End Select
@ -835,7 +850,19 @@
props.ShowColumn = ClassConverter.ToBooleanOrDefault(r.Item("CONTROL_SHOW_COLUMN"), True)
props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), ""))
props.EnabledWhen = New SQLValue(r.Item("CONTROL_SQLCOMMAND_2").ToString())
Case "DatagridviewCheckable"
props.ControlType = "DataGridView/Table Checkable"
props.StaticList = New StaticListValue(r.Item("CONTROL_STATIC_LIST").ToString())
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.EnabledWhen = New SQLValue(r.Item("CONTROL_SQLCOMMAND_2").ToString())
props.IsRequired = r.Item("CONTROL_REQUIRED")
props.IsReadOnly = r.Item("CONTROL_READ_ONLY")
Case "F_AddAppointment"
props.ControlType = "Function.AddToCalendar"
props.Caption() = r.Item("CTRLSCR_CAPTION")