This commit is contained in:
SchreiberM
2016-02-02 10:55:22 +01:00
12 changed files with 3089 additions and 2231 deletions

View File

@@ -487,6 +487,7 @@ Public Class ClassControlBuilder
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
control.Tag = metadata control.Tag = metadata
control.Name = name control.Name = name
@@ -567,6 +568,7 @@ Public Class ClassControlBuilder
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
metadata.Required = required metadata.Required = required
control.Tag = metadata control.Tag = metadata
@@ -651,6 +653,7 @@ Public Class ClassControlBuilder
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
metadata.Required = required metadata.Required = required
control.Tag = metadata control.Tag = metadata
@@ -725,6 +728,7 @@ Public Class ClassControlBuilder
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
metadata.Required = required metadata.Required = required
control.Tag = metadata control.Tag = metadata
@@ -798,6 +802,7 @@ Public Class ClassControlBuilder
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
metadata.Required = required metadata.Required = required
control.Tag = metadata control.Tag = metadata
@@ -925,6 +930,7 @@ Public Class ClassControlBuilder
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
metadata.Required = required metadata.Required = required
control.Tag = metadata control.Tag = metadata
@@ -989,6 +995,7 @@ Public Class ClassControlBuilder
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
metadata.Required = required metadata.Required = required
control.Tag = metadata control.Tag = metadata
@@ -1070,6 +1077,7 @@ Public Class ClassControlBuilder
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
metadata.Required = required metadata.Required = required
control.Tag = metadata control.Tag = metadata
@@ -1128,6 +1136,7 @@ Public Class ClassControlBuilder
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
control.Tag = metadata control.Tag = metadata
control.Name = name control.Name = name
@@ -1183,6 +1192,7 @@ Public Class ClassControlBuilder
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
control.Tag = metadata control.Tag = metadata
control.Name = name control.Name = name
@@ -1241,6 +1251,7 @@ Public Class ClassControlBuilder
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
control.Tag = metadata control.Tag = metadata
control.Name = name control.Name = name
@@ -1308,6 +1319,7 @@ Public Class ClassControlBuilder
' control.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Style3 ' control.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Style3
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
metadata.Required = required metadata.Required = required
control.Tag = metadata control.Tag = metadata
@@ -1416,6 +1428,7 @@ Public Class ClassControlBuilder
Dim metadata As New ClassControlMetadata() Dim metadata As New ClassControlMetadata()
metadata.Id = id metadata.Id = id
metadata.Name = name
metadata.Required = required metadata.Required = required
control.Tag = metadata control.Tag = metadata

View File

@@ -39,7 +39,7 @@ Public Class ClassControlCommandsUI
Dim parent As GroupBox = Nothing Dim parent As GroupBox = Nothing
If (dr.Item("CONTROL_PARENT_ID") <> 0) Then If (dr.Item("CONTROL_PARENT_ID") <> 0) Then
Dim parentname As String = GetName_for_ControlID(dr.Item("CONTROL_PARENT_ID"), FormId) Dim parentname As String = Get_Name_for_ControlID(dr.Item("CONTROL_PARENT_ID"), FormId)
parent = _CtrlBuilder.GetControlByName(parentname) parent = _CtrlBuilder.GetControlByName(parentname)
End If End If

View File

@@ -1,4 +1,5 @@
Public Structure ClassControlMetadata Public Structure ClassControlMetadata
Public Property Id As Integer Public Property Id As Integer
Public Property Name As String
Public Property Required As Boolean Public Property Required As Boolean
End Structure End Structure

View File

