diff --git a/app/DD_PM_WINDREAM/App.config b/app/DD_PM_WINDREAM/App.config
index c6ca9a7..710b054 100644
--- a/app/DD_PM_WINDREAM/App.config
+++ b/app/DD_PM_WINDREAM/App.config
@@ -26,7 +26,7 @@
- True
+
@@ -37,6 +37,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/DD_PM_WINDREAM/ClassControlCreator.vb b/app/DD_PM_WINDREAM/ClassControlCreator.vb
index 6132b66..dadadc5 100644
--- a/app/DD_PM_WINDREAM/ClassControlCreator.vb
+++ b/app/DD_PM_WINDREAM/ClassControlCreator.vb
@@ -405,7 +405,7 @@ Public Class ClassControlCreator
Return control
End Function
- Public Shared Function CreateExistingGridControl(row As DataRow, columns As List(Of DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow), designMode As Boolean) As GridControl
+ Public Shared Function CreateExistingGridControl(row As DataRow, DT_MY_COLUMNS As DataTable, designMode As Boolean) As GridControl
Dim oControl As GridControl = CreateBaseControl(New GridControl(), row, designMode)
Dim oDatatable As New DataTable
Dim oView As GridView
@@ -450,13 +450,13 @@ Public Class ClassControlCreator
GridTables.Clear()
- For Each oRow As DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow In columns
+ For Each oRow As DataRow In DT_MY_COLUMNS.Rows
' Create Columns in Datatable
Dim oColumn = New DataColumn() With {
.DataType = GetType(String),
- .ColumnName = oRow.SPALTENNAME,
- .Caption = oRow.SPALTEN_HEADER,
+ .ColumnName = oRow.Item("SPALTENNAME"),
+ .Caption = oRow.Item("SPALTEN_HEADER"),
.ReadOnly = False
}
@@ -470,9 +470,9 @@ Public Class ClassControlCreator
If oConnectionId > 0 And oSqlCommand <> "" Then
Try
Dim oComboboxDataTable As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oConnectionId)
- GridTables.Add(oRow.SPALTENNAME, oComboboxDataTable)
+ GridTables.Add(oRow.Item("SPALTENNAME"), oComboboxDataTable)
Catch ex As Exception
- LOGGER.Warn("Could not load data for column {0} in control {1}", oRow.SPALTENNAME, oControl.Name)
+ LOGGER.Warn("Could not load data for column {0} in control {1}", oRow.Item("SPALTENNAME"), oControl.Name)
LOGGER.Error(ex)
End Try
End If
@@ -484,11 +484,20 @@ Public Class ClassControlCreator
oControl.DataSource = oDatatable
oControl.RefreshDataSource()
oControl.ForceInitialize()
+ Dim oGridView As GridView = oControl.DefaultView
+ For Each oRow As DataRow In DT_MY_COLUMNS.Rows
+ Dim o = oRow.Item("SPALTENNAME")
+ Dim p = oRow.Item("SPALTENBREITE")
+ Dim ocount = oGridView.Columns.Count
+
+ ' oGridView.Columns(oRow.Item("SPALTENNAME")).Width = oRow.Item("SPALTENBREITE")
+ Next
+
AddHandler oView.CellValueChanged, AddressOf HandleCellValueChanged
AddHandler oView.CustomRowCellEdit, Sub(sender As Object, e As CustomRowCellEditEventArgs)
- For Each oRow As DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow In columns
- If oRow.SPALTENNAME = e.Column.FieldName Then
+ For Each oRow As DataRow In DT_MY_COLUMNS.Rows
+ If oRow.Item("SPALTENNAME") = e.Column.FieldName Then
If GridTables.ContainsKey(e.Column.FieldName) Then
Dim oComboboxDataTable As DataTable = GridTables.Item(e.Column.FieldName)
diff --git a/app/DD_PM_WINDREAM/frmFormDesigner.vb b/app/DD_PM_WINDREAM/frmFormDesigner.vb
index 206ed75..6e65d8a 100644
--- a/app/DD_PM_WINDREAM/frmFormDesigner.vb
+++ b/app/DD_PM_WINDREAM/frmFormDesigner.vb
@@ -252,11 +252,10 @@ Public Class frmFormDesigner
SetMovementHandlers(dgv)
Case "TABLE"
- Dim findControlColumnsQuery = (From r As DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow In DD_DMSLiteDataSet.TBPM_CONTROL_TABLE
- Where r.CONTROL_ID = guid
- Select r)
- Dim columns As List(Of DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow) = findControlColumnsQuery.ToList()
- Dim table = ClassControlCreator.CreateExistingGridControl(row, columns, True)
+ Dim oDTColumnsPerDevExGrid As DataTable = ClassDatabase.Return_Datatable($"SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = {guid} ORDER BY [SEQUENCE]")
+
+
+ Dim table = ClassControlCreator.CreateExistingGridControl(row, oDTColumnsPerDevExGrid, True)
AddHandler table.MouseClick, AddressOf gridControl_MouseClick
' AddHandler table.ColumnHeaderMouseClick, AddressOf table_ColumnHeaderMouseClick
diff --git a/app/DD_PM_WINDREAM/frmMain.resx b/app/DD_PM_WINDREAM/frmMain.resx
index 70d137f..b4a0424 100644
--- a/app/DD_PM_WINDREAM/frmMain.resx
+++ b/app/DD_PM_WINDREAM/frmMain.resx
@@ -141,7 +141,7 @@
0, 25
- 162, 39
+ 160, 45
@@ -160,13 +160,13 @@
0
- 907, 95
+ 662, 95
0, 0
- 162, 25
+ 160, 25
1
@@ -205,7 +205,7 @@
0, 25
- 330, 39
+ 332, 45
1
@@ -223,13 +223,13 @@
0
- 17, 134
+ 804, 95
0, 0
- 330, 25
+ 332, 25
0
@@ -262,10 +262,10 @@
1
- 496, 64
+ 496, 70
- 162
+ 160
0
@@ -307,7 +307,7 @@
0, 25
- 162, 15
+ 160, 24
1
@@ -325,13 +325,13 @@
0
- 168, 134
+ 955, 95
0, 0
- 162, 25
+ 160, 25
0
@@ -370,7 +370,7 @@
0, 25
- 330, 15
+ 332, 24
1
@@ -388,13 +388,13 @@
0
- 330, 134
+ 1117, 95
0, 0
- 330, 25
+ 332, 25
0
@@ -427,10 +427,10 @@
1
- 496, 40
+ 496, 49
- 162
+ 160
0
@@ -460,10 +460,10 @@
1
- 496, 108
+ 496, 123
- 64
+ 70
7
@@ -488,7 +488,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
- CAAAAk1TRnQBSQFMAgEBAgEAAXQBBQF0AQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ CAAAAk1TRnQBSQFMAgEBAgEAAaQBBQGkAQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -542,7 +542,7 @@
597, 17
- 637, 95
+ 392, 95
269, 26
@@ -655,10 +655,10 @@
0
- 500, 134
+ 17, 134
- 654, 134
+ 171, 134
87, 24
@@ -855,7 +855,7 @@
- 786, 95
+ 541, 95
219, 26
@@ -1040,7 +1040,7 @@
233
- 233, 345
+ 233, 360
5
@@ -1067,10 +1067,10 @@
Tahoma, 9pt
- 0, 158
+ 0, 146
- 1023, 345
+ 1023, 360
4
@@ -1091,7 +1091,7 @@
908, 17
- 17, 173
+ 519, 134
234, 22
@@ -1287,34 +1287,34 @@
True
- 17, 56
+ 1023, 17
- 140, 56
+ 17, 56
- 336, 56
+ 213, 56
- 526, 56
+ 403, 56
- 789, 56
+ 666, 56
- 17, 95
+ 923, 56
- 262, 95
+ 17, 95
- 502, 95
+ 257, 95
- 788, 134
+ 305, 134
- 903, 134
+ 420, 134
Aktualisieren
@@ -1622,13 +1622,13 @@
Funktionen
- 1023, 158
+ 1023, 146
- 0, 503
+ 0, 506
- 1023, 24
+ 1023, 21
RibbonStatusBar1
@@ -1658,7 +1658,7 @@
RibbonPage2
- 199, 173
+ 701, 134
True
diff --git a/app/DD_PM_WINDREAM/frmMain.vb b/app/DD_PM_WINDREAM/frmMain.vb
index d512b9c..b04e98b 100644
--- a/app/DD_PM_WINDREAM/frmMain.vb
+++ b/app/DD_PM_WINDREAM/frmMain.vb
@@ -1732,7 +1732,9 @@ Public Class frmMain
End Sub
Private Sub frmMain_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
-
+ If Application.OpenForms().OfType(Of frmValidator).Any Then
+ frmValidator.Close()
+ End If
End Sub
diff --git a/app/DD_PM_WINDREAM/frmMassValidator.Designer.vb b/app/DD_PM_WINDREAM/frmMassValidator.Designer.vb
index e9c18c2..07d5b88 100644
--- a/app/DD_PM_WINDREAM/frmMassValidator.Designer.vb
+++ b/app/DD_PM_WINDREAM/frmMassValidator.Designer.vb
@@ -22,7 +22,6 @@ Partial Class frmMassValidator
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
Private Sub InitializeComponent()
- Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMassValidator))
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
@@ -32,12 +31,9 @@ Partial Class frmMassValidator
Me.btnSave = New System.Windows.Forms.Button()
Me.DESCRIPTIONLabel = New System.Windows.Forms.Label()
Me.DD_DMSLiteDataSet = New DD_PM_WINDREAM.DD_DMSLiteDataSet()
- Me.TBPM_CONTROL_TABLEBindingSource = New System.Windows.Forms.BindingSource(Me.components)
- Me.TBPM_CONTROL_TABLETableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_CONTROL_TABLETableAdapter()
Me.TableAdapterManager = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TableAdapterManager()
Me.StatusStrip1.SuspendLayout()
CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
- CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'ToolStrip1
@@ -122,21 +118,13 @@ Partial Class frmMassValidator
Me.DD_DMSLiteDataSet.DataSetName = "DD_DMSLiteDataSet"
Me.DD_DMSLiteDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
'
- 'TBPM_CONTROL_TABLEBindingSource
- '
- Me.TBPM_CONTROL_TABLEBindingSource.DataMember = "TBPM_CONTROL_TABLE"
- Me.TBPM_CONTROL_TABLEBindingSource.DataSource = Me.DD_DMSLiteDataSet
- '
- 'TBPM_CONTROL_TABLETableAdapter
- '
- Me.TBPM_CONTROL_TABLETableAdapter.ClearBeforeFill = True
- '
'TableAdapterManager
'
Me.TableAdapterManager.BackupDataSetBeforeUpdate = False
Me.TableAdapterManager.TBDD_CONNECTIONTableAdapter = Nothing
+ Me.TableAdapterManager.TBDD_EMAIL_TEMPLATETableAdapter = Nothing
+ Me.TableAdapterManager.TBDD_GUI_LANGUAGE_PHRASETableAdapter = Nothing
Me.TableAdapterManager.TBDD_USERTableAdapter = Nothing
- Me.TableAdapterManager.TBPM_CONTROL_TABLETableAdapter = Me.TBPM_CONTROL_TABLETableAdapter
Me.TableAdapterManager.TBPM_ERROR_LOGTableAdapter = Nothing
Me.TableAdapterManager.TBPM_KONFIGURATIONTableAdapter = Nothing
Me.TableAdapterManager.TBPM_PROFILE_CONTROLSTableAdapter = Nothing
@@ -165,7 +153,6 @@ Partial Class frmMassValidator
Me.StatusStrip1.ResumeLayout(False)
Me.StatusStrip1.PerformLayout()
CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).EndInit()
- CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -179,7 +166,5 @@ Partial Class frmMassValidator
Friend WithEvents tslblCountDocs As ToolStripStatusLabel
Friend WithEvents DESCRIPTIONLabel As Label
Friend WithEvents DD_DMSLiteDataSet As DD_DMSLiteDataSet
- Friend WithEvents TBPM_CONTROL_TABLEBindingSource As BindingSource
- Friend WithEvents TBPM_CONTROL_TABLETableAdapter As DD_DMSLiteDataSetTableAdapters.TBPM_CONTROL_TABLETableAdapter
Friend WithEvents TableAdapterManager As DD_DMSLiteDataSetTableAdapters.TableAdapterManager
End Class
diff --git a/app/DD_PM_WINDREAM/frmMassValidator.resx b/app/DD_PM_WINDREAM/frmMassValidator.resx
index c4d1068..a64765e 100644
--- a/app/DD_PM_WINDREAM/frmMassValidator.resx
+++ b/app/DD_PM_WINDREAM/frmMassValidator.resx
@@ -126,12 +126,6 @@
241, 17
-
- 403, 17
-
-
- 664, 17
-
919, 17
diff --git a/app/DD_PM_WINDREAM/frmMassValidator.vb b/app/DD_PM_WINDREAM/frmMassValidator.vb
index cbb1f03..6c86787 100644
--- a/app/DD_PM_WINDREAM/frmMassValidator.vb
+++ b/app/DD_PM_WINDREAM/frmMassValidator.vb
@@ -353,15 +353,9 @@ Public Class frmMassValidator
Case "TABLE"
LOGGER.Debug("Versuch Tabelle zu laden")
+ Dim oDTMyColumns As DataTable = ClassDatabase.Return_Datatable($"SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = {oControlRow.Item("GUID")} ORDER BY SEQUENCE")
- TBPM_CONTROL_TABLETableAdapter.Connection.ConnectionString = CONNECTION_STRING
- TBPM_CONTROL_TABLETableAdapter.Fill(DD_DMSLiteDataSet.TBPM_CONTROL_TABLE, oControlRow.Item("GUID"))
-
- Dim columns As List(Of DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow) = (From r As DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow In DD_DMSLiteDataSet.TBPM_CONTROL_TABLE
- Where r.CONTROL_ID = oControlRow.Item("GUID")
- Select r).ToList()
-
- oControl = ClassControlCreator.CreateExistingGridControl(oControlRow, columns, False)
+ oControl = ClassControlCreator.CreateExistingGridControl(oControlRow, oDTMyColumns, False)
End Select
If oControl IsNot Nothing AndAlso TypeOf oControl IsNot Label Then
@@ -546,7 +540,7 @@ Public Class frmMassValidator
Select Case Typ
'Tabellendarstellung
Case "TABLE"
- Dim dt As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = " & CONTROL_ID)
+ Dim dt As DataTable = ClassDatabase.Return_Datatable($"SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = {CONTROL_ID} ORDER BY SEQUENCE")
Dim SpaltenWerte As String()
If dt.Rows.Count > 1 Then
For Each Zeile As Object In wertWD
diff --git a/app/DD_PM_WINDREAM/frmValidator.Designer.vb b/app/DD_PM_WINDREAM/frmValidator.Designer.vb
index 14bcd29..5de13ca 100644
--- a/app/DD_PM_WINDREAM/frmValidator.Designer.vb
+++ b/app/DD_PM_WINDREAM/frmValidator.Designer.vb
@@ -37,7 +37,6 @@ Partial Class frmValidator
Me.DD_DMSLiteDataSet = New DD_PM_WINDREAM.DD_DMSLiteDataSet()
Me.TableAdapterManager = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TableAdapterManager()
Me.TBDD_CONNECTIONTableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBDD_CONNECTIONTableAdapter()
- Me.TBPM_CONTROL_TABLETableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_CONTROL_TABLETableAdapter()
Me.TBPM_KONFIGURATIONTableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_KONFIGURATIONTableAdapter()
Me.TBPM_PROFILE_FILESTableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_PROFILE_FILESTableAdapter()
Me.TBPM_PROFILETableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_PROFILETableAdapter()
@@ -45,7 +44,6 @@ Partial Class frmValidator
Me.TBPM_PROFILE_FILESBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.TBPM_PROFILEBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.TBPM_KONFIGURATIONBindingSource = New System.Windows.Forms.BindingSource(Me.components)
- Me.TBPM_CONTROL_TABLEBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.BarManager1 = New DevExpress.XtraBars.BarManager(Me.components)
Me.barDockControlTop = New DevExpress.XtraBars.BarDockControl()
Me.barDockControlBottom = New DevExpress.XtraBars.BarDockControl()
@@ -101,6 +99,7 @@ Partial Class frmValidator
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
+ Me.BbtnItm = New DevExpress.XtraBars.BarButtonItem()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
@@ -114,7 +113,6 @@ Partial Class frmValidator
CType(Me.TBPM_PROFILE_FILESBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TBPM_PROFILEBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TBPM_KONFIGURATIONBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
- CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.BarManager1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PdfBarController1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PdfBarController2, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -203,7 +201,7 @@ Partial Class frmValidator
Me.TableAdapterManager.TBDD_EMAIL_TEMPLATETableAdapter = Nothing
Me.TableAdapterManager.TBDD_GUI_LANGUAGE_PHRASETableAdapter = Nothing
Me.TableAdapterManager.TBDD_USERTableAdapter = Nothing
- Me.TableAdapterManager.TBPM_CONTROL_TABLETableAdapter = Me.TBPM_CONTROL_TABLETableAdapter
+ Me.TableAdapterManager.TBPM_CONTROL_TABLETableAdapter = Nothing
Me.TableAdapterManager.TBPM_ERROR_LOGTableAdapter = Nothing
Me.TableAdapterManager.TBPM_KONFIGURATIONTableAdapter = Me.TBPM_KONFIGURATIONTableAdapter
Me.TableAdapterManager.TBPM_PROFILE_CONTROLSTableAdapter = Nothing
@@ -217,10 +215,6 @@ Partial Class frmValidator
'
Me.TBDD_CONNECTIONTableAdapter.ClearBeforeFill = True
'
- 'TBPM_CONTROL_TABLETableAdapter
- '
- Me.TBPM_CONTROL_TABLETableAdapter.ClearBeforeFill = True
- '
'TBPM_KONFIGURATIONTableAdapter
'
Me.TBPM_KONFIGURATIONTableAdapter.ClearBeforeFill = True
@@ -253,11 +247,6 @@ Partial Class frmValidator
Me.TBPM_KONFIGURATIONBindingSource.DataMember = "TBPM_KONFIGURATION"
Me.TBPM_KONFIGURATIONBindingSource.DataSource = Me.DD_DMSLiteDataSet
'
- 'TBPM_CONTROL_TABLEBindingSource
- '
- Me.TBPM_CONTROL_TABLEBindingSource.DataMember = "TBPM_CONTROL_TABLE"
- Me.TBPM_CONTROL_TABLEBindingSource.DataSource = Me.DD_DMSLiteDataSet
- '
'BarManager1
'
Me.BarManager1.Controller = Me.BarAndDockingController3
@@ -509,9 +498,9 @@ Partial Class frmValidator
'RibbonControl1
'
Me.RibbonControl1.ExpandCollapseItem.Id = 0
- Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bsiError, Me.bsiInformation, Me.bsiDocID, Me.BarButtonItemFileView, Me.BarButtonItem3, Me.BarButtonItem4, Me.bbtniRefresh, Me.bbtniRefreshSearches, Me.bbtniNext, Me.bbtniDelete, Me.bbtniAnnotation, Me.bsiInfo1, Me.bsiInfo2})
+ Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bsiError, Me.bsiInformation, Me.bsiDocID, Me.BarButtonItemFileView, Me.BarButtonItem3, Me.BarButtonItem4, Me.bbtniRefresh, Me.bbtniRefreshSearches, Me.bbtniNext, Me.bbtniDelete, Me.bbtniAnnotation, Me.bsiInfo1, Me.bsiInfo2, Me.BbtnItm})
resources.ApplyResources(Me.RibbonControl1, "RibbonControl1")
- Me.RibbonControl1.MaxItemId = 16
+ Me.RibbonControl1.MaxItemId = 17
Me.RibbonControl1.Name = "RibbonControl1"
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
@@ -530,6 +519,8 @@ Partial Class frmValidator
'
resources.ApplyResources(Me.bsiInformation, "bsiInformation")
Me.bsiInformation.Id = 2
+ Me.bsiInformation.ItemAppearance.Normal.BackColor = System.Drawing.Color.Transparent
+ Me.bsiInformation.ItemAppearance.Normal.Options.UseBackColor = True
Me.bsiInformation.Name = "bsiInformation"
'
'bsiDocID
@@ -542,8 +533,8 @@ Partial Class frmValidator
'
resources.ApplyResources(Me.BarButtonItemFileView, "BarButtonItemFileView")
Me.BarButtonItemFileView.Id = 4
- Me.BarButtonItemFileView.ImageOptions.Image = CType(resources.GetObject("BarButtonItem2.ImageOptions.Image"), System.Drawing.Image)
- Me.BarButtonItemFileView.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.LargeImage"), System.Drawing.Image)
+ Me.BarButtonItemFileView.ImageOptions.Image = CType(resources.GetObject("BarButtonItemFileView.ImageOptions.Image"), System.Drawing.Image)
+ Me.BarButtonItemFileView.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItemFileView.ImageOptions.LargeImage"), System.Drawing.Image)
Me.BarButtonItemFileView.Name = "BarButtonItemFileView"
'
'BarButtonItem3
@@ -648,6 +639,7 @@ Partial Class frmValidator
'RibbonPageGroup3
'
Me.RibbonPageGroup3.ItemLinks.Add(Me.bbtniRefresh)
+ Me.RibbonPageGroup3.ItemLinks.Add(Me.BbtnItm)
Me.RibbonPageGroup3.ItemLinks.Add(Me.bbtniRefreshSearches)
Me.RibbonPageGroup3.ItemLinks.Add(Me.bbtniNext)
Me.RibbonPageGroup3.ItemLinks.Add(Me.bbtniDelete)
@@ -679,6 +671,14 @@ Partial Class frmValidator
Me.RibbonPage2.Name = "RibbonPage2"
resources.ApplyResources(Me.RibbonPage2, "RibbonPage2")
'
+ 'BbtnItm
+ '
+ resources.ApplyResources(Me.BbtnItm, "BbtnItm")
+ Me.BbtnItm.Id = 16
+ Me.BbtnItm.ImageOptions.Image = CType(resources.GetObject("BarButtonItem2.ImageOptions.Image"), System.Drawing.Image)
+ Me.BbtnItm.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.LargeImage"), System.Drawing.Image)
+ Me.BbtnItm.Name = "BbtnItm"
+ '
'frmValidator
'
Me.Appearance.Options.UseFont = True
@@ -710,7 +710,6 @@ Partial Class frmValidator
CType(Me.TBPM_PROFILE_FILESBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TBPM_PROFILEBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TBPM_KONFIGURATIONBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
- CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.BarManager1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PdfBarController1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PdfBarController2, System.ComponentModel.ISupportInitialize).EndInit()
@@ -736,8 +735,6 @@ Partial Class frmValidator
Friend WithEvents TBPM_PROFILEBindingSource As System.Windows.Forms.BindingSource
Friend WithEvents TBPM_KONFIGURATIONTableAdapter As DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_KONFIGURATIONTableAdapter
Friend WithEvents TBPM_KONFIGURATIONBindingSource As System.Windows.Forms.BindingSource
- Friend WithEvents TBPM_CONTROL_TABLETableAdapter As DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_CONTROL_TABLETableAdapter
- Friend WithEvents TBPM_CONTROL_TABLEBindingSource As System.Windows.Forms.BindingSource
Friend WithEvents PdfBarController1 As DevExpress.XtraPdfViewer.Bars.PdfBarController
Friend WithEvents BarManager1 As DevExpress.XtraBars.BarManager
Friend WithEvents PdfFileOpenBarItem1 As DevExpress.XtraPdfViewer.Bars.PdfFileOpenBarItem
@@ -798,4 +795,5 @@ Partial Class frmValidator
Friend WithEvents bsiInfo1 As DevExpress.XtraBars.BarStaticItem
Friend WithEvents bsiInfo2 As DevExpress.XtraBars.BarStaticItem
Friend WithEvents DocumentViewerValidator As DigitalData.Controls.DocumentViewer.DocumentViewer
+ Friend WithEvents BbtnItm As DevExpress.XtraBars.BarButtonItem
End Class
diff --git a/app/DD_PM_WINDREAM/frmValidator.resx b/app/DD_PM_WINDREAM/frmValidator.resx
index c58d8c6..0c4e42e 100644
--- a/app/DD_PM_WINDREAM/frmValidator.resx
+++ b/app/DD_PM_WINDREAM/frmValidator.resx
@@ -125,6 +125,154 @@
0, 146
+
+ TITLELabel1
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Panel1
+
+
+ 0
+
+
+ btnSave
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Panel1
+
+
+ 1
+
+
+ DESCRIPTIONLabel
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Panel1
+
+
+ 2
+
+
+ pnldesigner
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Panel1
+
+
+ 3
+
+
+ Fill
+
+
+ 0, 0
+
+
+ 3, 4, 3, 4
+
+
+ 477, 476
+
+
+
+ 24
+
+
+ Panel1
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ SplitContainer1.Panel1
+
+
+ 0
+
+
+ SplitContainer1.Panel1
+
+
+ System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ SplitContainer1
+
+
+ 0
+
+
+ Fill
+
+
+ 0, 0
+
+
+ 3, 4, 3, 4
+
+
+ 481, 476
+
+
+ 0
+
+
+ DocumentViewerValidator
+
+
+ DigitalData.Controls.DocumentViewer.DocumentViewer, DigitalData.Controls.DocumentViewer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ SplitContainer1.Panel2
+
+
+ 0
+
+
+ SplitContainer1.Panel2
+
+
+ System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ SplitContainer1
+
+
+ 1
+
+
+ 962, 476
+
+
+ 477
+
+
+ 37
+
+
+ SplitContainer1
+
+
+ System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
Top, Left, Right
@@ -140,7 +288,6 @@
455, 29
-
1
@@ -255,105 +402,6 @@
3
-
- Fill
-
-
- 0, 0
-
-
- 3, 4, 3, 4
-
-
- 477, 476
-
-
- 24
-
-
- Panel1
-
-
- System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- SplitContainer1.Panel1
-
-
- 0
-
-
- SplitContainer1.Panel1
-
-
- System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- SplitContainer1
-
-
- 0
-
-
- Fill
-
-
- 0, 0
-
-
- 3, 4, 3, 4
-
-
- 481, 476
-
-
- 0
-
-
- DocumentViewerValidator
-
-
- DigitalData.Controls.DocumentViewer.DocumentViewer, DigitalData.Controls.DocumentViewer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
-
- SplitContainer1.Panel2
-
-
- 0
-
-
- SplitContainer1.Panel2
-
-
- System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- SplitContainer1
-
-
- 1
-
-
- 962, 476
-
-
- 477
-
-
- 37
-
-
- SplitContainer1
-
-
- System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- $this
-
-
- 0
-
17, 17
@@ -364,43 +412,37 @@
411, 17
- 725, 17
+ 608, 17
- 887, 17
+ 770, 17
- 813, 56
-
-
- 278, 134
+ 17, 56
- 938, 95
+ 280, 95
- 17, 95
+ 500, 56
- 469, 95
+ 952, 56
- 569, 56
+ 943, 17
- 1051, 56
+ 255, 56
- 257, 95
+ 740, 56
- 675, 95
-
-
- 17, 134
+ 17, 95
- 681, 134
+ 17, 134
Top
@@ -490,7 +532,7 @@
True
- 46
+ 120
7, 17
@@ -510,7 +552,7 @@
Datei öffnen
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABV0RVh0VGl0
bGUAVmlld01lcmdlZERhdGE7shxIswAAAkJJREFUOE+lkl9Ik2EUxjdnYg4Z6IUX0Y1dBEUQdrOQpEYy
@@ -526,7 +568,7 @@
DoDsF67YQEGpdtFTAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABV0RVh0VGl0
bGUAVmlld01lcmdlZERhdGE7shxIswAABztJREFUWEedVwlMFGcUXvG+UOuBtba2sYfapDVpjCZNrVdU
@@ -843,30 +885,31 @@
Tahoma, 9.75pt
-
- 0, 0
+
+ Speichern
-
- Datei
-
-
- Aktionen
-
-
+
- iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
- dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAEluZm87bRIthgAAAVxJREFUWEfF
- l7FxwzAMRT2Bq4yjPp1nyAAZxNu4dZkt0rnLCm4ZPF+gg5LPCLJko3h3Ovn/T5gCSWnXWitF3nwm48Uw
- DHPsjYNxNM7Gxbj+wDX3+A0NWpUxsqSAF+Pd+DBaErR48KrMdAGvxslQg2TAS8af7EwBb8anoYKXQAZZ
- k/y5AjB8GSrwHsiaFPFfAUzZFv/8N2SOj6NXAE2z5pnPQfatMXsF0LnKuCWMIQtg7aaXmvuCX+oEjLF3
- XwxgA1EGifuCX+o6HNwXA9jFlFjivuCXug5H98UAtlIllrgv+KWuw9l9MYD9XIkl7gt+qetwcV8M4FBR
- Yon7gl/qOlzdFwPKCyh/BOVNWL4MF21EK5EbUflWDOnDyH3BL3WC7mEE5ccxlL6QOKWvZA6GLWaCjMng
- kCkAmLI1PYF3nPZItgCgaejc9BI10OK5NZxiSQHOYz/NqpA3n0fbfQM/tJcKTygMggAAAABJRU5ErkJg
- gg==
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAEnRFWHRUaXRsZQBTYXZlIFRv
+ O1NhdmXUq5lyAAAAiElEQVQ4T72PzQ2AIAxGWZBFHIBFPDACRxMvnpyt0oY2pUHwLx6eFPi+F3EA8Ar6
+ zNOyZwApe5ob6DvsiEBCJwI+s3f/CZhrAgYDDfqCm3wswFmDgQ5jQUhRAwrq4PpYwIwEXPBqrvYjgS1a
+ fCUwrDnQk+C5PGEz5ZGEykj1yxYOFVgi5ZCiOwDrAold7eaipwAAAABJRU5ErkJggg==
-
- Information
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAEnRFWHRUaXRsZQBTYXZlIFRv
+ O1NhdmXUq5lyAAABBklEQVRYR+2Xuw3CQBBE3ZklIidO6QEKoBECSiBEogv6QHITwLFj6dDssv6JswHp
+ gid779YzL3URQvgq7uGSuIdLoob99lQKFyEQOGf4bgi7j+ySO61AQ8sRLreBQ3j7DXdaAbsMuLxrB3g7
+ 7j53ZoEskFLAw93nzr8UmMpbJneOEUgOd2aBPoHV7ngoUoAszubOTgEv6BM4mzsXE4hwH1DDDALIUXAf
+ UEMWyAI/JSBU8oEX2kcsugkbmpm1gPt27hOYwlnCIFDHYOFVYuDz2gpcTfAUPIk7vQNVjk4rUAnev8FY
+ PIkHvUfa8jcBuUgJS7jlYE4BYCVUOVCDLMxBlMBT9YUQiifIB8S/GJNB2gAAAABJRU5ErkJggg==
+
+
+
+ 0, 0
Menü
@@ -1162,12 +1205,6 @@
DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBDD_CONNECTIONTableAdapter, DD_DMSLiteDataSet.Designer.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
-
- TBPM_CONTROL_TABLETableAdapter
-
-
- DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_CONTROL_TABLETableAdapter, DD_DMSLiteDataSet.Designer.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
-
TBPM_KONFIGURATIONTableAdapter
@@ -1210,12 +1247,6 @@
System.Windows.Forms.BindingSource, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- TBPM_CONTROL_TABLEBindingSource
-
-
- System.Windows.Forms.BindingSource, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
BarManager1
@@ -1510,6 +1541,12 @@
DevExpress.XtraBars.Ribbon.RibbonPage, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+ BbtnItm
+
+
+ DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
frmValidator
@@ -1742,6 +1779,39 @@
Zoom
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxOS4yLCBWZXJzaW9uPTE5LjIu
+ My4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFlE
+ ZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4zLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVi
+ bGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29s
+ VGlwBwAAAA1BbGxvd0h0bWxUZXh0EUZpeGVkVG9vbFRpcFdpZHRoCkl0ZW1zQ291bnQJaXRlbVR5cGUw
+ BWl0ZW0wCWl0ZW1UeXBlMQVpdGVtMQQAAAQEBAQfRGV2RXhwcmVzcy5VdGlscy5EZWZhdWx0Qm9vbGVh
+ bgMAAAABCCVEZXZFeHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAgAAACFEZXZFeHByZXNz
+ LlV0aWxzLlRvb2xUaXBUaXRsZUl0ZW0CAAAAJURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29sVGlwSXRl
+ bVR5cGUCAAAAHERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0ZW0CAAAAAgAAAAX8////H0RldkV4cHJl
+ c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4BAAAAB3ZhbHVlX18ACAMAAAACAAAAAAIAAAAF+////yVEZXZF
+ eHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAQAAAAd2YWx1ZV9fAAgCAAAAAQAAAAkGAAAA
+ Afn////7////AAAAAAkIAAAADAkAAABRU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs
+ dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhBQYAAAAhRGV2RXhwcmVz
+ cy5VdGlscy5Ub29sVGlwVGl0bGVJdGVtBwAAAA1BbGxvd0h0bWxUZXh0BEljb24MSW1hZ2VPcHRpb25z
+ CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl
+ c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl
+ c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA
+ AAAAAAAAPAEAAAAGDAAAAARab29tBQgAAAAcRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRlbQcAAAAN
+ QWxsb3dIdG1sVGV4dARJY29uDEltYWdlT3B0aW9ucwpMZWZ0SW5kZW50CE1heFdpZHRoEk93bmVyQWxs
+ b3dIdG1sVGV4dARUZXh0BAQEAAAAAR9EZXZFeHByZXNzLlV0aWxzLkRlZmF1bHRCb29sZWFuAwAAABNT
+ eXN0ZW0uRHJhd2luZy5JY29uCQAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJdGVtSW1hZ2VPcHRp
+ b25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAADwBAAAABg8AAAApw4RuZGVybiBkZXIg
+ Wm9vbS1TdHVmZSBkZXMgUERGLURva3VtZW50cy4FCwAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJ
+ dGVtSW1hZ2VPcHRpb25zBQAAAAhJbWFnZVVyaQxTdmdJbWFnZVNpemUJQWxpZ25tZW50CkltYWdlSW5k
+ ZXgTSW1hZ2VUb1RleHREaXN0YW5jZQEEBAAAE1N5c3RlbS5EcmF3aW5nLlNpemUJAAAAJkRldkV4cHJl
+ c3MuVXRpbHMuVG9vbFRpcEltYWdlQWxpZ25tZW50AgAAAAgIAgAAAAYQAAAAAAXv////E1N5c3RlbS5E
+ cmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdodAAACAgJAAAAAAAAAAAAAAAF7v///yZEZXZFeHByZXNz
+ LlV0aWxzLlRvb2xUaXBJbWFnZUFsaWdubWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAD/////DgAAAAEO
+ AAAACwAAAAkQAAAAAe3////v////AAAAAAAAAAAB7P///+7///8AAAAA/////w4AAAAL
+
+
10%
@@ -1784,60 +1854,49 @@
sichtbare einpassen
-
-
- AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxOS4yLCBWZXJzaW9uPTE5LjIu
- My4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFlE
- ZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4zLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVi
- bGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29s
- VGlwBwAAAA1BbGxvd0h0bWxUZXh0EUZpeGVkVG9vbFRpcFdpZHRoCkl0ZW1zQ291bnQJaXRlbVR5cGUw
- BWl0ZW0wCWl0ZW1UeXBlMQVpdGVtMQQAAAQEBAQfRGV2RXhwcmVzcy5VdGlscy5EZWZhdWx0Qm9vbGVh
- bgMAAAABCCVEZXZFeHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAgAAACFEZXZFeHByZXNz
- LlV0aWxzLlRvb2xUaXBUaXRsZUl0ZW0CAAAAJURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29sVGlwSXRl
- bVR5cGUCAAAAHERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0ZW0CAAAAAgAAAAX8////H0RldkV4cHJl
- c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4BAAAAB3ZhbHVlX18ACAMAAAACAAAAAAIAAAAF+////yVEZXZF
- eHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAQAAAAd2YWx1ZV9fAAgCAAAAAQAAAAkGAAAA
- Afn////7////AAAAAAkIAAAADAkAAABRU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs
- dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhBQYAAAAhRGV2RXhwcmVz
- cy5VdGlscy5Ub29sVGlwVGl0bGVJdGVtBwAAAA1BbGxvd0h0bWxUZXh0BEljb24MSW1hZ2VPcHRpb25z
- CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl
- c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl
- c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA
- AAAAAAAAPAEAAAAGDAAAAARab29tBQgAAAAcRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRlbQcAAAAN
- QWxsb3dIdG1sVGV4dARJY29uDEltYWdlT3B0aW9ucwpMZWZ0SW5kZW50CE1heFdpZHRoEk93bmVyQWxs
- b3dIdG1sVGV4dARUZXh0BAQEAAAAAR9EZXZFeHByZXNzLlV0aWxzLkRlZmF1bHRCb29sZWFuAwAAABNT
- eXN0ZW0uRHJhd2luZy5JY29uCQAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJdGVtSW1hZ2VPcHRp
- b25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAADwBAAAABg8AAAApw4RuZGVybiBkZXIg
- Wm9vbS1TdHVmZSBkZXMgUERGLURva3VtZW50cy4FCwAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJ
- dGVtSW1hZ2VPcHRpb25zBQAAAAhJbWFnZVVyaQxTdmdJbWFnZVNpemUJQWxpZ25tZW50CkltYWdlSW5k
- ZXgTSW1hZ2VUb1RleHREaXN0YW5jZQEEBAAAE1N5c3RlbS5EcmF3aW5nLlNpemUJAAAAJkRldkV4cHJl
- c3MuVXRpbHMuVG9vbFRpcEltYWdlQWxpZ25tZW50AgAAAAgIAgAAAAYQAAAAAAXv////E1N5c3RlbS5E
- cmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdodAAACAgJAAAAAAAAAAAAAAAF7v///yZEZXZFeHByZXNz
- LlV0aWxzLlRvb2xUaXBJbWFnZUFsaWdubWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAD/////DgAAAAEO
- AAAACwAAAAkQAAAAAe3////v////AAAAAAAAAAAB7P///+7///8AAAAA/////w4AAAAL
-
-
BarButtonItem1
- 533, 134
+ 1053, 95
- 806, 134
+ 142, 134
- 1061, 134
+ 290, 134
- 17, 173
+ 439, 134
- 327, 173
+ 749, 134
- 632, 173
+ 1054, 134
+
+ Datei
+
+
+ Aktionen
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAEluZm87bRIthgAAAVxJREFUWEfF
+ l7FxwzAMRT2Bq4yjPp1nyAAZxNu4dZkt0rnLCm4ZPF+gg5LPCLJko3h3Ovn/T5gCSWnXWitF3nwm48Uw
+ DHPsjYNxNM7Gxbj+wDX3+A0NWpUxsqSAF+Pd+DBaErR48KrMdAGvxslQg2TAS8af7EwBb8anoYKXQAZZ
+ k/y5AjB8GSrwHsiaFPFfAUzZFv/8N2SOj6NXAE2z5pnPQfatMXsF0LnKuCWMIQtg7aaXmvuCX+oEjLF3
+ XwxgA1EGifuCX+o6HNwXA9jFlFjivuCXug5H98UAtlIllrgv+KWuw9l9MYD9XIkl7gt+qetwcV8M4FBR
+ Yon7gl/qOlzdFwPKCyh/BOVNWL4MF21EK5EbUflWDOnDyH3BL3WC7mEE5ccxlL6QOKWvZA6GLWaCjMng
+ kCkAmLI1PYF3nPZItgCgaejc9BI10OK5NZxiSQHOYz/NqpA3n0fbfQM/tJcKTygMggAAAABJRU5ErkJg
+ gg==
+
+
+
+ Information
+
RibbonPage2
diff --git a/app/DD_PM_WINDREAM/frmValidator.vb b/app/DD_PM_WINDREAM/frmValidator.vb
index 3bb179e..f098dc2 100644
--- a/app/DD_PM_WINDREAM/frmValidator.vb
+++ b/app/DD_PM_WINDREAM/frmValidator.vb
@@ -56,6 +56,7 @@ Public Class frmValidator
Private _dependingColumn_in_action As Boolean = False
Private _SetControlValue_in_action As Boolean = False
Private DTCONTROLS As DataTable
+ Private DTGRID_COLUMNS_WITH_SQL As DataTable
Private DTGRID_COLUMNS As DataTable
Private DTGRID_COLUMNS_TEXTBOX As DataTable
Private DTVWCONTROL_INDEX As DataTable
@@ -129,7 +130,7 @@ Public Class frmValidator
TBPM_PROFILE_FINAL_INDEXINGTableAdapter.Connection.ConnectionString = CONNECTION_STRING
TBPM_PROFILETableAdapter.Connection.ConnectionString = CONNECTION_STRING
TBPM_KONFIGURATIONTableAdapter.Connection.ConnectionString = CONNECTION_STRING
- TBPM_CONTROL_TABLETableAdapter.Connection.ConnectionString = CONNECTION_STRING
+
_step = 2
Dim oSQL = $"SELECT * FROM VWPM_CONTROL_INDEX WHERE PROFIL_ID = {CURRENT_ProfilGUID} ORDER BY Y_LOC, X_LOC"
DTVWCONTROL_INDEX = ClassDatabase.Return_Datatable(oSQL)
@@ -137,7 +138,6 @@ Public Class frmValidator
_step = 3
TBDD_CONNECTIONTableAdapter.Fill(DD_DMSLiteDataSet.TBDD_CONNECTION)
_step = 4
- TBPM_CONTROL_TABLETableAdapter.FillAll(DD_DMSLiteDataSet.TBPM_CONTROL_TABLE)
LOGGER.Debug("Profile Data loaded")
Catch ex As Exception
@@ -654,10 +654,12 @@ Public Class frmValidator
pnldesigner.Controls.Clear()
Dim oSQL = $"SELECT [dbo].[FNPM_LANGUAGE_CONTROL_TEXT] (NAME,'{USER_LANGUAGE}',CTRL_TYPE,CTRL_TEXT) CTRL_CAPTION_LANG, * FROM TBPM_PROFILE_CONTROLS WHERE PROFIL_ID = {CURRENT_ProfilGUID} ORDER BY Y_LOC, X_LOC"
DTCONTROLS = ClassDatabase.Return_Datatable(oSQL)
- oSQL = $"SELECT T1.GUID As CONTROL_ID, T1.PROFIL_ID, T.SQL_COMMAND, T.SPALTENNAME from TBPM_CONTROL_TABLE T, TBPM_PROFILE_CONTROLS T1 WHERE T.CONTROL_ID = T1.GUID AND T1.PROFIL_ID = {CURRENT_ProfilGUID} AND LEN(T.SQL_COMMAND) > 0 AND T.LOAD_AFT_LOAD_CONTROL = 0"
+ oSQL = $"SELECT T1.GUID As CONTROL_ID, T1.PROFIL_ID, T.SQL_COMMAND, T.SPALTENNAME from TBPM_CONTROL_TABLE T, TBPM_PROFILE_CONTROLS T1 WHERE T.CONTROL_ID = T1.GUID AND T1.PROFIL_ID = {CURRENT_ProfilGUID} AND LEN(T.SQL_COMMAND) > 0 AND T.LOAD_AFT_LOAD_CONTROL = 0 ORDER BY T.SEQUENCE"
+ DTGRID_COLUMNS_WITH_SQL = ClassDatabase.Return_Datatable(oSQL)
+ oSQL = $"SELECT T.* from TBPM_CONTROL_TABLE T, TBPM_PROFILE_CONTROLS T1 WHERE T.CONTROL_ID = T1.GUID AND T1.PROFIL_ID = {CURRENT_ProfilGUID} ORDER BY T.SEQUENCE"
DTGRID_COLUMNS = ClassDatabase.Return_Datatable(oSQL)
- oSQL = $"SELECT T1.GUID As CONTROL_ID, T1.PROFIL_ID, T.SQL_COMMAND, T.SPALTENNAME from TBPM_CONTROL_TABLE T, TBPM_PROFILE_CONTROLS T1 WHERE T.CONTROL_ID = T1.GUID AND T1.PROFIL_ID = {CURRENT_ProfilGUID} AND LEN(T.SQL_COMMAND) > 0 AND T.LOAD_AFT_LOAD_CONTROL = 1"
+ oSQL = $"SELECT T1.GUID As CONTROL_ID, T1.PROFIL_ID, T.SQL_COMMAND, T.SPALTENNAME from TBPM_CONTROL_TABLE T, TBPM_PROFILE_CONTROLS T1 WHERE T.CONTROL_ID = T1.GUID AND T1.PROFIL_ID = {CURRENT_ProfilGUID} AND LEN(T.SQL_COMMAND) > 0 AND T.LOAD_AFT_LOAD_CONTROL = 1 ORDER BY T.SEQUENCE"
DTGRID_COLUMNS_TEXTBOX = ClassDatabase.Return_Datatable(oSQL)
Dim oCount As Integer = 0
@@ -913,11 +915,21 @@ Public Class frmValidator
oMyControl = ClassControlCreator.CreateExisingCheckbox(oControlRow, False)
Case "TABLE"
- Dim columns As List(Of DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow) = (From r As DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow In DD_DMSLiteDataSet.TBPM_CONTROL_TABLE
- Where r.CONTROL_ID = oControlRow.Item("GUID")
- Select r).ToList()
+ 'Dim columns As List(Of DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow) = (From r As DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow In DD_DMSLiteDataSet.TBPM_CONTROL_TABLE
+ ' Where r.CONTROL_ID = oControlRow.Item("GUID")
+ ' Select r).ToList()
- Dim oGrid = ClassControlCreator.CreateExistingGridControl(oControlRow, columns, False)
+ Dim oFilteredDatatable As DataTable = DTGRID_COLUMNS.Clone()
+ Dim oExpression = $"CONTROL_ID = {oControlRow.Item("GUID")}"
+ DTGRID_COLUMNS.Select(oExpression, "SEQUENCE").CopyToDataTable(oFilteredDatatable, LoadOption.PreserveChanges)
+ If oFilteredDatatable.Rows.Count >= 1 Then
+ LOGGER.Debug($"We got a definition for DTGRID_COLUMNS!!")
+ Else
+ Continue For
+ End If
+
+
+ Dim oGrid = ClassControlCreator.CreateExistingGridControl(oControlRow, oFilteredDatatable, False)
AddHandler oGrid.ProcessGridKey, Sub(ByVal _sender As Object, ByVal e As KeyEventArgs)
@@ -1224,7 +1236,7 @@ Public Class frmValidator
oREsult = ClassDatabase.Execute_non_Query(Override_SQLCommand)
End If
If oREsult = True Then
- StatusLabel("Refreshed single control")
+ SetStatusLabel("Refreshed single control", "Yellow")
FillIndexValues(False)
Else
MsgBox("Unexpected error in Button Refresh_Controls - Check Your log!", MsgBoxStyle.Exclamation, ADDITIONAL_TITLE)
@@ -1248,7 +1260,7 @@ Public Class frmValidator
Try
Dim CONTROL_ID = DirectCast(dgv.Tag, ClassControlCreator.ControlMetadata).Guid ' VWPM_CONTROL_INDEXTableAdapter.cmdGetControlID(CURRENT_ProfilGUID, dgv.Name)
Dim sql = String.Format("select NAME,CONNECTION_ID,SQL_UEBERPRUEFUNG FROM TBPM_PROFILE_CONTROLS WHERE PROFIL_ID = {0} And SQL_UEBERPRUEFUNG Like '%{1}%'", CURRENT_ProfilGUID, dgv.Name)
- Dim DT As DataTable = ClassDatabase.Return_Datatable(sql)
+ Dim DT As DataTable = ClassDatabase.Return_Datatable(sql)
If Not IsNothing(DT) And DT.Rows.Count > 0 Then
For Each ROW As DataRow In DT.Rows
Try
@@ -1561,14 +1573,14 @@ Public Class frmValidator
End If
End Sub
Private Sub LookupControl_DependingColumn(LookupControl As LookupControl2, SelectedValues As List(Of String))
- Dim oSQLColumnDatatable As DataTable = DTGRID_COLUMNS.Clone()
+ Dim oSQLColumnDatatable As DataTable = DTGRID_COLUMNS_WITH_SQL.Clone()
Dim oExpression = $"SQL_COMMAND like '%#CTRL#{LookupControl.Name}%'"
- DTGRID_COLUMNS.Select(oExpression).CopyToDataTable(oSQLColumnDatatable, LoadOption.PreserveChanges)
+ DTGRID_COLUMNS_WITH_SQL.Select(oExpression).CopyToDataTable(oSQLColumnDatatable, LoadOption.PreserveChanges)
If oSQLColumnDatatable.Rows.Count > 0 Then
For Each oRow As DataRow In oSQLColumnDatatable.Rows
- Dim oDEPENDING_GUID = DTGRID_COLUMNS.Rows(0).Item("CONTROL_ID")
- Dim oDEPENDING_COLUMN = DTGRID_COLUMNS.Rows(0).Item("SPALTENNAME")
- Dim oSqlCommand = DTGRID_COLUMNS.Rows(0).Item("SQL_COMMAND")
+ Dim oDEPENDING_GUID = DTGRID_COLUMNS_WITH_SQL.Rows(0).Item("CONTROL_ID")
+ Dim oDEPENDING_COLUMN = DTGRID_COLUMNS_WITH_SQL.Rows(0).Item("SPALTENNAME")
+ Dim oSqlCommand = DTGRID_COLUMNS_WITH_SQL.Rows(0).Item("SQL_COMMAND")
If _dependingColumn_in_action = True Then
Exit Sub
End If
@@ -2563,83 +2575,7 @@ Public Class frmValidator
End Try
- Case "System.Windows.Forms.DataGridView"
- oControlType = "DataGridView"
- Dim dgv As DataGridView = oControl
- If oSourceIndexName = "" Then
- MsgBox("Attention wrong configuration:" & vbNewLine & "for control " & oControl.Name & " no INDEX configured!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical, ADDITIONAL_TITLE)
- Exit For
- End If
- If oSourceIndexName Is Nothing = False Then
- If oLoadIndex = False Then
- LOGGER.Debug("Indexwert soll nicht geladen werden.")
- Exit Select
- End If
- LOGGER.Debug($"getting wmValue for Index {oSourceIndexName}...")
- Dim wertWD = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride)
- If wertWD Is Nothing = False Then
- 'Es wird gegen ein Vektorfeld nachindexiert
- If wertWD.GetType.ToString.Contains("System.Object") Then
- Select Case oTyp
- 'Tabellendarstellung
- Case "TABLE"
-
- Dim dt As DataTable = ClassDatabase.Return_Datatable($"SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = {oControlId} ORDER BY [SEQUENCE]")
- Dim SpaltenWerte As String()
- LOGGER.Debug($"{dt.Rows.Count} Columns configured for control {oControlId}.")
- If dt.Rows.Count > 1 Then
-
- For Each Zeile As Object In wertWD
- LOGGER.Debug($"vektorrow Value {Zeile.ToString}...")
- SpaltenWerte = Split(Zeile, Delimiter)
- Select Case dt.Rows.Count
- Case 1
- dgv.Rows.Add(New String() {Zeile.ToString})
- Case 2
- If SpaltenWerte.Length = 2 Then
- dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1)})
- Else
- dgv.Rows.Add(New String() {SpaltenWerte(0), ""})
- End If
- Case 3
- If SpaltenWerte.Length = 3 Then
- dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), SpaltenWerte(2)})
- ElseIf SpaltenWerte.Length = 2 Then
- dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), ""})
- Else
- dgv.Rows.Add(New String() {SpaltenWerte(0), "", ""})
- End If
- Case 4
- If SpaltenWerte.Length = 4 Then
- dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), SpaltenWerte(2), SpaltenWerte(3)})
- ElseIf SpaltenWerte.Length = 3 Then
- dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), SpaltenWerte(2), ""})
- ElseIf SpaltenWerte.Length = 2 Then
- dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), "", ""})
- Else
- dgv.Rows.Add(New String() {SpaltenWerte(0), "", "", ""})
- End If
-
- End Select
- Next
- End If
-
- Case Else
- 'es handelt sich um ein einfaches Vektorfeld mit einem Wert
- For Each obj As Object In wertWD
- If obj Is Nothing = False Then
- dgv.Rows.Add(New String() {obj.ToString})
-
- End If
-
- Next
- End Select
-
-
- End If
- End If
- End If
Case "DevExpress.XtraGrid.GridControl"
oControlType = "DevExpress.XtraGrid.GridControl"
Dim oMyGridControl As GridControl = oControl
@@ -2664,8 +2600,8 @@ Public Class frmValidator
Select Case oTyp
'Tabellendarstellung
Case "TABLE"
- Dim dt As DataTable = ClassDatabase.Return_Datatable($"SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = {oControlId} ORDER BY [SEQUENCE]")
- Dim oColCount = dt.Rows.Count
+ Dim oDTColumnsPerDevExGrid As DataTable = ClassDatabase.Return_Datatable($"SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = {oControlId} ORDER BY [SEQUENCE]")
+ Dim oColCount = oDTColumnsPerDevExGrid.Rows.Count
Dim oColValuesfromSource As String()
LOGGER.Debug($"DevExpressGrid: {oColCount} Columns configured for control {oControlId}.")
If oColCount >= 1 Then
@@ -3667,7 +3603,6 @@ Public Class frmValidator
Dim oRegexMessage As String = NotNull(dr.Item("REGEX_MESSAGE_DE"), String.Empty)
oControlName = dr.Item("CTRL_NAME")
Dim oOVERWRITE_DATA = dr.Item("OVERWRITE_DATA")
- Dim oPreventMultipleValues = dr.Item("VKT_PREVENT_MULTIPLE_VALUES")
'Nur wenn der Name der Zeile entspricht und der Index READ_ONLY FALSE ist
If dr.Item("CTRL_NAME") = oControl.Name And (oIsReadOnly = False Or oSQLCheckCommand <> "") And oIndexName <> "DD PM-ONLY FOR DISPLAY" Then
@@ -4335,21 +4270,21 @@ Public Class frmValidator
'Das Array anpassen
ReDim Preserve myVektorArr(ZeilenGrid)
- Dim oValueList As New List(Of String)
+ Dim oValueList As New List(Of String)
- For Each item In row.ItemArray
- item = NotNull(item, String.Empty)
- If TypeOf item IsNot String Then item.ToString()
- oValueList.Add(item)
- Next
+ For Each item In row.ItemArray
+ item = NotNull(item, String.Empty)
+ If TypeOf item IsNot String Then item.ToString()
+ oValueList.Add(item)
+ Next
- str = String.Join(Delimiter, oValueList.ToArray)
+ str = String.Join(Delimiter, oValueList.ToArray)
- 'Den Wert im Array speichern
- myVektorArr(ZeilenGrid) = str
- ZeilenGrid += 1
- 'End If
- Case Else
+ 'Den Wert im Array speichern
+ myVektorArr(ZeilenGrid) = str
+ ZeilenGrid += 1
+ 'End If
+ Case Else
' MsgBox(row.Cells(0).Value.GetType.ToString)
If row.Item(0) Is Nothing = False Then
'Das Array anpassen
@@ -4688,8 +4623,13 @@ Public Class frmValidator
End Sub
- Sub StatusLabel(infotext As String)
+ Sub SetStatusLabel(infotext As String, Optional pColor As String = "")
bsiInformation.Caption = infotext & " " & Now.ToString
+ If pColor <> String.Empty Then
+ bsiInformation.ItemAppearance.Normal.BackColor = System.Drawing.Color.FromName(pColor)
+ Else
+ bsiInformation.ItemAppearance.Normal.BackColor = Color.Transparent
+ End If
End Sub
Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemFileView.ItemClick
@@ -4743,8 +4683,7 @@ Public Class frmValidator
Catch ex As Exception
End Try
-
- StatusLabel("All Data refreshed")
+ SetStatusLabel("All Data refreshed", "Yellow")
End Sub
Private Sub bbtniNext_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtniNext.ItemClick
@@ -4762,4 +4701,18 @@ Public Class frmValidator
load_viewer()
End Sub
+
+ Private Sub BbtnItm_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BbtnItm.ItemClick
+ Dim oRESULT As String
+ If USER_LANGUAGE = "de-DE" Then
+ oRESULT = "Eingaben gespeichert"
+ Else
+ oRESULT = "Eingaben gespeichert"
+ End If
+ If Check_UpdateIndexe() = False Then
+ SetStatusLabel($"Data saved", "LimeGreen")
+ Else
+ SetStatusLabel($"Error while saving data!", "Red")
+ End If
+ End Sub
End Class
\ No newline at end of file