2023-05-22 16:55:44 +02:00

1137 lines
63 KiB
VB.net

Public Class frmLevel_Designer
#Region "+++++ Konstanten +++++"
'Private akt_ctrl As Control
Private Shared _Instance As frmLevel_Designer = Nothing
Private Mouse_Moving As Boolean = False
Private Mouse_Down As Boolean = False
Private Current_Properties As Object = Nothing
Private DesignerCtrlBuilder As ClassControlBuilder
Private LastCursor As Point = Nothing
#End Region
Dim formloaded As Boolean = False
Public Shared Function Instance() As frmLevel_Designer
If _Instance Is Nothing OrElse _Instance.IsDisposed = True Then
_Instance = New frmLevel_Designer
End If
_Instance.BringToFront()
Return _Instance
End Function
Public Sub SetFormTitle(title As String)
Me.Text = "Form Designer: " & title
End Sub
Public Sub SetFormName(name As String)
Me.lblFormName.Text = "Name: " & name & " - Form-ID: " & CURRENT_ENTITY_ID
End Sub
#Region "+++++ Drag Drop Funktionen +++++"
Public Sub ControlDragDrop(type As String, Parent As GroupBox)
Try
Dim r As New Random()
Dim def_font_family As String = DefaultFont.Name
Dim def_font_color As Integer = DefaultForeColor.ToArgb
Dim def_font_style As Integer = 0
Dim def_font_size As Integer = 8
Dim defaultCaption As String = "Bezeichner definieren"
If USER_LANGUAGE <> "de-DE" Then
defaultCaption = "Define Identifier"
End If
Dim defaultCalendarCaption As String = "Zu Kalender hinzufügen"
If USER_LANGUAGE <> "de-DE" Then
defaultCalendarCaption = "Add to Calendar"
End If
Dim random As String = ShortGUID()
'Dim random As Integer = r.Next(8, 100)
Select Case type
Case "lbl"
DesignerCtrlBuilder.AddLabel(0, "lbl" & random, defaultCaption, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, "", True, Parent)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case "line"
DesignerCtrlBuilder.AddLine(0, "line" & random, 0, 0, 0, 0, 0, True, Nothing, True)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case "txt"
DesignerCtrlBuilder.AddTextBox(0, "txt" & random, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, True, 0, 0, False, False, False, "String", False, True, Parent)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case "cmb"
DesignerCtrlBuilder.AddComboBox(0, "cmb" & random, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, True, 0, 0, "String", True, False, False, False, "", "", Parent)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case "dtp"
DesignerCtrlBuilder.AddDateTimePicker(0, "dtp" & random, 0, 0, def_font_family, def_font_size, def_font_style, 0, False, 0, 0, False, False, True, Parent)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case "dgv"
DesignerCtrlBuilder.AddDataGridView(0, "dgv" & random, 0, 0, 0, 0, True, False, False, "dgv" & random, Parent)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case "chk"
DesignerCtrlBuilder.AddCheckBox(0, "chk" & random, defaultCaption, False, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, False, 0, 0, True, False, False, Parent)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case "rb"
DesignerCtrlBuilder.AddRadioButton(0, "rb" & random, defaultCaption, False, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, False, 0, 0, True, False, False, Parent)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case "pb"
DesignerCtrlBuilder.AddPictureBox(0, "pb" & random, 0, 0, 0, 0, True, False, False, Parent)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case "gb"
DesignerCtrlBuilder.AddGroupBox(0, "gb" & random, defaultCaption, 0, 0, 0, 0, ColorToInt(SystemColors.Control), def_font_color, def_font_family, def_font_size, def_font_style, True, Parent)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case "f_addappointment"
DesignerCtrlBuilder.FunctionAddAppointment(0, "f_addappointment" & random, defaultCalendarCaption, 0, 0, 0, 0, True, Parent)
If ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl) = True Then
Dim ControlId = GetControlID_for_Name(DesignerCtrlBuilder.CurrentControl.Name, CURRENT_ENTITY_ID)
ClassFunctionCommands.InsertFunction(ControlId, "ADDAPPOINTMENT")
End If
Case "f_addformdata"
DesignerCtrlBuilder.FunctionAddFormData(0, "f_addformdata" & random, "Add Form Data", 0, 0, 0, 0, True, Parent)
If ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl) = True Then
Dim ControlId = GetControlID_for_Name(DesignerCtrlBuilder.CurrentControl.Name, CURRENT_ENTITY_ID)
ClassFunctionCommands.InsertFunction(ControlId, "ADDFORMDATA")
End If
Case "lstbxcheck"
DesignerCtrlBuilder.AddCheckedListBox(0, "chlb" & random, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, True, 0, 0, True, False, False, "", "", Parent)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case "lstbx"
DesignerCtrlBuilder.AddListBox(0, "lbx" & random, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, True, 0, 0, True, False, False, "", "", Parent)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case "dgvcheck"
DesignerCtrlBuilder.AddDataGridViewCheckable(0, "dgvcheck" & random, 0, 0, 0, 0, True, 0, False, False, False, "dgvcheck" & random, Parent)
' Aktuelles Control in die Datenbank speichern
ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl)
Case Else
MsgBox("Event '" & type & "' nicht definiert")
End Select
Catch ex As Exception
MsgBox("unexpected Error in ControlDragDrop: " & vbNewLine, MsgBoxStyle.Critical)
End Try
End Sub
Public Sub Groupbox_DragDrop(sender As Object, e As DragEventArgs)
Dim type As String = e.Data.GetData(DataFormats.Text)
Dim GroupBox As GroupBox = CType(sender, GroupBox)
ControlDragDrop(type, GroupBox)
End Sub
Private Sub pnlDesigner_DragDrop(sender As Object, e As DragEventArgs) Handles pnlDesigner.DragDrop
Dim type As String = e.Data.GetData(DataFormats.Text)
ControlDragDrop(type, Nothing)
End Sub
Private Sub pnlDesigner_DragEnter(sender As Object, e As DragEventArgs) Handles pnlDesigner.DragEnter
' Check the format of the data being dropped.
If (e.Data.GetDataPresent(DataFormats.Text)) Then
' Display the copy cursor.
e.Effect = DragDropEffects.Copy
Else
' Display the no-drop cursor.
e.Effect = DragDropEffects.None
End If
End Sub
#End Region
#Region "+++++ Form Events +++++"
Private Sub frmLevel_Designer_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
Try
Dim sw
sw = Stopwatch.StartNew()
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()
sw.Stop()
Console.WriteLine(String.Format("My.Settings.Save took {0}ms", sw.ElapsedMilliseconds))
sw = Stopwatch.StartNew()
RebuildView()
sw.Stop()
Console.WriteLine(String.Format("RebuildView took {0}ms", sw.ElapsedMilliseconds))
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_ENTITY_ID & " and SCREEN_ID = " & CURRENT_SCREEN_ID
MYDB_ECM.ExecuteNonQuery(update_sizepnl)
Catch ex As Exception
MsgBox("Error in frmLevel_Designer_FormClosing: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub frmLevel_Designer_Load(sender As Object, e As EventArgs) Handles Me.Load
ClassWindowLocation.LoadFormLocationSize(Me, 1, CURRENT_SCREEN_ID, "frmLevel_Designer")
DesignerCtrlBuilder = New ClassControlBuilder(pnlDesigner,
AddressOf Control_MouseDown,
AddressOf Control_MouseUp,
AddressOf Control_MouseMove,
AddressOf Control_Click,
AddressOf Groupbox_DragDrop)
LoadFormProperties()
LoadControls()
End Sub
Private Sub HandleToolTip(sender As Object, e As EventArgs)
Console.WriteLine("show tooltip")
End Sub
#End Region
#Region "+++++ Load Funktionen +++++"
Public Sub LoadFormProperties()
Dim NAME_SQL As String = "SELECT NAME FROM TBPMO_FORM WHERE GUID = " & CURRENT_ENTITY_ID
Dim formviewid = MYDB_ECM.GetScalarValue("SELECT GUID FROM TBPMO_FORM_VIEW WHERE FORM_ID = " & CURRENT_ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID)
Dim TITLE_SQL As String = "SELECT CAPTION FROM TBPMO_LANGUAGE_OBJECT WHERE PMO_OBJECT_NAME = 'FORMVIEW_TITLE" & formviewid & "' and SCREEN_ID = " & CURRENT_SCREEN_ID & " AND LANGUAGE_TYPE = '" & USER_LANGUAGE & "'"
Dim Height = MYDB_ECM.GetScalarValue("SELECT HEIGHT FROM TBPMO_FORM_VIEW WHERE FORM_ID = " & CURRENT_ENTITY_ID & " and SCREEN_ID = " & CURRENT_SCREEN_ID)
Dim width = MYDB_ECM.GetScalarValue("SELECT WIDTH FROM TBPMO_FORM_VIEW WHERE FORM_ID = " & CURRENT_ENTITY_ID & " and SCREEN_ID = " & CURRENT_SCREEN_ID)
Dim name = MYDB_ECM.GetScalarValue(NAME_SQL)
Dim title = MYDB_ECM.GetScalarValue(TITLE_SQL)
' Check_Document_Config(CURRENT_ENTITY_ID)
If Not IsDBNull(Height) Then
If Height > 100 Then
Me.pnlDesigner.Height = Height
End If
'If Not IsDBNull(width) Then
If width > 500 Then
' Me.Width = width
End If
'End If
End If
SetFormName(name)
SetFormTitle(title)
End Sub
Public Sub LoadControls()
Dim sql = String.Format("SELECT T.*, dbo.FNPMO_GET_CONTROL_CAPTION ('{0}', {1},T.CONTROL_ID) AS 'CAPTION' FROM VWPMO_CONTROL_SCREEN T" & _
" where T.FORM_ID = {2} and T.SCREEN_ID = {3}", USER_LANGUAGE, CURRENT_SCREEN_ID, CURRENT_ENTITY_ID, CURRENT_SCREEN_ID)
Dim dt As DataTable = MYDB_ECM.GetDatatable(sql)
For Each dr As DataRow In dt.Rows
Dim parent As GroupBox = Nothing
If (dr.Item("CONTROL_PARENT_ID") <> 0) Then
Dim parentname As String = Get_Name_for_ControlID(dr.Item("CONTROL_PARENT_ID"), CURRENT_ENTITY_ID)
parent = DesignerCtrlBuilder.GetControlByName(parentname)
End If
Select Case dr.Item("CTRLTYPE_ID")
Case 1 ' Label
DesignerCtrlBuilder.AddLabel(dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CAPTION"),
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_FONT_FAMILY"),
dr.Item("CTRLSCR_FONT_COLOR"),
dr.Item("CTRLSCR_FONT_SIZE"),
dr.Item("CTRLSCR_FONT_STYLE"),
dr.Item("CONTROL_SQLCOMMAND_1"),
False,
parent,
True)
Case 2 ' TextBox
DesignerCtrlBuilder.AddTextBox(dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_FONT_FAMILY"),
dr.Item("CTRLSCR_FONT_COLOR"),
dr.Item("CTRLSCR_FONT_SIZE"),
dr.Item("CTRLSCR_FONT_STYLE"),
dr.Item("CTRLSCR_TAB_INDEX"),
dr.Item("CTRLSCR_TAB_STOP"),
dr.Item("CTRLSCR_WIDTH"),
dr.Item("CTRLSCR_HEIGHT"),
dr.Item("CONTROL_MULTILINE"),
dr.Item("CONTROL_READ_ONLY"),
dr.Item("CONTROL_REQUIRED"),
dr.Item("CONTROL_FORMAT_TYPE"),
dr.Item("CONTROL_AUTO_SUGGEST"),
False,
parent,
True)
Case 3 ' ComboBox
DesignerCtrlBuilder.AddComboBox(dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_FONT_FAMILY"),
dr.Item("CTRLSCR_FONT_COLOR"),
dr.Item("CTRLSCR_FONT_SIZE"),
dr.Item("CTRLSCR_FONT_STYLE"),
dr.Item("CTRLSCR_TAB_INDEX"),
dr.Item("CTRLSCR_TAB_STOP"),
dr.Item("CTRLSCR_WIDTH"),
dr.Item("CTRLSCR_HEIGHT"),
dr.Item("CONTROL_FORMAT_TYPE"),
False,
dr.Item("CONTROL_READ_ONLY"),
dr.Item("CONTROL_SELECT_ONLY"),
dr.Item("CONTROL_REQUIRED"),
dr.Item("CONTROL_STATIC_LIST"),
dr.Item("CONTROL_SQLCOMMAND_1"),
parent,
True)
Case 4 ' DateTimePicker
DesignerCtrlBuilder.AddDateTimePicker(dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_FONT_FAMILY"),
dr.Item("CTRLSCR_FONT_SIZE"),
dr.Item("CTRLSCR_FONT_STYLE"),
dr.Item("CTRLSCR_TAB_INDEX"),
dr.Item("CTRLSCR_TAB_STOP"),
dr.Item("CTRLSCR_WIDTH"),
dr.Item("CTRLSCR_HEIGHT"),
dr.Item("CONTROL_READ_ONLY"),
dr.Item("CONTROL_REQUIRED"),
False,
parent,
True)
Case 5 ' GroupBox
DesignerCtrlBuilder.AddGroupBox(dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CTRLSCR_CAPTION"),
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_WIDTH"),
dr.Item("CTRLSCR_HEIGHT"),
dr.Item("CTRLSCR_BACK_COLOR"),
dr.Item("CTRLSCR_FONT_COLOR"),
dr.Item("CTRLSCR_FONT_FAMILY"),
dr.Item("CTRLSCR_FONT_SIZE"),
dr.Item("CTRLSCR_FONT_STYLE"),
False,
parent,
True)
Case 6 ' PictureBox
DesignerCtrlBuilder.AddPictureBox(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"),
parent,
True)
Case 7 ' DataGridView
DesignerCtrlBuilder.AddDataGridView(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)
Case 10 ' Checkbox
Dim Checked As Boolean
If IsDBNull(dr.Item("CONTROL_DEF_VALUE")) Then
Checked = False
Else
Checked = StrToBool(dr.Item("CONTROL_DEF_VALUE"))
End If
DesignerCtrlBuilder.AddCheckBox(dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CTRLSCR_CAPTION"),
Checked,
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_FONT_FAMILY"),
dr.Item("CTRLSCR_FONT_COLOR"),
dr.Item("CTRLSCR_FONT_SIZE"),
dr.Item("CTRLSCR_FONT_STYLE"),
dr.Item("CTRLSCR_TAB_INDEX"),
dr.Item("CTRLSCR_TAB_STOP"),
dr.Item("CTRLSCR_WIDTH"),
dr.Item("CTRLSCR_HEIGHT"),
False,
dr.Item("CONTROL_READ_ONLY"),
dr.Item("CONTROL_REQUIRED"),
parent,
True)
Case 8 'AddAppointment Button
DesignerCtrlBuilder.FunctionAddAppointment(dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CTRLSCR_CAPTION"),
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_WIDTH"),
dr.Item("CTRLSCR_HEIGHT"),
False,
parent,
True)
Case 9 'AddFormData
DesignerCtrlBuilder.FunctionAddFormData(dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CTRLSCR_CAPTION"),
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_WIDTH"),
dr.Item("CTRLSCR_HEIGHT"),
False,
parent,
True)
Case 11 ' RadioButton
Dim Checked As Boolean
If IsDBNull(dr.Item("CONTROL_DEF_VALUE")) Then
Checked = False
Else
Checked = StrToBool(dr.Item("CONTROL_DEF_VALUE"))
End If
DesignerCtrlBuilder.AddRadioButton(dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CTRLSCR_CAPTION"),
Checked,
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_FONT_FAMILY"),
dr.Item("CTRLSCR_FONT_COLOR"),
dr.Item("CTRLSCR_FONT_SIZE"),
dr.Item("CTRLSCR_FONT_STYLE"),
dr.Item("CTRLSCR_TAB_INDEX"),
dr.Item("CTRLSCR_TAB_STOP"),
dr.Item("CTRLSCR_WIDTH"),
dr.Item("CTRLSCR_HEIGHT"),
False,
dr.Item("CONTROL_READ_ONLY"),
dr.Item("CONTROL_REQUIRED"),
parent,
True)
Case 12 'CheckedListBox
DesignerCtrlBuilder.AddCheckedListBox(dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_FONT_FAMILY"),
dr.Item("CTRLSCR_FONT_COLOR"),
dr.Item("CTRLSCR_FONT_SIZE"),
dr.Item("CTRLSCR_FONT_STYLE"),
dr.Item("CTRLSCR_TAB_INDEX"),
dr.Item("CTRLSCR_TAB_STOP"),
dr.Item("CTRLSCR_WIDTH"),
dr.Item("CTRLSCR_HEIGHT"),
False,
dr.Item("CONTROL_READ_ONLY"),
dr.Item("CONTROL_REQUIRED"),
dr.Item("CONTROL_STATIC_LIST"),
dr.Item("CONTROL_SQLCOMMAND_1"),
parent,
True)
Case 13 'ListBox
DesignerCtrlBuilder.AddListBox(dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_FONT_FAMILY"),
dr.Item("CTRLSCR_FONT_COLOR"),
dr.Item("CTRLSCR_FONT_SIZE"),
dr.Item("CTRLSCR_FONT_STYLE"),
dr.Item("CTRLSCR_TAB_INDEX"),
dr.Item("CTRLSCR_TAB_STOP"),
dr.Item("CTRLSCR_WIDTH"),
dr.Item("CTRLSCR_HEIGHT"),
False,
dr.Item("CONTROL_READ_ONLY"),
dr.Item("CONTROL_REQUIRED"),
dr.Item("CONTROL_STATIC_LIST"),
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("CTRLSCR_TAB_INDEX"),
dr.Item("CTRLSCR_TAB_STOP"),
dr.Item("CONTROL_READ_ONLY"),
dr.Item("CONTROL_REQUIRED"),
dr.Item("CONTROL_COL_NAME"),
parent,
True)
Case 15 ' Line
DesignerCtrlBuilder.AddLine(
dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_FONT_COLOR"),
dr.Item("CTRLSCR_WIDTH"),
dr.Item("CTRLSCR_HEIGHT"),
False,
parent,
True
)
End Select
Next
End Sub
#End Region
#Region "+++++ Mouse Events +++++"
Private Sub Control_Click(sender As Object, e As EventArgs)
Dim control As Control = DirectCast(sender, Control)
' Aktuelles Control highlighten
control.BringToFront()
DesignerCtrlBuilder.SetAllActiveColor()
' GUID des aktuellen Controls speichern
CURRENT_CONTROL_ID = ClassControlCommands.GetControlGuid(DesignerCtrlBuilder.CurrentControl.Name)
' Control Eigenschaften laden
pgControlProperties.Enabled = True
LoadControlPropertiesNeu(DesignerCtrlBuilder.CurrentControl)
End Sub
Private Sub Control_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
' Check to see if the correct button has been pressed
If e.Button = System.Windows.Forms.MouseButtons.Left Then
DesignerCtrlBuilder.CurrentControl = sender
DesignerCtrlBuilder.BeginLocation = e.Location
' Set the mode flag to signal the MouseMove event handler that it
' needs to now calculate new positions for our control
Mouse_Moving = True
End If
End Sub
Private Sub ControlButton_MouseDown(sender As Object, e As MouseEventArgs) Handles btntextbox.MouseDown,
btnlabel.MouseDown,
btndtp.MouseDown,
btncmb.MouseDown,
btnCheckbox.MouseDown,
btnpb.MouseDown,
btngb.MouseDown,
btn_addtocal.MouseDown,
btn_addformdata.MouseDown,
btnRadioButton.MouseDown,
btnListBoxCheckable.MouseDown,
btnListBox.MouseDown,
btnTableCheckable.MouseDown, btnLine.MouseDown
Mouse_Down = True
End Sub
Private Sub ControlButton_MouseMove(sender As Object, e As MouseEventArgs) Handles btntextbox.MouseMove,
btnlabel.MouseMove,
btndtp.MouseMove,
btncmb.MouseMove,
btnCheckbox.MouseMove,
btnpb.MouseMove,
btngb.MouseMove,
btn_addtocal.MouseMove,
btn_addformdata.MouseMove,
btnRadioButton.MouseMove,
btnListBoxCheckable.MouseMove,
btnListBox.MouseMove,
btnTableCheckable.MouseMove, btnLine.MouseMove
If Mouse_Down Then
Dim ctrl As Button = DirectCast(sender, Button)
Dim type As String = ctrl.Tag.ToString()
ctrl.DoDragDrop(type, DragDropEffects.Copy)
End If
Mouse_Down = False
End Sub
Private Sub Control_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseUp
' The button was released, so we're going back to Static mode.
If Mouse_Moving = True Then
Mouse_Moving = False
'end_location = e.Location
DesignerCtrlBuilder.EndLocation = e.Location
Dim currentPosition As Point = DesignerCtrlBuilder.CurrentControl.Location
' Das Control sollte nicht außerhalb des Panels geschoben werden (Koordinaten kleiner 0)
If currentPosition.X < 0 Then
DesignerCtrlBuilder.CurrentControl.Location = New Point(0, DesignerCtrlBuilder.CurrentControl.Location.Y)
End If
If currentPosition.Y < 0 Then
DesignerCtrlBuilder.CurrentControl.Location = New Point(DesignerCtrlBuilder.CurrentControl.Location.X, 0)
End If
' Ebenso nicht über die Größe des Panels (X-Achse)
If currentPosition.X > pnlDesigner.Width Then
DesignerCtrlBuilder.CurrentControl.Location = New Point(pnlDesigner.Width - DesignerCtrlBuilder.CurrentControl.Width, DesignerCtrlBuilder.CurrentControl.Location.Y)
End If
' Ebenso nicht über die Größe des Panels (Y-Achse)
If currentPosition.Y > pnlDesigner.Height Then
DesignerCtrlBuilder.CurrentControl.Location = New Point(DesignerCtrlBuilder.CurrentControl.Location.X, pnlDesigner.Height - DesignerCtrlBuilder.CurrentControl.Height)
End If
'frmTool_ControlProperties.Instance.UpdateControlLocation(CtrlBuilder.CurrentControl)
UpdateControlLocation(DesignerCtrlBuilder.CurrentControl)
ClassControlCommands.UpdateControlPosition(DesignerCtrlBuilder.CurrentControl.Location.X,
DesignerCtrlBuilder.CurrentControl.Location.Y,
DesignerCtrlBuilder.CurrentControl)
TabControl1.SelectTab("pageProperties")
'Save_Control()
End If
' Restore the cursor image to the way we found it when the mouse
' button was pressed
MyBase.Cursor = Cursors.Default
End Sub
Private Sub Control_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
Try
If DesignerCtrlBuilder.CurrentControl Is Nothing Then
Exit Sub
End If
If Mouse_Moving = True Then
Me.Cursor = Cursors.Hand
Me.Refresh()
Dim control As Control = DirectCast(sender, Control)
Dim NowCursor As Point = DesignerCtrlBuilder.GetCursorPosition()
' Wenn das Control in einer GroupBox steckt
If ParentIsGroupBox(control) Then
Dim p As Control = control.Parent
Dim newPos As Point = New Point(NowCursor.X - p.Location.X - e.Location.X,
NowCursor.Y - p.Location.Y - e.Location.Y)
' Verhindert, dass das Control links+oben außerhalb der Groupbox geschoben wird = unerreichbar
If newPos.X < 0 Or newPos.Y < 0 Then
Exit Sub
End If
' Verhindert, dass das Control rechts+unten außerhalb der Groupbox geschoben wird = unerreichbar
If (newPos.X + control.Size.Width) > p.Size.Width Or (newPos.Y + control.Size.Height) > p.Size.Height Then
Exit Sub
End If
If Point.op_Inequality(NowCursor, LastCursor) Then
control.Location = newPos
LastCursor = NowCursor
End If
Else
' Alle normalen Controls
control.Location = New Point(NowCursor.X - DesignerCtrlBuilder.BeginLocation.X,
NowCursor.Y - DesignerCtrlBuilder.BeginLocation.Y)
End If
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "MovableLabel_MouseMove")
Mouse_Moving = False
End Try
End Sub
#End Region
Private Sub Control_PressTab(sender As Object, e As PreviewKeyDownEventArgs)
'NOOP
End Sub
Private Function RebuildView()
Try
'Dim sql = "EXECUTE PRPMO_CREATE_SQL " & CURRENT_ENTITY_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 sql = String.Format("DECLARE @return_value int " & vbNewLine &
"EXEC @return_value = dbo.PRPMO_CREATE_ENTITY_TABLE {0}" & vbNewLine &
"IF @return_value = 0 EXEC @return_value = [dbo].[PRPMO_CREATE_ENTITY_TABLE_VIEW] {0}" & vbNewLine &
"SELECT 'Return Value' = @return_value", CURRENT_ENTITY_ID)
noerror = MYDB_ECM.ExecuteNonQuery(sql)
If noerror = False Then
MsgBox("Error while rebuilding view! See Log for more information", MsgBoxStyle.Critical)
End If
Return noerror
Catch ex As Exception
MsgBox("Error in btnexecute_CreateViewSql:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
If RebuildView() = True Then
MsgBox("The Views have been created successful.", MsgBoxStyle.Information)
Else
MsgBox("Error while creating views!", MsgBoxStyle.Critical)
End If
End Sub
Private Sub frmLevel_Designer_Shown(sender As Object, e As EventArgs) Handles Me.Shown
formloaded = True
End Sub
Public Sub LoadControlPropertiesNeu(ctrl As Control)
Try
Dim controlId = DirectCast(ctrl.Tag, ClassControlMetadata).Id
Dim sql As String = String.Format("SELECT T.*, dbo.FNPMO_GET_CONTROL_CAPTION ('{0}',{1},{2}) AS 'CAPTION_TRANSLATED' FROM VWPMO_CONTROL_SCREEN T WHERE CONTROL_ID = {2}", USER_LANGUAGE, CURRENT_SCREEN_ID, controlId)
'Dim sql As String = String.Format("SELECT * FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0}", controlId)
'Dim sqlHint As String = String.Format("SELECT HINT FROM TBPMO_CONTROL_LANGUAGE WHERE CONTROL_SCREEN_ID = {0} AND LANGUAGE_TYPE = '{1}'", controlId, USER_LANGUAGE)
Dim sqlHint = String.Format("SELECT HINT FROM TBPMO_CONTROL_LANGUAGE WHERE CONTROL_SCREEN_ID = (SELECT GUID FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0} AND SCREEN_ID = {1}) AND LANGUAGE_TYPE = '{2}'", controlId, CURRENT_SCREEN_ID, USER_LANGUAGE)
Dim dt As DataTable = MYDB_ECM.GetDatatable(sql)
Dim hint As String = ClassConverter.ToStringOrDefault(MYDB_ECM.GetScalarValue(sqlHint), Nothing)
Dim props As Object = Nothing
Dim r As DataRow = Nothing
Dim type As String = Nothing
If dt.Rows.Count <> 1 Then
MsgBox("Unexpected behaviour in LoadControlProperties: No Control could be loaded!" & vbNewLine & "Tag.ControlID: " & controlId.ToString, MsgBoxStyle.Exclamation)
Exit Sub
End If
r = dt.Rows(0)
type = r.Item("CTRLTYPE_NAME")
'Props Object initialisieren
Select Case type
Case "Label" : props = New LabelProperties()
Case "Textbox" : props = New TextBoxProperties()
Case "Combobox" : props = New ComboBoxProperties()
Case "Checkbox" : props = New CheckBoxProperties()
Case "RadioButton" : props = New RadioButtonProperties()
Case "Datepicker" : props = New DateTimePickerProperties()
Case "Datagridview" : props = New DataGridViewProperties()
Case "Groupbox" : props = New GroupBoxProperties()
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 FunctionAddAppointmentProperties()
Case "F_AddFormData" : props = New FunctionAddFormDataProperties()
Case "Line" : props = New LineProperties()
End Select
'Generische Properties laden
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.Visible = ClassConverter.ToBooleanOrDefault(r.Item("CONTROL_VISIBLE"), True)
props.Hint = hint
'Control-spezifische Properties laden
Select Case type
Case "Label"
props.ControlType = "Label"
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("CAPTION_TRANSLATED")
'props.Caption = r.Item("CTRLSCR_CAPTION")
props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), ""))
props.TreeView = CBool(r.Item("CONTROL_TREE_VIEW"))
Case "Line"
props.ControlType = "Line"
props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR"))
props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), ""))
props.TreeView = CBool(r.Item("CONTROL_TREE_VIEW"))
Case "Textbox"
props.ControlType = "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.EnabledWhen = New SQLValue(r.Item("CONTROL_SQLCOMMAND_2").ToString())
props.TreeView = CBool(r.Item("CONTROL_TREE_VIEW"))
props.AutoSuggest = CBool(r.Item("CONTROL_AUTO_SUGGEST"))
Case "Combobox"
props.ControlType = "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.StaticList = New StaticListValue(r.Item("CONTROL_STATIC_LIST").ToString())
props.IsRequired = r.Item("CONTROL_REQUIRED")
props.IsReadOnly = r.Item("CONTROL_READ_ONLY")
props.IsSelectOnly = r.Item("CONTROL_SELECT_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"), ""))
props.EnabledWhen = New SQLValue(r.Item("CONTROL_SQLCOMMAND_2").ToString())
props.TreeView = CBool(r.Item("CONTROL_TREE_VIEW"))
Case "Checkbox"
props.ControlType = "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")
props.EnabledWhen = New SQLValue(r.Item("CONTROL_SQLCOMMAND_2").ToString())
Case "RadioButton"
props.ControlType = "RadioButton"
props.ColumnTitle = r.Item("CONTROL_COL_NAME")
props.Caption = r.Item("CTRLSCR_CAPTION")
props.IsRequired = r.Item("CONTROL_REQUIRED")
props.IsReadOnly = r.Item("CONTROL_READ_ONLY")
props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR"))
props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(),
CType(r.Item("CTRLSCR_FONT_SIZE"), Single),
CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle))
props.EnabledWhen = New SQLValue(r.Item("CONTROL_SQLCOMMAND_2").ToString())
Case "Datepicker"
props.ControlType = "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")
Dim i = r.Item("CONTROL_DEF_VALUE")
props.DefaultValue = NotNull(Of Object)(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")
props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), ""))
props.EnabledWhen = New SQLValue(r.Item("CONTROL_SQLCOMMAND_2").ToString())
props.TreeView = CBool(r.Item("CONTROL_TREE_VIEW"))
Case "Datagridview"
props.ControlType = "DataGridView/Table"
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")
props.TreeView = CBool(r.Item("CONTROL_TREE_VIEW"))
Case "Groupbox"
props.ControlType = "GroupBox"
props.Caption = r.Item("CTRLSCR_CAPTION")
props.BackColor = IntToColor(r.Item("CTRLSCR_BACK_COLOR"))
Case "Picturebox"
props.ControlType = "PictureBox"
props.IsRequired = r.Item("CONTROL_REQUIRED")
props.IsReadOnly = r.Item("CONTROL_READ_ONLY")
props.TreeView = CBool(r.Item("CONTROL_TREE_VIEW"))
Case "ListBox"
props.ControlType = "ListBox"
'props.StaticList = ClassConverter.ToStringOrDefault(r.Item("CONTROL_STATIC_LIST"))
props.StaticList = New StaticListValue(r.Item("CONTROL_STATIC_LIST").ToString())
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))
props.ColumnTitle = ClassConverter.ToStringOrDefault(r.Item("CONTROL_COL_NAME"), ctrl.Name)
props.ShowColumn = ClassConverter.ToBooleanOrDefault(r.Item("CONTROL_SHOW_COLUMN"), True)
props.EnabledWhen = New SQLValue(r.Item("CONTROL_SQLCOMMAND_2").ToString())
props.TreeView = CBool(r.Item("CONTROL_TREE_VIEW"))
Case "CheckedListBox"
props.ControlType = "CheckedListBox"
'props.StaticList = ClassConverter.ToStringOrDefault(r.Item("CONTROL_STATIC_LIST"))
props.StaticList = New StaticListValue(r.Item("CONTROL_STATIC_LIST").ToString())
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))
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.TreeView = CBool(r.Item("CONTROL_TREE_VIEW"))
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")
props.TabStop = r.Item("CTRLSCR_TAB_STOP")
props.TabIndex = r.Item("CTRLSCR_TAB_INDEX")
props.TreeView = CBool(r.Item("CONTROL_TREE_VIEW"))
Case "F_AddAppointment"
props.ControlType = "Function.AddToCalendar"
props.Caption() = r.Item("CTRLSCR_CAPTION")
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 = Get_Name_for_ControlID(FromDateId, CURRENT_ENTITY_ID)
End If
ToDateId = f.Item("INTEGER2")
If IsDBNull(ToDateId) OrElse ToDateId = 0 Then
props.ToDate = ""
Else
props.ToDate = Get_Name_for_ControlID(ToDateId, CURRENT_ENTITY_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"
Dim f = ClassFunctionCommands.LoadFunction(controlId)
props.ControlType = "Function.AddFormData"
props.Caption = r.Item("CTRLSCR_CAPTION")
If IsDBNull(f.Item("INTEGER1")) Then
props.FormID = 0
Else
props.FormID = NotNullInt(f.Item("INTEGER1"), 0)
End If
If IsDBNull(f.Item("INTEGER2")) Then
props.ScreenID = 0
Else
props.ScreenID = NotNullInt(f.Item("INTEGER2"), 0)
End If
End Select
CURRENT_CONTROL_ID = r.Item("CONTROL_ID")
' Aktuelle Control Eigenschaften anzeigen
Me.pgControlProperties.SelectedObject = props
' Fenster Titel aktualisieren
Catch ex As Exception
MsgBox("Error in LoadControlProperties" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Sub UpdateControlLocation(ctrl As Control)
Current_Properties = Me.pgControlProperties.SelectedObject
If Current_Properties IsNot Nothing Then
Current_Properties.Location = ctrl.Location
Me.pgControlProperties.SelectedObject = Current_Properties
End If
End Sub
Public Function SaveControlProperties(ctrl As Control, properties As Object) As Boolean
If ClassControlCommands.UpdateControl(ctrl, properties) Then
LoadControlPropertiesNeu(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(DesignerCtrlBuilder.CurrentControl, pgControlProperties.SelectedObject) Then
lblStatus.Text = "Änderungen gespeichert - " & Now
lblStatus.Visible = True
Else
lblStatus.Visible = False
End If
End Sub
Private Sub btnDeleteControl_Click(sender As Object, e As EventArgs) Handles btnDeleteControl.Click
If MsgBox("Wollen Sie das Element wirklich löschen?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
If IsGroupBox(DesignerCtrlBuilder.CurrentControl) Then
Dim parentID As Integer = GetControlID_for_Name(DesignerCtrlBuilder.CurrentControl.Name, CURRENT_ENTITY_ID)
Dim SQL = "SELECT GUID FROM TBPMO_CONTROL WHERE PARENT_CONTROL_ID = " & parentID
Dim dt As DataTable = MYDB_ECM.GetDatatable(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(CURRENT_CONTROL_ID) = True Then
'MsgBox("Element gelöscht, Elemente werden neu geladen.", MsgBoxStyle.Information)
DesignerCtrlBuilder.ClearControls()
frmLevel_Designer.Instance.LoadControls()
End If
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 = DesignerCtrlBuilder.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"
If TypeOf ctrl Is ClassControlBuilder.LineLabel Then
ctrl.BackColor = newValue
Else
ctrl.ForeColor = newValue
End If
Case "BackColor"
ctrl.BackColor = newValue
End Select
Console.WriteLine("Property {0} was changed", e.ChangedItem.Label)
'lblStatus.Text = "Ausstehende Änderungen"
'lblStatus.Visible = True
If SaveControlProperties(DesignerCtrlBuilder.CurrentControl, pgControlProperties.SelectedObject) Then
If USER_LANGUAGE <> "de-DE" Then
lblStatus.Text = "Changes saved - " & Now
Else
lblStatus.Text = "Änderungen gespeichert - " & Now
End If
Else
lblStatus.Visible = False
End If
End Sub
Private Sub btnTableCheckable_MouseDown(sender As Object, e As MouseEventArgs) Handles btnTableCheckable.MouseDown
End Sub
Private Sub btnTableCheckable_MouseMove(sender As Object, e As MouseEventArgs) Handles btnTableCheckable.MouseMove
End Sub
Private Sub btnTableCheckable_Click(sender As Object, e As EventArgs) Handles btnTableCheckable.Click
End Sub
End Class