@@ -114,6 +114,40 @@ Public Class ClassDatabase
Return False Return False
End Try End Try
End Function End Function
'TODO: Asynchrone Abfrage möglich machen
Public Shared Sub Execute_non_Query_Async(ExecuteCMD As String, Optional Userinput As Boolean = False)
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
Dim callback As New AsyncCallback(AddressOf Execute_non_Query_Async_Callback)
Try
SQLconnect.ConnectionString = connectionString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand()
'Update Last Created Record in Foo
SQLcommand.CommandText = ExecuteCMD
SQLcommand.BeginExecuteNonQuery(callback, SQLcommand)
Catch ex As Exception
If Userinput = True Then
MsgBox("Fehler bei Execute_non_Query_Async: " & ex.Message & vbNewLine & vbNewLine & ExecuteCMD, MsgBoxStyle.Critical)
End If
ClassLogger.Add("Fehler bei Execute_non_Query_Async: " & ex.Message, True)
ClassLogger.Add("SQL: " & ExecuteCMD, False)
Finally
SQLcommand.Dispose()
SQLconnect.Close()
End Try
End Sub
Private Shared Sub Execute_non_Query_Async_Callback(ByVal result As IAsyncResult)
Dim command As SqlClient.SqlCommand = CType(result.AsyncState, SqlClient.SqlCommand)
Dim res = command.EndExecuteNonQuery(result)
ClassLogger.Add(String.Format("Finished executing Async database operation: {0}", command.CommandText), False)
End Sub
Public Shared Function Execute_Scalar(cmdscalar As String, Optional Userinput As Boolean = False) Public Shared Function Execute_Scalar(cmdscalar As String, Optional Userinput As Boolean = False)
Dim result Dim result
Try Try

View File

@@ -128,7 +128,7 @@ Public Class ClassFunctionCommandsUI
If Not IsDBNull(FromDateID) Then If Not IsDBNull(FromDateID) Then
If FromDateID <> 0 Then If FromDateID <> 0 Then
FromDateName = GetName_for_ControlID(FromDateID, FormID) FromDateName = Get_Name_for_ControlID(FromDateID, FormID)
FromDateValue = Date.Parse(FindControlValue(FromDateName, PanelControls)) FromDateValue = Date.Parse(FindControlValue(FromDateName, PanelControls))
apt.Start = FromDateValue apt.Start = FromDateValue
Else Else
@@ -140,7 +140,7 @@ Public Class ClassFunctionCommandsUI
If Not IsDBNull(ToDateID) Then If Not IsDBNull(ToDateID) Then
If ToDateID <> 0 Then If ToDateID <> 0 Then
ToDateName = GetName_for_ControlID(ToDateID, FormID) ToDateName = Get_Name_for_ControlID(ToDateID, FormID)
ToDateValue = Date.Parse(FindControlValue(ToDateName, PanelControls)) ToDateValue = Date.Parse(FindControlValue(ToDateName, PanelControls))
apt.End = ToDateValue apt.End = ToDateValue
Else Else

View File

@@ -12,13 +12,30 @@
End Enum End Enum
Public Function NotNull(Of T)(ByVal value As T, ByVal defaultValue As T) As T Public Function NotNull(Of T)(ByVal value As T, ByVal defaultValue As T) As T
If value Is Nothing OrElse String.IsNullOrEmpty(value.ToString) OrElse IsDBNull(value) Then If IsNothing(value) OrElse String.IsNullOrEmpty(value.ToString) OrElse IsDBNull(value) Then
Return defaultValue Return defaultValue
Else Else
Return value Return value
End If End If
End Function End Function
Public Function NotNull(ByVal value As Integer, ByVal defaultValue As Integer) As Integer
If IsNothing(value) OrElse IsDBNull(value) OrElse value = 0 Then
Return defaultValue
Else
Return value
End If
End Function
Public Function NotNull(ByVal value As String, ByVal defaultValue As String) As String
If IsNothing(value) OrElse IsDBNull(value) OrElse String.IsNullOrEmpty(value) Then
Return defaultValue
Else
Return value
End If
End Function
Public Function BoolToInt(bool As Boolean) As Integer Public Function BoolToInt(bool As Boolean) As Integer
' Wandelt einen Boolean Wert in einen Int um ' Wandelt einen Boolean Wert in einen Int um
Return IIf(bool, 1, 0) Return IIf(bool, 1, 0)
@@ -148,7 +165,7 @@
''' <param name="Id">ControlID</param> ''' <param name="Id">ControlID</param>
''' <param name="formid">Current Form ID</param> ''' <param name="formid">Current Form ID</param>
''' <returns>Control Name</returns> ''' <returns>Control Name</returns>
Public Function GetName_for_ControlID(Id As Integer, formid As Integer) As String Public Function Get_Name_for_ControlID(Id As Integer, formid As Integer) As String
Try Try
Dim SQL = "SELECT NAME FROM TBPMO_CONTROL WHERE FORM_ID = " & formid & " AND GUID = " & Id Dim SQL = "SELECT NAME FROM TBPMO_CONTROL WHERE FORM_ID = " & formid & " AND GUID = " & Id
Dim Name = ClassDatabase.Execute_Scalar(SQL) Dim Name = ClassDatabase.Execute_Scalar(SQL)

