691 lines
26 KiB
VB.net
691 lines
26 KiB
VB.net
Imports System.ComponentModel
|
|
Imports DD_LIB_Standards
|
|
Imports DevExpress.Utils
|
|
Imports DevExpress.XtraEditors
|
|
Imports DevExpress.XtraEditors.Controls
|
|
Imports DevExpress.XtraEditors.NavigatorButtons
|
|
Imports DevExpress.XtraEditors.Repository
|
|
Imports DevExpress.XtraGrid
|
|
Imports DevExpress.XtraGrid.Views.Base
|
|
Imports DevExpress.XtraGrid.Views.Grid
|
|
Imports DigitalData.Controls.LookupGrid
|
|
|
|
Public Class ClassControlCreator
|
|
|
|
''' <summary>
|
|
''' Konstanten
|
|
''' </summary>
|
|
Private Const DEFAULT_TEXT = "Bezeichnung definieren"
|
|
|
|
Private Const DEFAULT_FONT_SIZE As Integer = 10
|
|
Private Const DEFAULT_FONT_FAMILY As String = "Arial"
|
|
Private Const DEFAULT_FONT_STYLE As FontStyle = FontStyle.Regular
|
|
Private Const DEFAULT_COLOR As Integer = 0
|
|
Private Const DEFAULT_WIDTH As Integer = 170
|
|
Private Const DEFAULT_HEIGHT As Integer = 20
|
|
Private Const DEFAULT_HEIGHT_TABLE As Integer = 150
|
|
|
|
Public Const PREFIX_TEXTBOX = "TXT"
|
|
Public Const PREFIX_LABEL = "LBL"
|
|
Public Const PREFIX_CHECKBOX = "CHK"
|
|
Public Const PREFIX_COMBOBOX = "CMB"
|
|
Public Const PREFIX_DATETIMEPICKER = "DTP"
|
|
Public Const PREFIX_DATAGRIDVIEW = "DGV"
|
|
Public Const PREFIX_TABLE = "TB"
|
|
Public Const PREFIX_LINE = "LINE"
|
|
Public Const PREFIX_BUTTON = "BTN"
|
|
|
|
Public Shared GridTables As New Dictionary(Of String, DataTable)
|
|
|
|
''' <summary>
|
|
''' Standard Eigenschaften für alle Controls
|
|
''' </summary>
|
|
Private Class ControlDBProps
|
|
Public Guid As Integer
|
|
Public Name As String
|
|
Public Location As Point
|
|
Public [Font] As Font
|
|
Public [Color] As Color
|
|
Public [ReadOnly] As Boolean
|
|
End Class
|
|
|
|
Public Class ControlMetadata
|
|
Public Guid As Integer
|
|
Public [ReadOnly] As Boolean = False
|
|
End Class
|
|
|
|
Private Shared Function TransformDataRow(row As DataRow) As ControlDBProps
|
|
Dim x As Integer = row.Item("X_LOC")
|
|
Dim y As Integer = row.Item("Y_LOC")
|
|
Dim style As FontStyle = NotNull(row.Item("FONT_STYLE"), DEFAULT_FONT_STYLE)
|
|
Dim size As Single = NotNull(row.Item("FONT_SIZE"), DEFAULT_FONT_SIZE)
|
|
Dim familyString As String = NotNull(row.Item("FONT_FAMILY"), DEFAULT_FONT_FAMILY)
|
|
Dim family As FontFamily = New FontFamily(familyString)
|
|
|
|
Dim oGuid As Integer = row.Item("GUID")
|
|
Dim oName As String = row.Item("NAME")
|
|
Dim oLocation As New Point(x, y)
|
|
Dim oFont As New Font(family, size, style, GraphicsUnit.Point)
|
|
Dim oColor As Color = IntToColor(NotNull(row.Item("FONT_COLOR"), DEFAULT_COLOR))
|
|
Dim oReadOnly As Boolean = row.Item("READ_ONLY")
|
|
|
|
Return New ControlDBProps() With {
|
|
.Guid = oGuid,
|
|
.Name = oName,
|
|
.Location = oLocation,
|
|
.Font = oFont,
|
|
.Color = oColor,
|
|
.ReadOnly = oReadOnly
|
|
}
|
|
End Function
|
|
|
|
Public Shared Function CreateBaseControl(ctrl As Control, OControlRow As DataRow, designMode As Boolean) As Control
|
|
Try
|
|
Dim props As ControlDBProps = TransformDataRow(OControlRow)
|
|
|
|
ctrl.Tag = New ControlMetadata() With {
|
|
.Guid = props.Guid,
|
|
.ReadOnly = props.ReadOnly
|
|
}
|
|
ctrl.Name = props.Name
|
|
ctrl.Location = props.Location
|
|
ctrl.Font = props.Font
|
|
ctrl.ForeColor = props.Color
|
|
|
|
|
|
If designMode Then
|
|
ctrl.Cursor = Cursors.Hand
|
|
End If
|
|
|
|
If props.ReadOnly Then
|
|
ctrl.BackColor = Color.LightGray
|
|
End If
|
|
|
|
Return ctrl
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
' ----------------------- NEW CONTROLS -----------------------
|
|
|
|
Public Shared Function CreateNewTextBox(location As Point) As TextBox
|
|
Dim control As New TextBox With {
|
|
.Name = $"{PREFIX_TEXTBOX}_{clsTools.ShortGuid()}",
|
|
.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT),
|
|
.Location = location,
|
|
.ReadOnly = True,
|
|
.BackColor = Color.White,
|
|
.Cursor = Cursors.Hand
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewLabel(location As Point) As Label
|
|
Dim control As New Label With {
|
|
.Name = $"{PREFIX_LABEL}_{clsTools.ShortGuid}",
|
|
.Text = DEFAULT_TEXT,
|
|
.AutoSize = True,
|
|
.Location = location,
|
|
.Cursor = Cursors.Hand
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewCheckbox(location As Point) As CheckBox
|
|
Dim control As New CheckBox With {
|
|
.Name = $"{PREFIX_CHECKBOX}_{clsTools.ShortGuid}",
|
|
.AutoSize = True,
|
|
.Text = DEFAULT_TEXT,
|
|
.Cursor = Cursors.Hand,
|
|
.Location = location,
|
|
.CheckState = CheckState.Indeterminate
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewCombobox(location As Point) As ComboBox
|
|
Dim control As New ComboBox With {
|
|
.Name = $"{PREFIX_COMBOBOX}_{clsTools.ShortGuid}",
|
|
.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT),
|
|
.Cursor = Cursors.Hand,
|
|
.Location = location
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewDatetimepicker(location As Point) As DateTimePicker
|
|
Dim control As New DateTimePicker With {
|
|
.Name = $"{PREFIX_DATETIMEPICKER}_{clsTools.ShortGuid}",
|
|
.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT),
|
|
.Cursor = Cursors.Hand,
|
|
.Location = location,
|
|
.Format = DateTimePickerFormat.Short
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewDatagridview(location As Point) As DataGridView
|
|
Dim control As New DataGridView With {
|
|
.Name = $"{PREFIX_DATAGRIDVIEW}_{clsTools.ShortGuid}",
|
|
.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT_TABLE),
|
|
.Cursor = Cursors.Hand,
|
|
.Location = location,
|
|
.AllowUserToAddRows = False,
|
|
.AllowUserToDeleteRows = False,
|
|
.AllowUserToResizeColumns = False,
|
|
.AllowUserToResizeRows = False
|
|
}
|
|
|
|
control.Columns.Add(New DataGridViewTextBoxColumn With {
|
|
.HeaderText = "",
|
|
.Name = "column1"
|
|
})
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Friend Shared Function CreateNewLookupControl(location As Point) As LookupControl2
|
|
Dim control As New LookupControl2 With {
|
|
.Name = $"{PREFIX_DATAGRIDVIEW}_{clsTools.ShortGuid}",
|
|
.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT),
|
|
.Cursor = Cursors.Hand,
|
|
.Location = location
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewTable(location As Point) As GridControl
|
|
Dim oControl As New GridControl With {
|
|
.Name = $"{PREFIX_TABLE}_{clsTools.ShortGuid}",
|
|
.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT_TABLE),
|
|
.Cursor = Cursors.Hand,
|
|
.Location = location
|
|
}
|
|
oControl.UseEmbeddedNavigator = True
|
|
oControl.ForceInitialize()
|
|
Dim oView As GridView = oControl.DefaultView
|
|
oView.OptionsView.ShowGroupPanel = False
|
|
|
|
Dim oDatatable As New DataTable()
|
|
oDatatable.Columns.Add("column1", GetType(String))
|
|
oDatatable.Columns.Add("column2", GetType(String))
|
|
oControl.DataSource = oDatatable
|
|
|
|
Return oControl
|
|
End Function
|
|
|
|
Public Shared Function CreateNewLine(location As Point) As LineLabel
|
|
Dim control As New LineLabel With {
|
|
.Name = $"{PREFIX_LINE}_{clsTools.ShortGuid}",
|
|
.Text = "---------------------------------",
|
|
.Size = New Size(100, 5),
|
|
.Location = location
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
Public Shared Function CreateNewButton(location As Point) As Button
|
|
Dim control As New Button With {
|
|
.Name = $"{PREFIX_BUTTON}_{clsTools.ShortGuid}",
|
|
.Size = New Size(108, 28),
|
|
.Cursor = Cursors.Hand,
|
|
.Location = location
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
' ----------------------- EXISITING CONTROLS -----------------------
|
|
|
|
Public Shared Function CreateExistingTextbox(oControlRow As DataRow, designMode As Boolean) As TextBox
|
|
Try
|
|
Dim control As TextBox = CreateBaseControl(New TextBox(), oControlRow, designMode)
|
|
|
|
control.BackColor = Color.White
|
|
|
|
If oControlRow.Item("HEIGHT") > 27 Then
|
|
control.Multiline = True
|
|
|
|
End If
|
|
|
|
control.Height = oControlRow.Item("HEIGHT")
|
|
control.Width = oControlRow.Item("WIDTH")
|
|
|
|
If Not designMode Then
|
|
control.AcceptsReturn = True
|
|
control.ReadOnly = oControlRow.Item("READ_ONLY")
|
|
control.TabStop = Not oControlRow.Item("READ_ONLY")
|
|
control.BackColor = IIf(oControlRow.Item("READ_ONLY"), Color.LightGray, Color.White)
|
|
Else
|
|
control.ReadOnly = True
|
|
End If
|
|
|
|
Return control
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Public Shared Function CreateExistingLabel(row As DataRow, designMode As Boolean) As Label
|
|
Dim control As Label = CreateBaseControl(New Label(), row, designMode)
|
|
Try
|
|
control.Text = row.Item("CTRL_CAPTION_LANG")
|
|
Catch ex As Exception
|
|
control.Text = row.Item("CTRL_TEXT")
|
|
End Try
|
|
|
|
control.AutoSize = True
|
|
|
|
Return control
|
|
End Function
|
|
Private Shared Function ByteArrayToBitmap(bytearray() As Byte) As Bitmap
|
|
Return New Bitmap(New System.IO.MemoryStream(bytearray))
|
|
End Function
|
|
Public Shared Function CreateExistingButton(row As DataRow, designMode As Boolean) As Button
|
|
Dim oControl As Button = CreateBaseControl(New Button(), row, designMode)
|
|
|
|
Dim ctrl_image As Bitmap = Nothing
|
|
Dim oBitmap As Bitmap
|
|
If Not IsDBNull(row.Item("IMAGE_CONTROL")) Then
|
|
Dim obimg() As Byte = row.Item("IMAGE_CONTROL")
|
|
oBitmap = ByteArrayToBitmap(obimg)
|
|
ctrl_image = oBitmap
|
|
End If
|
|
|
|
Try
|
|
oControl.Text = row.Item("CTRL_CAPTION_LANG")
|
|
Catch ex As Exception
|
|
oControl.Text = row.Item("CTRL_TEXT")
|
|
End Try
|
|
|
|
oControl.Height = row.Item("HEIGHT")
|
|
oControl.Width = row.Item("WIDTH")
|
|
|
|
If Not IsNothing(ctrl_image) And Not IsNothing(oBitmap) Then
|
|
oControl.Image = oBitmap
|
|
oControl.ImageAlign = ContentAlignment.MiddleLeft
|
|
oControl.TextAlign = ContentAlignment.MiddleRight
|
|
End If
|
|
oControl.AutoSize = True
|
|
|
|
Return oControl
|
|
End Function
|
|
Public Shared Function CreateExistingCombobox(row As DataRow, designMode As Boolean) As Windows.Forms.ComboBox
|
|
Dim control As Windows.Forms.ComboBox = CreateBaseControl(New Windows.Forms.ComboBox(), row, designMode)
|
|
|
|
control.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT"))
|
|
|
|
If Not designMode Then
|
|
control.Enabled = Not row.Item("READ_ONLY")
|
|
control.TabStop = Not row.Item("READ_ONLY")
|
|
control.BackColor = IIf(row.Item("READ_ONLY"), Color.LightGray, Color.White)
|
|
|
|
control.AutoCompleteMode = AutoCompleteMode.SuggestAppend
|
|
control.AutoCompleteSource = AutoCompleteSource.ListItems
|
|
End If
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateExistingDatepicker(row As DataRow, designMode As Boolean) As DateTimePicker
|
|
Dim control As DateTimePicker = CreateBaseControl(New DateTimePicker(), row, designMode)
|
|
|
|
control.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT"))
|
|
control.Format = DateTimePickerFormat.Short
|
|
|
|
If Not designMode Then
|
|
control.Enabled = Not row.Item("READ_ONLY")
|
|
control.TabStop = Not row.Item("READ_ONLY")
|
|
End If
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateExisingCheckbox(row As DataRow, designMode As Boolean) As CheckBox
|
|
Dim oCheckBox As CheckBox = CreateBaseControl(New CheckBox(), row, designMode)
|
|
|
|
oCheckBox.AutoSize = True
|
|
Try
|
|
oCheckBox.Text = row.Item("CTRL_CAPTION_LANG")
|
|
Catch ex As Exception
|
|
oCheckBox.Text = row.Item("CTRL_TEXT")
|
|
End Try
|
|
oCheckBox.CheckState = CheckState.Indeterminate
|
|
|
|
If Not designMode Then
|
|
oCheckBox.Enabled = Not row.Item("READ_ONLY")
|
|
oCheckBox.TabStop = Not row.Item("READ_ONLY")
|
|
End If
|
|
|
|
Return oCheckBox
|
|
End Function
|
|
|
|
Public Shared Function CreateExistingDataGridView(row As DataRow, designMode As Boolean) As DataGridView
|
|
Dim control As DataGridView = CreateBaseControl(New DataGridView(), row, designMode)
|
|
|
|
control.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT"))
|
|
control.AllowUserToAddRows = False
|
|
control.AllowUserToDeleteRows = False
|
|
control.AllowUserToResizeColumns = False
|
|
control.AllowUserToResizeRows = False
|
|
control.AlternatingRowsDefaultCellStyle.BackColor = Color.Aqua
|
|
|
|
Dim col As New DataGridViewTextBoxColumn
|
|
col.HeaderText = ""
|
|
col.Name = "column1"
|
|
col.Width = control.Width - 30
|
|
control.Columns.Add(col)
|
|
|
|
If Not designMode Then
|
|
control.Enabled = Not row.Item("READ_ONLY")
|
|
control.TabStop = Not row.Item("READ_ONLY")
|
|
End If
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateExistingLookupControl(row As DataRow, designMode As Boolean) As LookupControl2
|
|
Dim control As LookupControl2 = CreateBaseControl(New LookupControl2(), row, designMode)
|
|
control.Width = row.Item("WIDTH")
|
|
control.ReadOnly = row.Item("READ_ONLY")
|
|
|
|
If designMode Then
|
|
control.Cursor = Cursors.Hand
|
|
End If
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateExistingGridControl(row As DataRow, DT_MY_COLUMNS As DataTable, designMode As Boolean) As GridControl
|
|
Dim oControl As GridControl = CreateBaseControl(New GridControl(), row, designMode)
|
|
Dim oDatatable As New DataTable
|
|
Dim oView As GridView
|
|
|
|
oControl.ForceInitialize()
|
|
|
|
oView = oControl.MainView
|
|
oView.OptionsView.ShowGroupPanel = False
|
|
oControl.ContextMenu = Nothing
|
|
|
|
If Not designMode Then
|
|
oView.OptionsBehavior.Editable = Not row.Item("READ_ONLY")
|
|
oView.OptionsBehavior.ReadOnly = row.Item("READ_ONLY")
|
|
|
|
If row.Item("VKT_ADD_ITEM") = True Then
|
|
oView.OptionsBehavior.AllowAddRows = DefaultBoolean.True
|
|
oView.OptionsBehavior.AllowDeleteRows = DefaultBoolean.True
|
|
oView.OptionsView.NewItemRowPosition = NewItemRowPosition.Bottom
|
|
Else
|
|
oView.OptionsBehavior.AllowAddRows = DefaultBoolean.False
|
|
oView.OptionsBehavior.AllowDeleteRows = DefaultBoolean.False
|
|
oView.OptionsView.NewItemRowPosition = NewItemRowPosition.None
|
|
End If
|
|
End If
|
|
|
|
oControl.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT"))
|
|
|
|
' Add and configure navigator to delete rows
|
|
oControl.UseEmbeddedNavigator = True
|
|
With oControl.EmbeddedNavigator.Buttons
|
|
.CancelEdit.Visible = False
|
|
.Edit.Visible = False
|
|
.EndEdit.Visible = False
|
|
.First.Visible = False
|
|
.Last.Visible = False
|
|
.Next.Visible = False
|
|
.NextPage.Visible = False
|
|
.PrevPage.Visible = False
|
|
.Prev.Visible = False
|
|
|
|
End With
|
|
|
|
GridTables.Clear()
|
|
|
|
For Each oRow As DataRow In DT_MY_COLUMNS.Rows
|
|
' Create Columns in Datatable
|
|
|
|
Dim oColumn = New DataColumn() With {
|
|
.DataType = GetType(String),
|
|
.ColumnName = oRow.Item("SPALTENNAME"),
|
|
.Caption = oRow.Item("SPALTEN_HEADER"),
|
|
.ReadOnly = False
|
|
}
|
|
|
|
oDatatable.Columns.Add(oColumn)
|
|
|
|
' Fetch and cache Combobox results
|
|
Dim oConnectionId As Integer = NotNull(oRow.Item("CONNECTION_ID"), 0)
|
|
Dim oSqlCommand As String = NotNull(oRow.Item("SQL_COMMAND"), "")
|
|
|
|
If Not clsPatterns.HasComplexPatterns(oSqlCommand) Then
|
|
If oConnectionId > 0 And oSqlCommand <> "" Then
|
|
Try
|
|
Dim oComboboxDataTable As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oConnectionId)
|
|
GridTables.Add(oRow.Item("SPALTENNAME"), oComboboxDataTable)
|
|
Catch ex As Exception
|
|
LOGGER.Warn("Could not load data for column {0} in control {1}", oRow.Item("SPALTENNAME"), oControl.Name)
|
|
LOGGER.Error(ex)
|
|
End Try
|
|
End If
|
|
End If
|
|
|
|
|
|
Next
|
|
|
|
oControl.DataSource = oDatatable
|
|
oControl.RefreshDataSource()
|
|
oControl.ForceInitialize()
|
|
oView.PopulateColumns()
|
|
|
|
For Each oRow As DataRow In DT_MY_COLUMNS.Rows
|
|
Dim o = oRow.Item("SPALTENNAME")
|
|
Dim p = oRow.Item("SPALTENBREITE")
|
|
Dim ocount = oView.Columns.Count
|
|
|
|
' oGridView.Columns(oRow.Item("SPALTENNAME")).Width = oRow.Item("SPALTENBREITE")
|
|
Next
|
|
|
|
|
|
AddHandler oView.CellValueChanged, AddressOf HandleCellValueChanged
|
|
AddHandler oView.CustomRowCellEdit, Sub(sender As Object, e As CustomRowCellEditEventArgs)
|
|
For Each oRow As DataRow In DT_MY_COLUMNS.Rows
|
|
If oRow.Item("SPALTENNAME") = e.Column.FieldName Then
|
|
|
|
If GridTables.ContainsKey(e.Column.FieldName) Then
|
|
Dim oComboboxDataTable As DataTable = GridTables.Item(e.Column.FieldName)
|
|
Dim oEditor As New RepositoryItemComboBox()
|
|
Dim oItems As New List(Of String)
|
|
|
|
AddHandler oEditor.Validating, Sub(_sender As ComboBoxEdit, _e As CancelEventArgs)
|
|
If oItems.Contains(_sender.EditValue) Then
|
|
_e.Cancel = False
|
|
Else
|
|
_e.Cancel = True
|
|
End If
|
|
|
|
End Sub
|
|
For Each oRow2 As DataRow In oComboboxDataTable.Rows
|
|
Dim oValue = oRow2.Item(0)
|
|
|
|
Try
|
|
oValue &= $" | {oRow2.Item(1)}"
|
|
Catch ex As Exception
|
|
End Try
|
|
|
|
oEditor.Items.Add(oValue)
|
|
oItems.Add(oValue)
|
|
Next
|
|
|
|
e.RepositoryItem = oEditor
|
|
End If
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
AddHandler oView.CellValueChanged, Sub(sender As Object, e As CellValueChangedEventArgs)
|
|
Dim oValue = e.Value.ToString()
|
|
Dim oView2 As GridView = TryCast(sender, GridView)
|
|
|
|
|
|
If oValue.Contains(" | ") Then
|
|
oValue = oValue.Split(" | ").ToList().Item(0)
|
|
oView2.SetRowCellValue(e.RowHandle, e.Column, oValue)
|
|
End If
|
|
End Sub
|
|
|
|
Return oControl
|
|
End Function
|
|
|
|
Public Shared Function HandleCellValueChanged(sender As Object, e As CellValueChangedEventArgs)
|
|
' TODO: Do the validation
|
|
Dim oCurrentView As GridView = DirectCast(sender, GridView)
|
|
Dim oCurrentControl As GridControl = oCurrentView.GridControl
|
|
Dim oCurrentDatasource As DataTable = oCurrentControl.DataSource
|
|
Dim oColumn = oCurrentDatasource.Columns.Item(e.Column.FieldName)
|
|
|
|
Dim foo = 1
|
|
End Function
|
|
|
|
|
|
|
|
Public Shared Function CreateExistingLine(row As DataRow, designMode As Boolean) As LineLabel
|
|
Dim control As LineLabel = CreateBaseControl(New LineLabel(), row, designMode)
|
|
control.Text = "------------------------------"
|
|
control.BorderStyle = BorderStyle.None
|
|
control.AutoSize = False
|
|
control.BackColor = IntToColor(NotNull(row.Item("FONT_COLOR"), DEFAULT_COLOR))
|
|
control.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT"))
|
|
|
|
Return control
|
|
End Function
|
|
|
|
|
|
' ----------------------- CUSTOM LABEL/LINE CLASS -----------------------
|
|
|
|
Public Class LineLabel
|
|
Inherits Label
|
|
|
|
Protected Overrides Sub OnPaint(e As PaintEventArgs)
|
|
'MyBase.OnPaint(e)
|
|
|
|
Dim size As New Size(e.ClipRectangle.Width, 2)
|
|
Dim rect As New Rectangle(New Point(0, 0), size)
|
|
|
|
'ControlPaint.DrawBorder(e.Graphics, rect, Me.ForeColor, ButtonBorderStyle.Solid)
|
|
e.Graphics.DrawLine(New Pen(ForeColor, 100), New Point(0, 0), New Point(e.ClipRectangle.Width, 2))
|
|
End Sub
|
|
End Class
|
|
|
|
Public Shared Function GET_CONTROL_PROPERTIES(DT_CONTROL As DataTable, ControlName As String)
|
|
Try
|
|
CURRENT_CONTROL_ID = 0
|
|
CURR_CON_ID = 0
|
|
CURR_SELECT_CONTROL = ""
|
|
CURR_CHOICE_LIST = ""
|
|
Dim dt As New DataTable
|
|
dt = DT_CONTROL
|
|
' Define the filter
|
|
Dim filter As String = "NAME = '" & ControlName & "'"
|
|
' Filter the rows using Select() method of DataTable
|
|
Dim FilteredRows As DataRow() = dt.Select(filter)
|
|
If FilteredRows.Count = 1 Then
|
|
For Each row As DataRow In FilteredRows
|
|
CURRENT_CONTROL_ID = row("GUID")
|
|
CURR_CON_ID = IIf(IsDBNull(row("CONNECTION_ID")), 0, row("CONNECTION_ID"))
|
|
If CURR_CON_ID = 0 Then
|
|
LOGGER.Info("CONNECTION NOT DEFINED - CTRL_GUID:" & CURRENT_CONTROL_ID)
|
|
End If
|
|
|
|
CURR_SELECT_CONTROL = IIf(IsDBNull(row("SQL_UEBERPRUEFUNG")), "", row("SQL_UEBERPRUEFUNG"))
|
|
CURR_CHOICE_LIST = IIf(IsDBNull(row("CHOICE_LIST")), "", row("CHOICE_LIST"))
|
|
Next
|
|
Return 1
|
|
Else
|
|
Return 0
|
|
End If
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
LOGGER.Info("Unexpected Error in GET_CONTROL_PROPERTIES (" & ControlName & "):" & ex.Message)
|
|
Return 0
|
|
End Try
|
|
|
|
End Function
|
|
Public Shared Function GET_CONTROL_PROPERTY(DT_CONTROL As DataTable, ControlGUID As Integer, ColNAME As String)
|
|
Try
|
|
CURRENT_CONTROL_ID = 0
|
|
CURR_CON_ID = 0
|
|
CURR_SELECT_CONTROL = ""
|
|
CURR_CHOICE_LIST = ""
|
|
Dim dt As New DataTable
|
|
dt = DT_CONTROL
|
|
' Define the filter
|
|
Dim filter As String = "GUID = " & ControlGUID
|
|
' Filter the rows using Select() method of DataTable
|
|
Dim FilteredRows As DataRow() = dt.Select(filter)
|
|
If FilteredRows.Count = 1 Then
|
|
Dim oRESULT = FilteredRows(0).Item(ColNAME)
|
|
If IsDBNull(oRESULT) Then Return Nothing
|
|
|
|
Return oRESULT
|
|
Else
|
|
Return Nothing
|
|
End If
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
LOGGER.Info("Unexpected Error in GET_CONTROL_PROPERTY (" & ControlGUID & "#" & ColNAME & "):" & ex.Message)
|
|
Return Nothing
|
|
End Try
|
|
|
|
End Function
|
|
Public Shared Function GET_DEPENDING_CONTROLS(DT_CONTROLS As DataTable, ControlName As String)
|
|
Try
|
|
Dim dt As New DataTable
|
|
dt = DT_CONTROLS
|
|
' Define the filter
|
|
Dim filter As String = String.Format("SQL_UEBERPRUEFUNG LIKE '%{0}%'", ControlName)
|
|
Dim FilteredRows As DataRow() = dt.Select(filter)
|
|
CURR_DT_DEPENDING_CONTROLS = Nothing
|
|
If FilteredRows.Length > 0 Then
|
|
CURR_DT_DEPENDING_CONTROLS = FilteredRows.CopyToDataTable
|
|
End If
|
|
|
|
Return True
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
LOGGER.Info("Unexpected Error in GET_DEPENDING_CONTROLS (" & ControlName & "):" & ex.Message)
|
|
Return 0
|
|
End Try
|
|
End Function
|
|
|
|
Public Shared Function GET_CONNECTION_INFO(CON_ID As Integer)
|
|
Try
|
|
|
|
Dim dt As New DataTable
|
|
dt = CURRENT_DT_TBDD_CONNECTION
|
|
' Define the filter
|
|
Dim filter As String = "GUID = " & CON_ID
|
|
' Filter the rows using Select() method of DataTable
|
|
Dim FilteredRows As DataRow() = dt.Select(filter)
|
|
If FilteredRows.Count = 1 Then
|
|
Return FilteredRows
|
|
Else
|
|
Return Nothing
|
|
End If
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
LOGGER.Info("Unexpected Error in GET_CONNECTION_INFO (" & CON_ID.ToString & "):" & ex.Message)
|
|
Return Nothing
|
|
End Try
|
|
|
|
End Function
|
|
End Class
|