jj 25.05.16
This commit is contained in:
parent
26bf6ea6aa
commit
48a12ca8c2
@ -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
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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
|
||||
|
||||
@ -452,6 +452,7 @@ Module ClassControlProperties
|
||||
End Set
|
||||
End Property
|
||||
End Class
|
||||
|
||||
Public Class PictureBoxProperties
|
||||
Inherits CommonProperties
|
||||
End Class
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user