View File

@@ -0,0 +1,648 @@
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

View File

@@ -208,14 +208,30 @@
#Region "+++++ Form Events +++++" #Region "+++++ Form Events +++++"
Private Sub frmLevel_Designer_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing Private Sub frmLevel_Designer_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
Try Try
Dim sw
sw = Stopwatch.StartNew()
ClassWindowLocation.SaveFormLocationSize(Me, 1, CURRENT_SCREEN_ID, "frmLevel_Designer") 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() My.Settings.Save()
sw.Stop()
Console.WriteLine(String.Format("My.Settings.Save took {0}ms", sw.ElapsedMilliseconds))
sw = Stopwatch.StartNew()
RebuildView() RebuildView()
sw.Stop()
Console.WriteLine(String.Format("RebuildView took {0}ms", sw.ElapsedMilliseconds))
Dim wid As Integer = Me.Width 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 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) ClassDatabase.Execute_non_Query(update_sizepnl)
frmTool_ControlProperties.Instance.Close() frmTool_ControlProperties.Instance.Close()
frmTool_ControlDesigner.Instance.Close() frmTool_ControlDesigner.Instance.Close()
Catch ex As Exception Catch ex As Exception
End Try End Try
@@ -274,7 +290,7 @@
Dim parent As GroupBox = Nothing Dim parent As GroupBox = Nothing
If (dr.Item("CONTROL_PARENT_ID") <> 0) Then If (dr.Item("CONTROL_PARENT_ID") <> 0) Then
Dim parentname As String = GetName_for_ControlID(dr.Item("CONTROL_PARENT_ID"), CURRENT_FORM_ID) Dim parentname As String = Get_Name_for_ControlID(dr.Item("CONTROL_PARENT_ID"), CURRENT_FORM_ID)
parent = CtrlBuilder.GetControlByName(parentname) parent = CtrlBuilder.GetControlByName(parentname)
End If End If
@@ -526,7 +542,8 @@
' Control Eigenschaften laden ' Control Eigenschaften laden
frmTool_ControlProperties.Instance.pgControlProperties.Enabled = True frmTool_ControlProperties.Instance.pgControlProperties.Enabled = True
frmTool_ControlProperties.Instance.LoadControlProperties(CtrlBuilder.CurrentControl) 'frmTool_ControlProperties.Instance.LoadControlProperties(CtrlBuilder.CurrentControl)
frmTool_ControlProperties.Instance.LoadControlPropertiesNeu(CtrlBuilder.CurrentControl)
End Sub End Sub
@@ -604,44 +621,6 @@
m_Moving = False m_Moving = False
End Try End Try
'Try
' 'If akt_ctrl Is Nothing Then
' If CtrlBuilder.CurrentControl Is Nothing Then
' Exit Sub
' End If
' 'Check which mode we're in. If we're supposed to be moving
' 'our control
' If m_Moving = True Then
' Me.Cursor = Cursors.Hand
' Me.Refresh()
' Dim LastCursor As Point
' ' ADDED 18.11
' Dim control As Control = DirectCast(sender, Control)
' ' get the screen position of the mouse pointer and map it
' ' to the position relative to the top-left corner of our
' ' parent container
' Dim NowCursor As Point = New Point(Cursor.Position.X,
' Cursor.Position.Y)
' Dim clientPosition As Point = CtrlBuilder.GetCursorPosition()
' If Point.op_Inequality(NowCursor, LastCursor) Then
' Console.WriteLine("MOUSE: " & clientPosition.X & " " & clientPosition.Y)
' Console.WriteLine("CNTRL: " & clientPosition.X - CtrlBuilder.BeginLocation.X & " " & clientPosition.Y - CtrlBuilder.BeginLocation.Y)
' control.Location = New Point(clientPosition.X - CtrlBuilder.BeginLocation.X,
' clientPosition.Y - CtrlBuilder.BeginLocation.Y)
' End If
' End If
'Catch ex As Exception
' MsgBox(ex.Message, MsgBoxStyle.Exclamation, "MovableLabel_MouseMove")
' m_Moving = False
'End Try
End Sub End Sub
#End Region #End Region
@@ -651,6 +630,12 @@
Private Function RebuildView() Private Function RebuildView()
Try 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 noerror As Boolean = False
Dim sql = "EXECUTE PRPMO_CREATE_SQL " & CURRENT_FORM_ID Dim sql = "EXECUTE PRPMO_CREATE_SQL " & CURRENT_FORM_ID
noerror = ClassDatabase.Execute_non_Query(sql) noerror = ClassDatabase.Execute_non_Query(sql)

View File

@@ -135,11 +135,11 @@ Partial Class frmMain
' '
'ribbonMain 'ribbonMain
' '
resources.ApplyResources(Me.ribbonMain, "ribbonMain")
Me.ribbonMain.ApplicationButtonDropDownControl = Me.MainMenu Me.ribbonMain.ApplicationButtonDropDownControl = Me.MainMenu
Me.ribbonMain.BackColor = System.Drawing.Color.DarkGray Me.ribbonMain.BackColor = System.Drawing.Color.DarkGray
Me.ribbonMain.ExpandCollapseItem.Id = 0 Me.ribbonMain.ExpandCollapseItem.Id = 0
Me.ribbonMain.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.ribbonMain.ExpandCollapseItem, Me.LabelMachine, Me.LabelUser, Me.LabelLoggedIn, Me.LabelVersion, Me.itemInfo, Me.itemExit, Me.BarButtonItem1, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarButtonItem5, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItem8, Me.BarButtonItem9, Me.itemSettings, Me.BarButtonItem2, Me.BarButtonItem10, Me.BarButtonItem12, Me.BarButtonItem13, Me.BarButtonItem14, Me.BarButtonItem15, Me.BarButtonItem16, Me.BarButtonItem17, Me.BarButtonItem18}) Me.ribbonMain.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.ribbonMain.ExpandCollapseItem, Me.LabelMachine, Me.LabelUser, Me.LabelLoggedIn, Me.LabelVersion, Me.itemInfo, Me.itemExit, Me.BarButtonItem1, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarButtonItem5, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItem8, Me.BarButtonItem9, Me.itemSettings, Me.BarButtonItem2, Me.BarButtonItem10, Me.BarButtonItem12, Me.BarButtonItem13, Me.BarButtonItem14, Me.BarButtonItem15, Me.BarButtonItem16, Me.BarButtonItem17, Me.BarButtonItem18})
resources.ApplyResources(Me.ribbonMain, "ribbonMain")
Me.ribbonMain.MaxItemId = 32 Me.ribbonMain.MaxItemId = 32
Me.ribbonMain.Name = "ribbonMain" Me.ribbonMain.Name = "ribbonMain"
Me.ribbonMain.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.pageHome, Me.pageForms, Me.pageAdmin}) Me.ribbonMain.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.pageHome, Me.pageForms, Me.pageAdmin})
@@ -152,10 +152,6 @@ Partial Class frmMain
Me.MainMenu.ItemLinks.Add(Me.itemInfo) Me.MainMenu.ItemLinks.Add(Me.itemInfo)
Me.MainMenu.ItemLinks.Add(Me.itemSettings) Me.MainMenu.ItemLinks.Add(Me.itemSettings)
Me.MainMenu.ItemLinks.Add(Me.itemExit) Me.MainMenu.ItemLinks.Add(Me.itemExit)
Me.MainMenu.MenuAppearance.HeaderItemAppearance.FontSizeDelta = CType(resources.GetObject("MainMenu.MenuAppearance.HeaderItemAppearance.FontSizeDelta"), Integer)
Me.MainMenu.MenuAppearance.HeaderItemAppearance.FontStyleDelta = CType(resources.GetObject("MainMenu.MenuAppearance.HeaderItemAppearance.FontStyleDelta"), System.Drawing.FontStyle)
Me.MainMenu.MenuAppearance.HeaderItemAppearance.GradientMode = CType(resources.GetObject("MainMenu.MenuAppearance.HeaderItemAppearance.GradientMode"), System.Drawing.Drawing2D.LinearGradientMode)
Me.MainMenu.MenuAppearance.HeaderItemAppearance.Image = CType(resources.GetObject("MainMenu.MenuAppearance.HeaderItemAppearance.Image"), System.Drawing.Image)
Me.MainMenu.Name = "MainMenu" Me.MainMenu.Name = "MainMenu"
Me.MainMenu.Ribbon = Me.ribbonMain Me.MainMenu.Ribbon = Me.ribbonMain
' '
@@ -369,10 +365,6 @@ Partial Class frmMain
'pageForms 'pageForms
' '
Me.pageForms.Appearance.BackColor = CType(resources.GetObject("pageForms.Appearance.BackColor"), System.Drawing.Color) Me.pageForms.Appearance.BackColor = CType(resources.GetObject("pageForms.Appearance.BackColor"), System.Drawing.Color)
Me.pageForms.Appearance.FontSizeDelta = CType(resources.GetObject("pageForms.Appearance.FontSizeDelta"), Integer)
Me.pageForms.Appearance.FontStyleDelta = CType(resources.GetObject("pageForms.Appearance.FontStyleDelta"), System.Drawing.FontStyle)
Me.pageForms.Appearance.GradientMode = CType(resources.GetObject("pageForms.Appearance.GradientMode"), System.Drawing.Drawing2D.LinearGradientMode)
Me.pageForms.Appearance.Image = CType(resources.GetObject("pageForms.Appearance.Image"), System.Drawing.Image)
Me.pageForms.Appearance.Options.UseBackColor = True Me.pageForms.Appearance.Options.UseBackColor = True
Me.pageForms.Image = Global.DD_Record_Organiser.My.Resources.Resources.application_form Me.pageForms.Image = Global.DD_Record_Organiser.My.Resources.Resources.application_form
Me.pageForms.Name = "pageForms" Me.pageForms.Name = "pageForms"
@@ -431,11 +423,11 @@ Partial Class frmMain
' '
'RibbonStatusBar1 'RibbonStatusBar1
' '
resources.ApplyResources(Me.RibbonStatusBar1, "RibbonStatusBar1")
Me.RibbonStatusBar1.ItemLinks.Add(Me.LabelMachine) Me.RibbonStatusBar1.ItemLinks.Add(Me.LabelMachine)
Me.RibbonStatusBar1.ItemLinks.Add(Me.LabelUser) Me.RibbonStatusBar1.ItemLinks.Add(Me.LabelUser)
Me.RibbonStatusBar1.ItemLinks.Add(Me.LabelLoggedIn) Me.RibbonStatusBar1.ItemLinks.Add(Me.LabelLoggedIn)
Me.RibbonStatusBar1.ItemLinks.Add(Me.LabelVersion) Me.RibbonStatusBar1.ItemLinks.Add(Me.LabelVersion)
resources.ApplyResources(Me.RibbonStatusBar1, "RibbonStatusBar1")
Me.RibbonStatusBar1.Name = "RibbonStatusBar1" Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
Me.RibbonStatusBar1.Ribbon = Me.ribbonMain Me.RibbonStatusBar1.Ribbon = Me.ribbonMain
' '
@@ -457,14 +449,10 @@ Partial Class frmMain
' '
'frmMain 'frmMain
' '
resources.ApplyResources(Me, "$this")
Me.Appearance.BackColor = CType(resources.GetObject("frmMain.Appearance.BackColor"), System.Drawing.Color) Me.Appearance.BackColor = CType(resources.GetObject("frmMain.Appearance.BackColor"), System.Drawing.Color)
Me.Appearance.FontSizeDelta = CType(resources.GetObject("frmMain.Appearance.FontSizeDelta"), Integer)
Me.Appearance.FontStyleDelta = CType(resources.GetObject("frmMain.Appearance.FontStyleDelta"), System.Drawing.FontStyle)
Me.Appearance.GradientMode = CType(resources.GetObject("frmMain.Appearance.GradientMode"), System.Drawing.Drawing2D.LinearGradientMode)
Me.Appearance.Image = CType(resources.GetObject("frmMain.Appearance.Image"), System.Drawing.Image)
Me.Appearance.Options.UseBackColor = True Me.Appearance.Options.UseBackColor = True
Me.Appearance.Options.UseFont = True Me.Appearance.Options.UseFont = True
resources.ApplyResources(Me, "$this")
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.Controls.Add(Me.RibbonStatusBar1) Me.Controls.Add(Me.RibbonStatusBar1)
Me.Controls.Add(Me.ribbonMain) Me.Controls.Add(Me.ribbonMain)

View File

@@ -1765,6 +1765,18 @@
</data> </data>
<data name="RibbonPageGroup1.Text" xml:space="preserve"> <data name="RibbonPageGroup1.Text" xml:space="preserve">
<value>SQL Configuration</value> <value>SQL Configuration</value>
</data>
<data name="ribbonMain.Size" type="System.Drawing.Size, System.Drawing">
<value>1522, 150</value>
</data>
<data name="RibbonStatusBar1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 667</value>
</data>
<data name="RibbonStatusBar1.Size" type="System.Drawing.Size, System.Drawing">
<value>1522, 23</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>1522, 690</value>
</data> </data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>

File diff suppressed because it is too large Load Diff

View File

@@ -25,275 +25,475 @@
Public Sub LoadControlPropertiesNeu(ctrl As Control) Public Sub LoadControlPropertiesNeu(ctrl As Control)
Try 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 sql As String = String.Format("SELECT * FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0}", DirectCast(ctrl.Tag, ClassControlMetadata).Id)
Dim dt As DataTable = ClassDatabase.Execute_Scalar(sql) Dim dt As DataTable = ClassDatabase.Return_Datatable(sql)
Dim props As Object = Nothing Dim props As Object = Nothing
Dim row As DataRow = Nothing Dim r As DataRow = Nothing
Dim type As String = Nothing
If dt.Rows.Count <> 1 Then If dt.Rows.Count <> 1 Then
Exit Sub Exit Sub
End If End If
row = dt.Rows(0) r = dt.Rows(0)
type = r.Item("CTRLTYPE_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
'Props Object initialisieren
Select Case type Select Case type
Case "Label" Case "Label" : props = New LabelProperties()
props = New LabelProperties() Case "Textbox" : props = New TextBoxProperties()
props.Caption = row.Item("CTRLSCR_CAPTION") Case "Combobox" : props = New ComboBoxProperties()
Case "Textbox" Case "Checkbox" : props = New CheckBoxProperties()
props = New TextBoxProperties() Case "RadioButton" : props = New RadioButtonProperties()
props.DefaultValue = ClassConverter.ToStringOrDefault(row.Item("CONTROL_DEF_VALUE")) Case "Datepicker" : props = New DateTimePickerProperties()
Case "Datagridview" : props = New DataGridViewProperties()
If Not IsDBNull(row.Item("CONTROL_FORMAT_TYPE")) Then Case "Groupbox" : props = New GroupBoxProperties()
props.Format = DirectCast([Enum].Parse(GetType(EnumFormatOptions), row.Item("CONTROL_FORMAT_TYPE")), Integer) Case "Picturebox" : props = New PictureBoxProperties()
Else Case "ListBox" : props = New ComboBoxProperties()
props.Format = "String" Case "CheckedListBox" : props = New ComboBoxProperties()
End If Case "F_AddAppointment" : props = New FunctionAddAppointment()
Case "Combobox" Case "F_AddFormData" : props = New FunctionAddFormData()
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 End Select
' Generic Properties 'Generische Properties laden
props.ID = row.Item("CONTROL_ID") props.ID = r.Item("CONTROL_ID")
props.Name = row.Item("CONTROL_NAME") props.Name = r.Item("CONTROL_NAME")
props.Size = New Size(row.Item("CTRLSCR_WIDTH"), row.Item("CTRLSCR_HEIGHT")) 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"))
'TODO: calc location 'Control-spezifische Properties laden
'If row.Item("CONTROL_PARENT_ID") <> 0 Then Select Case type
' Dim parentSQL = "SELECT CTRLSCR_X_LOC, CTRLSCR_Y_LOC FROM VWPMO_VALUES WHERE = CONTROL_ID = " & row.Item("CONTROL_PARENT_ID") Case "Label"
'End If 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.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"), ""))
props.Location = New Point(row.Item("CTRLSCR_X_LOC"), row.Item("CTRLSCR_Y_LOC")) 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"), ""))
Me.Text = "Eigenschaften Control-ID: " & props.ID 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")
If type = "F_AddAppointment" Then Case "RadioButton"
Dim ControlId = GetControlID_for_Name(ctrl.Name, CURRENT_FORM_ID) props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR"))
Dim dr = ClassFunctionCommands.LoadFunction(ControlId) 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")
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
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))
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))
Case "F_AddAppointment"
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 Dim FromDateId, ToDateId, SubjectString, Subject2String, PlaceString, DescString
FromDateId = dr.Item("INTEGER1") FromDateId = f.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 If IsDBNull(FromDateId) OrElse FromDateId = 0 Then
props.FromDate = "" props.FromDate = ""
Else Else
props.FromDate = GetName_for_ControlID(FromDateId, CURRENT_FORM_ID) props.FromDate = Get_Name_for_ControlID(FromDateId, CURRENT_FORM_ID)
End If End If
ToDateId = f.Item("INTEGER2")
If IsDBNull(ToDateId) OrElse ToDateId = 0 Then If IsDBNull(ToDateId) OrElse ToDateId = 0 Then
props.ToDate = "" props.ToDate = ""
Else Else
props.ToDate = GetName_for_ControlID(ToDateId, CURRENT_FORM_ID) props.ToDate = Get_Name_for_ControlID(ToDateId, CURRENT_FORM_ID)
End If End If
SubjectString = f.Item("STRING1")
If IsDBNull(SubjectString) OrElse String.IsNullOrEmpty(SubjectString) Then If IsDBNull(SubjectString) OrElse String.IsNullOrEmpty(SubjectString) Then
props.Subject = "" props.Subject = ""
Else Else
props.Subject = SubjectString props.Subject = SubjectString
End If End If
Subject2String = f.Item("STRING2")
If IsDBNull(Subject2String) OrElse String.IsNullOrEmpty(Subject2String) Then If IsDBNull(Subject2String) OrElse String.IsNullOrEmpty(Subject2String) Then
props.Subject2 = "" props.Subject2 = ""
Else Else
props.Subject2 = Subject2String props.Subject2 = Subject2String
End If End If
PlaceString = f.Item("STRING3")
If IsDBNull(PlaceString) OrElse String.IsNullOrEmpty(PlaceString) Then If IsDBNull(PlaceString) OrElse String.IsNullOrEmpty(PlaceString) Then
props.Place = "" props.Place = ""
Else Else
props.Place = PlaceString props.Place = PlaceString
End If End If
DescString = f.Item("STRING4")
If IsDBNull(DescString) OrElse String.IsNullOrEmpty(DescString) Then If IsDBNull(DescString) OrElse String.IsNullOrEmpty(DescString) Then
props.Description = "" props.Description = ""
Else Else
props.Description = DescString props.Description = DescString
End If 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 Case "F_AddFormData"
props.Caption = r.Item("CTRLSCR_CAPTION")
FormId = dr.Item("INTEGER1") Dim controlId = DirectCast(ctrl.Tag, ClassControlMetadata).Id
ScreenId = dr.Item("INTEGER2") Dim f = ClassFunctionCommands.LoadFunction(controlId)
If IsDBNull(FormId) OrElse FormId = 0 Then Dim FormId = f.Item("INTEGER1")
props.FormID = 0 props.FormID = NotNull(FormId, 0)
Else
props.FormID = FormId
End If
If IsDBNull(ScreenId) OrElse ScreenId = 0 Then Dim ScreenId = f.Item("INTEGER2")
props.ScreenID = 0 props.ScreenID = NotNull(ScreenId, 0)
Else
props.ScreenID = ScreenId
End If
props.Caption = row.Item("CTRLSCR_CAPTION") End Select
End If
' Control Properties CURRENT_CONTROL_ID = r.Item("CONTROL_ID")
If Not type.Contains("F_") Then ' Aktuelle Control Eigenschaften anzeigen
' 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 Me.pgControlProperties.SelectedObject = props
End If ' Fenster Titel aktualisieren
End If Me.Text = String.Format("Eigenschaften von {0}({1})", type, props.ID.ToString())
Catch ex As Exception Catch ex As Exception
MsgBox("Error in loadcontrolproperties" & vbNewLine & ex.Message, MsgBoxStyle.Critical) MsgBox("Error in LoadControlProperties" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try End Try
End Sub 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 = Get_Name_for_ControlID(FromDateId, CURRENT_FORM_ID)
' End If
' If IsDBNull(ToDateId) OrElse ToDateId = 0 Then
' props.ToDate = ""
' Else
' props.ToDate = Get_Name_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 ' Aktualisiert die Position des akutellen Controls und speichert diese in der Klasse
Public Sub UpdateControlLocation(ctrl As Control) Public Sub UpdateControlLocation(ctrl As Control)
CurrentProperties = Me.pgControlProperties.SelectedObject CurrentProperties = Me.pgControlProperties.SelectedObject
@@ -307,7 +507,7 @@
Public Function SaveControlProperties(ctrl As Control, properties As Object) As Boolean Public Function SaveControlProperties(ctrl As Control, properties As Object) As Boolean
If ClassControlCommands.UpdateControl(ctrl, properties) Then If ClassControlCommands.UpdateControl(ctrl, properties) Then
LoadControlProperties(ctrl) LoadControlPropertiesNeu(ctrl)
Return True Return True
Else Else
MsgBox("Fehler beim Speichern der Elementeigenschaften.", MsgBoxStyle.Critical) MsgBox("Fehler beim Speichern der Elementeigenschaften.", MsgBoxStyle.Critical)