This commit is contained in:
SchreiberM 2020-01-15 14:48:46 +01:00
parent 9582091c6d
commit 1f6c197b7f
699 changed files with 516723 additions and 7912 deletions

View File

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="DD_Record_Organizer.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="DD_Record_Organizer.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
</configSections>
<connectionStrings>
<add name="DD_Record_Organizer.My.MySettings.DD_DMSConnectionString"
connectionString="Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=ddd"
providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
</startup>
<userSettings>
<DD_Record_Organizer.My.MySettings>
<setting name="WD_ENTITYIMP_EXCLUDE" serializeAs="String">
<value>*.db</value>
</setting>
<setting name="WD_ENTITYIMP_FILTER" serializeAs="String">
<value>*.*</value>
</setting>
<setting name="WD_ENTITYIMP_IMPPATH" serializeAs="String">
<value />
</setting>
<setting name="WD_ENTITYIMP_TARGETPATH" serializeAs="String">
<value />
</setting>
<setting name="WD_ENTITYIMP_SAFETYPATH" serializeAs="String">
<value />
</setting>
<setting name="WD_ENTITYIMP_OBJECTTYPE" serializeAs="String">
<value />
</setting>
<setting name="WD_INDEXDOKART_SAVE" serializeAs="String">
<value />
</setting>
<setting name="User_Calendar_isChild" serializeAs="String">
<value>True</value>
</setting>
<setting name="User_DesignPanels_areChild" serializeAs="String">
<value>True</value>
</setting>
<setting name="Constructor_DetailsSplitter" serializeAs="String">
<value>665</value>
</setting>
<setting name="User_InBoxScan_NotinFront" serializeAs="String">
<value>False</value>
</setting>
<setting name="TBPMO_RIGHT_GROUPDataGridView" serializeAs="String">
<value />
</setting>
<setting name="frmRecordViewSplitter" serializeAs="String">
<value>332</value>
</setting>
<setting name="TBPMO_RIGHT_USERDataGridView" serializeAs="String">
<value />
</setting>
<setting name="UserDocIDIndexname" serializeAs="String">
<value>Dokument-ID</value>
</setting>
</DD_Record_Organizer.My.MySettings>
</userSettings>
<applicationSettings>
<DD_Record_Organizer.My.MySettings>
<setting name="windreamGruppe" serializeAs="String">
<value>sDigital Data - windream-Benutzer</value>
</setting>
</DD_Record_Organizer.My.MySettings>
</applicationSettings>
</configuration>

View File

@ -0,0 +1,16 @@
Namespace My
' Für MyApplication sind folgende Ereignisse verfügbar:
'
' Startup: Wird beim Starten der Anwendung noch vor dem Erstellen des Startformulars ausgelöst.
' Shutdown: Wird nach dem Schließen aller Anwendungsformulare ausgelöst. Dieses Ereignis wird nicht ausgelöst, wenn die Anwendung nicht normal beendet wird.
' UnhandledException: Wird ausgelöst, wenn in der Anwendung eine unbehandelte Ausnahme auftritt.
' StartupNextInstance: Wird beim Starten einer Einzelinstanzanwendung ausgelöst, wenn diese bereits aktiv ist.
' NetworkAvailabilityChanged: Wird beim Herstellen oder Trennen der Netzwerkverbindung ausgelöst.
Partial Friend Class MyApplication
Private Sub MyApplication_StartupNextInstance(sender As Object, e As ApplicationServices.StartupNextInstanceEventArgs) Handles Me.StartupNextInstance
ClassJumpRecord.ParseArgs()
End Sub
End Class
End Namespace

View File

@ -0,0 +1,19 @@
Imports System.ComponentModel
Public Class ClassAsyncNodeBuild
Private DTNODES As DataTable
Private ImgList As ImageList
Public WithEvents bw As BackgroundWorker
Public newTreeview As TreeView
Public Sub New(DT_TREEVIEW_NODES As DataTable, TREEVIEW_IMAGELIST As ImageList)
Me.bw = New BackgroundWorker()
bw.WorkerReportsProgress = False
bw.WorkerSupportsCancellation = False
Me.DTNODES = DT_TREEVIEW_NODES
Me.ImgList = TREEVIEW_IMAGELIST
End Sub
Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles bw.DoWork
Me.newTreeview = ClassNodeNavigation.CreateTreeViewNodes(DTNODES, ImgList)
End Sub
End Class

View File

@ -0,0 +1,15 @@
Imports System.ComponentModel
Public Class ClassAsyncReturnDT
Private sql As String, comment As String
Public WithEvents bw As BackgroundWorker
Public dt As DataTable
Public Sub New(sqlCommand As String, Comment As String)
bw = New BackgroundWorker()
bw.WorkerReportsProgress = False
bw.WorkerSupportsCancellation = False
Me.sql = sqlCommand
End Sub
Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles bw.DoWork
Me.dt = ClassDatabase.Return_Datatable(Me.sql)
End Sub
End Class

View File

@ -0,0 +1,18 @@
Imports System.ComponentModel
Public Class ClassAsyncSQL
Private sql As String
Public WithEvents bw As BackgroundWorker
Public dt As DataTable
Public Sub New(sqlCommand As String)
Me.bw = New BackgroundWorker()
bw.WorkerReportsProgress = False
bw.WorkerSupportsCancellation = False
Me.sql = sqlCommand
End Sub
Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles bw.DoWork
Me.dt = ClassDatabase.Return_Datatable(Me.sql, True)
End Sub
End Class

View File

@ -0,0 +1,138 @@
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Drawing
Imports System.Drawing.Imaging
Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraGrid.Blending
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraGrid.Views.Grid.ViewInfo
Public Class ClassBackgroundHelper
Private _blendingComponent As XtraGridBlending
Private _originalImage As Bitmap
Private _grid As GridView
Private _pictureAlignment As ContentAlignment
Public Property Image() As Bitmap
Get
Return _originalImage
End Get
Set(value As Bitmap)
_originalImage = value
GenerateBackgroundImage()
End Set
End Property
Public Property PictureAlignment() As ContentAlignment
Get
Return _pictureAlignment
End Get
Set(value As ContentAlignment)
_pictureAlignment = value
GenerateBackgroundImage()
End Set
End Property
Public Sub New(grid As GridView, image As Bitmap, Optional alignment As ContentAlignment = ContentAlignment.BottomRight)
_grid = grid
InitializingBlendingComponent()
_originalImage = image
_grid.GridControl.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center
PictureAlignment = alignment
AddHandler _grid.GridControl.Resize, AddressOf GridControl_Resize
GenerateBackgroundImage()
End Sub
Private Sub GridControl_Resize(sender As Object, e As EventArgs)
GenerateBackgroundImage()
End Sub
Public Shared Function SetImgageOpacity(ByVal imgPic As Image, ByVal imgOpac As Double) As Image
Dim bmpPic As New Bitmap(imgPic.Width, imgPic.Height)
Dim gfxPic As Graphics = Graphics.FromImage(bmpPic)
Dim cmxPic As New ColorMatrix()
Dim iaPic As New ImageAttributes()
cmxPic.Matrix33 = imgOpac
iaPic.SetColorMatrix(cmxPic, ColorMatrixFlag.[Default], ColorAdjustType.Bitmap)
gfxPic.DrawImage(imgPic, New Rectangle(0, 0, bmpPic.Width, bmpPic.Height), 0, 0, imgPic.Width, imgPic.Height, GraphicsUnit.Pixel, iaPic)
gfxPic.Dispose()
iaPic.Dispose()
Return bmpPic
End Function
Private Sub GenerateBackgroundImage()
Try
Dim gvInfo As GridViewInfo = TryCast(_grid.GetViewInfo(), GridViewInfo)
Dim _processedImage As New Bitmap(gvInfo.ViewRects.Client.Width + 1, gvInfo.ViewRects.Client.Height + 1)
Using g As Graphics = Graphics.FromImage(_processedImage)
Dim p As Point = CalculateImageLocation(_originalImage.Width, _originalImage.Height, gvInfo, _pictureAlignment)
Dim transparentImage As Bitmap = SetImgageOpacity(_originalImage, 0.5)
g.DrawImage(transparentImage, p)
g.Save()
End Using
_grid.GridControl.BackgroundImage = _processedImage
Catch ex As Exception
ClassLogger.Add("Unexpected Error in GenerateBackgroundImage: " & ex.Message)
End Try
End Sub
Private Function CalculateImageLocation(imageWidth As Integer, imageHeight As Integer, gvInfo As GridViewInfo, alignment As ContentAlignment) As Point
Try
Dim location As Point = Point.Empty
Dim rect As Rectangle = gvInfo.ViewRects.Rows
Dim indicatorWidth As Integer = gvInfo.ViewRects.IndicatorWidth
Dim vScrollSize As Integer = If(gvInfo.VScrollBarPresence = ScrollBarPresence.Visible, 20, 0)
Dim hSctollSize As Integer = If(gvInfo.HScrollBarPresence = ScrollBarPresence.Visible, 20, 0)
Select Case alignment
Case ContentAlignment.BottomCenter
location.Offset((rect.Width / 2) - (imageWidth / 2), rect.Bottom - imageHeight - hSctollSize)
Exit Select
Case ContentAlignment.BottomLeft
location.Offset(indicatorWidth, rect.Bottom - imageHeight - hSctollSize)
Exit Select
Case ContentAlignment.BottomRight
location.Offset(rect.Right - imageWidth - vScrollSize, rect.Bottom - imageHeight - hSctollSize)
Exit Select
Case ContentAlignment.MiddleCenter
location.Offset((rect.Width / 2) - (imageWidth / 2), (rect.Height / 2) - (imageHeight / 2))
Exit Select
Case ContentAlignment.MiddleLeft
location.Offset(indicatorWidth, (rect.Height / 2) - (imageHeight / 2))
Exit Select
Case ContentAlignment.MiddleRight
location.Offset(rect.Width - imageWidth - vScrollSize, (rect.Height / 2) - (imageHeight / 2))
Exit Select
Case ContentAlignment.TopCenter
location.Offset((rect.Width / 2) - (imageWidth / 2), rect.Top)
Exit Select
Case ContentAlignment.TopLeft
location.Offset(indicatorWidth, rect.Top)
Exit Select
Case ContentAlignment.TopRight
location.Offset(rect.Right - imageWidth - vScrollSize, rect.Top)
Exit Select
Case Else
Exit Select
End Select
Return location
Catch ex As Exception
ClassLogger.Add("Unexpected Error in CalculateImageLocation: " & ex.Message)
Return Nothing
End Try
End Function
Private Sub InitializingBlendingComponent()
_blendingComponent = New XtraGridBlending()
_blendingComponent.GridControl = _grid.GridControl
End Sub
End Class

View File

@ -0,0 +1,67 @@
Public Class ClassConstructors
Public Shared ConstructorsTuple_TreeView As Object
Public Shared Function Init_Tuple()
Dim ConstructTreeViewTuple = New Dictionary(Of Tuple(Of TreeView), Integer)()
Dim sql = String.Format("Select DISTINCT T.GUID, T2.ENTITY_ID FROM TBPMO_FORM_CONSTRUCTOR T, TBPMO_FORM_CONSTRUCTOR_DETAIL T1, " &
"TBPMO_STRUCTURE_NODES_CONFIGURATION T2 WHERE T.GUID = T1.CONSTRUCT_ID And T1.FORM_ID = T2.ENTITY_ID " &
"And T.GUID In (Select CONSTRUCT_ID FROM TBPMO_CONSTRUCTOR_USER WHERE USER_ID = {0})", USER_GUID)
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, True)
For Each rowconstruct As DataRow In DT.Rows
Try
Dim sqlnodes = String.Format("select * from VWPMO_STRUCTURE_NODES where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", rowconstruct.Item(0))
Dim DTNODES As DataTable = ClassDatabase.Return_Datatable(sqlnodes, True)
Dim sqlimage = String.Format("select * from TBPMO_STRUCTURE_NODES_CONFIGURATION where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", rowconstruct.Item(0))
Dim DT_TREEVIEW_CONFIGURATION = ClassDatabase.Return_Datatable(sql)
Dim TREEVIEW_IMAGELIST = New ImageList
For Each row As DataRow In DT_TREEVIEW_CONFIGURATION.Rows
Try
Dim bimage = row.Item("NODE_IMAGE")
If Not IsDBNull(bimage) Then
Dim Node_image = ByteArrayToBitmap(bimage)
TREEVIEW_IMAGELIST.Images.Add(row.Item("GUID").ToString, Node_image) 'row.Item("GUID").ToString & "#" & row.Item("ENTITY_ID")
End If
Catch ex As Exception
End Try
Next
'Dim async As New ClassAsyncNodeBuild(DTNODES, TREEVIEW_IMAGELIST)
'async.bw.RunWorkerAsync()
'While async.bw.IsBusy
' Application.DoEvents()
'End While
Dim MyTreeview As TreeView = ClassNodeNavigation.CreateTreeViewNodes(DTNODES, TREEVIEW_IMAGELIST)
ConstructTreeViewTuple.Add(Tuple.Create(MyTreeview), rowconstruct.Item(0))
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Error in Adding TreeView to Dictionary: ")
End Try
Next
ConstructorsTuple_TreeView = ConstructTreeViewTuple
End Function
Public Shared Function Check_TreeViewLoaded(CONSTRUCTID As Integer)
Try
For Each constrid As Integer In ConstructorsTuple_TreeView.keys
If constrid = CONSTRUCTID Then
Return True
End If
Next
Return False
Catch ex As Exception
ClassLogger.Add("Error in Check_TreeViewLoaded: " & ex.Message, True)
Return False
End Try
End Function
End Class

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,590 @@
Public Class ClassControlCommands
' +++ Helper Functions +++
'Public Shared Function BoolToInt(bool As Boolean) As Integer
' ' Wandelt einen Boolean Wert in einen Int um
' Return IIf(bool, 1, 0)
'End Function
Public Shared Function ControlToTypeId(control As Control) As Integer
Dim CurrentType As String = control.GetType.ToString.ToUpper
Select Case True
Case CurrentType.Contains("LineLabel".ToUpper)
Return 15
Case CurrentType.Contains("Label".ToUpper)
Return 1
Case CurrentType.Contains("TextBox".ToUpper)
Return 2
Case CurrentType.Contains("ComboBox".ToUpper)
Return 3
Case CurrentType.Contains("DateTimePicker".ToUpper)
Return 4
Case CurrentType.Contains("DevExpress.XtraEditors.DateEdit".ToUpper)
Return 4
Case CurrentType.Contains("GroupBox".ToUpper)
Return 5
Case CurrentType.Contains("PictureBox".ToUpper)
Return 6
Case CurrentType.Contains("DataGridView".ToUpper)
Return 7
Case CurrentType.Contains("CheckBox".ToUpper)
Return 10
Case CurrentType.Contains("RadioButton".ToUpper)
Return 11
Case CurrentType.Contains("Button".ToUpper)
If control.Name.Contains("f_addappointment") Then
Return 8
ElseIf control.Name.Contains("f_addformdata") Then
Return 9
End If
Case CurrentType.Contains("DEVEXPRESS.XTRAGRID.GRIDCONTROL".ToUpper)
Return 14
Case CurrentType.Contains("CheckedListBoxControl".ToUpper)
Return 12
Case CurrentType.Contains("ListBoxControl".ToUpper)
Return 13
' Id 14 ist DataGridView Checkable - nicht verwendet
Case Else
Return -1
End Select
End Function
' +++ Public Functions +++
Public Shared Function GetParentRecordId(RecordId As Integer) As Integer
Try
Dim parentId = ClassDatabase.Execute_Scalar("SELECT RECORD1_ID FROM TBPMO_RECORD_CONNECT WHERE RECORD2_ID = " & RecordId, True)
If IsNothing(parentId) Then
Return 0
Else
Return parentId
End If
Catch ex As Exception
MsgBox("Error in GetFormId:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Function
Public Shared Function GetFormId(RecordId As Integer) As Integer
Try
Dim FormId = ClassDatabase.Execute_Scalar("SELECT FORM_ID FROM VWPMO_VALUES WHERE RECORD_ID = " & RecordId, True)
Return FormId
Catch ex As Exception
MsgBox("Error in GetFormId:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Function
Public Shared Function GetControlGuid(name As String)
Try
Dim sql = "SELECT GUID FROM TBPMO_CONTROL WHERE UPPER(NAME) = UPPER('" & name & "')"
Return ClassDatabase.Execute_Scalar(sql, True)
Catch ex As Exception
Return -1
End Try
End Function
Public Shared Function InsertControl(control As Control)
Try
Dim SQL As String
Dim NAME As String
Dim CONTROL_TYPE_ID As Integer
Dim PARENT_CONTROL_ID As Integer = 0
Dim DEFVALUE As String = ""
If (control.Parent.GetType().Name = "GroupBox") Then
Dim ParentID As Integer = GetControlID_for_Name(control.Parent.Name, CURRENT_ENTITY_ID)
PARENT_CONTROL_ID = ParentID
End If
NAME = control.Name
CONTROL_TYPE_ID = ControlToTypeId(control)
' SQL Befehl für CONTROL TABELLE
' SQL_COMMAND_1 auf leeren String setzen
SQL = $"INSERT INTO TBPMO_CONTROL (FORM_ID, CONTROL_TYPE_ID, DEFAULT_VALUE, NAME, COL_NAME, PARENT_CONTROL_ID, SQL_COMMAND_1) VALUES ({CURRENT_ENTITY_ID}, {CONTROL_TYPE_ID}, '', '{NAME}', '{NAME}', {PARENT_CONTROL_ID}, '')"
'If LogErrorsOnly = False Then ClassLogger.Add(SQL, True)
If ClassDatabase.Execute_non_Query(SQL) = True Then
SQL = "SELECT MAX(GUID) FROM TBPMO_CONTROL"
Dim GUID = ClassDatabase.Execute_Scalar(SQL)
Return InsertControlScreen(GUID, control, CURRENT_ENTITY_ID)
Else
Throw New Exception()
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in InsertControl: " & ex.Message, True)
MsgBox("Unexpected Error in InsertControl:" + vbNewLine + ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function InsertControlScreen(guid As Integer, ByRef control As Control, CURRENT_ENTITY_ID As Integer)
Try
Dim CurrentType As String = control.GetType.ToString
Dim SQL As String
Dim X_LOC, Y_LOC, WIDTH, HEIGHT As Integer
Dim CONTROL_TEXT As String
X_LOC = control.Location.X
Y_LOC = control.Location.Y
WIDTH = control.Width
HEIGHT = control.Height
CONTROL_TEXT = control.Text
'Dim TAB_INDEX
'SQL = "SELECT MAX(TAB_INDEX) FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID IN (SELECT GUID FROM TBPMO_CONTROL WHERE CURRENT_ENTITY_ID = " & CURRENT_ENTITY_ID & ")"
'TAB_INDEX = ClassDatabase.Execute_Scalar(SQL)
'If Not TAB_INDEX Is Nothing Then
' If IsDBNull(TAB_INDEX) Then
' TAB_INDEX = 1
' Else
' TAB_INDEX = CInt(TAB_INDEX) + 1
' End If
'Else
' TAB_INDEX = 1
'End If
SQL = "INSERT TBPMO_CONTROL_SCREEN (CONTROL_ID, SCREEN_ID, CONTROL_TEXT, X_LOC, Y_LOC, HEIGHT, WIDTH) VALUES (" & guid & ", 1, '" & CONTROL_TEXT & "', " & X_LOC & ", " & Y_LOC & ", " & HEIGHT & ", " & WIDTH & ")"
If ClassDatabase.Execute_non_Query(SQL) Then
' Die Guid in die Metadaten des Controls zurückschreiben
Dim metadata = DirectCast(control.Tag, ClassControlMetadata)
metadata.Id = guid
control.Tag = metadata
SQL = "SELECT MAX(GUID) FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = " & guid & " AND SCREEN_ID = " & CURRENT_SCREEN_ID
Dim ctrl_screen_Id = ClassDatabase.Execute_Scalar(SQL)
SQL = String.Format("INSERT INTO TBPMO_CONTROL_LANGUAGE (LANGUAGE_TYPE,CONTROL_SCREEN_ID,CAPTION,ADDED_WHO) VALUES ('{0}',{1},'{2}','{3}')", USER_LANGUAGE, ctrl_screen_Id, CONTROL_TEXT, USER_USERNAME)
ClassDatabase.Execute_non_Query(SQL)
Return True
Else
Throw New Exception()
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in InsertControlScreen: " & ex.Message, True)
MsgBox("Unexpected Error in InsertControlScreen (Adding ViewProperties:" + vbNewLine + ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function UpdateControlPosition(ByVal x As Integer, ByVal y As Integer, control As Control)
Try
Dim CONTROL_ID = GetControlID_for_Name(control.Name, CURRENT_ENTITY_ID)
'If (ParentIsGroupBox(control)) Then
' Console.WriteLine("Before:" & x & ":" & y)
' x = x - control.Parent.Location.X
' y = y - control.Parent.Location.Y
' Console.WriteLine("After:" & x & ":" & y)
'End If
Dim SQL = "UPDATE TBPMO_CONTROL_SCREEN SET X_LOC = " & x & ", Y_LOC = " & y & ", CHANGED_WHO = '" & USER_USERNAME & "' WHERE CONTROL_ID = " & CONTROL_ID
If ClassDatabase.Execute_non_Query(SQL) = True Then
Return True
Else
Throw New Exception()
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in UpdateControlPosition: " & ex.Message, True)
MsgBox("Unexpected Error in UpdateControlPosition:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function UpdateControl(control As Control, properties As Object)
Try
' Nach Typ den Update Befehl anpassen
Dim type As String = control.GetType.Name
Dim SQL As String
Dim NAME As String
Dim REQUIRED As Integer
Dim READ_ONLY As Integer
Dim SELECT_ONLY As Integer
Dim CHANGED_WHO As String = USER_USERNAME
Dim COL_NAME As String
Dim SQLCommand As String
Dim SQL_ENABLED_WHEN As String
Dim MULTILINE As Integer
Dim MASTER_DATA_ID As Integer
Dim DEFAULTVALUE As String
Dim FORMAT_TYPE As String
Dim SHOW_COLUMN As Integer
Dim STATIC_LIST As String
Dim VISIBLE As Integer
Dim TREE_VIEW As Integer
Dim AUTO_SUGGEST As Integer
' So sollte diese Funktion später mal aussehen :(
'Select Case type
' Case "TextBox"
' NAME = properties.Name
' MULTILINE = ClassConverter.BoolToInt(properties.Multiline)
' COL_NAME = ClassConverter.ToStringOrDefault(properties.ColumnTitle)
' DEFAULTVALUE = ClassConverter.ToStringOrDefault(properties.DefaultValue)
' SHOW_COLUMN = ClassConverter.BoolToInt(properties.ShowColumn)
' FORMAT_TYPE = properties.Format.ToString()
' REQUIRED = ClassConverter.BoolToInt(properties.IsRequired)
' READ_ONLY = ClassConverter.BoolToInt(properties.IsReadOnly)
' SQLCommand = ClassConverter.SQLValueToString(properties.SQLCommand)
'End Select
NAME = properties.Name
VISIBLE = BoolToInt(properties.Visible)
If propExists(properties, "Multiline") Then
MULTILINE = BoolToInt(properties.Multiline)
Else
MULTILINE = 0
End If
If propExists(properties, "AutoSuggest") Then
AUTO_SUGGEST = BoolToInt(properties.AutoSuggest)
Else
AUTO_SUGGEST = 0
End If
If propExists(properties, "ColumnTitle") Then
COL_NAME = properties.ColumnTitle
Else
COL_NAME = String.Empty
End If
If Not (type = "RadioButton" Or type = "CheckBox" Or type = "GroupBox") Then
TREE_VIEW = BoolToInt(properties.TreeView)
End If
If type = "RadioButton" Then
DEFAULTVALUE = properties.DefaultValue
ElseIf type = "CheckBox" Then
DEFAULTVALUE = properties.DefaultValue
ElseIf type = "CustomComboBox" Then
DEFAULTVALUE = properties.DefaultValue
ElseIf type = "DateEdit" Then
DEFAULTVALUE = ClassConverter.ToDateTimePickerOptionsOrDefault(properties.DefaultValue)
ElseIf type = "TextBox" Then
DEFAULTVALUE = properties.DefaultValue
End If
If propExists(properties, "ShowColumn") Then
SHOW_COLUMN = BoolToInt(properties.ShowColumn)
End If
If type = "TextBox" AndAlso propExists(properties, "Format") Then
FORMAT_TYPE = properties.Format.ToString
ElseIf type = "ComboBox" AndAlso propExists(properties, "Format") Then
FORMAT_TYPE = properties.Format.ToString
Else
FORMAT_TYPE = EnumFormatOptions.String.ToString
End If
If propExists(properties, "IsRequired") Then
REQUIRED = BoolToInt(properties.IsRequired)
Else
REQUIRED = BoolToInt(False)
End If
If propExists(properties, "IsReadOnly") Then
READ_ONLY = BoolToInt(properties.IsReadOnly)
Else
READ_ONLY = BoolToInt(False)
End If
If propExists(properties, "IsSelectOnly") Then
SELECT_ONLY = BoolToInt(properties.IsSelectOnly)
Else
SELECT_ONLY = BoolToInt(False)
End If
If propExists(properties, "SQLCommand") Then
Dim value As SQLValue = DirectCast(properties.SQLCommand, SQLValue)
SQLCommand = value.Value
'Maskieren von Hochkommata damit der Insert angenommen wird
If SQLCommand.Contains("'") Then
SQLCommand = SQLCommand.Replace("'", "''")
End If
Else
SQLCommand = String.Empty
End If
If propExists(properties, "EnabledWhen") Then
Dim value As SQLValue = DirectCast(properties.EnabledWhen, SQLValue)
SQL_ENABLED_WHEN = value.Value
If SQL_ENABLED_WHEN.Contains("'") Then
SQL_ENABLED_WHEN = SQL_ENABLED_WHEN.Replace("'", "''")
End If
Else
SQL_ENABLED_WHEN = String.Empty
End If
If propExists(properties, "StaticList") Then
Dim value As StaticListValue = DirectCast(properties.StaticList, StaticListValue)
STATIC_LIST = value.Value
Else
STATIC_LIST = String.Empty
End If
If propExists(properties, "MasterDataId") Then
MASTER_DATA_ID = properties.MasterDataId
Else
MASTER_DATA_ID = 0
End If
' If CURRENT_CONTROL_ID isn't equal to ID in Properties Window, make it equal
If CURRENT_CONTROL_ID <> properties.ID Then
CURRENT_CONTROL_ID = properties.ID
End If
SQL = $"UPDATE TBPMO_CONTROL
SET REQUIRED = {REQUIRED},
READ_ONLY = {READ_ONLY},
SHOW_COLUMN = {SHOW_COLUMN},
FORMAT_TYPE = '{FORMAT_TYPE}',
DEFAULT_VALUE = '{DEFAULTVALUE}',
NAME = '{NAME}',
SQL_COMMAND_1 = '{SQLCommand}',
SQL_COMMAND_2 = '{SQL_ENABLED_WHEN}',
CHANGED_WHO = '{CHANGED_WHO}',
COL_NAME = '{COL_NAME}',
MULTILINE = {MULTILINE},
MASTER_DATA_ID = {MASTER_DATA_ID},
STATIC_LIST = '{STATIC_LIST}',
VISIBLE = {VISIBLE},
TREE_VIEW = {TREE_VIEW},
SELECT_ONLY = {SELECT_ONLY},
AUTO_SUGGEST = {AUTO_SUGGEST}
WHERE GUID = {CURRENT_CONTROL_ID}"
If ClassDatabase.Execute_non_Query(SQL) = True Then
Return UpdateControlScreen(control, properties)
Else
Throw New Exception()
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in UpdateControl: " & ex.Message, True)
MsgBox("Unexpected Error in UpdateControl:" + vbNewLine + ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function UpdateControlScreen(control As Control, properties As Object)
Try
Dim SQL As String
Dim CurrentType As String = control.GetType.ToString
Dim X_LOC, Y_LOC As Integer
Dim HEIGHT, WIDTH As Integer
Dim CHANGED_WHO As String = USER_USERNAME
Dim CONTROL_TEXT As String
Dim TAB_INDEX As Integer
Dim TAB_STOP As Integer
Dim FONT_FAMILY As String
Dim FONT_COLOR As Integer
Dim FONT_SIZE As Integer
Dim FONT_STYLE As Integer
Dim BACK_COLOR As Integer
Dim HINT As String = properties.Hint
X_LOC = properties.Location.X
Y_LOC = properties.Location.Y
HEIGHT = properties.Size.Height
WIDTH = properties.Size.Width
If propExists(properties, "Font") AndAlso Not IsNothing(properties.Font) Then
Dim f As Font = properties.Font
FONT_FAMILY = f.FontFamily.Name
FONT_SIZE = CType(f.Size, Integer)
FONT_STYLE = CType(f.Style, Integer)
Else
FONT_FAMILY = "Segoe UI"
FONT_SIZE = 8
FONT_STYLE = 0
End If
If propExists(properties, "FontColor") Then
Dim c As Color = properties.FontColor
FONT_COLOR = ColorToInt(c)
Else
Dim c As Color = Color.Black
FONT_COLOR = ColorToInt(c)
End If
If propExists(properties, "TabIndex") Then
TAB_INDEX = properties.TabIndex
Else
TAB_INDEX = 0
End If
If propExists(properties, "TabStop") Then
TAB_STOP = BoolToInt(properties.TabStop)
Else
TAB_STOP = BoolToInt(False)
End If
If propExists(properties, "Caption") Then
CONTROL_TEXT = properties.Caption
Else
CONTROL_TEXT = String.Empty
End If
If propExists(properties, "BackColor") Then
BACK_COLOR = ColorToInt(properties.BackColor)
Else
BACK_COLOR = ColorToInt(SystemColors.Control)
End If
SQL = "UPDATE TBPMO_CONTROL_SCREEN SET TAB_INDEX = " & TAB_INDEX & ", TAB_STOP = " & TAB_STOP & ", X_LOC = " & X_LOC & ", Y_LOC = " & Y_LOC & ", HEIGHT = " & HEIGHT & ", WIDTH = " & WIDTH & ", CONTROL_TEXT = '" & CONTROL_TEXT & "', CHANGED_WHO = '" & CHANGED_WHO & "', FONT_COLOR = " & FONT_COLOR & ", FONT_SIZE = " & FONT_SIZE & ", FONT_STYLE = " & FONT_STYLE & ", FONT_FAMILY = '" & FONT_FAMILY & "' , BACK_COLOR = " & BACK_COLOR & " WHERE CONTROL_ID = " & CURRENT_CONTROL_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID
If ClassDatabase.Execute_non_Query(SQL) = True Then
Dim upd = String.Format("UPDATE TBPMO_CONTROL_LANGUAGE SET CAPTION = '{0}', HINT = '{1}' WHERE LANGUAGE_TYPE = '{2}' AND " & _
"CONTROL_SCREEN_ID = (SELECT GUID FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = " & _
CURRENT_CONTROL_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID & ")", CONTROL_TEXT, HINT, USER_LANGUAGE)
ClassDatabase.Execute_non_Query(upd)
If CurrentType.Contains("Button") Then
'If control.Tag = "ADDAPPOINTMENT" Then
If control.Name.Contains("f_addappointment") Then
Dim ControlId = properties.ID
Dim FromDateId, ToDateId As Integer
Dim SubjectString, Subject2String, PlaceString, DescString As String
If propExists(properties, "FromDate") And Not String.IsNullOrWhiteSpace(properties.FromDate) Then
FromDateId = GetControlID_for_Name(properties.FromDate, CURRENT_ENTITY_ID)
If FromDateId = -1 Then
Throw New Exception("Das Element für 'fromDate' mit dem Namen " & properties.FromDate & " existiert nicht!")
End If
End If
If propExists(properties, "ToDate") And Not String.IsNullOrWhiteSpace(properties.ToDate) Then
ToDateId = GetControlID_for_Name(properties.ToDate, CURRENT_ENTITY_ID)
If ToDateId = -1 Then
Throw New Exception("Das Element für 'ToDate' mit dem Namen " & properties.ToDate & " existiert nicht!")
End If
End If
If propExists(properties, "Subject") Then
SubjectString = properties.Subject
Else
SubjectString = String.Empty
End If
If propExists(properties, "Subject2") Then
Subject2String = properties.Subject2
Else
Subject2String = String.Empty
End If
If propExists(properties, "Place") Then
PlaceString = properties.Place
Else
PlaceString = String.Empty
End If
If propExists(properties, "Description") Then
DescString = properties.Description
Else
DescString = String.Empty
End If
ClassFunctionCommands.UpdateAddAppointmentFunction(ControlId, FromDateId, ToDateId, SubjectString, Subject2String, PlaceString, DescString)
ElseIf control.Name.Contains("f_addformdata") Then
'ElseIf control.Tag = "ADDFORMDATA" Then
Dim ControlId = properties.ID
Dim FormID, ScreenID As Integer
If propExists(properties, "FormID") And Not String.IsNullOrWhiteSpace(properties.FormID) Then
FormID = properties.FormID
End If
If propExists(properties, "ScreenID") And Not String.IsNullOrWhiteSpace(properties.ScreenID) Then
ScreenID = properties.ScreenID
End If
ClassFunctionCommands.UpdateAddFormDataFunction(ControlId, FormID, ScreenID)
End If
End If
Return True
Else
Throw New Exception()
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in UpdateControlScreen: " & ex.Message, True)
MsgBox("Unexpected Error in UpdateControlScreen:" + vbNewLine + ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function DeleteControl(ID As Integer)
Try
Dim del = "EXEC [dbo].[PRPMO_DELETE_CONTROL] " & ID.ToString
If ClassDatabase.Execute_non_Query(del) = True Then
Return True
Else
Return False
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Delete Control: " & ex.Message, True)
MsgBox("Unexpected Error in Delete Control:" + vbNewLine + ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function DeleteControlScreen(id As Integer)
Try
Dim SQL = "DELETE FROM TBPMO_CONTROL_LANGUAGE WHERE CONTROL_SCREEN_ID IN (SELECT GUID FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = " & id & ")"
If ClassDatabase.Execute_non_Query(SQL) = True Then
SQL = "DELETE FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = " & id
If ClassDatabase.Execute_non_Query(SQL) = True Then
Return True
Else
Throw New Exception()
End If
Else
Throw New Exception()
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in DeleteControlScreen: " & ex.Message, True)
MsgBox("Unexpected Error in DeleteControlScreen:" + vbNewLine + ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function DeleteControlValues(id As Integer)
Try
Dim SQL = "DELETE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = " & id
If ClassDatabase.Execute_non_Query(SQL) = True Then
Return True
Else
Throw New Exception()
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in DeleteControlValues: " & ex.Message, True)
MsgBox("Unexpected Error in DeleteControlValues:" + vbNewLine + ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function CTRL_EXISTSinPARENT(ctrlName As String, parent As Control) As Boolean
Dim bResult As Boolean = False
For Each elem As Control In parent.Controls
If elem.Name = ctrlName Then
bResult = True
Exit For
End If
Next
Return bResult
End Function
End Class

View File

@ -0,0 +1,973 @@
Imports DD_Record_Organizer.ClassDatabase
Imports DD_Record_Organizer.ClassControlBuilder
Imports DD_LIB_Standards
Imports System.Data.SqlClient
Public Class ClassControlCommandsUI
Private _CtrlBuilder As ClassControlBuilder
Private _AddAppointmentHandler As System.EventHandler
Private _AddFormDataHandler As System.EventHandler
Private _ContextMenuStrip As ContextMenuStrip
Private _isinsert As Boolean = False
Private _isedit As Boolean = False
Public Property IsInsert As Boolean
Get
Return _isinsert
End Get
Set(value As Boolean)
_isinsert = value
_CtrlBuilder.IsInsert = value
End Set
End Property
Public Property IsEdit As Boolean
Get
Return _isedit
End Get
Set(value As Boolean)
_isedit = value
_CtrlBuilder.IsEdit = value
End Set
End Property
''' <summary>
''' Erstellt eine neue Instanz der ClassControlCommandsUI Klasse
''' </summary>
''' <param name="ControlBuilder">Eine ControlBuilder Instanz</param>
''' <param name="AddAppointmentDelegate">Ein Delegate, der auf eine AddAppointment-Methode verweist, mit AddressOf verwenden</param>
''' <param name="AddFormDataDelegate">Ein Delegate, der auf eine AddFormData-Methode verweist, mit AddressOf verwenden</param>
''' <remarks></remarks>
Sub New(ControlBuilder As ClassControlBuilder, ContextMenuStrip As ContextMenuStrip, AddAppointmentDelegate As System.EventHandler) ', AddFormDataDelegate As System.EventHandler)
_CtrlBuilder = ControlBuilder
_ContextMenuStrip = ContextMenuStrip
_AddAppointmentHandler = AddAppointmentDelegate
' _AddFormDataHandler = AddFormDataDelegate
End Sub
Sub LoadControls(FormId As Integer)
_CtrlBuilder.ClearControls()
_CtrlBuilder.MasterPanel.SuspendLayout()
Dim sw As New SW("LoadControls")
'Dim SQL As String = String.Format("SELECT T.*, dbo.FNPMO_GET_CONTROL_CAPTION ('{2}', {3},T.CONTROL_ID) AS 'CAPTION' FROM VWPMO_CONTROL_SCREEN T WHERE T.SCREEN_ID = {0} AND T.FORM_ID = {1} AND T.CONTROL_VISIBLE = 1", CURRENT_SCREEN_ID, FormId, USER_LANGUAGE, CURRENT_SCREEN_ID)
Dim expression As String = String.Format("SCREEN_ID = {0} AND FORM_ID = {1} AND CONTROL_VISIBLE = 1", CURRENT_SCREEN_ID, FormId)
Dim DT As DataTable = ClassHelper.FILTER_DATATABLE(DT_VWPMO_CONTROL_SCREEN, expression, "") ' ClassDatabase.Return_Datatable(Sql, True)
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"), FormId)
parent = _CtrlBuilder.GetControlByName(parentname)
End If
Dim control As String
Select Case dr.Item("CTRLTYPE_ID")
Case 1 ' Label
_CtrlBuilder.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)
control = "Label - " & dr.Item("CONTROL_ID")
Case 2 ' TextBox
_CtrlBuilder.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)
control = "Text - " & dr.Item("CONTROL_ID")
Case 3 ' ComboBox
_CtrlBuilder.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)
Case 4 ' DateTimePicker
_CtrlBuilder.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)
control = "DatePicker - " & dr.Item("CONTROL_ID")
Case 5 ' GroupBox
_CtrlBuilder.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)
control = "GroupBox - " & dr.Item("CONTROL_ID")
Case 6 ' PictureBox
_CtrlBuilder.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)
Case 7 ' DataGridView
_CtrlBuilder.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)
control = "Datagridview - " & dr.Item("CONTROL_ID")
Case 10 ' Checkbox
Dim Checked As Boolean = False
'If IsDBNull(dr.Item("CONTROL_DEF_VALUE")) Then
' Checked = False
'Else
' Checked = StrToBool(dr.Item("CONTROL_DEF_VALUE"))
'End If
_CtrlBuilder.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)
control = "CheckBox - " & dr.Item("CONTROL_ID")
Case 8 ' Function AddAppointment
_CtrlBuilder.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)
AddHandler _CtrlBuilder.CurrentControl.Click, _AddAppointmentHandler
control = "Appointment - " & dr.Item("CONTROL_ID")
Case 9 ' Function AddFormData
_CtrlBuilder.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)
AddHandler _CtrlBuilder.CurrentControl.Click, _AddFormDataHandler
control = "AddFormData - " & dr.Item("CONTROL_ID")
Case 11 ' RadioButton
Dim Checked As Boolean = False
'If IsDBNull(dr.Item("CONTROL_DEF_VALUE")) Then
' Checked = False
'Else
' Checked = StrToBool(dr.Item("CONTROL_DEF_VALUE"))
'End If
_CtrlBuilder.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)
control = "Radiobutton - " & dr.Item("CONTROL_ID")
Case 12 'CheckedListBox
_CtrlBuilder.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)
control = "CheckedlistBox - " & dr.Item("CONTROL_ID")
Case 13 'CheckedListBox
_CtrlBuilder.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)
control = "Listbox - " & dr.Item("CONTROL_ID")
Case 14 'DataGridViewCheckable
_CtrlBuilder.AddDataGridViewCheckable(dr.Item("CONTROL_ID"),
dr.Item("CONTROL_NAME"),
dr.Item("CTRLSCR_X_LOC"),
dr.Item("CTRLSCR_Y_LOC"),
dr.Item("CTRLSCR_WIDTH"),
dr.Item("CTRLSCR_HEIGHT"),
False,
dr.Item("CTRLSCR_TAB_INDEX"),
dr.Item("CTRLSCR_TAB_STOP"),
dr.Item("CONTROL_READ_ONLY"),
dr.Item("CONTROL_REQUIRED"),
dr.Item("CONTROL_COL_NAME"),
parent)
control = "DataGridViewCheckable - " & dr.Item("CONTROL_ID")
Case 15 ' Line
_CtrlBuilder.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)
control = "Line - " & dr.Item("CONTROL_ID")
End Select
' ContextMenuStrip zuweisen
' MasterDataID im ContextMenuStrip Speichern
If dr.Item("CTRLSCR_MASTER_DATA_ID") <> 0 Then
_CtrlBuilder.CurrentControl.ContextMenuStrip = _ContextMenuStrip
' Tag wird für ControlId verwendet, master data id bei rechtsklick herausfinden
'_CtrlBuilder.CurrentControl.Tag = dr.Item("CTRLSCR_MASTER_DATA_ID")
End If
Next
sw.Done()
_CtrlBuilder.MasterPanel.ResumeLayout()
End Sub
Function DeleteRecord(RecordID As Integer)
Return ClassHelper.DeleteRecord(RecordID)
End Function
Function SaveRecord(RecordID As Integer, FormID As Integer, Optional foreignRecordID As Integer = 0) As String
Try
Dim ADDED_WHO As String = USER_USERNAME
If LogErrorsOnly = False Then ClassLogger.Add(" >> (SaveRecord) Update RecordID: " & RecordID, False)
If UpdateAllControls(FormID, RecordID, _CtrlBuilder.AllControls) = True Then
Return "Datensatz aktualisiert - " & Now
Else
Return "ERROR"
End If
'End If
Catch ex As Exception
MsgBox("Unexpected Error in SaveRecord: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Function
Private Sub InsertAllControls(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
For Each ctrl As Control In controls
Dim CONTROL_ID As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id 'GetControlID_for_Name(ctrl.Name, FormID)
Dim CONTROL_VALUE As String = Nothing
If TypeOf ctrl Is PictureBox Then
'Dim id As Integer = GetControlID_for_Name(ctrl.Name, FormID)
UpsertImage(CONTROL_ID, RecordID, ctrl.BackgroundImage)
Continue For
End If
' Control existiert
If CONTROL_ID <> -1 Then
CONTROL_VALUE = GetControlValue(ctrl)
End If
'If TypeName(ctrl).ToString = "DateEdit" Then
' CONTROL_VALUE = CDate(CONTROL_VALUE)
'End If
'If CONTROL_ID = 489 Then
' Console.WriteLine(TypeName(ctrl))
'End If
' Kein Bekanntes Control oder Groupbox
If IsNothing(CONTROL_VALUE) Then
If TypeOf ctrl Is GroupBox Then
InsertAllControls(FormID, RecordID, DirectCast(ctrl, GroupBox).Controls)
End If
Else
CreateControlProcedure(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID)
End If
Next
End Sub
Private Sub UpsertImage(ControlID As Integer, RecordID As Integer, image As Bitmap)
Dim existsSQL As String = "SELECT GUID FROM TBPMO_CONTROL_IMAGE WHERE CONTROL_ID = " & ControlID & " AND RECORD_ID = " & RecordID
Dim exists = ClassDatabase.Execute_Scalar(existsSQL)
If IsNothing(exists) Then
InsertImage(ControlID, RecordID, image)
Else
UpdateImage(ControlID, RecordID, image)
End If
End Sub
Private Sub InsertImage(ControlID As Integer, RecordID As Integer, image As Bitmap)
Try
Dim bimage() As Byte
Dim SQL As String = "INSERT INTO TBPMO_CONTROL_IMAGE (CONTROL_ID, RECORD_ID, IMG, ADDED_WHO) VALUES (@CONTROL_ID, @RECORD_ID, @IMG, @ADDED_WHO)"
Dim conn As New SqlClient.SqlConnection(MyConnectionString)
Dim cmd As New SqlClient.SqlCommand(SQL, conn)
If IsNothing(image) Then
DeleteImage(ControlID, RecordID)
Exit Sub
End If
bimage = BitmapToByteArray(image)
cmd.Parameters.Add("@CONTROL_ID", SqlDbType.Int).Value = ControlID
cmd.Parameters.Add("@RECORD_ID", SqlDbType.Int).Value = RecordID
cmd.Parameters.Add("@RECORDID", SqlDbType.Int).Value = RecordID
cmd.Parameters.Add("@IMG", SqlDbType.VarBinary).Value = bimage
cmd.Parameters.Add("@ADDED_WHO", SqlDbType.VarChar).Value = USER_USERNAME
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
LinkImage(ControlID, RecordID)
Catch ex As Exception
MsgBox("Error in InsertImage: ", ex.Message, vbCritical)
End Try
End Sub
Private Sub LinkImage(ControlID As Integer, RecordID As Integer)
Try
Dim SQL = String.Format("SELECT GUID FROM TBPMO_CONTROL_IMAGE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", ControlID, RecordID)
Dim ImageID As Integer = ClassDatabase.Execute_Scalar(SQL)
SQL = String.Format("SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", ControlID, RecordID)
Dim valueExists = ClassDatabase.Execute_Scalar(SQL)
Dim VALUE = "%%" & ImageID.ToString & "%%"
If valueExists Then
SQL = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}', CHANGED_WHO = '{1}' WHERE CONTROL_ID = {2} AND RECORD_ID = {3}", VALUE, USER_USERNAME, ControlID, RecordID)
Else
SQL = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (RECORD_ID, CONTROL_ID, VALUE, ADDED_WHO) VALUES ({0}, {1}, '{2}', '{3}')", RecordID, ControlID, VALUE, USER_USERNAME)
End If
ClassDatabase.Execute_non_Query(SQL)
Catch ex As Exception
MsgBox("Error in LinkImage: " & vbNewLine & ex.Message)
End Try
End Sub
Private Sub UpdateImage(ControlID As Integer, RecordID As Integer, image As Bitmap)
Try
Dim bimage() As Byte
Dim SQL As String = "UPDATE TBPMO_CONTROL_IMAGE SET IMG = @IMG, CHANGED_WHO = @CHANGED_WHO WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @RECORD_ID"
Dim conn As New SqlClient.SqlConnection(MyConnectionString)
Dim cmd As New SqlClient.SqlCommand(SQL, conn)
If IsNothing(image) Then
DeleteImage(ControlID, RecordID)
Exit Sub
End If
bimage = BitmapToByteArray(image)
cmd.Parameters.Add("@CONTROL_ID", SqlDbType.Int).Value = ControlID
cmd.Parameters.Add("@RECORD_ID", SqlDbType.Int).Value = RecordID
cmd.Parameters.Add("@RECORDID", SqlDbType.Int).Value = RecordID
cmd.Parameters.Add("@IMG", SqlDbType.VarBinary).Value = bimage
cmd.Parameters.Add("@CHANGED_WHO", SqlDbType.VarChar).Value = USER_USERNAME
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
LinkImage(ControlID, RecordID)
Catch ex As Exception
MsgBox("Error in UpdateImage: ", ex.Message, vbCritical)
End Try
End Sub
Private Sub DeleteImage(ControlID As Integer, RecordID As Integer)
Try
' Delete Image
Dim SQL = String.Format("DELETE FROM TBPMO_CONTROL_IMAGE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", ControlID, RecordID)
Dim result = ClassDatabase.Execute_non_Query(SQL)
' Delete Value
SQL = String.Format("DELETE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", ControlID, RecordID)
result = ClassDatabase.Execute_non_Query(SQL)
Catch ex As Exception
MsgBox("Fehler beim löschen des Bildes:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Function UpdateAllControls(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
Try
Dim _error As Boolean = False
Dim sw As New SW("UpdateAllControls")
Dim del = String.Format("DELETE FROM TBPMO_CONTROL_VALUE_CHANGE_HISTORY WHERE UPPER(ADDED_WHO) = '{0}'", USER_USERNAME.ToUpper)
ClassDatabase.Execute_non_Query(del)
CURRENT_CHANGE_STEP += 1
Dim sel = String.Format("SELECT RECORD_ID, CONTROL_ID FROM VWPMO_VALUES WHERE RECORD_ID = {0}", RecordID)
Dim VALUE_EXISTS_DT As DataTable = ClassDatabase.Return_Datatable(sel, True)
For Each ctrl As Control In controls
Console.WriteLine("Updating Control " + ctrl.Name)
Dim CONTROL_ID As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id 'GetControlID_for_RecordID(ctrl.Name, RecordID)
If LogErrorsOnly = False Then ClassLogger.Add(" >> CONTROL_ID: " & CONTROL_ID, False)
Dim CONTROL_VALUE As String = GetControlValue(ctrl)
Dim controltype = ctrl.GetType.ToString
If TypeOf ctrl Is PictureBox Then
Dim id As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id 'GetControlID_for_Name(ctrl.Name, FormID)
UpsertImage(id, RecordID, ctrl.BackgroundImage)
Continue For
End If
If TypeOf ctrl Is DevExpress.XtraEditors.DateEdit Then
Console.WriteLine("Updating DateEdit " + ctrl.Name)
End If
If TypeOf ctrl Is GroupBox Then
Dim ctrls As Control.ControlCollection = DirectCast(ctrl, GroupBox).Controls
UpdateAllControls(FormID, RecordID, ctrls)
Continue For
End If
If TypeOf ctrl Is System.Windows.Forms.DataGridView Then
Dim id As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id
UpdateMultipleValues(id, RecordID, CONTROL_VALUE)
Continue For
End If
' UpdateMultipleValues wird für diese Controls bereits beim CheckedChanged-Event ausgeführt
If TypeOf ctrl Is DevExpress.XtraGrid.GridControl Or TypeOf ctrl Is DevExpress.XtraEditors.CheckedListBoxControl Then
Continue For
End If
'Dim ValueExists = ClassDatabase.Execute_Scalar(String.Format("SELECT RECORD_ID FROM VWPMO_VALUES WHERE RECORD_ID = {0} AND CONTROL_ID = {1}", RecordID, CONTROL_ID))
Dim ValueExists = VALUE_EXISTS_DT.Select(String.Format("CONTROL_ID = {0}", CONTROL_ID))
Dim ValueChanged As Boolean = _CtrlBuilder.ControlsChanged.Contains(CONTROL_ID)
If Not ValueChanged Then
Continue For
End If
If ValueExists.Length = 0 Then ' Neues Control
'If CONTROL_ID = 995 Or CONTROL_ID = 996 Or CONTROL_ID = 997 Or CONTROL_ID = 810 Then
' Console.WriteLine("sdasd")
'End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> InsertControlValue: " & CONTROL_ID & "|" & RecordID & "|" & CONTROL_VALUE, False)
If Not IsNothing(CONTROL_VALUE) Then
If TypeOf ctrl Is CustomComboBox And CONTROL_VALUE = "" Then
'Exit Sub - Zuviel des guten
Continue For
End If
If CONTROL_VALUE <> "" Then
If CreateControlProcedure(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID) = 0 Then
_error = True
End If
End If
End If
Else ' Update Control
Dim isEmptyValue As Boolean = IsNothing(CONTROL_VALUE) Or CONTROL_VALUE = String.Empty
Dim isDateEdit = TypeOf ctrl Is DevExpress.XtraEditors.DateEdit
Dim isTextBox = TypeOf ctrl Is TextBox
Dim isComboBox = TypeOf ctrl Is CustomComboBox
' Bei bestimmten Controls soll der Wert in CONTROL_VALUES gelöscht werden
' wenn der Wert im Control leer ist
If (isDateEdit Or isTextBox Or isComboBox) And isEmptyValue Then
Dim sql As String = $"DELETE FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = {RecordID} AND CONTROL_ID = {CONTROL_ID}"
If ClassDatabase.Execute_non_Query(sql) = True Then
If LICENSE_PROXY = True Or clsDatabase.DB_PROXY_INITIALIZED = True Then
ClassDatabase.Execute_non_Query(sql, True)
End If
End If
Else
If Not IsNothing(CONTROL_VALUE) Then
Dim sw2 As New SW("UpdateControlValue")
UpdateControlValue(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID)
sw2.Done()
End If
End If
End If
Next
sw.Done()
If _error = True Then
Return False
Else
Return True
End If
Catch ex As Exception
MsgBox("Unexpected Error in UpdateAllControls: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Sub UpdateMultipleValues(ControlId As Integer, RecordId As Integer, value As String)
Try
Dim val = String.Format("SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", ControlId, RecordId)
Dim dt As DataTable = ClassDatabase.Return_Datatable(val, True)
If IsNothing(dt) Then
Exit Sub
End If
' Konvertiere datatable zu liste
Dim oldValues = dt.AsEnumerable().Select(Of String)(Function(r)
Return r.Item("VALUE")
End Function).ToList()
If (IsNothing(value) Or value = String.Empty) And dt.Rows.Count = 0 Then
Exit Sub
End If
Dim values As New List(Of String)
If Not IsNothing(value) Then
values = New List(Of String)(value.Split(";"))
Else
values.Add("")
End If
'Dim values As New List(Of String)(value.Split(";"))
Dim AddValues = values.Except(oldValues).ToList()
Dim RemoveValues = oldValues.Except(values).ToList()
For Each _addValue As String In AddValues
If Not _addValue = "" Then
Dim converted_value = Check_and_Format_Value(ControlId, RecordId, _addValue)
If Not IsNothing(converted_value) Then
ClassControlCommandsUI.CreateControlProcedure(ControlId, RecordId, converted_value, CURRENT_ENTITY_ID)
End If
End If
Next
For Each v As String In RemoveValues
ClassDatabase.Execute_non_Query(String.Format("DELETE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1} AND VALUE = '{2}'", ControlId, RecordId, v))
' ClassProxy.PRPROXY_CONTROL_DEL(RecordId, CURRENT_ENTITY_ID, ControlId)
Next
ClassProxy.PRPROXY_CONTROL_VALUE_UPD_INS(CURRENT_ENTITY_ID, ControlId, RecordId, "")
Catch ex As Exception
MsgBox("Error in UpdateMultipleValues:" & vbNewLine & ex.Message)
End Try
End Sub
Public Shared Function GetControlValue(ctrl As Control) As String
Dim type = ctrl.GetType().Name
Dim CONTROL_ID As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id ' GetControlID_for_RecordID(ctrl.Name, CURRENT_RECORD_ID)
If LogErrorsOnly = False Then ClassLogger.Add(" >> GetControlValue CONTROL_ID: " & CONTROL_ID, False)
Dim CONTROL_VALUE As String = Nothing
If LogErrorsOnly = False Then ClassLogger.Add(" >> type = " & type.ToString, False)
Select Case type
Case "TextBox"
Return DirectCast(ctrl, TextBox).Text
Case "CustomComboBox"
If LogErrorsOnly = False Then ClassLogger.Add(" >> Return Value: " & DirectCast(ctrl, CustomComboBox).Text, False)
Return DirectCast(ctrl, CustomComboBox).Text
Case "CheckBox"
Return DirectCast(ctrl, CheckBox).Checked.ToString()
Case "RadioButton"
Return DirectCast(ctrl, RadioButton).Checked.ToString()
Case "DateEdit"
Dim Value = DirectCast(ctrl, DevExpress.XtraEditors.DateEdit).EditValue
If IsDBNull(Value) Or IsNothing(Value) Then
Return ""
Else
Dim datevalue = DirectCast(ctrl, DevExpress.XtraEditors.DateEdit).DateTime.ToString("yyyy-MM-dd")
If datevalue = "0001-01-01" Then
Return ""
Else
Return datevalue
End If
End If
Case "PictureBox"
'Return "PictureBox" 'Es ist egal was für ein String hier zurückgegeben wird, hauptsache nicht Nothing
Case "CheckedListBoxControl"
Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl
chklbx = DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl)
Dim SQL_COMAMND = ClassDatabase.Execute_Scalar("SELECT UPPER(SQL_COMMAND_1) FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID, True)
'TODO: Wenn keine Datasource vorhanden, angecheckte einträge als string speichern
If IsNothing(chklbx.DataSource) Then
Dim result As New List(Of String)
Dim result_string As String
For Each item As DevExpress.XtraEditors.Controls.CheckedListBoxItem In chklbx.CheckedItems
result.Add(item.Value.ToString.Trim)
Next
result_string = String.Join(";", result)
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
' Überspringt den Rest der funktion
Return result_string
End If
If SQL_COMAMND.ToString.StartsWith("SELECT [RECORD_ID]") Or SQL_COMAMND.ToString.StartsWith("SELECT [RECORD-ID]") Then
'Alle Recorddatensätze durchlaufen und überprüfen ob nicht angehakt
'Wenn nicht angehakt dann Record löschen
Dim index As Integer = 0
For i As Integer = 0 To chklbx.ItemCount - 1
Dim item = chklbx.GetItem(i)
Dim row As DataRowView = CType(item, DataRowView)
If chklbx.GetItemCheckState(i) = 0 Then
If CInt(row(0)) > 0 Then
'Überprüfen ob es den Record gibt
Dim SQL = "SELECT COUNT(*) FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
If ClassDatabase.Execute_Scalar(SQL, True) = 1 Then
SQL = "DELETE FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
If ClassDatabase.Execute_non_Query(SQL) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> TBPMO_RECORD_CONNECT-Entry after 'deselect CheckedListBox' deleted", False)
End If
End If
End If
End If
Next
End If
'Für jeden gecheckten Eintrag den Record der Stammentität mit dem selektierten linken
Dim checked_result As New List(Of String)
Dim checked_result_string As String
If SQL_COMAMND.ToString.StartsWith("SELECT [RECORD_ID]") Or SQL_COMAMND.ToString.StartsWith("SELECT [RECORD-ID]") Then
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
Dim row As DataRowView = CType(item, DataRowView)
Try
If CInt(row(0)) > 0 Then
Dim rid = CInt(row(0))
Dim checked_value = row(1)
checked_result.Add(checked_value)
checked_result_string = String.Join(";", checked_result)
Dim SQL = "SELECT COUNT(*) FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
If ClassDatabase.Execute_Scalar(SQL, True) = 0 Then
If CURRENT_RECORD_ID = 0 Then
MsgBox("Attention: no current record Selected!", MsgBoxStyle.Exclamation)
Else
If ClassRecordCommands.ConnectRecord(CURRENT_RECORD_ID, CInt(row(0)), "CheckedListBox;" & ctrl.Name) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Checked ListBox record '" & rid.ToString & "' was linked successfully.", False)
End If
End If
End If
End If
Catch ex As Exception
ClassLogger.Add("Error in CheckedListBoxGetControlValue: " & ex.Message, True)
End Try
Next
Else
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
Dim row As DataRowView = CType(item, DataRowView)
If row.DataView.Table.Columns.Count = 1 Then
Dim checked_value = row(0)
checked_result.Add(checked_value)
ElseIf row.DataView.Table.Columns.Count = 2 Then
Dim checked_value = row(1)
checked_result.Add(checked_value)
End If
checked_result_string = String.Join(";", checked_result)
Next
End If
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
' Überspringt den Rest der funktion
If Not IsNothing(checked_result_string) Then
'Dim sql = String.Format("select count(*) from TBPMO_CONTROL_VALUE where CONTROL_ID = {0} and RECORD_ID = {1}", CONTROL_ID, CURRENT_RECORD_ID)
'If ClassDatabase.Execute_Scalar(sql) = 0 Then
' InsertControlValue(CONTROL_ID, CURRENT_RECORD_ID, "")
'End If
Return checked_result_string
Else
'In jedem Fall Nothing zurückgeben
Return Nothing
End If
Case "GridControl"
Dim chk_grid As DevExpress.XtraGrid.GridControl
chk_grid = DirectCast(ctrl, DevExpress.XtraGrid.GridControl)
Dim gridview As DevExpress.XtraGrid.Views.Grid.GridView = chk_grid.MainView
Dim SQL_COMAMND = ClassDatabase.Execute_Scalar("SELECT UPPER(SQL_COMMAND_1) FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID, True)
Dim result As New List(Of String)
Dim result_string As String
For Each index As Integer In gridview.GetSelectedRows()
Dim fieldName As String = gridview.Columns(0).FieldName
Dim value As String = gridview.GetRowCellValue(index, fieldName)
result.Add(value)
Next
CURRENT_CONTROL_VALUE_COUNT = result.Count
result_string = String.Join(";", result)
If Not IsNothing(result_string) Then
Return result_string
Else
Return Nothing
End If
Case "ListBoxControl"
Dim listbox As DevExpress.XtraEditors.ListBoxControl = DirectCast(ctrl, DevExpress.XtraEditors.ListBoxControl)
Return listbox.SelectedValue
Case "DataGridView"
Dim list As New List(Of String)
Dim dgv As DataGridView = DirectCast(ctrl, DataGridView)
For Each row As DataGridViewRow In dgv.Rows
Dim cell As DataGridViewCell = row.Cells(0)
If Not IsNothing(cell.Value) Then
list.Add(cell.Value)
End If
Next
Return String.Join(";", list)
Case Else
Return Nothing
End Select
End Function
Public Class MyBaseClass
End Class
Public Class MyDerivedClass : Inherits MyBaseClass
End Class
Public Shared Function Check_and_Format_Value(ControlID As Integer, RecordID As Integer, Value As String)
Try
Dim expression As String
expression = "GUID = " & ControlID
Dim CONTROL_ROW() As DataRow
' Use the Select method to find all rows matching the filter.
CONTROL_ROW = CURRENT_TBPMO_CONTROL.Select(expression)
Dim i As Integer
Dim FORMAT_TYPE As String, CONTROL_TYPE As Integer
For i = 0 To CONTROL_ROW.GetUpperBound(0)
FORMAT_TYPE = CONTROL_ROW(i)("FORMAT_TYPE")
CONTROL_TYPE = CONTROL_ROW(i)("CONTROL_TYPE_ID")
Next
If CONTROL_TYPE = 0 And FORMAT_TYPE Is Nothing Then
If IsDate(Value) Then
CONTROL_TYPE = 4
End If
End If
Select Case FORMAT_TYPE
Case "Currency"
If Not Value = String.Empty Then
Value = Decimal.Parse(Value, Globalization.NumberStyles.Currency).ToString
End If
Case "Decimal"
If Not Value = String.Empty Then
Value = Decimal.Parse(Value, Globalization.NumberStyles.Integer)
End If
End Select
Select Case CONTROL_TYPE
Case 4
Dim oDate = ClassHelper.Convert_to_Database_Date(Value)
Value = oDate.ToString()
End Select
Value = Value.Replace("'", "´")
Return Value
Catch ex As Exception
MsgBox("Unexpected Error in Check_and_Format_Value: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
ClassLogger.Add("Unexpected Error in Check_and_Format_Value: " & ex.Message, True)
Return Nothing
End Try
End Function
Public Shared Function CreateControlProcedure(ControlID As Integer, RecordID As Integer, Value As String, ENTITY_ID As Integer)
Try
Dim _result As Integer
Dim converted_value = Check_and_Format_Value(ControlID, RecordID, Value)
If Not IsNothing(converted_value) Then
Dim connection As New SqlConnection
connection.ConnectionString = MyConnectionString
Using cmd As New SqlCommand("PRPMO_CREATE_CONTROL_VALUE", connection)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@pRECORD_ID", RecordID)
cmd.Parameters.AddWithValue("@pCONTROL_ID", ControlID)
cmd.Parameters.AddWithValue("@pVALUE", converted_value)
cmd.Parameters.AddWithValue("@pADDED_WHO", USER_USERNAME)
cmd.Parameters.Add("@pRESULT", SqlDbType.Int)
cmd.Parameters("@pRESULT").Direction = ParameterDirection.Output
connection.Open()
cmd.ExecuteNonQuery()
connection.Close()
_result = cmd.Parameters("@pRESULT").Value
If _result = 1 And clsDatabase.DB_PROXY_INITIALIZED = True Then
ClassProxy.PRPROXY_CONTROL_VALUE_UPD_INS(ENTITY_ID, ControlID, RecordID, converted_value)
End If
Return _result
End Using
Else
_result = 0
End If
Catch ex As Exception
Dim name = clsDatabase.Execute_Scalar("SELECT NAME FROM TBPMO_CONTROL WHERE GUID = " & ControlID, True)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in CreateControlProcedure für Control: " & name)
ClassLogger.Add("Error in CreateControlProcedure: " & ex.Message, True)
Return 0
End Try
End Function
Public Shared Function InsertControlValueOld(ControlID As Integer, RecordID As Integer, Value As String, ENTITY_ID As Integer)
Try
Dim AddedWho = USER_USERNAME
Dim converted_value = Check_and_Format_Value(ControlID, RecordID, Value)
If Not IsNothing(converted_value) Then
converted_value = converted_value.Replace("'", "´")
Dim ins As String = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID, RECORD_ID, VALUE, ADDED_WHO) VALUES ({0}, {1}, '{2}', '{3}')", ControlID, RecordID, converted_value, AddedWho)
If LICENSE_PROXY = True Or clsDatabase.DB_PROXY_INITIALIZED = True Then
If ClassDatabase.Execute_non_Query(ins) = True Then
Return ClassProxy.PRPROXY_CONTROL_VALUE_UPD_INS(ENTITY_ID, ControlID, RecordID, converted_value)
Else
Return False
End If
Else
Return ClassDatabase.Execute_non_Query(ins)
End If
Else
Return False
End If
Catch ex As Exception
MsgBox("Unexpected Error in inserting Control-Value: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
ClassLogger.Add("Unexpected Error in inserting Control-Value: " & ex.Message, True)
Return False
End Try
End Function
Public Shared Function UpdateControlValue(ControlID As Integer, RecordID As Integer, Value As String, ENTITY_ID As Integer)
Try
Dim CHANGED_WHO = USER_USERNAME
Dim converted_value = Check_and_Format_Value(ControlID, RecordID, Value)
Dim def = "SELECT FORMAT_TYPE,CONTROL_TYPE_ID FROM TBPMO_CONTROL WHERE GUID = " & ControlID
Dim upd = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}', CHANGED_WHO = '{1}', CHANGE_STEP = {2} WHERE CONTROL_ID = {3} AND RECORD_ID = {4}",
converted_value, CHANGED_WHO, CURRENT_CHANGE_STEP, ControlID, RecordID)
If ControlID = 279 Or ControlID = 745 Then
ClassLogger.Add(upd, False, False)
End If
If LICENSE_PROXY = True Or clsDatabase.DB_PROXY_INITIALIZED = True Then
If ClassDatabase.Execute_non_Query(upd) = True Then
Return ClassProxy.PRPROXY_CONTROL_VALUE_UPD_INS(ENTITY_ID, ControlID, RecordID, converted_value)
Else
Return False
End If
Else
Return ClassDatabase.Execute_non_Query(upd)
End If
Catch ex As Exception
ClassLogger.Add("Unerwarteter Fehler in UpdateControlValue: " & ex.Message, True)
Return False
End Try
End Function
End Class

View File

@ -0,0 +1,583 @@
Namespace ControlLoader
Public Class _BaseControl
'Public Shared Function ReplaceSqlCommandPlaceholders(sqlCommand As String, recordId As Integer, parentRecordId As Integer, entity_ID As Integer)
' sqlCommand = sqlCommand.Replace("@RECORD_ID", recordId)
' sqlCommand = sqlCommand.Replace("@RECORDID", recordId)
' Dim sql As String = "SELECT FORM_ID FROM TBPMO_RECORD WHERE FORM_ID = "
' ss()
' sqlCommand = sqlCommand.Replace("@ENTITY_ID", recordId)
' sqlCommand = sqlCommand.Replace("@PARENTRECORD_ID", parentRecordId)
' sqlCommand = sqlCommand.Replace("@PARENTRECORDID", parentRecordId)
' Return sqlCommand
'End Function
Public Shared Function LoadAutoValue(control As System.Windows.Forms.Control, RecordId As Integer, ParentRecordId As Integer, entity_ID As Integer)
Try
Dim AutoValue As String = String.Empty
Dim ControlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id
Dim CONNID = ClassDatabase.Execute_Scalar(String.Format("SELECT CONNECTION_ID_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlId))
Dim SQL As String = ClassDatabase.Execute_Scalar(String.Format("SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlId))
SQL = ClassControlValues.ReplaceSqlCommandPlaceholders(SQL, RecordId, ParentRecordId, entity_ID)
If SQL = "" Or IsDBNull(SQL) Then
Return Nothing
End If
If Not IsNothing(CONNID) Then
AutoValue = ClassDatabase.Execute_ScalarWithConnection(CONNID, SQL)
Else
AutoValue = ClassDatabase.Execute_Scalar(SQL, True)
End If
' AutoValue = ClassDatabase.Execute_Scalar(SQL)
If String.IsNullOrEmpty(AutoValue) Or IsDBNull(AutoValue) Then
Return Nothing
End If
Return AutoValue
Catch ex As Exception
ClassLogger.Add("Unexpected Error in LoadAutoValue: " & ex.Message, True)
Return Nothing
End Try
End Function
End Class
Public Class _ListControl : Inherits _BaseControl
Public Shared Function GetDynamicValue(controlId As Integer, formId As Integer, connID As Object, sqlCommand As String) As DynamicValue
Dim returnValue As DynamicValue
returnValue.StaticList = CheckForStaticList(controlId)
returnValue.DataTable = GetSqlList(controlId, formId, connID, sqlCommand)
Return returnValue
End Function
Private Shared Function CheckForStaticList(controlId As Integer) As List(Of String)
Try
' Der alte SQL Befehl hat nicht wirklich nach der StaticList geschaut o_O
' Dim SQL As String = String.Format("SELECT VALUE FROM VWPMO_VALUES WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", controlId, recordId)
Dim SQL As String = String.Format("SELECT STATIC_LIST FROM TBPMO_CONTROL WHERE GUID = {0}", controlId)
Dim staticList As String = ClassDatabase.Execute_Scalar(SQL, True)
If IsNothing(staticList) Or String.IsNullOrWhiteSpace(staticList) Then
Return Nothing
Else
Return New List(Of String)(staticList.Split(";").ToArray())
End If
Catch ex As Exception
MsgBox("Error in CheckForStaticList: " & vbNewLine & ex.Message)
Return Nothing
End Try
End Function
Public Shared Function GetSqlList(controlId As Integer, formId As Integer, connection_Id As Object, sqlCommand As String) As DataTable
Try
If sqlCommand Is Nothing Or sqlCommand = String.Empty Then
Return Nothing
End If
Dim cached As DataTable = ClassControlValueCache.LoadFromCache(sqlCommand)
Dim final As DataTable
If cached Is Nothing Then
If Not IsDBNull(connection_Id) Then
final = ClassDatabase.MSSQL_ReturnDTWithConnection(connection_Id, sqlCommand)
Else
final = ClassDatabase.Return_Datatable(sqlCommand)
End If
ClassControlValueCache.SaveToCache(sqlCommand, final)
Console.WriteLine("CACHE MISS")
Else
final = cached
Console.WriteLine("CACHE HIT")
End If
Return final
Catch ex As Exception
MsgBox("Error in GetSqlList: " & vbNewLine & ex.Message)
Return Nothing
End Try
End Function
Overloads Shared Sub SetDataSource(control As DevExpress.XtraGrid.GridControl, dt As DataTable)
Try
Dim columnCount As Integer = dt.Columns.Count
Dim rowCount As Integer = dt.Rows.Count
' Zuerst die Datasource leeren und neu setzen
control.DataSource = Nothing
control.DataSource = dt
' Wir müssen PopulateColumns und RefreshData nach dem Setzen der Datasource aufrufen
' ansonsten wird das Grid leer bleiben und die neuen Daten nicht anzeigen
control.MainView.PopulateColumns()
control.MainView.RefreshData()
'Jetzt noch den Columnname ändern
Dim gridview = DirectCast(control.MainView, DevExpress.XtraGrid.Views.Grid.GridView)
Dim caption As String = ClassDatabase.Execute_Scalar(String.Format("SELECT COL_NAME FROM TBPMO_CONTROL WHERE GUID = {0}", DirectCast(control.Tag, ClassControlMetadata).Id), True)
gridview.Columns(0).Caption = caption
Catch ex As Exception
MsgBox("Error in SetDataSource - GridControl: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Overloads Shared Sub SetDataSource(control As CustomComboBox, dt As DataTable)
Dim sw As New SW("SetDataSource CustomComboBox")
Dim columnCount As Integer = dt.Columns.Count
control.BeginUpdate()
PerfomanceHelper.SuspendDraw(control)
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Als letztes setzen wir die DataSource
control.DataSource = dt
PerfomanceHelper.ResumeDraw(control)
control.EndUpdate()
sw.Done()
End Sub
Overloads Shared Sub SetDataSource(control As DevExpress.XtraEditors.CheckedListBoxControl, dt As DataTable)
Dim columnCount As Integer = dt.Columns.Count
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Als letztes setzen wir die DataSource
control.DataSource = dt
End Sub
Overloads Shared Sub SetDataSource(control As DevExpress.XtraEditors.ListBoxControl, dt As DataTable)
Dim columnCount As Integer = dt.Columns.Count
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Als letztes setzen wir die DataSource
control.DataSource = dt
End Sub
Overloads Shared Sub SetDataSource(control As System.Windows.Forms.DataGridView, dt As DataTable)
control.DataSource = dt
End Sub
End Class
Public Structure DynamicValue
Public StaticList As List(Of String)
Public DataTable As DataTable
End Structure
Public Class Label : Inherits _BaseControl
Public Shared Sub LoadValue(control As System.Windows.Forms.Label, recordId As Integer, parentRecordId As Integer, value As String, entity_ID As Integer, Optional VARIABLE_VALUE As Boolean = False)
Dim Sql
Dim ControlId As Integer
Try
ControlId = DirectCast(control.Tag, ClassControlMetadata).Id
Dim autoValue
Dim drarray() As DataRow = CURRENT_SQL_AUTO_VALUES_DT.Select("GUID = " & ControlId)
If drarray.Length > 0 Then
Dim ID
Try
ID = drarray(0)("CONNECTION_ID_1").ToString
Catch ex As Exception
ID = drarray(0)("CONNECTION_ID").ToString
End Try
If Not IsNothing(ID) Then
Sql = drarray(0)("SQL_COMMAND_1").ToString
Sql = ClassControlValues.ReplaceSqlCommandPlaceholders(Sql, recordId, parentRecordId, entity_ID)
autoValue = ClassDatabase.Execute_ScalarWithConnection(ID, Sql)
Else
autoValue = ClassDatabase.Execute_Scalar(Sql, True)
End If
If IsNothing(autoValue) Then
If VARIABLE_VALUE = True Then
control.Text = value
Else
Sql = String.Format("SELECT GUID FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0} AND SCREEN_ID = {1}", ControlId, CURRENT_SCREEN_ID)
Dim ctrl_screen_id = ClassDatabase.Execute_Scalar(Sql, True)
If ctrl_screen_id > 0 Then
Sql = String.Format("SELECT CAPTION FROM TBPMO_CONTROL_LANGUAGE WHERE CONTROL_SCREEN_ID = {0} AND LANGUAGE_TYPE = '{1}'", ctrl_screen_id, USER_LANGUAGE)
Dim labelText As String = ClassDatabase.Execute_Scalar(Sql)
control.Text = labelText
End If
End If
Else
If IsDBNull(autoValue) Then
control.Text = "ATTENTION: result of select was dbnull"
Else
control.Text = autoValue
End If
End If
End If
Catch ex As Exception
MsgBox("Unexpected Error in LoadValueMain:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
ClassLogger.Add("Unexpected Error in LoadValueMain: " & ex.Message, True)
ClassLogger.Add(String.Format("ControlID: {0}" & vbNewLine & "recordid: {1}" & vbNewLine & "parentRecordId: {2}" & vbNewLine & "value: {3}" & vbNewLine & "entity_ID: {4}" & vbNewLine & "VARIABLE_VALUE: {5}", ControlId, recordId, parentRecordId, value, entity_ID, VARIABLE_VALUE), False)
End Try
End Sub
End Class
Public Class Checkbox : Inherits _BaseControl
Public Shared Sub LoadValue(control As System.Windows.Forms.CheckBox, value As String)
Try
Dim result As Boolean = False
Boolean.TryParse(value, result)
control.Checked = result
Catch ex As Exception
MsgBox("Unexpected Error in LoadValue1:" & vbNewLine & ex.Message)
ClassLogger.Add("Unexpected Error in LoadValue1: " & ex.Message, True)
End Try
End Sub
End Class
Public Class RadioButton : Inherits _BaseControl
Public Shared Sub LoadValue(control As System.Windows.Forms.RadioButton, value As String)
Try
Dim result As Boolean = False
Boolean.TryParse(value, result)
control.Checked = result
Catch ex As Exception
MsgBox("Unexpected Error in LoadValue2:" & vbNewLine & ex.Message)
ClassLogger.Add("Unexpected Error in LoadValue2: " & ex.Message, True)
End Try
End Sub
End Class
Public Class TextBox : Inherits _BaseControl
Public Shared Sub LoadValue(control As System.Windows.Forms.TextBox, recordId As Integer, parentRecordId As Integer, value As String, entity_ID As Integer, Optional VARIABLE_VALUE As Boolean = False)
Try
Dim ControlMeta As ClassControlMetadata = DirectCast(control.Tag, ClassControlMetadata)
Dim ControlId As Integer = ControlMeta.Id
Dim ControlFormat As String = ControlMeta.Format
If CURRENT_RECORD_ENABLED = False Then
If ControlFormat = "Currency" Then
control.Text = ClassHelper.Format_Currency(value, USER_LANGUAGE)
Else
control.Text = value
End If
Else
If VARIABLE_VALUE = True Then
If ControlFormat = "Currency" Then
control.Text = ClassHelper.Format_Currency(value, USER_LANGUAGE)
Else
control.Text = value
End If
Else
Dim drarray() As DataRow = CURRENT_SQL_AUTO_VALUES_DT.Select("GUID = " & ControlId)
If drarray.Length > 0 Then
Dim autoValue
Dim ID
Try
ID = drarray(0)("CONNECTION_ID_1").ToString
Catch ex As Exception
ID = drarray(0)("CONNECTION_ID").ToString
End Try
Dim Sql = drarray(0)("SQL_COMMAND").ToString
If Not IsNothing(ID) Then
autoValue = ClassDatabase.Execute_ScalarWithConnection(ID, Sql)
Else
autoValue = ClassDatabase.Execute_Scalar(Sql, True)
End If
' AutoValue = ClassDatabase.Execute_Scalar(SQL)
If String.IsNullOrEmpty(autoValue) Or IsDBNull(autoValue) Then
control.Text = value
Else
control.Text = autoValue
End If
End If
'If USER_WAN = True Then 'WENN in einer WAN-Umgebung betrieben
'Else 'in LAN-Umgebung
' Dim autoValue = LoadAutoValue(control, recordId, parentRecordId, entity_ID)
' If IsNothing(autoValue) Then
' control.Text = value
' Else
' control.Text = autoValue
' End If
'End If
End If
End If
Catch ex As Exception
MsgBox("Unexpected Error in LoadValue3:" & vbNewLine & ex.Message)
ClassLogger.Add("Unexpected Error in LoadValue3: " & ex.Message, True)
End Try
End Sub
End Class
Public Class DateTimePicker : Inherits _BaseControl
Public Shared Sub LoadValue(control As DevExpress.XtraEditors.DateEdit, value As String)
If String.IsNullOrWhiteSpace(value) Or value = "00:00:00" Then
control.DateTime = DateTime.MinValue
Else
If Not DateTime.TryParse(value, control.DateTime) Then
control.DateTime = DateTime.MinValue
End If
End If
End Sub
End Class
Public Class Combobox : Inherits _ListControl
Public Shared Sub LoadValue(control As CustomComboBox, recordId As Integer, parentRecordId As Integer, value As String)
control.Text = value
End Sub
Public Shared Sub LoadList(control As CustomComboBox, formId As Integer, connID As Object, SQLCommand As String)
Try
Dim sw As New SW("LoadList CustomComboBox")
Dim sw1 As New SW("GetDynamicValue CustomComboBox")
Dim dynamic As DynamicValue = GetDynamicValue(DirectCast(control.Tag, ClassControlMetadata).Id, formId, connID, SQLCommand)
sw1.Done()
If dynamic.StaticList IsNot Nothing Then
control.DataSource = dynamic.StaticList
End If
If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then
SetDataSource(control, dynamic.DataTable)
CalculateDropdownWidth(control, dynamic.DataTable)
End If
sw.Done()
Catch ex As Exception
MsgBox("Error in Combobox.LoadList:" & vbNewLine & ex.Message)
End Try
End Sub
Private Shared Sub CalculateDropdownWidth(control As CustomComboBox, dt As DataTable)
Try
Const WIDEST_WIDTH As Integer = 300
Dim FinalWidth As Integer = WIDEST_WIDTH
Dim index As Integer = 1
If dt.Columns.Count = 1 Then
index = 0
End If
For Each row As DataRow In dt.Rows
'Die Breite der Dropdown-List anpassen
Using g As Graphics = control.CreateGraphics()
Dim valueWidth As Integer = g.MeasureString(row.Item(index).ToString(), control.Font).Width
If valueWidth + 30 > FinalWidth Then
FinalWidth = valueWidth + 30
End If
g.Dispose()
End Using
Next
If FinalWidth > WIDEST_WIDTH Then
control.DropDownWidth = Math.Max(FinalWidth, control.Width)
End If
Catch ex As Exception
MsgBox("Error in CalculateDropdownWidth:" & vbNewLine & ex.Message)
End Try
End Sub
End Class
Public Class CheckedListBox : Inherits _ListControl
Public Shared Sub LoadValue(control As DevExpress.XtraEditors.CheckedListBoxControl, values As List(Of Object))
If IsNothing(values) Then
Exit Sub
End If
CURRENT_RECORD_ENABLED = False
control.UnCheckAll()
For Each v As String In values
'For i As Integer = 0 To control.ItemCount - 1
' Console.WriteLine(control.GetItemText(i))
'Next i
Dim posBefore As Integer = 0
While (control.FindStringExact(v, posBefore) > -1)
Dim pos = control.FindStringExact(v, posBefore)
' Wenn v gefunden wurde, anhaken
If pos >= 0 Then
control.SetItemCheckState(pos, CheckState.Checked)
posBefore = pos + 1
End If
' Verhindere Endlosschleife
If pos = 100 Then
Exit While
End If
End While
Next
End Sub
Public Shared Sub LoadList(control As DevExpress.XtraEditors.CheckedListBoxControl, formId As Integer, conn_Id As Object, SQLCommand As String)
Try
Dim sw As New SW("LoadList CheckedListBoxControl")
Dim dynamic As DynamicValue = GetDynamicValue(DirectCast(control.Tag, ClassControlMetadata).Id, formId, conn_Id, SQLCommand)
If dynamic.StaticList IsNot Nothing Then
control.Items.Clear()
For Each item In dynamic.StaticList
control.Items.Add(item)
Next
'control.DataSource = dynamic.StaticList
End If
If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then
'control.Items.Clear()
SetDataSource(control, dynamic.DataTable)
End If
sw.Done()
Catch ex As Exception
MsgBox("Error in CheckedListBox.LoadList:" & vbNewLine & ex.Message)
End Try
End Sub
End Class
Public Class ListBox : Inherits _ListControl
Public Shared Sub LoadValue(control As DevExpress.XtraEditors.ListBoxControl, value As String)
If IsNothing(value) Then
Exit Sub
End If
control.SelectedIndex = control.FindStringExact(value)
End Sub
Public Shared Sub LoadList(control As DevExpress.XtraEditors.ListBoxControl, formId As Integer, ConnId As Object, SQLCommand As String)
Dim sw As New SW("LoadList ListBoxControl")
Dim dynamic As DynamicValue = GetDynamicValue(DirectCast(control.Tag, ClassControlMetadata).Id, formId, ConnId, SQLCommand)
If dynamic.StaticList IsNot Nothing Then
control.DataSource = dynamic.StaticList
End If
If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then
SetDataSource(control, dynamic.DataTable)
End If
sw.Done()
End Sub
End Class
Public Class DataGridView : Inherits _ListControl
Public Shared Sub LoadValue(control As System.Windows.Forms.DataGridView, values As List(Of Object))
control.Rows.Clear()
For Each item In values
control.Rows.Add(item.ToString)
Next
End Sub
End Class
Public Class DataGridViewCheckable : Inherits _ListControl
Public Shared Sub LoadList(control As DevExpress.XtraGrid.GridControl, formId As Integer, ConnId As Object, SQLCommand As String)
Dim sw As New SW("LoadList GridControl")
Dim dynamic As DynamicValue = GetDynamicValue(DirectCast(control.Tag, ClassControlMetadata).Id, formId, ConnId, SQLCommand)
If dynamic.StaticList IsNot Nothing Then
control.DataSource = dynamic.StaticList
End If
If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then
SetDataSource(control, dynamic.DataTable)
End If
End Sub
Public Shared Sub LoadValue(control As DevExpress.XtraGrid.GridControl, values As List(Of Object))
Dim gridview As DevExpress.XtraGrid.Views.Grid.GridView = control.MainView
Dim focused As Boolean = False
For i As Integer = 0 To gridview.RowCount - 1
Dim fieldName As String = gridview.Columns(0).FieldName
Dim rowhandle As Integer = gridview.GetRowHandle(i)
Dim rowvalue As String = gridview.GetRowCellValue(rowhandle, fieldName)
If values.Contains(rowvalue) Then
If focused = False Then
gridview.FocusedRowHandle = rowhandle
focused = True
End If
gridview.SelectRow(rowhandle)
End If
Next
End Sub
End Class
End Namespace

View File

@ -0,0 +1,6 @@
Public Structure ClassControlMetadata
Public Property Id As Integer
Public Property Name As String
Public Property Required As Boolean
Public Property Format As String
End Structure

View File

@ -0,0 +1,793 @@
Imports System.ComponentModel
Imports System.Resources
Module ClassControlProperties
' ++++++ LOCALIZE PROPERTIES ++++++
Private Function Lookup(key As String)
Try
Return My.Resources.ControlProperties.ResourceManager.GetString(key)
Catch ex As Exception
Return key
End Try
End Function
Public Class LocalizedDescriptionAttribute
Inherits DescriptionAttribute
Public Sub New(key As String)
MyBase.New(Lookup(key))
End Sub
End Class
Public Class LocalizedCategoryAttribute
Inherits CategoryAttribute
Public Sub New(key As String)
MyBase.New(Lookup(key))
End Sub
End Class
' +++++ END LOCALIZE PROPERTIES +++++
' +++++ ABSTRACT CLASSES +++++
Public MustInherit Class BaseProperties
Private _id As Integer
Private _type As String
Private _size As Size
Private _location As Point
Private _name As String
Private _hint As String
Private _visible As Boolean
Private _tree_view As Boolean
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_tree_view")>
Public Property TreeView() As Boolean
Get
Return _tree_view
End Get
Set(value As Boolean)
_tree_view = value
End Set
End Property
<LocalizedCategoryAttribute("category_info")>
<LocalizedDescriptionAttribute("desc_id")>
<ReadOnlyAttribute(True)>
Public Property ID() As Integer
Get
Return _id
End Get
Set(value As Integer)
_id = value
End Set
End Property
<LocalizedCategoryAttribute("category_info")>
<LocalizedDescriptionAttribute("desc_type")>
<ReadOnlyAttribute(True)>
Public Property ControlType() As String
Get
Return _type
End Get
Set(value As String)
_type = value
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_hint")>
Public Property Hint() As String
Get
Return _hint
End Get
Set(value As String)
_hint = value
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_visible")>
Public Property Visible() As Boolean
Get
Return _visible
End Get
Set(value As Boolean)
_visible = value
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_size")>
Public Property Size() As Size
Get
Return _size
End Get
Set(value As Size)
_size = value
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_location")>
Public Property Location() As Point
Get
Return _location
End Get
Set(value As Point)
_location = value
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_name")>
Public Property Name() As String
Get
Return _name
End Get
Set(value As String)
_name = value
End Set
End Property
End Class
Public MustInherit Class CommonProperties
Inherits BaseProperties
Private _id As Integer
' ViewConfigurations
Private _size As Size
Private _location As Point
Private _name As String = ""
Private _column_title = ""
' Database Configurations
Private _sql_command As String = ""
Private _sql_command_2 As String = "" 'EnabledWhen
' Font Configurations
Private _font As Font
Private _font_color As Color
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_col_title")>
Public Property ColumnTitle() As String
Get
Return _column_title
End Get
Set(value As String)
_column_title = value
End Set
End Property
<LocalizedCategoryAttribute("category_database")>
<LocalizedDescriptionAttribute("desc_sqlcommand")>
Public Property SQLCommand() As SQLValue
Get
Return New SQLValue(_sql_command)
End Get
Set(value As SQLValue)
_sql_command = value.Value
End Set
End Property
<LocalizedCategoryAttribute("category_database")>
<LocalizedDescriptionAttribute("desc_enabledwhen")>
Public Property EnabledWhen() As SQLValue
Get
Return New SQLValue(_sql_command_2)
End Get
Set(value As SQLValue)
_sql_command_2 = value.Value
End Set
End Property
<LocalizedCategoryAttribute("category_font")>
<LocalizedDescriptionAttribute("desc_fontstyle")>
Public Property Font() As Font
Get
Return _font
End Get
Set(value As Font)
_font = value
End Set
End Property
<LocalizedCategoryAttribute("category_font")>
<LocalizedDescriptionAttribute("desc_fontcolor")>
Public Property FontColor() As Color
Get
Return _font_color
End Get
Set(value As Color)
_font_color = value
End Set
End Property
End Class
Public MustInherit Class InputControlProperties
Inherits CommonProperties
Private _default_Value As String
Private _tab_index As Integer
Private _tab_stop As Boolean
Private _show_column As Boolean
' Other Configurations
Private _required As Boolean = False
Private _read_only As Boolean = False
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_required")>
Public Property IsRequired() As Boolean
Get
Return _required
End Get
Set(value As Boolean)
_required = value
End Set
End Property
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_readonly")>
Public Property IsReadOnly() As Boolean
Get
Return _read_only
End Get
Set(value As Boolean)
_read_only = value
End Set
End Property
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_tabindex")>
Public Property TabIndex() As Integer
Get
Return _tab_index
End Get
Set(value As Integer)
_tab_index = value
End Set
End Property
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_tabstop")>
Public Property TabStop() As Boolean
Get
Return _tab_stop
End Get
Set(value As Boolean)
_tab_stop = value
End Set
End Property
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_defaultvalue")>
<DefaultValue("")>
Public Property DefaultValue() As String
Get
Return _default_Value
End Get
Set(value As String)
_default_Value = value
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_showcolumn")>
Public Property ShowColumn() As Boolean
Get
Return _show_column
End Get
Set(value As Boolean)
_show_column = value
End Set
End Property
End Class
' +++++ CONTROL CLASSES +++++
Public Class LabelProperties
Inherits CommonProperties
Private _caption As String = ""
<Browsable(False)>
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_col_title")>
Public Overloads Property ColumnTitle() As String
Get
Return ""
End Get
Set(value As String)
'_column_title = value
End Set
End Property
<Browsable(False)>
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_tree_view")>
Public Overloads Property TreeView() As Boolean
Get
Return False
End Get
Set(value As Boolean)
'_tree_view = value
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_caption")>
Public Property Caption() As String
Get
Return _caption
End Get
Set(value As String)
_caption = value
End Set
End Property
End Class
Public Class LineProperties
Inherits CommonProperties
<Browsable(False)>
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_col_title")>
Public Overloads Property ColumnTitle() As String
Get
Return ""
End Get
Set(value As String)
'_column_title = value
End Set
End Property
<Browsable(False)>
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_tree_view")>
Public Overloads Property TreeView() As Boolean
Get
Return False
End Get
Set(value As Boolean)
'_tree_view = value
End Set
End Property
End Class
Public Class TextBoxProperties
Inherits InputControlProperties
Private _multiline As Boolean
Private _autosuggest As Boolean
Private _format As String
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_format")>
Public Property Format() As EnumFormatOptions
Get
Return _format
End Get
Set(value As EnumFormatOptions)
_format = value
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_multiline")>
Public Property Multiline() As Boolean
Get
Return _multiline
End Get
Set(value As Boolean)
_multiline = value
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescription("desc_autosuggest")>
Public Property AutoSuggest() As Boolean
Get
Return _autosuggest
End Get
Set(value As Boolean)
_autosuggest = value
End Set
End Property
End Class
Public Class ComboBoxProperties
Inherits InputControlProperties
Private _master_data_id As Integer
Private _static_list As String
Private _format As EnumFormatOptions
Private _select_only As Boolean
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_select_only")>
Public Property IsSelectOnly() As Boolean
Get
Return _select_only
End Get
Set(value As Boolean)
_select_only = value
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_format")>
Public Property Format() As EnumFormatOptions
Get
Return _format
End Get
Set(value As EnumFormatOptions)
_format = value
End Set
End Property
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_masterdataid")>
Public Property MasterDataId() As Integer
Get
Return _master_data_id
End Get
Set(value As Integer)
_master_data_id = value
End Set
End Property
<LocalizedCategoryAttribute("category_data")>
<LocalizedDescriptionAttribute("desc_staticlist")>
Public Property StaticList() As StaticListValue
Get
Return New StaticListValue(_static_list)
End Get
Set(value As StaticListValue)
_static_list = value.Value
End Set
End Property
End Class
Public Class DateTimePickerProperties
Inherits InputControlProperties
Private _default_value As EnumDateTimePickerDefaultValueOptions = EnumDateTimePickerDefaultValueOptions.Empty
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_defaultvalue")>
Public Overloads Property DefaultValue() As EnumDateTimePickerDefaultValueOptions
Get
Return _default_value
End Get
Set(value As EnumDateTimePickerDefaultValueOptions)
_default_value = value
End Set
End Property
End Class
Public Class CheckBoxProperties
Inherits InputControlProperties
Private _caption As String = ""
Private _default_value As Boolean = False
<Browsable(False)>
Public Overloads Property TreeView() As Boolean
Get
Return False
End Get
Set(value As Boolean)
'noop
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_caption")>
Public Property Caption() As String
Get
Return _caption
End Get
Set(value As String)
_caption = value
End Set
End Property
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_defaultvalue")>
<DefaultValue(False)>
Public Overloads Property DefaultValue As Boolean
Get
Return _default_value
End Get
Set(value As Boolean)
_default_value = value
End Set
End Property
End Class
Public Class RadioButtonProperties
Inherits InputControlProperties
Private _caption As String = ""
Private _default_value As Boolean = False
<Browsable(False)>
Public Overloads Property TreeView() As Boolean
Get
Return False
End Get
Set(value As Boolean)
'noop
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_caption")>
Public Property Caption() As String
Get
Return _caption
End Get
Set(value As String)
_caption = value
End Set
End Property
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_defaultvalue")>
<DefaultValue(False)>
Public Overloads Property DefaultValue As Boolean
Get
Return _default_value
End Get
Set(value As Boolean)
_default_value = value
End Set
End Property
End Class
Public Class DataGridViewProperties
Inherits CommonProperties
Private _show_column As Boolean
Private _required As Boolean
Private _read_only As Boolean
Private _tree_view As Boolean
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_showcolumn")>
Public Property ShowColumn() As Boolean
Get
Return _show_column
End Get
Set(value As Boolean)
_show_column = value
End Set
End Property
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_required")>
Public Property IsRequired() As Boolean
Get
Return _required
End Get
Set(value As Boolean)
_required = value
End Set
End Property
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_readonly")>
Public Property IsReadOnly() As Boolean
Get
Return _read_only
End Get
Set(value As Boolean)
_read_only = value
End Set
End Property
End Class
Public Class PictureBoxProperties
Inherits CommonProperties
Private _required As Boolean
Private _read_only As Boolean
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_required")>
Public Property IsRequired() As Boolean
Get
Return _required
End Get
Set(value As Boolean)
_required = value
End Set
End Property
<LocalizedCategoryAttribute("category_other")>
<LocalizedDescriptionAttribute("desc_readonly")>
Public Property IsReadOnly() As Boolean
Get
Return _read_only
End Get
Set(value As Boolean)
_read_only = value
End Set
End Property
End Class
Public Class GroupBoxProperties
Inherits CommonProperties
Private _caption As String = ""
Private _back_color As Color
<Browsable(False)>
Public Overloads Property TreeView() As Boolean
Get
Return False
End Get
Set(value As Boolean)
'noop
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_caption")>
Public Property Caption() As String
Get
Return _caption
End Get
Set(value As String)
_caption = value
End Set
End Property
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_backcolor")>
Public Property BackColor() As Color
Get
Return _back_color
End Get
Set(value As Color)
_back_color = value
End Set
End Property
End Class
' +++++ FUNCTION CLASSES +++++
Public Class FunctionAddAppointmentProperties
Inherits BaseProperties
Private _caption As String
Private _subject As String
Private _subject2 As String
Private _from_date As String
Private _from_time As String
Private _to_date As String
Private _to_time As String
Private _place As String
Private _description As String
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_caption")>
Public Property Caption() As String
Get
Return _caption
End Get
Set(value As String)
_caption = value
End Set
End Property
<LocalizedCategoryAttribute("category_appointment")>
<LocalizedDescriptionAttribute("desc_subject")>
Public Property Subject() As String
Get
Return _subject
End Get
Set(value As String)
_subject = value
End Set
End Property
<LocalizedCategoryAttribute("category_appointment")>
<LocalizedDescriptionAttribute("desc_subject2")>
Public Property Subject2() As String
Get
Return _subject2
End Get
Set(value As String)
_subject2 = value
End Set
End Property
<LocalizedCategoryAttribute("category_appointment")>
<LocalizedDescriptionAttribute("desc_place")>
Public Property Place() As String
Get
Return _place
End Get
Set(value As String)
_place = value
End Set
End Property
<LocalizedCategoryAttribute("category_appointment")>
<LocalizedDescriptionAttribute("desc_description")>
Public Property Description() As String
Get
Return _description
End Get
Set(value As String)
_description = value
End Set
End Property
<LocalizedCategoryAttribute("category_date")>
<LocalizedDescriptionAttribute("desc_fromdate")>
Public Property FromDate() As String
Get
Return _from_date
End Get
Set(value As String)
_from_date = value
End Set
End Property
<LocalizedCategoryAttribute("category_date")>
<LocalizedDescriptionAttribute("desc_todate")>
Public Property ToDate() As String
Get
Return _to_date
End Get
Set(value As String)
_to_date = value
End Set
End Property
End Class
Public Class FunctionAddFormDataProperties
Inherits BaseProperties
Private _caption As String
Private _form_id As Integer
Private _screen_id As Integer
<LocalizedCategoryAttribute("category_view")>
<LocalizedDescriptionAttribute("desc_caption")>
Public Property Caption() As String
Get
Return _caption
End Get
Set(value As String)
_caption = value
End Set
End Property
<LocalizedCategoryAttribute("category_form")>
<LocalizedDescriptionAttribute("desc_formid")>
Public Property FormID() As Integer
Get
Return _form_id
End Get
Set(value As Integer)
_form_id = value
End Set
End Property
<LocalizedCategoryAttribute("category_form")>
<LocalizedDescriptionAttribute("desc_screenid")>
Public Property ScreenID() As Integer
Get
Return _screen_id
End Get
Set(value As Integer)
_screen_id = value
End Set
End Property
End Class
End Module

View File

@ -0,0 +1,55 @@
Public Class ClassControlValueCache
Private Shared Property Cache As New Dictionary(Of String, DataTable)
' ClassControlValueCache
' Ordnet SQL Queries den daraus resultierenden DataTables zu.
'
' Somit kann eine Query in der Laufzeit des Programms von mehreren Forms genutzt werden,
' muss aber nur einmal vom Server abgefragt werden.
Public Shared Function LoadFromCache(sqlCommand As String) As DataTable
' Mit ToUpper wird das Command case-insensitive,
' es ist also egal, ob die query GROSS oder klein geschrieben wird
Dim UpperCaseCommand = sqlCommand.ToUpper()
If Cache.ContainsKey(UpperCaseCommand) Then
Return Cache.Item(UpperCaseCommand)
Else
Return Nothing
End If
End Function
Public Shared Sub SaveToCache(sqlCommand As String, dt As DataTable)
Dim UpperCaseCommand = sqlCommand.ToUpper()
' Dynamische Queries dürfen nicht gecached werden
If (UpperCaseCommand.Contains("@")) Then
Exit Sub
End If
Cache.Item(UpperCaseCommand) = dt
End Sub
Public Shared Sub ClearCache()
Cache.Clear()
End Sub
' =========================================================================================
Private Shared Property HintCache As New Dictionary(Of Integer, String)
Public Shared Function LoadHint(controlId As Integer) As String
If HintCache.ContainsKey(controlId) Then
Dim hint As String = HintCache.Item(controlId)
If hint.Length = 0 Then
Return Nothing
End If
Return HintCache.Item(controlId)
Else
Return Nothing
End If
End Function
Public Shared Sub SaveHint(controlId As Integer, hint As String)
HintCache.Item(controlId) = hint
End Sub
End Class

View File

@ -0,0 +1,893 @@
Imports DevExpress.XtraEditors.Controls
Imports System.Text.RegularExpressions
Public Class ClassControlValues
Public Shared Function ControlHasValue(control As Control) As Boolean
Try
Select Case control.GetType()
Case GetType(TextBox)
Dim textbox As TextBox = DirectCast(control, TextBox)
If textbox.Text.Trim() = String.Empty Then
Return False
Else
Return True
End If
Case GetType(CustomComboBox)
Dim combobox As CustomComboBox = DirectCast(control, CustomComboBox)
If combobox.Text.Trim() = String.Empty Then
Return False
Else
Return True
End If
Case GetType(CheckBox)
Dim checkbox As CheckBox = DirectCast(control, CheckBox)
Return checkbox.Checked
Case GetType(RadioButton)
Dim radiobutton As RadioButton = DirectCast(control, RadioButton)
Return radiobutton.Checked
Case GetType(DevExpress.XtraEditors.DateEdit)
Dim datepicker As DevExpress.XtraEditors.DateEdit = DirectCast(control, DevExpress.XtraEditors.DateEdit)
If IsDBNull(datepicker.EditValue) Or datepicker.EditValue = DateTime.MinValue Then
Return False
Else
Return True
End If
Case GetType(DevExpress.XtraEditors.ListBoxControl)
Dim listbox As DevExpress.XtraEditors.ListBoxControl = DirectCast(control, DevExpress.XtraEditors.ListBoxControl)
If listbox.SelectedIndex = -1 Then
Return False
Else
Return True
End If
Case GetType(DevExpress.XtraEditors.CheckedListBoxControl)
Dim checkedlistbox = DirectCast(control, DevExpress.XtraEditors.CheckedListBoxControl)
If checkedlistbox.CheckedItemsCount = 0 Then
Return False
Else
Return True
End If
Case GetType(PictureBox)
Dim picturebox = DirectCast(control, PictureBox)
If IsNothing(picturebox.BackgroundImage) Then
Return False
Else
Return True
End If
Case Else
Return True
End Select
Catch ex As Exception
Return False
End Try
End Function
' Überprüft, welche Controls "Required" sind
Public Shared Function CheckRequiredControlValues(controls As Control.ControlCollection, Optional isGroupbox As Boolean = False) As List(Of String)
Dim missingValues As New List(Of String)
'If isGroupbox = True Then
' Dim radiobuttons As New List(Of RadioButton)
' Dim otherControls As New List(Of Control)
' ' Nach allen Radiobuttons suchen
' For Each c As Control In controls
' If TypeOf c Is RadioButton Then
' radiobuttons.Add(DirectCast(c, RadioButton))
' Else
' otherControls.Add(c)
' End If
' Next
' ' Wenn mindestens 1 MussFeld-Radiobutton in der Groupbox
' Dim atLeastOneRadioButtonHasRequired = False
' For Each rb As RadioButton In radiobuttons
' If DirectCast(rb.Tag, ClassControlMetadata).Required = True Then
' atLeastOneRadioButtonHasRequired = True
' Exit For
' End If
' Next
' If atLeastOneRadioButtonHasRequired Then
' ' Alle RadioButtons die angeklickt wurden (ist meistens einer :o)
' Dim radioButtonsWithValue = (From rb As RadioButton In radiobuttons
' Where ControlHasValue(rb)
' Select rb.Name).ToArray()
' ' Wenn kein RadioButton angeklickt wurde, nehmen wir alle in einen String,
' ' da GENAU EINER angeklickt werden MUSS
' If radioButtonsWithValue Is Nothing Then
' Dim missingValue As String = String.Join(", ", radiobuttons)
' missingValues.Add(missingValue)
' End If
' End If
'End If
For Each Control As Control In controls
Dim metadata = DirectCast(Control.Tag, ClassControlMetadata)
If TypeOf Control Is Label Then
Continue For
End If
'Radio Buttons müssen nicht überprüft werden, da eine RadioButton Group
'immer ein Control mit Checked = true hat
If TypeOf Control Is RadioButton Then
Continue For
End If
Console.WriteLine(Control.Name)
' Groupbox muss rekursiv überprüft werden
If TypeOf Control Is GroupBox Then
Dim groupbox As GroupBox = DirectCast(Control, GroupBox)
Dim gbfields As List(Of String) = CheckRequiredControlValues(groupbox.Controls, True)
missingValues.AddRange(gbfields)
Continue For
End If
If IsNothing(metadata.Required) OrElse metadata.Required = False Then
Continue For
End If
If Not ControlHasValue(Control) And Control.Enabled = True Then
missingValues.Add(Control.Name)
End If
Next
Return missingValues.Distinct().ToList()
End Function
Public Shared Sub LoadControlValues(RecordId As Integer, ParentRecordId As Integer, FormId As Integer, controls As Control.ControlCollection, Entity_ID As Integer, Optional isGroupbox As Boolean = False)
Try
Dim sw As New SW("LoadControlValues1")
'Dim SQL As String = String.Format("SELECT * FROM VWPMO_VALUES WHERE VALUE <> '' AND RECORD_ID = {0}", RecordId)
Dim SQL As String = String.Format("SELECT * FROM VWPMO_VALUES WHERE RECORD_ID = {0}", RecordId)
Dim DT_ControlValues As DataTable = ClassDatabase.Return_Datatable(SQL, True)
CURRENT_CONTROL_VALUES = DT_ControlValues
sw.Done()
If controls.Count = 0 Then
ClassLogger.Add("the control-Collection in LoadControlValuesNeu is empty!", True)
If (Not isGroupbox) Then
ENTITY_RELOAD_AFT_CONTROL_LOAD = True
End If
Exit Sub
End If
' Zuerst alle Controls leeren
ClearControlValues(controls)
sw = New SW("LoadControlValues2")
' Load all Hints for controls
Dim SQLHint = "SELECT * FROM VWPMO_CONTROL_HINT WHERE FORM_ID = " & FormId
Dim DT_Hints As DataTable = ClassDatabase.Return_Datatable(SQLHint, True)
' ' Hint in DT_Hints suchen der zur aktuellen controlId passt
For Each row As DataRow In DT_Hints.Rows
ClassControlValueCache.SaveHint(row.Item(1), row.Item(2))
Next
' LoadControlHints(controls)
sw.Done()
sw = New SW("LoadControlValues3")
For Each control As Control In controls
PerfomanceHelper.SuspendDraw(control)
Dim ControlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id
' Wert per LINQ aus DT_ControlValues suchen der zur aktuellen controlId passt
Dim values As List(Of Object) = (From row In DT_ControlValues.AsEnumerable()
Where row.Item("CONTROL_ID") = ControlId
Select row.Item("VALUE")).ToList()
If TypeOf control Is GroupBox Then
Dim groupbox As GroupBox = DirectCast(control, GroupBox)
LoadControlValues(RecordId, ParentRecordId, FormId, groupbox.Controls, Entity_ID, True)
Else
If ControlId = 439 Then
Console.WriteLine("Control 439")
End If
LoadControlValue(RecordId, ParentRecordId, ControlId, control, values, Entity_ID)
End If
PerfomanceHelper.ResumeDraw(control)
Next
sw.Done()
Catch ex As Exception
ClassLogger.Add("Unexpected Error in LoadControlValuesNeu: " & ex.Message, True)
MsgBox("Error in LoadControlValuesNeu:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Shared Function GetControlValuesREC_CONTROL(RecordId As Integer, CONTROL_ID As Integer)
Try
'Dim SQL As String = String.Format("SELECT * FROM VWPMO_VALUES WHERE VALUE <> '' AND RECORD_ID = {0}", RecordId)
Dim SQL As String = String.Format("SELECT VALUE FROM VWPMO_VALUES WHERE RECORD_ID = {0} AND CONTROL_ID = {1}", RecordId, CONTROL_ID)
Dim RESULT = ClassDatabase.Execute_Scalar(SQL, True)
If IsNothing(RESULT) Then
Return Nothing
ElseIf RESULT = "" Then
Return Nothing
Else
Return RESULT
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in GetControlValuesREC_CONTROL: " & ex.Message, True)
MsgBox("Error in GetControlValuesREC_CONTROL:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Private Shared Sub LoadControlHints(controls As Control.ControlCollection)
For Each c As Control In controls
Dim id As Integer = DirectCast(c.Tag, ClassControlMetadata).Id
Dim sql As String = 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 = '{1}' AND HINT IS NOT NULL", id, USER_LANGUAGE)
Dim hint = ClassDatabase.Execute_Scalar(sql)
If IsNothing(hint) Then
Continue For
End If
ClassControlValueCache.SaveHint(id, hint.ToString)
Next
End Sub
Public Shared Sub LoadControlValue(recordId As Integer, parentRecordId As Integer, controlId As Integer, control As Control, values As List(Of Object), entity_ID As Integer)
' Try
' Für die meisten Controls wird nur das erste Element der Liste benötigt
Dim value As String = Nothing
If values.Count > 0 Then
value = values.Item(0)
End If
Select Case control.GetType()
Case GetType(TextBox)
If CURRENT_CONTROL_ID = 272 Then
Console.WriteLine("272")
End If
Dim textbox As TextBox = DirectCast(control, TextBox)
ControlLoader.TextBox.LoadValue(textbox, recordId, parentRecordId, value, entity_ID)
Case GetType(Label)
Dim label As Label = DirectCast(control, Label)
ControlLoader.Label.LoadValue(label, recordId, parentRecordId, value, entity_ID)
Case GetType(CustomComboBox)
Dim combobox As CustomComboBox = DirectCast(control, CustomComboBox)
ControlLoader.Combobox.LoadValue(combobox, recordId, parentRecordId, value)
Case GetType(CheckBox)
Dim checkbox As CheckBox = DirectCast(control, CheckBox)
ControlLoader.Checkbox.LoadValue(checkbox, value)
Case GetType(RadioButton)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Sub LoadControlValueNeu - GetType(RadioButton) ", False)
Dim radiobutton As RadioButton = DirectCast(control, RadioButton)
ControlLoader.RadioButton.LoadValue(radiobutton, value)
Case GetType(DevExpress.XtraEditors.DateEdit)
Dim datepicker As DevExpress.XtraEditors.DateEdit = DirectCast(control, DevExpress.XtraEditors.DateEdit)
ControlLoader.DateTimePicker.LoadValue(datepicker, value)
Case GetType(DevExpress.XtraEditors.ListBoxControl)
Dim listbox As DevExpress.XtraEditors.ListBoxControl = DirectCast(control, DevExpress.XtraEditors.ListBoxControl)
ControlLoader.ListBox.LoadValue(listbox, value)
Case GetType(DevExpress.XtraEditors.CheckedListBoxControl)
Dim checkedlistbox As DevExpress.XtraEditors.CheckedListBoxControl = DirectCast(control, DevExpress.XtraEditors.CheckedListBoxControl)
ControlLoader.CheckedListBox.LoadValue(checkedlistbox, values)
Case GetType(PictureBox)
Dim picturebox = DirectCast(control, PictureBox)
LoadImage(recordId, controlId, picturebox)
Case GetType(DataGridView)
Dim gridview = DirectCast(control, DataGridView)
ControlLoader.DataGridView.LoadValue(gridview, values)
Case GetType(DevExpress.XtraGrid.GridControl)
Dim gridcontrol As DevExpress.XtraGrid.GridControl = DirectCast(control, DevExpress.XtraGrid.GridControl)
ControlLoader.DataGridViewCheckable.LoadValue(gridcontrol, values)
Case Else
If GetType(Control).ToString() <> "System.Windows.Forms.Control" Then
ClassLogger.Add(" >> Sub LoadControlValue - Control-Type nicht berücksichtigt: " & GetType(Control).ToString(), False)
End If
End Select
'Catch ex As Exception
' ClassLogger.Add("Unexpected Error in LoadControlValue: " & ex.Message, True)
' MsgBox("Error in LoadControlValue:" & vbNewLine & ex.Message)
'End Try
End Sub
Public Shared Sub LoadControlValuesList(FormID As Integer, controls As Control.ControlCollection)
Try
Dim sw As New SW("LoadControlValuesList - Database")
If controls.Count = 0 Then
'MsgBox("LoadControlValuesList: Control.ControlCollection is unexpected empty!", MsgBoxStyle.Exclamation)
ClassLogger.Add("LoadControlValuesList: Control.ControlCollection is unexpected empty!")
Exit Sub
End If
' Zuerst alle SQL Commands für FormID finden
' CONTROL_SQLCOMMAND_1 wird als SQL gealiast
'Dim SQL As String = String.Format("SELECT CONTROL_ID, CONTROL_CONNID_1,CONTROL_SQLCOMMAND_1 AS SQL FROM VWPMO_CONTROL_SCREEN WHERE FORM_ID = {0} AND CONTROL_SQLCOMMAND_1 NOT LIKE '%@%'", FormID)
Dim Sql = String.Format("FORM_ID = {0} AND CONTROL_SQLCOMMAND_1 NOT LIKE '%@%'", FormID)
Dim dt As DataTable = ClassHelper.FILTER_DATATABLE(DT_VWPMO_CONTROL_SCREEN, Sql, "") 'ClassDatabase.Return_Datatable(SQL, True)
sw.Done()
If dt.Rows.Count = 0 Then
Exit Sub
End If
sw = New SW("LoadControlValuesList")
For Each Ctrl As Control In controls
Dim controlTagId = DirectCast(Ctrl.Tag, ClassControlMetadata).Id
PerfomanceHelper.SuspendDraw(Ctrl)
'If controlTagId = 474 Then
' MsgBox("Thats it")
'End If
'Datatable nach row mit CONTROL_ID wie Ctrl suchen
Dim row As DataRow = dt.Select(String.Format("CONTROL_ID={0}", controlTagId)).FirstOrDefault()
If IsNothing(row) Then
' Beim aussteigen muss wieder ResumeDraw aufgerufen werden
PerfomanceHelper.ResumeDraw(Ctrl)
Continue For
End If
Dim sqlcommand As String = row.Item("CONTROL_SQLCOMMAND_1")
Dim ConnID = row.Item("CONTROL_CONNID_1")
Select Case Ctrl.GetType()
Case GetType(CustomComboBox)
Dim combobox = DirectCast(Ctrl, CustomComboBox)
ControlLoader.Combobox.LoadList(combobox, FormID, ConnID, sqlcommand)
Case GetType(DevExpress.XtraEditors.ListBoxControl)
Dim listbox = DirectCast(Ctrl, DevExpress.XtraEditors.ListBoxControl)
ControlLoader.ListBox.LoadList(listbox, FormID, ConnID, sqlcommand)
Case GetType(DevExpress.XtraEditors.CheckedListBoxControl)
Dim chlistbox = DirectCast(Ctrl, DevExpress.XtraEditors.CheckedListBoxControl)
ControlLoader.CheckedListBox.LoadList(chlistbox, FormID, ConnID, sqlcommand)
Case GetType(DevExpress.XtraGrid.GridControl)
Dim grid = DirectCast(Ctrl, DevExpress.XtraGrid.GridControl)
ControlLoader.DataGridViewCheckable.LoadList(grid, FormID, ConnID, sqlcommand)
End Select
PerfomanceHelper.ResumeDraw(Ctrl)
Next
sw.Done()
Catch ex As Exception
ClassLogger.Add("Unexpected Error in LoadControlValuesList: " & ex.Message, True)
MsgBox("Unexpected Error in LoadControlValuesList:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Shared Sub LoadControlValuesListWithPlaceholders(FormId As Integer, RecordId As Integer, ParentRecordId As Integer, controls As Control.ControlCollection, entity_ID As Integer)
Try
If controls.Count = 0 Then
'MsgBox("LoadControlValuesListWithPlaceholders: Control.ControlCollection is unexpected empty!", MsgBoxStyle.Exclamation)
ClassLogger.Add("LoadControlValuesListWithPlaceholders: Control.ControlCollection is unexpected empty!")
Exit Sub
End If
' Dim SQL As String = String.Format("SELECT CONTROL_ID, CONTROL_CONNID_1, CONTROL_SQLCOMMAND_1 AS SQL FROM VWPMO_CONTROL_SCREEN WHERE FORM_ID = {0} AND CONTROL_SQLCOMMAND_1 <> '' AND CONTROL_SQLCOMMAND_1 LIKE '%@%'", FormId)
Dim sw As New SW("LoadControlValuesListWithPlaceholders")
Dim commands As New List(Of String)
Dim expression As String = String.Format("FORM_ID = {0} AND CONTROL_SQLCOMMAND_1 <> '' AND CONTROL_SQLCOMMAND_1 LIKE '%@%'", FormId)
Dim dt As DataTable = ClassHelper.FILTER_DATATABLE(DT_VWPMO_CONTROL_SCREEN, expression, "") 'ClassDatabase.Return_Datatable(SQL, True)
If dt.Rows.Count = 0 Then
Exit Sub
End If
For Each Ctrl As Control In controls
Dim controlTagId = DirectCast(Ctrl.Tag, ClassControlMetadata).Id
Dim row As DataRow = dt.Select(String.Format("CONTROL_ID={0}", controlTagId)).FirstOrDefault()
If IsNothing(row) Then
Continue For
End If
Dim connID = row.Item("CONTROL_CONNID_1")
Dim sqlcommand As String = row.Item("CONTROL_SQLCOMMAND_1")
If ParentRecordId = 0 And CURRENT_ACT_LEVEL > 1 Then
'eigentlich sollte eine Parent_RecordID da sein
Try
Dim _SQL = String.Format("SELECT RECORD1_ID FROM TBPMO_RECORD_CONNECT WHERE RECORD2_ID = {0}", RecordId)
Dim ParentRec = ClassDatabase.Execute_Scalar(_SQL)
If Not IsNothing(ParentRec) Then
If ParentRec > 0 Then
ParentRecordId = ParentRec
End If
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Getting Parent-Record cause PRecord was 0: " & ex.Message)
End Try
End If
sqlcommand = ReplaceSqlCommandPlaceholders(sqlcommand, RecordId, ParentRecordId, entity_ID)
PerfomanceHelper.SuspendDraw(Ctrl)
Select Case Ctrl.GetType()
Case GetType(CustomComboBox)
Dim combobox = DirectCast(Ctrl, CustomComboBox)
ControlLoader.Combobox.LoadList(combobox, FormId, connID, sqlcommand)
Case GetType(DevExpress.XtraEditors.ListBoxControl)
Dim listbox = DirectCast(Ctrl, DevExpress.XtraEditors.ListBoxControl)
ControlLoader.ListBox.LoadList(listbox, FormId, connID, sqlcommand)
Case GetType(DevExpress.XtraEditors.CheckedListBoxControl)
Dim chlistbox = DirectCast(Ctrl, DevExpress.XtraEditors.CheckedListBoxControl)
ControlLoader.CheckedListBox.LoadList(chlistbox, FormId, connID, sqlcommand)
Case GetType(DevExpress.XtraGrid.GridControl)
Dim gridControl = DirectCast(Ctrl, DevExpress.XtraGrid.GridControl)
ControlLoader.DataGridViewCheckable.LoadList(gridControl, FormId, connID, sqlcommand)
End Select
PerfomanceHelper.ResumeDraw(Ctrl)
Next
sw.Done()
Catch ex As Exception
ClassLogger.Add("Unexpected Error in LoadControlValuesListWithPlaceholders: " & ex.Message, True)
MsgBox("Unexpected Error in LoadControlValuesListWithPlaceholders:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
''' <summary>
''' Sucht alle Controls in der aktuellen Entität, die eine Abhängigkeit besitzen,
''' und (de)aktiviert sie basierend auf dem Wert er Abhängigkeit
''' </summary>
''' <remarks></remarks>
Public Shared Sub Enable_Depending_Controls(FormId As Integer, RecordId As Integer, ParentRecordId As Integer, controls As Control.ControlCollection, entity_ID As Integer)
Try
If controls.Count = 0 Then
'MsgBox("LoadControlValuesListWithPlaceholders: Control.ControlCollection is unexpected empty!", MsgBoxStyle.Exclamation)
ClassLogger.Add("Enable_Depending_Controls: Control.ControlCollection is unexpected empty!")
Exit Sub
End If
' Alle Controls finden, die Abhängigkeiten haben
Dim SQL As String = String.Format("select GUID,NAME,SQL_COMMAND_2 from TBPMO_CONTROL where FORM_ID = {0} AND SQL_COMMAND_2 IS NOT NULL " _
& "AND LEN(SQL_COMMAND_2) > 10 AND SQL_COMMAND_2 LIKE '%@%@%'", FormId)
Dim sw As New SW("Enable_Depending_Controls")
Dim commands As New List(Of String)
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
If dt.Rows.Count = 0 Then
Exit Sub
End If
' Durchlaufe alle Controls, die eine Abhängigheit haben
For Each row As DataRow In dt.Rows
Dim msg = String.Format(" >> Working on Depending Control-ID: {0}", row.Item("GUID").ToString)
If LogErrorsOnly = False Then ClassLogger.Add(msg, False)
Dim DependingControlId As Integer = row.Item("GUID")
Dim DependingControlSQL As String = row.Item("SQL_COMMAND_2")
msg = String.Format(" >> SQL: {0}", DependingControlSQL)
If LogErrorsOnly = False Then ClassLogger.Add(msg, False)
Dim DependingControl As Control = controls.OfType(Of Control)().Where(Function(c As Control)
Return DirectCast(c.Tag, ClassControlMetadata).Id = DependingControlId
End Function).SingleOrDefault()
Dim regex As New Regex("(@(\d+)@)")
Dim match As Match = regex.Match(DependingControlSQL)
If match.Success Then
' Wir suchen aus dem SQL Befehl die ControlId heraus,
' von dem das aktuelle Control abhängt
Dim otherControlId As Integer
Integer.TryParse(match.Groups(2).Value, otherControlId)
' Jetzt suchen wir das Control, das zu dieser ControlId passt
Dim otherControl As Control = controls.OfType(Of Control)().Where(Function(c As Control)
Dim controlId As Integer = DirectCast(c.Tag, ClassControlMetadata).Id
Console.WriteLine(controlId)
Return controlId = otherControlId
End Function).SingleOrDefault()
Dim otherControlType As String = otherControl.GetType().Name
' Jetzt holen wir uns den Wert von dem 'OtherControl'
' und geben seinen Value zusammen mit dem dependingControl weiter
Dim value As Object = Nothing
' Jetzt lesen wir den Wert aus, der im SQL Command ersetzt werden soll
Select Case otherControlType
Case "CheckBox"
msg = String.Format(" >> CheckBox-CtrlID: {0}", otherControlId)
If LogErrorsOnly = False Then ClassLogger.Add(msg, False)
value = DirectCast(otherControl, CheckBox).Checked
Case "TextBox"
msg = String.Format(" >> TextBox-CtrlID: {0}", otherControlId)
If LogErrorsOnly = False Then ClassLogger.Add(msg, False)
value = DirectCast(otherControl, TextBox).Text
Case "CustomComboBox"
msg = String.Format(" >> CustomComboBox-CtrlID: {0}", otherControlId)
If LogErrorsOnly = False Then ClassLogger.Add(msg, False)
value = DirectCast(otherControl, CustomComboBox).Text
Case "DateEdit"
msg = String.Format(" >> DateEdit-CtrlID: {0}", otherControlId)
If LogErrorsOnly = False Then ClassLogger.Add(msg, False)
value = DirectCast(otherControl, DevExpress.XtraEditors.DateEdit).EditValue
End Select
' Jetzt ersetzen wir den Platzhalter im SQL Command
DependingControlSQL = regex.Replace(DependingControlSQL, value)
msg = String.Format(" >> DependingControlSQL: {0}", DependingControlSQL)
If LogErrorsOnly = False Then ClassLogger.Add(msg, False)
Dim enableDT As DataTable = ClassDatabase.Return_Datatable(DependingControlSQL)
If IsNothing(enableDT) Then
msg = String.Format(">> enableDT is nothing!! CHECK SQL {0}." & vbNewLine, DependingControlSQL)
ClassLogger.Add(msg)
Continue For
End If
If enableDT.Rows.Count = 1 Then
Dim enabled As Boolean = True
Try
enabled = CBool(enableDT.Rows(0).Item(0))
Catch ex As Exception
msg = String.Format(">> Could not convert value of tablecontent to boolean!! SQL {0} # tablecontent: {1}" & vbNewLine, DependingControlSQL, enableDT.Rows(0).Item(0).ToString)
ClassLogger.Add(msg)
End Try
DependingControl.Enabled = enabled
If enabled = False Then
msg = String.Format(" >> Control {0} will be disabled." & vbNewLine, DependingControlId.ToString)
If LogErrorsOnly = False Then ClassLogger.Add(msg, False)
Else
msg = String.Format(" >> Control {0} will be enabled." & vbNewLine, DependingControlId.ToString)
If LogErrorsOnly = False Then ClassLogger.Add(msg, False)
End If
Else
ClassLogger.Add(" >> Attention in Enable_Depending_Controls: RowCount for enabling control was '" & enableDT.Rows.Count.ToString & "' and not 1 as expected - Check SQL: '" & DependingControlSQL & "'")
End If
End If
Next
sw.done
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Enable_Depending_Controls: " & ex.Message, True)
MsgBox("Unexpected Error in Enable_Depending_Controls:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Shared Function ReplaceSqlCommandPlaceholders(sqlCommand As String, recordId As Integer, parentRecordId As Integer, entity_Id As Integer)
Try
sqlCommand = sqlCommand.Replace("@RECORD_ID", recordId)
sqlCommand = sqlCommand.Replace("@RECORDID", recordId)
sqlCommand = sqlCommand.Replace("@ENTITY_ID", entity_Id)
sqlCommand = sqlCommand.Replace("@PARENTRECORD_ID", parentRecordId)
sqlCommand = sqlCommand.Replace("@PARENTRECORDID", parentRecordId)
Return sqlCommand
Catch ex As Exception
ClassLogger.Add("Unexpected Error in ReplaceSqlCommandPlaceholders: " & ex.Message, True)
MsgBox("Unexpected Error in ReplaceSqlCommandPlaceholders:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return sqlCommand
End Try
End Function
Public Shared Sub UnloadControlValuesList(RecordID As Integer, FormID As Integer, controls As Control.ControlCollection)
For Each C As Control In controls
If TypeOf C Is CustomComboBox Then
Dim Combobox = DirectCast(C, CustomComboBox)
Dim currentValue As String = Combobox.Text
Combobox.DataSource = Nothing
Combobox.Text = currentValue
End If
Next
End Sub
Public Shared Sub LoadImage(RecordID As Integer, ControlID As Integer, control As Control)
Dim picbox As PictureBox = DirectCast(control, PictureBox)
Dim SQL As String = String.Format("SELECT IMG FROM TBPMO_CONTROL_IMAGE WHERE RECORD_ID = {0} AND CONTROL_ID = {1}", RecordID, ControlID)
Dim bimage As Byte() = ClassDatabase.Execute_Scalar(SQL)
If Not IsNothing(bimage) Then
picbox.BackgroundImage = ByteArrayToBitmap(bimage)
picbox.BackgroundImageLayout = ImageLayout.Zoom
Else
picbox.BackgroundImage = Nothing
End If
End Sub
#Region "ClearControlValue"
Public Shared Sub ClearControlValues(controls As Control.ControlCollection)
For Each control In controls
If control.GetType().Name = "GroupBox" Then
Dim groupbox As GroupBox = control
ClearControlValues(groupbox.Controls)
Else
ClearControlValue(control)
End If
Next
End Sub
Public Shared Sub ClearControlValue(control As Control)
Select Case control.GetType()
Case GetType(TextBox)
DirectCast(control, TextBox).Text = String.Empty
Case GetType(CustomComboBox)
Dim combo As CustomComboBox = DirectCast(control, CustomComboBox)
combo.SelectedIndex = -1
combo.Text = String.Empty
Case GetType(CheckBox)
DirectCast(control, CheckBox).Checked = False
Case GetType(RadioButton)
DirectCast(control, RadioButton).Checked = False
Case GetType(DevExpress.XtraEditors.DateEdit)
DirectCast(control, DevExpress.XtraEditors.DateEdit).DateTime = DateTime.MinValue
Case GetType(PictureBox)
DirectCast(control, PictureBox).BackgroundImage = Nothing
Case GetType(DevExpress.XtraEditors.CheckedListBoxControl)
Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl = DirectCast(control, DevExpress.XtraEditors.CheckedListBoxControl)
chklbx.UnCheckAll()
Case GetType(DevExpress.XtraEditors.ListBoxControl)
Dim lb As DevExpress.XtraEditors.ListBoxControl = DirectCast(control, DevExpress.XtraEditors.ListBoxControl)
lb.SelectedIndex = -1
Case GetType(DataGridView)
Dim dgv As DataGridView = DirectCast(control, DataGridView)
Dim ds = dgv.DataSource
If (IsNothing(ds)) Then
dgv.Rows.Clear()
dgv.Refresh()
Else
dgv.DataSource = Nothing
dgv.Refresh()
End If
Case GetType(DevExpress.XtraGrid.GridControl)
Dim gc = DirectCast(control, DevExpress.XtraGrid.GridControl)
Dim gridview As DevExpress.XtraGrid.Views.Grid.GridView = gc.MainView
' Setzt den Filter zurück
gridview.ActiveFilterString = String.Empty
If gridview.RowCount = 0 Then
Exit Select
End If
For i As Integer = 0 To gridview.RowCount - 1
Dim fieldName As String = gridview.Columns(0).FieldName
Dim rowhandle As Integer = gridview.GetRowHandle(i)
Dim rowvalue As String = gridview.GetRowCellValue(rowhandle, fieldName)
gridview.UnselectRow(rowhandle)
Next
Try
gridview.Columns(0).OptionsColumn.AllowEdit = False
Catch ex As Exception
End Try
End Select
End Sub
#End Region
#Region "LoadDefaultValue"
Public Shared Sub LoadDefaultValues(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection, parentRecordID As Integer, EntityID As Integer)
Try
Dim sw As New SW("LoadDefaultValues")
' Alle Controls leeren
ClearControlValues(controls)
' Alle Controls laden, die einen Default Value haben
Dim SQL As String = String.Format("SELECT CONTROL_ID, CONTROL_DEF_VALUE, CONTROL_NAME FROM VWPMO_CONTROL_SCREEN WHERE FORM_ID = {0} AND CONTROL_DEF_VALUE <> '' " & _
"UNION SELECT CONTROL_ID, CONTROL_SQLCOMMAND_1 AS CONTROL_DEF_VALUE, CONTROL_NAME FROM VWPMO_CONTROL_SCREEN where FORM_ID = {0} and CONTROL_SQLCOMMAND_1 <> '' AND CONTROL_SQLCOMMAND_1 NOT LIKE '%@%@%' AND CONTROL_SQLCOMMAND_1 LIKE '%@RECORD_ID%'", FormID)
Dim DEFAULT_VALUE_DT As DataTable = ClassDatabase.Return_Datatable(SQL, True)
For Each row As DataRow In DEFAULT_VALUE_DT.Rows
Dim defaultValue = row.Item("CONTROL_DEF_VALUE")
Dim controlId As Integer = row.Item("CONTROL_ID")
Dim controlName As String = row.Item("CONTROL_NAME")
Try
Dim control As Control = controls.Find(controlName, False)(0)
LoadDefaultValue(controlId, RecordID, Control, parentRecordID, EntityID, defaultValue)
Catch ex As Exception
ClassLogger.Add("Unexpected Error in getting default value for control '" & controlName & " - " & ex.Message, True)
End Try
Next
sw.Done()
'Den Focus auf das erste Steuerelement setzen
For Each c As Control In controls
If Not TypeOf c Is Label Then
c.Focus()
Exit For
End If
Next
Catch ex As Exception
MsgBox("Error in LoadDefaultValues: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
'Public Shared Sub LoadDefaultValues_(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection, ParentRecordId As Integer, entity_ID As Integer)
' '' Zuerst alle Controls leeren
' ClearControlValues(controls)
' Dim i = 0
' For Each control As Control In controls
' Dim CONTROL_ID = DirectCast(control.Tag, ClassControlMetadata).Id ' GetControlID_for_Name(control.Name, FormID)
' If Not (TypeOf control Is Label) Then
' i += 1
' End If
' If TypeOf control Is GroupBox Then
' LoadDefaultValues(FormID, RecordID, DirectCast(control, GroupBox).Controls, ParentRecordId, entity_ID)
' End If
' 'LoadDefaultValue(CONTROL_ID, RecordID, control, ParentRecordId, entity_ID)
' 'Den Focus auf das erste Steuerelement setzen
' If i = 1 Then
' control.Focus()
' End If
' Next
'End Sub
Public Shared Sub LoadDefaultValue(ControlID As Integer, RecordID As Integer, control As Control, ParentRecordId As Integer, entity_ID As Integer, defaultValue As Object)
Try
'Dim SQL = String.Format("SELECT CONTROL_DEF_VALUE FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0} and CONTROL_DEF_VALUE <> ''", ControlID)
'Dim defaultValue = ClassDatabase.Execute_Scalar(SQL)
'Dim SQL = "SELECT * FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_ID = " & ControlID
'Dim DT As DataTable = ClassDatabase.Return_Datatable(SQL)
'Dim result = DT.Rows(0).Item("CONTROL_DEF_VALUE")
Select Case control.GetType()
Case GetType(TextBox)
If ControlID = 272 Then
Console.WriteLine("obacht")
End If
Dim textbox As TextBox = DirectCast(control, TextBox)
If IsDBNull(defaultValue) Then
textbox.Text = ""
Else
Dim vorgabe = defaultValue
'Wenn der Default Wert über einen Select kommt
If vorgabe.ToString.ToLower.StartsWith("select") Then
vorgabe = defaultValue.Replace("@FORM_ID", CURRENT_ENTITY_ID)
vorgabe = vorgabe.Replace("@RECORD_ID", CURRENT_RECORD_ID)
vorgabe = vorgabe.Replace("@RECORDID", CURRENT_RECORD_ID)
vorgabe = vorgabe.Replace("@PARENTRECORD_ID", CURRENT_PARENT_RECORD_ID)
defaultValue = ClassDatabase.Execute_Scalar(vorgabe.ToString, True)
If IsNothing(vorgabe) Then
textbox.Text = ""
End If
End If
textbox.Text = defaultValue
End If
Case GetType(CheckBox)
Dim checkbox As CheckBox = DirectCast(control, CheckBox)
checkbox.Checked = StrToBool(defaultValue)
Case GetType(RadioButton)
Dim radio As RadioButton = DirectCast(control, RadioButton)
radio.Checked = StrToBool(defaultValue)
Case GetType(CustomComboBox)
Dim combobox As CustomComboBox = DirectCast(control, CustomComboBox)
If IsDBNull(defaultValue) Then
combobox.SelectedIndex = -1
Else
combobox.SelectedIndex = combobox.FindStringExact(defaultValue)
End If
Case GetType(DevExpress.XtraEditors.DateEdit)
Dim datepicker As DevExpress.XtraEditors.DateEdit = DirectCast(control, DevExpress.XtraEditors.DateEdit)
If IsDBNull(defaultValue) Then
defaultValue = String.Empty
End If
Dim result As EnumDateTimePickerDefaultValueOptions = EnumDateTimePickerDefaultValueOptions.Empty
Dim success = [Enum].TryParse(Of EnumDateTimePickerDefaultValueOptions)(defaultValue, result)
If success Then
If result = EnumDateTimePickerDefaultValueOptions.Empty Then
' DBNull.Value leert das DateEdit control.
defaultValue = DBNull.Value
ElseIf result = EnumDateTimePickerDefaultValueOptions.CurrentDate Then
defaultValue = Now
End If
Else
'Wenn der DefaultWert nicht gelesen werden konnte, DateEdit leeren
defaultValue = DBNull.Value
End If
' Mit EditValue kann man auch den angezeigten Wert leeren
'datepicker.DateTime = autoValue
datepicker.EditValue = defaultValue
Case GetType(Label)
Dim lbl As Label = DirectCast(control, Label)
Dim CONNID = ClassDatabase.Execute_Scalar(String.Format("SELECT CONNECTION_ID_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlID))
'Dim SQL_AUTOVALUE As String = ClassDatabase.Execute_Scalar(String.Format("SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlID))
defaultValue = ClassControlValues.ReplaceSqlCommandPlaceholders(defaultValue, RecordID, ParentRecordId, entity_ID)
If defaultValue = "" Or IsDBNull(defaultValue) Then
Exit Sub
End If
If Not IsNothing(CONNID) Then
defaultValue = ClassDatabase.Execute_ScalarWithConnection(CONNID, defaultValue)
Else
defaultValue = ClassDatabase.Execute_Scalar(defaultValue, True)
End If
' AutoValue = ClassDatabase.Execute_Scalar(SQL)
If Not IsNothing(defaultValue) And Not IsDBNull(defaultValue) Then
lbl.Text = defaultValue
End If
End Select
Catch ex As Exception
MsgBox("Unexpected Error in LoadDefaultValue:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
#End Region
Public Shared Function Get_Control_Value_for_ID(Control_ID As Integer, Record_ID As Integer)
Try
Dim sql = "SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = " & Control_ID & " AND RECORD_ID = " & Record_ID
CURRENT_LAST_SQL = sql
Return ClassDatabase.Execute_Scalar(sql)
Catch ex As Exception
ClassLogger.Add("Unexpected Error in GetControlValueForControlID: " & ex.Message, True)
MsgBox("Error in GetControlValueForControlID:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
End Class

View File

@ -0,0 +1,29 @@
Public Class ClassControls_Manual
Public Shared Function AddCheckBox(ID As Integer, indexname As String, y As Integer, vorbelegung As String, caption As String)
Try
Dim chk As New CheckBox
chk.Name = "chk" & indexname
chk.Size = New Size(100, 27)
chk.Location = New Point(11, y)
chk.Tag = ID
If caption <> "" Then
chk.Text = caption
chk.Size = New Size(CInt(caption.Length * 15), 27)
End If
If vorbelegung <> "" Then
If vorbelegung = "1" Or vorbelegung = "0" Then
chk.Checked = CBool(vorbelegung)
Else
chk.Checked = False
End If
Else
chk.Checked = False
End If
Return chk
Catch ex As Exception
ClassLogger.Add("Unhandled Exception in AddCheckBox: " & ex.Message, True)
Return Nothing
End Try
End Function
End Class

View File

@ -0,0 +1,94 @@
Public Class ClassConverter
' ------------- STRING TO TYPE -------------
Public Shared Function ToBooleanOrDefault(value As Object, Optional defaultValue As Boolean = False)
Try
Dim bool As Boolean
If Boolean.TryParse(value, bool) = True Then
Return bool
Else
If IsDBNull(value) OrElse value = "" Then
Return defaultValue
Else
Return Convert.ToBoolean(value)
End If
End If
Catch ex As Exception
Return defaultValue
End Try
End Function
Public Shared Function ToStringOrDefault(value As Object, Optional defaultValue As String = "")
Try
If IsDBNull(value) OrElse String.IsNullOrEmpty(value) Then
Return defaultValue
Else
Return Convert.ToString(value)
End If
Catch ex As Exception
Return defaultValue
End Try
End Function
Public Shared Function ToIntOrDefault(value As Object, Optional defaultValue As Integer = 0)
Try
If IsDBNull(value) Then
Return defaultValue
Else
Return Convert.ToInt16(value)
End If
Catch ex As Exception
Return defaultValue
End Try
End Function
' ------------- TYPE TO TYPE -------------
Public Shared Function BoolToInt(bool As Boolean)
Return IIf(bool, 1, 0)
End Function
Public Shared Function IntToBoolOrDefault(int As Integer, Optional defaultValue As Boolean = False)
If int = 0 Then
Return False
ElseIf int = 1 Then
Return True
Else
Return defaultValue
End If
End Function
' ------------- STRING TO ENUM -------------
Public Shared Function ToDateTimePickerOptionsOrDefault(value As String)
Try
If IsDBNull(value) OrElse String.IsNullOrEmpty(value) Then
Return EnumDateTimePickerDefaultValueOptions.Empty
Else
Dim result As EnumDateTimePickerDefaultValueOptions
Dim success = [Enum].TryParse(Of EnumDateTimePickerDefaultValueOptions)(value, result)
If success Then
Return result
Else
Return EnumDateTimePickerDefaultValueOptions.Empty
End If
End If
Catch ex As Exception
Return EnumDateTimePickerDefaultValueOptions.Empty
End Try
End Function
' ------------- TYPE TO STRING -------------
Public Shared Function SQLValueToString(value As SQLValue) As String
Dim cmd As String = value.Value
If cmd.Contains("'") Then
cmd = cmd.Replace("'", "''")
End If
Return cmd
End Function
End Class

View File

@ -0,0 +1,70 @@
Public Class CustomComboBox
Inherits ComboBox
Public Sub New()
MyBase.New()
DrawMode = DrawMode.OwnerDrawFixed
End Sub
'Protected Overrides Sub OnEnabledChanged(e As EventArgs)
' 'MyBase.OnEnabledChanged(e)
' If Me.Enabled Then
' Me.DropDownStyle = ComboBoxStyle.DropDown
' Else
' Me.DropDownStyle = ComboBoxStyle.DropDownList
' End If
'End Sub
Protected Overrides Sub OnDrawItem(e As DrawItemEventArgs)
Dim g As System.Drawing.Graphics = e.Graphics
Dim rect As Rectangle = e.Bounds
If e.Index >= 0 Then
Dim label As String
' Wenn die Items eine Static List ist, wird der String ausgelesen
If (Me.Items(e.Index).GetType() = GetType(String)) Then
label = Me.Items(e.Index).ToString()
Else
Try
'Wenn die Items aus einer Datatable kommen, wird der DisplayMember ausgelesen
Dim rowView As DataRowView = Me.Items(e.Index)
Dim rowCount As Integer = rowView.Row.ItemArray.Count
If rowCount = 1 Then
label = rowView.Item(0)
ElseIf rowCount = 2 Then
label = rowView.Item(1)
End If
Catch ex As Exception
ClassLogger.Add("Unexpected error in OnDrawItem (datatable): " & ex.Message, True)
End Try
End If
If e.State = (DrawItemState.Disabled Or DrawItemState.NoAccelerator Or DrawItemState.NoFocusRect Or DrawItemState.ComboBoxEdit) Then
' DISABLED STATE
g.FillRectangle(New SolidBrush(System.Drawing.SystemColors.Info), rect)
g.DrawString(label, e.Font, Brushes.Black, rect)
e.DrawFocusRectangle()
ElseIf (e.State = (DrawItemState.NoAccelerator Or DrawItemState.NoFocusRect)) Then
' ITEMS NOT IN FOCUS
g.FillRectangle(New SolidBrush(Color.White), rect)
g.DrawString(label, e.Font, Brushes.Black, rect)
e.DrawFocusRectangle()
Else
' ITEMS IN FOCUS
g.FillRectangle(New SolidBrush(System.Drawing.SystemColors.Highlight), rect)
g.DrawString(label, e.Font, Brushes.White, rect)
e.DrawFocusRectangle()
End If
End If
g.Dispose()
End Sub
End Class

View File

@ -0,0 +1,552 @@
Imports System.IO
Imports DD_LIB_Standards
Public Class ClassDOC_SEARCH
Private Shared DT_RESULTLIST_OPTIONS As DataTable
Private Shared DT_RESULTLIST_SEL_VALUES As DataTable
Private Shared ENTITY_ID As Integer
Private Shared RECORD_ID As Integer
Private Shared AsyncRunning As Boolean = False
Private Shared Function GET_DOCSEARCH_DATATABLE(Optional BG As Boolean = False)
Try
Dim OPTION1
Dim OPTION2
Dim OPTION3
Dim OPTION4
Dim OPTION5
Dim VALUE_CONF1
Dim VALUE_CONF2
Dim VALUE_CONF3
Dim VALUE_CONF4
If DT_RESULTLIST_OPTIONS.Rows.Count = 0 Then
OPTION1 = 0
OPTION2 = 0
OPTION3 = 0
OPTION4 = 0
OPTION5 = 0
Else
OPTION1 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION1_CTRL")
OPTION2 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION2_CTRL")
OPTION3 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION3_CTRL")
OPTION4 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION4_CTRL")
OPTION5 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION5_CTRL")
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> DT_RESULTLIST_SEL_VALUES.Rows.Count: " & DT_RESULTLIST_SEL_VALUES.Rows.Count, False)
If DT_RESULTLIST_SEL_VALUES.Rows.Count = 0 Then
VALUE_CONF1 = 0
VALUE_CONF2 = 0
VALUE_CONF3 = 0
VALUE_CONF4 = 0
Else
VALUE_CONF1 = DT_RESULTLIST_SEL_VALUES.Rows(0).Item("GUID")
Try
VALUE_CONF2 = DT_RESULTLIST_SEL_VALUES.Rows(1).Item("GUID")
Catch ex As Exception
VALUE_CONF2 = 0
End Try
Try
VALUE_CONF3 = DT_RESULTLIST_SEL_VALUES.Rows(2).Item("GUID")
Catch ex As Exception
VALUE_CONF3 = 0
End Try
Try
VALUE_CONF4 = DT_RESULTLIST_SEL_VALUES.Rows(3).Item("GUID")
Catch ex As Exception
VALUE_CONF4 = 0
End Try
End If
Dim SQL_DOC_SEARCH
If CURRENT_SEARCH_TYPE = "ENTITY" Then
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.*," & vbNewLine &
"'NO OPTION IN ENTITY-SEARCH' AS OPTION1," & vbNewLine &
"'NO OPTION IN ENTITY-SEARCH' AS OPTION2," & vbNewLine &
"'NO INDEX IN ENTITY-SEARCH' AS DOCIDX1," & vbNewLine &
"'NO INDEX IN ENTITY-SEARCH' AS DOCIDX2," & vbNewLine &
"'NO INDEX IN ENTITY-SEARCH' AS DOCIDX3," & vbNewLine &
"'NO INDEX IN ENTITY-SEARCH' AS DOCIDX4," & vbNewLine &
"'NO DROPDOWN IN ENTITY-SEARCH' AS DROPDOWN1," & vbNewLine &
"'NO DROPDOWN IN ENTITY-SEARCH' AS DROPDOWN2," & vbNewLine &
"'NO DROPDOWN IN ENTITY-SEARCH' AS DROPDOWN3," & vbNewLine &
"'NO DROPDOWN IN ENTITY-SEARCH' AS DROPDOWN4" & vbNewLine &
"FROM " & vbNewLine &
"VWPMO_DOC_SEARCH T" & vbNewLine &
"WHERE T.DocID IN (select DISTINCT T.DOC_ID from TBPMO_DOC_RECORD_LINK T, TBPMO_RECORD T1 WHERE T.RECORD_ID = T1.GUID AND T1.FORM_ID = {0}) " & vbNewLine &
"AND T.DocID IN (SELECT dwObjectID FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {2} AND dwObjectID = T.DocID)", ENTITY_ID, USER_LANGUAGE, USERID_FK_INT_ECM, OPTION1, OPTION2)
If CURRENT_ENTITYSQL_WHERE <> "" Then
Dim where = CURRENT_ENTITYSQL_WHERE.Replace("WHERE [RECORD-ID] IN ", "")
SQL_DOC_SEARCH = SQL_DOC_SEARCH & " " & vbNewLine & String.Format("AND T.DocID IN (SELECT DISTINCT DOC_ID from TBPMO_DOC_RECORD_LINK WHERE RECORD_ID IN ({0}))", where)
End If
If BG = True Then
If IsNothing(CURRENT_DT_DOC_ENTITY_SEARCH) Then
If AsyncRunning = True Then
MsgBox("Entity-Search already running in background! Please wait a while!", MsgBoxStyle.Information)
Return Nothing
End If
Dim async As New ClassAsyncReturnDT(SQL_DOC_SEARCH, "LOAD_ENTITY_SEARCH_AT STARTUP")
async.bw.RunWorkerAsync()
While async.bw.IsBusy
Application.DoEvents()
End While
CURRENT_DT_DOC_ENTITY_SEARCH = async.dt
AsyncRunning = False
End If
End If
ElseIf CURRENT_SEARCH_TYPE = "RECORD" Then
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.* ," & vbNewLine &
"ISNULL(T1.VALUE,'') AS OPTION1," & vbNewLine &
"ISNULL(T2.VALUE,'') AS OPTION2," & vbNewLine &
"ISNULL(T3.VALUE,'') AS OPTION3," & vbNewLine &
"ISNULL(T4.VALUE,'') AS OPTION4," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN1','{7}',TRL.RECORD_ID) AS DROPDOWN1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN2','{7}',TRL.RECORD_ID) AS DROPDOWN2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN3','{7}',TRL.RECORD_ID) AS DROPDOWN3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN4','{7}',TRL.RECORD_ID) AS DROPDOWN4," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC.GUID) AS VALUE1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC1.GUID) AS VALUE2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC2.GUID) AS VALUE3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC3.GUID) AS VALUE4," & vbNewLine &
"dwAccessRight AS ACCESS_RIGHT" & vbNewLine &
"FROM " & vbNewLine &
"VWPMO_DOC_SEARCH T " & vbNewLine &
"INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vbNewLine &
"INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vbNewLine &
"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbNewLine &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON TR.FORM_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = '{7}' AND TRC.GUID = {8}" & vbNewLine &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON TR.FORM_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = '{7}' AND TRC1.GUID = {9}" & vbNewLine &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON TR.FORM_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = '{7}' AND TRC2.GUID = {10}" & vbNewLine &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON TR.FORM_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = '{7}' AND TRC3.GUID = {11}" & vbNewLine &
"LEFT JOIN TBPMO_CONTROL_VALUE T1 ON TRL.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = {2} " & vbNewLine &
"LEFT JOIN TBPMO_CONTROL_VALUE T2 ON TRL.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = {3} " & vbNewLine &
"LEFT JOIN TBPMO_CONTROL_VALUE T3 ON TRL.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = {4} " & vbNewLine &
"LEFT JOIN TBPMO_CONTROL_VALUE T4 ON TRL.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = {5} " & vbNewLine &
"WHERE TRL.RECORD_ID = {0} AND TR.FORM_ID = {1} AND TRIGHTS.dwUserOrGroupID = {6}", RECORD_ID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4, USERID_FK_INT_ECM, USER_LANGUAGE, VALUE_CONF1, VALUE_CONF2, VALUE_CONF3, VALUE_CONF4)
ElseIf CURRENT_SEARCH_TYPE = "FULLTEXT" Then
Dim sqlft = SQL_FULLTEXT
sqlft = sqlft.Replace("@FULLTEXT", CURRENT_FULLTEXT_PATTERN)
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.*," & vbNewLine &
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({3},T.DocID,{0}) AS OPTION1," & vbNewLine &
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({4},T.DocID,{0}) AS OPTION2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX1') AS DOCIDX1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX2') AS DOCIDX2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX3') AS DOCIDX3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX4') AS DOCIDX4," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{0},'DROPDOWN1','{1}',TRL.RECORD_ID) AS DROPDOWN1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{0},'DROPDOWN2','{1}',TRL.RECORD_ID) AS DROPDOWN2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{0},'DROPDOWN3','{1}',TRL.RECORD_ID) AS DROPDOWN3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{0},'DROPDOWN4','{1}',TRL.RECORD_ID) AS DROPDOWN4" & vbNewLine &
"FROM " & vbNewLine &
"VWPMO_DOC_SEARCH T" & vbNewLine &
"INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vbNewLine &
"INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vbNewLine &
"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbNewLine &
"LEFT OUTER JOIN TBPMO_CONTROL_VALUE TCTRL ON TR.GUID = TCTRL.RECORD_ID" & vbNewLine &
"WHERE TR.FORM_ID = {0} AND TRIGHTS.dwUserOrGroupID = {2} AND (" & vbNewLine &
"TCTRL.VALUE LIKE '%{6}%' OR" & vbNewLine &
"T.DocID IN ({5}" & vbNewLine &
"))", ENTITY_ID, USER_LANGUAGE, USERID_FK_INT_ECM, OPTION1, OPTION2, sqlft, CURRENT_FULLTEXT_PATTERN)
ElseIf CURRENT_SEARCH_TYPE = "NODE_DOWN" Then
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.* ," & vbNewLine &
"ISNULL(T1.VALUE,'') AS OPTION1," & vbNewLine &
"ISNULL(T2.VALUE,'') AS OPTION2," & vbNewLine &
"ISNULL(T3.VALUE,'') AS OPTION3," & vbNewLine &
"ISNULL(T4.VALUE,'') AS OPTION4," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN1','{7}',TRL.RECORD_ID) AS DROPDOWN1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN2','{7}',TRL.RECORD_ID) AS DROPDOWN2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN3','{7}',TRL.RECORD_ID) AS DROPDOWN3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN4','{7}',TRL.RECORD_ID) AS DROPDOWN4," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC.GUID) AS VALUE1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC1.GUID) AS VALUE2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC2.GUID) AS VALUE3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC3.GUID) AS VALUE4" & vbNewLine &
"FROM " & vbNewLine &
"VWPMO_DOC_SEARCH T " & vbNewLine &
"INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vbNewLine &
"INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vbNewLine &
"INNER JOIN TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP ON TR.GUID = TTEMP.RECORD_ID" & vbNewLine &
"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbNewLine &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON TR.FORM_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = '{7}' AND TRC.GUID = {8}" & vbNewLine &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON TR.FORM_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = '{7}' AND TRC1.GUID = {9}" & vbNewLine &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON TR.FORM_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = '{7}' AND TRC2.GUID = {10}" & vbNewLine &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON TR.FORM_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = '{7}' AND TRC3.GUID = {11}" & vbNewLine &
"LEFT JOIN TBPMO_CONTROL_VALUE T1 ON TRL.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = {2} " & vbNewLine &
"LEFT JOIN TBPMO_CONTROL_VALUE T2 ON TRL.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = {3} " & vbNewLine &
"LEFT JOIN TBPMO_CONTROL_VALUE T3 ON TRL.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = {4} " & vbNewLine &
"LEFT JOIN TBPMO_CONTROL_VALUE T4 ON TRL.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = {5} " & vbNewLine &
"WHERE TR.FORM_ID = {1} AND TTEMP.USER_ID = {0} AND TRIGHTS.dwUserOrGroupID = {6}", USER_GUID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4, USERID_FK_INT_ECM, USER_LANGUAGE, VALUE_CONF1, VALUE_CONF2, VALUE_CONF3, VALUE_CONF4)
ElseIf CURRENT_SEARCH_TYPE = "FULLTEXT_SUBNODES" Then
Dim sqlft = SQL_FULLTEXT
sqlft = sqlft.Replace("@FULLTEXT", CURRENT_FULLTEXT_PATTERN)
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.*," & vbNewLine &
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({4},T.DocID,{1}) AS OPTION1," & vbNewLine &
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({5},T.DocID,{1}) AS OPTION2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN1','{0}',TRL.RECORD_ID) AS DROPDOWN1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN2','{0}',TRL.RECORD_ID) AS DROPDOWN2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN3','{0}',TRL.RECORD_ID) AS DROPDOWN3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN4','{0}',TRL.RECORD_ID) AS DROPDOWN4" & vbNewLine &
"FROM " & vbNewLine &
"VWPMO_DOC_SEARCH T" & vbNewLine &
"INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vbNewLine &
"INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vbNewLine &
"INNER JOIN TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP ON TR.GUID = TTEMP.RECORD_ID" & vbNewLine &
"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbNewLine &
"WHERE TR.FORM_ID = {1} AND TTEMP.USER_ID = {2} AND TRIGHTS.dwUserOrGroupID = {3}" & vbNewLine &
"AND T.DocID IN ({6})", USER_LANGUAGE, ENTITY_ID, USER_GUID, USERID_FK_INT_ECM, OPTION1, OPTION2, sqlft)
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> SQL_DOC_SEARCH: " & SQL_DOC_SEARCH, False)
If BG = True And CURRENT_SEARCH_TYPE = "ENTITY" Then
If Not IsNothing(CURRENT_DT_DOC_ENTITY_SEARCH) Then
Return CURRENT_DT_DOC_ENTITY_SEARCH
End If
End If
Dim DTFILE_RESULT_ASYNC As DataTable
Try
Dim async As New ClassAsyncSQL(SQL_DOC_SEARCH)
async.bw.RunWorkerAsync()
While async.bw.IsBusy
Application.DoEvents()
End While
DTFILE_RESULT_ASYNC = async.dt
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error Async DTFILE_RESULT_ASYNC", ex.Message, ex.StackTrace)
End Try
Return DTFILE_RESULT_ASYNC 'ClassDatabase.Return_Datatable(SQL_DOC_SEARCH, True)
Catch ex As Exception
ClassLogger.Add("Unexpected Error in GET_DOCSEARCH_DATATABLE: " & ex.Message, True)
Return Nothing
End Try
End Function
'Public Shared Function Get_DOCRESULTS(vDT_RESULTLIST_OPTIONS As DataTable, vDT_RESULTLIST_SELVALUES As DataTable, DT_WINDREAM_RESULTLIST As DataTable, ENT_ID As Integer, vType As String, Optional ftString As String = "", Optional BG As Boolean = False)
' ENTITY_ID = ENT_ID
' DT_RESULTLIST_OPTIONS = vDT_RESULTLIST_OPTIONS
' DT_RESULTLIST_SEL_VALUES = vDT_RESULTLIST_SELVALUES
' Return GET_DOCSEARCH_DATATABLE(BG)
'End Function
Public Shared Function Get_DOC_RESULTTABLE(vDT_RESULTLIST_OPTIONS As DataTable, vDT_RESULTLIST_SELVALUES As DataTable, DT_TBPMO_DOCSEARCH_RESULTLIST_CONFIG As DataTable, ENT_ID As Integer, REC_ID As Integer, Optional BG As Boolean = False, Optional Preload As Boolean = False)
Dim _step As String
Dim COL_ARRAY_RESULTLIST As List(Of String)
ENTITY_ID = ENT_ID
DT_RESULTLIST_OPTIONS = vDT_RESULTLIST_OPTIONS
DT_RESULTLIST_SEL_VALUES = vDT_RESULTLIST_SELVALUES
RECORD_ID = REC_ID
Try
Dim sw As New SW("Get_DOC_RESULTTABLE")
Dim DT_FILE_RESULT As DataTable = GET_DOCSEARCH_DATATABLE(BG)
CURRENT_DOC_RESULTS = DT_FILE_RESULT
If IsNothing(DT_FILE_RESULT) Then
ClassLogger.Add(">> ATTENTION: GET_DOCSEARCH_DATATABLE IS NOTHING!!", False)
Return Nothing
End If
sw.Done()
_step = "1"
If Preload = True Then
Return Nothing
End If
sw = New SW("Get_DOC_RESULTTABLE DTGrid-Definition")
Dim DTGrid As New DataTable
Dim ColArrayDEFINITION As New List(Of String)
Dim listcheck As New List(Of String)
For Each row As DataRow In DT_TBPMO_DOCSEARCH_RESULTLIST_CONFIG.Rows
Dim type = row.Item("TYPE_ID")
Dim COLNAME = row.Item("HEADER_CAPTION")
If type = 2 Then
listcheck.Add(COLNAME)
End If
Next
_step = "2"
For Each col1 As String In listcheck
Dim collist As DataColumn = DT_FILE_RESULT.Columns(col1)
If Not IsNothing(collist) Then
collist.DataType = GetType(Boolean)
End If
Next
_step = "3"
Try
'Die Icon Colum erstellen und konfigurieren
Dim colIcon As New System.Data.DataColumn()
colIcon.DataType = GetType(Image)
colIcon.ColumnName = "ICON"
colIcon.Caption = ""
DTGrid.Columns.Add(colIcon)
_step = "4"
Dim colPath As New System.Data.DataColumn()
colPath.DataType = GetType(String)
colPath.ColumnName = "FULLPATH"
colPath.Caption = "Fullpath"
DTGrid.Columns.Add(colPath)
_step = "5"
Dim colOtype As New System.Data.DataColumn()
colOtype.DataType = GetType(String)
colOtype.ColumnName = "OBJECTTYPE"
colOtype.Caption = "Objecttype"
DTGrid.Columns.Add(colOtype)
_step = "6"
Dim colDocID As New System.Data.DataColumn()
colDocID.DataType = GetType(Int32)
colDocID.ColumnName = "DocID"
colDocID.Caption = "DocID"
DTGrid.Columns.Add(colDocID)
_step = "7"
If Not DT_TBPMO_DOCSEARCH_RESULTLIST_CONFIG Is Nothing And DT_TBPMO_DOCSEARCH_RESULTLIST_CONFIG.Rows.Count >= 1 Then
Dim ColCount As Integer = 1
For Each rw As DataRow In DT_TBPMO_DOCSEARCH_RESULTLIST_CONFIG.Rows
Dim ColumnName = rw.Item("HEADER_CAPTION")
Dim Width = rw.Item("WIDTH")
If IsNothing(Width) Or IsDBNull(Width) Then
Width = 200
End If
'Jetzt das Array zusammenbauen um die Spaltenwerte zu erhalten
Dim colname = rw.Item("COLUMN_VIEW")
ColArrayDEFINITION.Add(rw.Item("COLUMN_VIEW"))
_step = "7.2"
'Die Spalte definieren
Try
DTGrid.Columns.Add(ColumnName)
ColCount += 1
Catch ex As Exception
ClassLogger.Add(String.Format("Unexpected Error in DTGrid.Columns.Add({0}) - CONSTR_DET_ID: {1} ", ColumnName, CURRENT_CONSTRUCTOR_DETAIL_ID) & ex.Message)
End Try
Next
_step = "7.1"
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Construct Datatable: " & ex.Message)
MsgBox("Unexpected Error in Construct Datatable for GridResult: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
sw.Done()
sw = New SW("Run Get_DOC_RESULTTABLE")
COL_ARRAY_RESULTLIST = ColArrayDEFINITION
_step = "8"
For Each col1 As String In listcheck
Dim collist As DataColumn = DTGrid.Columns(col1)
If Not IsNothing(collist) Then
collist.DataType = GetType(Boolean)
End If
Next
_step = "9"
Dim _i As Integer
For Each FILE_ROW As DataRow In DT_FILE_RESULT.Rows
_i += 1
_step = "9 FileCount(" & _i.ToString
Dim fullpath = FILE_ROW.Item("FULL_FILENAME")
Dim objecttype = FILE_ROW.Item("OBJECTTYPE")
Dim DocID = FILE_ROW.Item("DocID")
'Dim Folderpath = Path.GetDirectoryName(fullpath)
Dim filename = Path.GetFileName(fullpath)
Dim extension = Path.GetExtension(fullpath)
' Try
Dim NewRow As DataRow
NewRow = DTGrid.NewRow()
'Icon zuweisen
Select Case extension.ToUpper
Case ".csv".ToUpper
NewRow.Item(0) = My.Resources.doc_excel_csv
Case ".txt".ToUpper
NewRow.Item(0) = My.Resources.text
Case ".pdf".ToUpper
NewRow.Item(0) = My.Resources.pdf
Case ".doc".ToUpper
NewRow.Item(0) = My.Resources.doc
Case ".docx".ToUpper
NewRow.Item(0) = My.Resources.doc
Case ".xls".ToUpper
NewRow.Item(0) = My.Resources.xls
Case ".xlsx".ToUpper
NewRow.Item(0) = My.Resources.xls
Case ".xlsm".ToUpper
NewRow.Item(0) = My.Resources.xls
Case ".ppt".ToUpper
NewRow.Item(0) = My.Resources.ppt
Case ".pptx".ToUpper
NewRow.Item(0) = My.Resources.ppt
Case ".dwg".ToUpper
NewRow.Item(0) = My.Resources.dwg
Case ".dxf".ToUpper
NewRow.Item(0) = My.Resources.dxf
Case ".msg".ToUpper
NewRow.Item(0) = My.Resources.email_go
Case ".msg".ToUpper
NewRow.Item(0) = My.Resources.email_go
Case Else
NewRow.Item(0) = My.Resources._blank
End Select
'Den Filepath mitgeben
NewRow.Item(1) = fullpath
NewRow.Item(2) = objecttype
NewRow.Item(3) = DocID
Dim i = 4 'Fängt bei 4 an, um die definierten Spalten zu überspringen
For Each Colname As String In ColArrayDEFINITION
Dim rowvalue
Try
rowvalue = FILE_ROW.Item(Colname)
If LogErrorsOnly = False Then ClassLogger.Add(" >> rowvalue for Colname '" & Colname & "': '" & rowvalue.ToString & "'", False)
Catch ex As Exception
If CURRENT_SEARCH_TYPE = "RECORD" Then ClassLogger.Add("Unexpected Error in GetVariableValue for Column '" & Colname & "'- Error: " & ex.Message)
If Colname.ToString.StartsWith("doct") Or Colname.ToString.StartsWith("Dokum") Then
rowvalue = ""
Else
If CURRENT_SEARCH_TYPE <> "RECORD" Then
rowvalue = "Not displayable in Group-Search"
Else
rowvalue = "Error getting rowvalue"
End If
End If
End Try
NewRow.Item(i) = rowvalue.ToString
i += 1
Next
DTGrid.Rows.Add(NewRow)
' Catch ex As Exception
' ClassLogger.Add("Unexpected Error in CreateRow for doc '" & filename & "- Error: " & ex.Message)
' End Try
Next
_step = "10"
Return DTGrid
sw.Done()
Catch ex As Exception
MsgBox("Unexpected Error in Get_DOC_RESULTTABLE (Step " & _step & "): " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
ClassLogger.Add("Unexpected Error in Get_DOC_RESULTTABLE (Step " & _step & "): " & ex.Message)
Return Nothing
End Try
End Function
Public Shared Function REFRESH_DOC_TABLE_RESULTS()
Try
Dim execute = "EXEC[dbo].[PRPMO_DOCRESULT_CHANGE]"
Return ClassDatabase.Execute_non_Query_withConn(execute, 1)
Catch ex As Exception
MsgBox("Unexpected Error in REFRESH_TABLE_RESULTS: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function CREATE_DOC_RELATED_LINKS(DOC_ID As Integer, RECORD_ID As Integer)
Try
Dim execute = String.Format("EXEC [dbo].[PRPMO_DOC_CREATE_NEW_DOC] {0},{1},'{2}'", DOC_ID, RECORD_ID, USER_USERNAME)
If ClassDatabase.Execute_non_Query(execute) = True Then
If LICENSE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
execute = String.Format("EXEC [dbo].[PRPROXY_DOC_CREATE_NEW_DOC] {0},{1},'{2}'", DOC_ID, RECORD_ID, USER_USERNAME)
ClassDatabase.Execute_non_Query(execute, True)
End If
Return True
Else
Return False
End If
Catch ex As Exception
MsgBox("Unexpected Error in CREATE_DOC_RELATED_LINKS: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function SET_WD_RIGHTS(ByVal RESULT_DOCID, ByVal RESULT_DOC_PATH)
Try
If CURRENT_RECORD_ID = 0 Then
MsgBox("No Record selected - Please select one!", MsgBoxStyle.Exclamation)
Return False
End If
If LogErrorsOnly = False Then ClassLogger.Add("#### SETTING RIGHTS FOR FILE ######", False)
If ClassWDRights.Init = True Then
If ClassWDRights.Doc_Renew_Rights(RESULT_DOCID, RESULT_DOC_PATH, True) Then
If ClassWDRights.MSG_RESULT <> "" Then
Dim msg = "Achtung: einige Rechte konnten nicht gesetzt werden: " & vbNewLine & ClassWDRights.MSG_RESULT
If USER_LANGUAGE <> "de-DE" Then
msg = "Attention: some rights could not be set: " & vbNewLine & ClassWDRights.MSG_RESULT
End If
ClassHelper.MSGBOX_Handler("INFO", "Information:", msg)
End If
Return True
Else
Return False
End If
Else
MsgBox("Could not initialize right-module - Check the log!", MsgBoxStyle.Exclamation)
Return False
End If
'DD_Rights.clsLogger.Init(Application.UserAppDataPath() & "\Log", USER_USERNAME)
'If DD_Rights.clsDatabase.Init(MyConnectionString) = True Then
' If DD_Rights.ClassRights.Init(ENTITY_ID, LogErrorsOnly) = True Then
' If DD_Rights.ClassRights.Collect_Users(CURRENT_RECORD_ID, ENTITY_ID) = True Then
' If DD_Rights.ClassRights.File_DeleteAndSetRight(RESULT_DOCID, RESULT_DOC_PATH, True) Then
' If DD_Rights.ClassRights.MSG_RESULT <> "" Then
' Dim msg = "Achtung: einige Rechte konnten nicht gesetzt werden: " & vbNewLine & DD_Rights.ClassRights.MSG_RESULT
' If USER_LANGUAGE <> "de-DE" Then
' msg = "Attention: some rights could not be set: " & vbNewLine & DD_Rights.ClassRights.MSG_RESULT
' End If
' MsgBox(msg, MsgBoxStyle.Exclamation)
' Return True
' Else
' Return True
' End If
' Else
' Return False
' End If
' Else
' Return False
' End If
' Else
' Return False
' End If
'Else
' Return False
'End If
Catch ex As Exception
MsgBox("Unexpected Error in SET_WD_RIGHTS: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
''' <summary>
''' Returns a right-type for file.
''' </summary>
''' <param name="DOC_ID">DOC_ID of windream-file</param>
''' <returns>Returns info about filerights</returns>
''' <remarks></remarks>
Public Shared Function Get_File_Rights(DOC_ID As Integer)
Try
Dim sql = String.Format("SELECT dwAccessRight FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwObjectID = {0} and dwUserOrGroupID = {1}", DOC_ID, USERID_FK_INT_ECM)
Dim result = clsDatabase.Execute_Scalar(sql, True)
If IsNothing(result) Or IsDBNull(result) Then
Return Nothing
End If
Select Case result
Case 1
Return "R"
Case 3
Return "RW"
Case 7
Return "RWA"
Case 141
Return "RWA"
Case Else
Return "R"
End Select
Catch ex As Exception
clsLogger.Add("Unexpected Error in Get_File_Rights: " & ex.Message, True)
Return Nothing
End Try
End Function
End Class

View File

@ -0,0 +1,493 @@
Imports Oracle.ManagedDataAccess.Client
Imports System.Data.Odbc
Imports System.Data.SqlClient
Public Class ClassDatabase
Private Shared connectionString As String
Public Shared Function Init()
Try
connectionString = MyConnectionString
Dim SQLconnect As New SqlClient.SqlConnection
SQLconnect.ConnectionString = connectionString
SQLconnect.Open()
SQLconnect.Close()
Return True
Catch ex As Exception
ClassLogger.Add("Error in DatabaseInit: " & ex.Message, True)
Return False
End Try
End Function
Public Shared Function GetConnectionString(id As Integer)
Dim connectionString As String = ""
Try
'Me.TBCONNECTIONTableAdapter.FillByID(Me.DD_DMSLiteDataSet.TBCONNECTION, id)
Dim DTConnection As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBDD_CONNECTION WHERE GUID = " & id, True)
If DTConnection.Rows.Count = 1 Then
Select Case DTConnection.Rows(0).Item("SQL_PROVIDER")
Case "MS-SQL"
If DTConnection.Rows(0).Item("USERNAME") = "WINAUTH" Then
connectionString = "Server=" & DTConnection.Rows(0).Item("SERVER") & ";Database=" & DTConnection.Rows(0).Item("DATENBANK") & ";Trusted_Connection=True;"
Else
connectionString = "Server=" & DTConnection.Rows(0).Item("SERVER") & ";Database=" & DTConnection.Rows(0).Item("DATENBANK") & ";User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";"
End If
' connectionString = "Server=" & DTConnection.Rows(0).Item("SERVER") & ";Database=" & DTConnection.Rows(0).Item("DATENBANK") & ";User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";"
Case "MS-SQLServer"
If DTConnection.Rows(0).Item("USERNAME") = "WINAUTH" Then
connectionString = "Server=" & DTConnection.Rows(0).Item("SERVER") & ";Database=" & DTConnection.Rows(0).Item("DATENBANK") & ";Trusted_Connection=True;"
Else
connectionString = "Server=" & DTConnection.Rows(0).Item("SERVER") & ";Database=" & DTConnection.Rows(0).Item("DATENBANK") & ";User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";"
End If
Case "Oracle"
If DTConnection.Rows(0).Item("BEMERKUNG").ToString.Contains("without tnsnames") Then
connectionString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" & DTConnection.Rows(0).Item("SERVER") & ")(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=" &
DTConnection.Rows(0).Item("DATENBANK") & ")));User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";"
Else
connectionString = "Data Source=" & DTConnection.Rows(0).Item("SERVER") & ";Persist Security Info=True;User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";Unicode=True"
End If
Case "ODBC"
Dim conn As New OdbcConnection("dsn=" & DTConnection.Rows(0).Item("SERVER") & ";uid=" & DTConnection.Rows(0).Item("USERNAME") & ";pwd=" + DTConnection.Rows(0).Item("PASSWORD"))
connectionString = conn.ConnectionString
Case Else
ClassLogger.Add(" - ConnectionType nicht integriert", False)
MsgBox("ConnectionType nicht integriert", MsgBoxStyle.Critical, "Bitte Konfiguration Connection überprüfen!")
End Select
Else
ClassLogger.Add(" No entry for Connection-ID: " & id.ToString, True)
End If
Catch ex As Exception
ClassLogger.Add(" - Error in bei GetConnectionString - Fehler: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in GetConnectionString:")
End Try
Return connectionString
End Function
Public Shared Function Return_Datatable(Select_anweisung As String, Optional USE_PROXY As Boolean = False)
Try
Dim sw As New SW("Return_Datatable: " & Select_anweisung)
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
If USE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
SQLconnect.ConnectionString = ClassProxy.MyPROXYConnectionString
Else
SQLconnect.ConnectionString = connectionString
End If
If USE_PROXY = False Then
Console.WriteLine(Select_anweisung)
End If
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = Select_anweisung
SQLcommand.CommandTimeout = 180
Dim adapter1 As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(SQLcommand)
Dim dt As DataTable = New DataTable()
adapter1.Fill(dt)
SQLconnect.Close()
sw.Done()
Return dt
Catch ex As Exception
MsgBox("Error in Return_Datatable: " & ex.Message & vbNewLine & vbNewLine & Select_anweisung, MsgBoxStyle.Critical)
ClassHelper.InsertEssential_Log(CURRENT_RECORD_ID, "RECORD-ID", ex.Message & " - SQL: " & Select_anweisung)
ClassLogger.Add("Error in Return_Datatable: " & ex.Message, True)
ClassLogger.Add(">> SQL: " & Select_anweisung, False)
If (ex.Message.Contains("Ungültiger Objektname") Or ex.Message.Contains("Invalid Object Name")) And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
MsgBox("A database-object could not be found but synchronization of Proxyserver might be in action! So please try again in a few seconds/minutes!", MsgBoxStyle.Exclamation)
End If
Return Nothing
End Try
End Function
Public Shared Function MSSQL_ReturnDTWithConnection(connectionId As Integer, sql As String)
Try
Dim regex As New System.Text.RegularExpressions.Regex("(@(\d+)@)")
Dim match As System.Text.RegularExpressions.Match = regex.Match(sql)
If match.Success Then
'Return Nothing
End If
Dim connectionString As String
connectionString = ClassDatabase.GetConnectionString(connectionId)
If connectionString <> "" Then
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
SQLconnect.ConnectionString = connectionString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = sql
Dim adapter1 As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(SQLcommand)
Dim dt As DataTable = New DataTable()
adapter1.Fill(dt)
SQLconnect.Close()
Return dt
Else
MsgBox("No Connection received for ID: " & connectionId.ToString, MsgBoxStyle.Exclamation)
Return Nothing
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in MSSQL_ReturnDTWithConnection: " & vbNewLine & ex.Message & vbNewLine & vbNewLine & sql)
MsgBox("Unexpected Error in MSSQL_ReturnDTWithConnection:" & vbNewLine & ex.Message & vbNewLine & vbNewLine & sql, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Public Shared Function Return_Datatable_CS(Select_anweisung As String, ConString As String, Optional userInput As Boolean = False)
Try
Dim sw As New SW("Return_Datatable_CS: " & Select_anweisung)
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
SQLconnect.ConnectionString = ConString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = Select_anweisung
Dim adapter1 As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(SQLcommand)
Dim dt As DataTable = New DataTable()
adapter1.Fill(dt)
SQLconnect.Close()
sw.Done()
Return dt
Catch ex As Exception
If userInput = True Then
MsgBox("Error in Return_Datatable_CS - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & Select_anweisung, MsgBoxStyle.Critical)
End If
ClassLogger.Add("Error in Return_Datatable_CS: " & ex.Message, True)
ClassLogger.Add("#SQL: " & Select_anweisung, False)
Return Nothing
End Try
End Function
Public Shared Function Return_Datatable_Connection(Select_anweisung As String, connectionId As Integer, Optional userInput As Boolean = False)
Try
Dim sw As New SW("Return_Datatable_Connection: " & Select_anweisung)
Dim connectionString As String
connectionString = ClassDatabase.GetConnectionString(connectionId)
If connectionString <> "" Then
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
SQLconnect.ConnectionString = connectionString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = Select_anweisung
Dim adapter1 As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(SQLcommand)
Dim dt As DataTable = New DataTable()
adapter1.Fill(dt)
SQLconnect.Close()
sw.Done()
Return dt
Else
Return Nothing
End If
Catch ex As Exception
If userInput = True Then
MsgBox("Error in Return_Datatable_Connection - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & Select_anweisung, MsgBoxStyle.Critical)
End If
ClassLogger.Add("Error in Return_Datatable_Connection: " & ex.Message)
ClassLogger.Add("#SQL: " & Select_anweisung)
Return Nothing
End Try
End Function
Public Shared Function Execute_non_Query(ExecuteCMD As String, Optional USE_PROXY As Boolean = False)
Try
Dim sw As New SW("Execute_non_Query: " & ExecuteCMD)
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
If USE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
SQLconnect.ConnectionString = ClassProxy.MyPROXYConnectionString
Else
SQLconnect.ConnectionString = connectionString
End If
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = ExecuteCMD
SQLcommand.CommandTimeout = 120
SQLcommand.ExecuteNonQuery()
SQLcommand.Dispose()
SQLconnect.Close()
sw.Done()
Return True
Catch ex As Exception
'If Userinput = True Then
' MsgBox("Error in Execute_non_Query: " & ex.Message & vbNewLine & vbNewLine & ExecuteCMD, MsgBoxStyle.Critical)
'End If
ClassLogger.Add("Error in Execute_non_Query: " & ex.Message)
ClassLogger.Add("SQL: " & ExecuteCMD)
Return False
End Try
End Function
Public Shared Function Execute_non_Query_withConn(ExecuteCMD As String, ConnID As Integer)
Try
Dim sw As New SW("Execute_non_Query_withConn: " & ExecuteCMD)
Dim connectionString As String
connectionString = ClassDatabase.GetConnectionString(ConnID)
If connectionString <> "" Then
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
SQLconnect.ConnectionString = connectionString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = ExecuteCMD
SQLcommand.CommandTimeout = 120
SQLcommand.ExecuteNonQuery()
SQLcommand.Dispose()
SQLconnect.Close()
sw.Done()
Return True
Else
MsgBox("No ConnectionID for Conn-ID: " & ConnID.ToString, MsgBoxStyle.Exclamation)
Return Nothing
End If
Catch ex As Exception
ClassLogger.Add("Error in Execute_non_Query_withConn: " & ex.Message, True)
ClassLogger.Add("SQL: " & ExecuteCMD, False)
Return False
End Try
End Function
Public Shared Function Execute_non_Query_withConnString(ExecuteCMD As String, theconnstring As String)
Try
Dim sw As New SW("Execute_non_Query_withConnString: " & ExecuteCMD)
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
SQLconnect.ConnectionString = theconnstring
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = ExecuteCMD
SQLcommand.CommandTimeout = 120
SQLcommand.ExecuteNonQuery()
SQLcommand.Dispose()
SQLconnect.Close()
sw.Done()
Return True
Catch ex As Exception
ClassLogger.Add("Error in Execute_non_Query_withConnString: " & ex.Message, True)
ClassLogger.Add("SQL: " & ExecuteCMD, False)
Return False
End Try
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.CommandTimeout = 120
SQLcommand.BeginExecuteNonQuery(callback, SQLcommand)
Catch ex As Exception
If Userinput = True Then
MsgBox("Error in Execute_non_Query_Async: " & ex.Message & vbNewLine & vbNewLine & ExecuteCMD, MsgBoxStyle.Critical)
End If
ClassLogger.Add("Error in 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 USE_PROXY As Boolean = False)
Dim result
Try
Dim sw As New SW("Execute_Scalar: " & cmdscalar)
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
If USE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
SQLconnect.ConnectionString = ClassProxy.MyPROXYConnectionString
Else
SQLconnect.ConnectionString = connectionString
End If
If USE_PROXY = False Then
Console.WriteLine(cmdscalar)
End If
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = cmdscalar
SQLcommand.CommandTimeout = 120
result = SQLcommand.ExecuteScalar()
SQLcommand.Dispose()
SQLconnect.Close()
sw.Done()
Return result
Catch ex As Exception
'If Userinput = True Then
' MsgBox("Error in Execute_Scalar: " & ex.Message & vbNewLine & vbNewLine & cmdscalar, MsgBoxStyle.Critical)
'End If
ClassLogger.Add("Error in Execute_Scalar: " & ex.Message, True)
ClassLogger.Add("SQL: " & cmdscalar, False)
Return Nothing
End Try
End Function
Public Shared Function Execute_ScalarWithConnection(connectionId As Integer, cmdscalar As String)
Dim result
Try
Dim connectionString As String
connectionString = ClassDatabase.GetConnectionString(connectionId)
If connectionString <> "" Then
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
SQLconnect.ConnectionString = connectionString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = cmdscalar
SQLcommand.CommandTimeout = 120
result = SQLcommand.ExecuteScalar()
SQLcommand.Dispose()
SQLconnect.Close()
Return result
Else
MsgBox("No Connection for ID: " & connectionId & " - ExecuteScalar: " & cmdscalar, MsgBoxStyle.Exclamation)
ClassLogger.Add("No Connection for ID: " & connectionId & " - ExecuteScalar: " & cmdscalar)
Return Nothing
End If
Catch ex As Exception
ClassLogger.Add("Error in Execute_ScalarWithConnection: " & ex.Message, True)
ClassLogger.Add("SQL: " & cmdscalar, False)
Return Nothing
End Try
End Function
Public Shared Function Execute_ScalarWithConnectionString(connectionString As String, cmdscalar As String)
Dim result
Try
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
SQLconnect.ConnectionString = connectionString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = cmdscalar
SQLcommand.CommandTimeout = 120
result = SQLcommand.ExecuteScalar()
SQLcommand.Dispose()
SQLconnect.Close()
Return result
Catch ex As Exception
ClassLogger.Add("Error in Execute_ScalarWithConnectionString: " & ex.Message, True)
ClassLogger.Add("SQL: " & cmdscalar, False)
Return Nothing
End Try
End Function
Public Shared Function OracleExecute_Scalar(cmdscalar As String, OracleConnection As String)
Dim result
Try
Dim SQLconnect As New OracleConnection
Dim SQLcommand As New OracleCommand
SQLconnect.ConnectionString = OracleConnection
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = cmdscalar
result = SQLcommand.ExecuteScalar()
SQLcommand.Dispose()
SQLconnect.Close()
Return result
Catch ex As Exception
ClassLogger.Add("Error in OracleExecute_Scalar: " & ex.Message, True)
ClassLogger.Add("#SQL: " & cmdscalar, False)
Return Nothing
End Try
End Function
Public Shared Function OracleExecute_non_Query(ExecuteCMD As String, OracleConnection As String, Optional userInput As Boolean = False)
Try
Dim SQLconnect As New OracleConnection
Dim SQLcommand As OracleCommand
SQLconnect.ConnectionString = OracleConnection
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = ExecuteCMD
SQLcommand.ExecuteNonQuery()
SQLcommand.Dispose()
SQLconnect.Close()
Return True
Catch ex As Exception
If userInput = True Then
MsgBox("Error in OracleExecute_non_Query - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & ExecuteCMD, MsgBoxStyle.Critical)
End If
ClassLogger.Add("Error in OracleExecute_non_Query: " & ex.Message, True)
ClassLogger.Add("#SQL: " & ExecuteCMD, False)
Return False
End Try
End Function
Public Shared Function Oracle_Return_Datatable(Select_anweisung As String, OracleConnection As String, Optional userInput As Boolean = False)
Try
Dim SQLconnect As New OracleConnection
Dim SQLcommand As OracleCommand
SQLconnect.ConnectionString = OracleConnection
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = Select_anweisung
Dim adapter1 As OracleDataAdapter = New OracleDataAdapter(SQLcommand)
Dim dt As DataTable = New DataTable()
adapter1.Fill(dt)
SQLconnect.Close()
Return dt
Catch ex As Exception
If userInput = True Then
MsgBox("Error in Oracle Return Datatable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & Select_anweisung, MsgBoxStyle.Critical)
End If
ClassLogger.Add("Error in Oracle_Return_Datatable: " & ex.Message, True)
ClassLogger.Add("#SQL: " & Select_anweisung, False)
Return Nothing
End Try
End Function
End Class

View File

@ -0,0 +1,181 @@
Imports System.IO
Imports Microsoft.Office.Interop
Public Class ClassDragDrop
Public Shared files_dropped As String()
Public Shared Function Drop_File(e As DragEventArgs)
Try
If LogErrorsOnly = False Then ClassLogger.Add(" >> In Drop_File....", False)
files_dropped = Nothing
Dim sql As String = "DELETE FROM TBPMO_FILES_USER WHERE HANDLE_TYPE <> 'SCAN' AND UPPER(USER_WORK) = UPPER('" & USER_USERNAME & "')"
ClassDatabase.Execute_non_Query(sql, True)
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Simple File Drop", False)
Dim MyFiles() As String
Dim i As Integer
' Assign the files to an array.
MyFiles = e.Data.GetData(DataFormats.FileDrop)
' Loop through the array and add the files to the list.
For i = 0 To MyFiles.Length - 1
ClassLogger.Add(">> Simple FileDrop - File: " & MyFiles(i), False)
ReDim Preserve files_dropped(i)
files_dropped(i) = "@DROPFROMFSYSTEM@" & MyFiles(i)
' ListBox1.Items.Add(MyFiles(i))
Next
Return True
ElseIf (e.Data.GetDataPresent("FileGroupDescriptor")) AndAlso (e.Data.GetDataPresent("FileContents")) Then
'// the first step here is to get the stbFileName
'// of the attachment and
'// build a full-path name so we can store it
'// in the temporary folder
'//
'// set up to obtain the aryFileGroupDescriptor
'// and extract the file name
Dim stmInput As IO.Stream = CType(e.Data.GetData("FileGroupDescriptor"), IO.Stream)
Dim aryFileGroupDescriptor(512) As Byte ' = new byte[512]
stmInput.Read(aryFileGroupDescriptor, 0, 512)
'// used to build the stbFileName from the aryFileGroupDescriptor block
Dim stbFileName As System.Text.StringBuilder = New System.Text.StringBuilder("")
'// this trick gets the stbFileName of the passed attached file
Dim intCnt As Integer = 76
Do While aryFileGroupDescriptor(intCnt) <> 0
stbFileName.Append(Convert.ToChar(aryFileGroupDescriptor(intCnt), System.Globalization.CultureInfo.CreateSpecificCulture("de-DE")))
intCnt += 1
Loop
stmInput.Close()
Dim anhaenge = e.Data.GetDataPresent("FileContents")
'Dim path As String = "C:\VBProjekte\Dateien"
'// put the zip file into the temp directory
Dim strOutFile As String = Path.GetTempPath() & stbFileName.ToString()
'// create the full-path name
'//
'// Second step: we have the file name.
'// Now we need to get the actual raw
'// data for the attached file and copy it to disk so we work on it.
'//
'// get the actual raw file into memory
Dim msInput As IO.MemoryStream = CType(e.Data.GetData("FileContents", True), IO.MemoryStream) 'This returns nothing for an Email
If msInput Is Nothing = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Drag of Outlook Attachment", False)
'// allocate enough bytes to hold the raw date
Dim aryFileBytes(CType(msInput.Length, Int32)) As Byte
'// set starting position at first byte and read in the raw data
msInput.Position = 0
msInput.Read(aryFileBytes, 0, CType(msInput.Length, Int32))
'// create a file and save the raw zip file to it
Dim fsOutput As IO.FileStream = New IO.FileStream(strOutFile, IO.FileMode.Create) ';
fsOutput.Write(aryFileBytes, 0, aryFileBytes.Length)
fsOutput.Close() ' // close the file
Dim resultVersion = ClassHelper.Versionierung_Datei(strOutFile)
If resultVersion <> "" Then
strOutFile = resultVersion
End If
Dim finTemp As IO.FileInfo = New IO.FileInfo(strOutFile)
'// always good to make sure we actually created the file
If (finTemp.Exists = True) Then
ReDim Preserve files_dropped(0)
files_dropped(0) = "@OUTLOOK_ATTACHMENT@" & strOutFile
If LogErrorsOnly = False Then ClassLogger.Add(" >> Drop an Attachment - File: " & strOutFile, False)
Return True
Else
ClassLogger.Add(">> Attachment File from Outlook could not be created", False)
End If
Else
ClassLogger.Add(">> No simple drag and drop.", True, False)
For Each fmt As String In e.Data.GetFormats()
' Output format name and type
ClassLogger.Add(">> e.Data is: " & fmt + " (" +
e.Data.GetData(fmt).ToString() + ")", True, False)
Next
End If
End If
If e.Data.GetDataPresent("FileGroupDescriptor") Then
Dim oApp
Try
oApp = New Outlook.Application()
Catch ex As Exception
MsgBox("Unexpected error in Initialisieren von Outlook-API:" & vbNewLine & ex.Message & vbNewLine & vbNewLine & "Evtl ist Outlook nicht in der dafür vorgesehenen For")
Return False
End Try
If LogErrorsOnly = False Then ClassLogger.Add(" >> Drop of msg", False)
'supports a drop of a Outlook message
Dim myobj As Object
For i As Integer = 1 To oApp.ActiveExplorer.Selection.Count
myobj = oApp.ActiveExplorer.Selection.Item(i)
Dim subj As String = myobj.Subject
If subj = "" Then
subj = "NO_SUBJECT"
End If
If subj.Contains("\") Then
subj = subj.Replace("\", "-")
End If
If subj.Contains("/") Then
subj = subj.Replace("/", "-")
End If
'hardcode a destination path for testing
Dim strFile As String = IO.Path.Combine(Path.GetTempPath, (subj + ".msg").Replace(":", ""))
strFile = strFile.Replace("?", "")
strFile = strFile.Replace("!", "")
strFile = strFile.Replace("%", "")
strFile = strFile.Replace("$", "")
ClassLogger.Add(">> Drop of msg - File:" & strFile, False)
Try
myobj.SaveAs(strFile)
Catch ex As Exception
MsgBox("Error in Save Email2Tempfile" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
ReDim Preserve files_dropped(i)
files_dropped(i) = "@OUTLOOK_MESSAGE@" & strFile
Next
Return True
'Drop eines Outlook Attachments
End If
Catch ex As Exception
MsgBox("Unexpected Error in Drop_File: " & ex.Message, MsgBoxStyle.Critical)
End Try
If e.Data.GetDataPresent(DataFormats.StringFormat) Then
Dim Wert As String = CType(e.Data.GetData(DataFormats.StringFormat), Object)
Console.WriteLine(Wert)
ReDim Preserve files_dropped(0)
files_dropped(0) = "@SCAN@" & Wert
Return True
End If
End Function
Public Shared Sub Drag_enter(e As DragEventArgs)
Try
My.Settings.WD_INDEXDOKART_SAVE = ""
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All
If LogErrorsOnly = True Then ClassLogger.Add("DragEnter ... SimpleFileDrop", False)
'frmForm_Constructor_Main_2.tslblStatusMain_show(True, "DragEnter ... SimpleFileDrop")
ElseIf (e.Data.GetDataPresent("FileGroupDescriptor")) AndAlso (e.Data.GetDataPresent("FileContents")) Then
e.Effect = DragDropEffects.Copy
'frmForm_Constructor_Main_2.tslblStatusMain_show(True, "DragEnter ... Attachment from Outlook")
If LogErrorsOnly = True Then ClassLogger.Add("DragEnter ... Attachment from Outlook", False)
ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then
'handle a message dragged from Outlook
e.Effect = DragDropEffects.Copy
'frmForm_Constructor_Main_2.tslblStatusMain_show(True, "DragEnter ... OutlookMessage")
If LogErrorsOnly = True Then ClassLogger.Add("DragEnter ... OutlookMessage", False)
Else
'otherwise, do not handle
e.Effect = DragDropEffects.Copy
'frmForm_Constructor.tslblStatusMain_show(True, "DragEnter ... Other FileFormat")
If LogErrorsOnly = True Then ClassLogger.Add("DragEnter ... Other FileFormat", False)
End If
Catch ex As Exception
End Try
End Sub
End Class

View File

@ -0,0 +1,104 @@
Imports System.Net.Mail
Public Class ClassEmail
Private Shared MailSSL As Boolean = False
Public Shared Function Send_EMail(MailEmpfaenger As String, MailBetreff As String, vBody As String, MAIL_SMTP As String, MAIL_USER As String, MAIL_PW As String, MAIL_FROM As String, port As Integer)
'#### E-MAIL NACHRICHT VERSENDEN
Try
If MAIL_SMTP <> "" And MAIL_USER <> "" Then
Dim empfaenger As String()
If MailEmpfaenger.Contains(";") Then
empfaenger = MailEmpfaenger.Split(";")
Else
ReDim Preserve empfaenger(0)
empfaenger(0) = MailEmpfaenger
End If
'Für jeden Empfänger eine Neue Mail erzeugen
For Each _mailempfaenger As String In empfaenger
'Neue Nachricht erzeugen:
Dim message As New MailMessage(MAIL_FROM, Trim(_mailempfaenger), MailBetreff, _
"<font face=""Tahoma"">" & vBody & "<br>" & _
"<br>Time: " & My.Computer.Clock.LocalTime.ToShortDateString & "-" & _
My.Computer.Clock.LocalTime.ToLongTimeString & "</font>")
' create and add the attachment(s) */
' Dim Attachment As Attachment = New Attachment("E:\test\Frachkostenreport.txt")
'message.Attachments.Add(Attachment)
With message
.IsBodyHtml = True
End With
'Einen SMTP Client erzeugen und Anmeldungsinformationen hinterlegen
Dim emailClient As New SmtpClient(MAIL_SMTP)
emailClient.EnableSsl = MailSSL
'Email mit Authentifizierung
Dim SMTPUserInfo As New System.Net.NetworkCredential(MAIL_USER, MAIL_PW) ', My.Settings.vDomain)
emailClient.UseDefaultCredentials = False
emailClient.Credentials = SMTPUserInfo
emailClient.Port = port
'*Send the message */
emailClient.Send(message)
Next
Return True
End If
Return True
Catch ex As Exception
MsgBox("Error in Send Email: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Function Send_Log_Mail(ByVal vBody As String, ByVal vBetreff As String, ByVal emailfrom As String, ByVal emailsmtp As String, ByVal emailuser As String, ByVal emailpw As String, ByVal email_empf As String)
'#### E-MAIL NACHRICHT VERSENDEN
Try
Dim empfaenger As String()
If email_empf.Contains(";") Then
empfaenger = email_empf.Split(";")
Else
ReDim Preserve empfaenger(0)
empfaenger(0) = email_empf
End If
'Für jeden Empfänger eine Neue Mail erzeugen
For Each _mailempfaenger As String In empfaenger
' Neue Nachricht erzeugen:
Dim message As New MailMessage(emailfrom, _mailempfaenger, vBetreff & " - Domain: " & Environment.UserDomainName, _
"<font face=""Arial"">" & vBody & "<br>>> Version: " & My.Application.Info.Version.ToString & "<br>>> Maschine: " & Environment.MachineName & "<br>" & "<br>>> Domain-Name: " & Environment.UserDomainName & "<br>" & _
"<br>>> Gesendet am: " & My.Computer.Clock.LocalTime.ToShortDateString & " " & _
My.Computer.Clock.LocalTime.ToLongTimeString & "</font>")
' create and add the attachment(s) */
Dim logfile = ClassLogger.logDateiname
If logfile Is Nothing Then
MsgBox("Logging was not initiated", MsgBoxStyle.Exclamation)
Return False
End If
If logfile.Contains("\\") Then
logfile = logfile.Replace("\\", "\")
End If
If IO.File.Exists(logfile) Then
Dim Attachment As Attachment = New Attachment(logfile)
message.Attachments.Add(Attachment)
End If
With message
.IsBodyHtml = True
.Priority = MailPriority.High
End With
'Einen SMTP Client erzeugen und Anmeldungsinformationen hinterlegen
Dim emailClient As New SmtpClient(emailsmtp)
'Email mit Authentifizierung
Dim SMTPUserInfo As New System.Net.NetworkCredential(emailuser, emailpw) ', My.Settings.vDomain)
emailClient.UseDefaultCredentials = False
emailClient.Credentials = SMTPUserInfo
emailClient.Port = 25
'*Send the message */
emailClient.Send(message)
'ClassLogger.Add(">> Support/Log Email erfolgreich an " & _mailempfaenger & " versendet!", False)
Next
Return True
Catch ex As Exception
MsgBox("Error in Send LogMail: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
End Class

View File

@ -0,0 +1,68 @@
Imports System.Security.Cryptography
Public Class ClassEncryption
Private TripleDes As New TripleDESCryptoServiceProvider
Sub New(ByVal key As String)
' Initialize the crypto provider.
TripleDes.Key = TruncateHash(key, TripleDes.KeySize \ 8)
TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8)
End Sub
Private Function TruncateHash(
ByVal key As String,
ByVal length As Integer) As Byte()
Dim sha1 As New SHA1CryptoServiceProvider
' Hash the key.
Dim keyBytes() As Byte =
System.Text.Encoding.Unicode.GetBytes(key)
Dim hash() As Byte = sha1.ComputeHash(keyBytes)
' Truncate or pad the hash.
ReDim Preserve hash(length - 1)
Return hash
End Function
Public Function EncryptData(
ByVal plaintext As String) As String
' Convert the plaintext string to a byte array.
Dim plaintextBytes() As Byte =
System.Text.Encoding.Unicode.GetBytes("!Didalog35452Heuchelheim=" & plaintext)
' Create the stream.
Dim ms As New System.IO.MemoryStream
' Create the encoder to write to the stream.
Dim encStream As New CryptoStream(ms,
TripleDes.CreateEncryptor(),
System.Security.Cryptography.CryptoStreamMode.Write)
' Use the crypto stream to write the byte array to the stream.
encStream.Write(plaintextBytes, 0, plaintextBytes.Length)
encStream.FlushFinalBlock()
' Convert the encrypted stream to a printable string.
Return Convert.ToBase64String(ms.ToArray)
End Function
'Entschlüsselt die Zeichenfolge
Public Function DecryptData(
ByVal encryptedtext As String) As String
' Convert the encrypted text string to a byte array.
Dim encryptedBytes() As Byte = Convert.FromBase64String(encryptedtext)
' Create the stream.
Dim ms As New System.IO.MemoryStream
' Create the decoder to write to the stream.
Dim decStream As New CryptoStream(ms,
TripleDes.CreateDecryptor(),
System.Security.Cryptography.CryptoStreamMode.Write)
' Use the crypto stream to write the byte array to the stream.
decStream.Write(encryptedBytes, 0, encryptedBytes.Length)
decStream.FlushFinalBlock()
Dim result = System.Text.Encoding.Unicode.GetString(ms.ToArray)
result = result.Replace("!Didalog35452Heuchelheim=", "")
' Convert the plaintext stream to a string.
Return result
End Function
End Class

View File

@ -0,0 +1,229 @@
Public Class ClassFileResult
Public Shared DocID As Integer
Public Shared InWork As Boolean = False
Public Shared Function Set_InWork(state As Integer, comment As String)
Try
Dim upd As String
InWork = False
If comment = "" Then
upd = String.Format("UPDATE TBPMO_DOCRESULT_LIST SET Change_DateTime = GETDATE(), IN_WORK = {0} WHERE DocID = {1}", state, DocID)
Else
upd = String.Format("UPDATE TBPMO_DOCRESULT_LIST SET Change_DateTime = GETDATE(), IN_WORK = {0}, IN_WORK_USER = '{1}', IN_WORK_COMMENT = '{2}' WHERE DocID = {3}", state, USER_USERNAME, comment, DocID)
End If
If ClassDatabase.Execute_non_Query(upd) = True Then
If LICENSE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
ClassDatabase.Execute_non_Query(upd, True)
End If
InWork = True
Return True
Else
Return False
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Set_InWork: " & ex.Message)
Return False
End Try
End Function
Public Shared Function Set_Displayname(Displayname As String)
Try
Dim upd As String
upd = String.Format("UPDATE TBPMO_DOCRESULT_LIST SET DISPLAY_NAME = '{0}',Change_DateTime = GETDATE() WHERE DocID = {1}", Displayname, DocID)
If ClassDatabase.Execute_non_Query(upd) = True Then
If LICENSE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
ClassDatabase.Execute_non_Query(upd, True)
End If
Return True
Else
Return False
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Set_Displayname: " & ex.Message)
Return False
End Try
End Function
Public Shared Function GET_DATATABLE_INDICES_PMO()
Try
Dim sql = String.Format("SELECT * FROM TBPMO_INDEX_MAN WHERE ACTIVE = 1 AND ENTITY_ID = (SELECT CASE REDUNDANT_ENTITY WHEN 0 THEN GUID ELSE REDUNDANT_ENTITY END AS ENTITY_ID FROM TBPMO_FORM WHERE GUID = {0}) AND DOCTYPE_ID = {1}", CURRENT_ENTITY_ID, CURRENT_DOKARTID)
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, True)
If LogErrorsOnly = False Then ClassLogger.Add(" >> GET_DATATABLE_INDICES_PMO: " & sql, False)
CURRENT_TBPMO_INDEX_MAN = DT
Return True
Catch ex As Exception
ClassLogger.Add("Unexpected Error in GET_DATATABLE_INDICES_PMO: " & ex.Message)
Return False
End Try
End Function
Public Shared Function SET_DOCID_INDICES()
Try
Dim DT As DataTable = CURRENT_TBPMO_INDEX_MAN
If DT.Rows.Count > 0 Then
For Each row As DataRow In DT.Rows
If row.Item("MAN_VALUE") <> String.Empty Then
Dim MAN_INDEX_ID = row.Item("GUID")
Dim insert As String = String.Format("INSERT INTO TBPMO_DOC_INDICES (DocID,INDEX_ID,VALUE,ADDED_WHO) VALUES ({0},{1},'{2}','{3}')", DocID, MAN_INDEX_ID, row.Item("MAN_VALUE"), USER_USERNAME)
ClassDatabase.Execute_non_Query(insert)
End If
Next
End If
Return True
Catch ex As Exception
ClassLogger.Add("Unexpected Error in SET_DOCID_INDICES: " & ex.Message)
Return False
End Try
End Function
Public Shared Function Delete_Doc_Indices()
Try
Dim delete As String = String.Format("DELETE FROM TBPMO_DOC_INDICES WHERE DocID = {0}", DocID)
Return ClassDatabase.Execute_non_Query(delete)
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Update_Doc_Indices: " & ex.Message)
Return False
End Try
End Function
Public Shared Function Delete_ResultFile(RESULT_DOC_ID, RECORD_ID, DELETE_FILE)
Try
Dim proc = String.Format("EXEC PRPMO_DELETE_RESULTFILE {0},{1},{2}", RESULT_DOC_ID, RECORD_ID, DELETE_FILE)
If ClassDatabase.Execute_non_Query(proc) = True Then
If LICENSE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
proc = String.Format("EXEC PRPROXY_DOC_CHECK_DELETE {0}", RESULT_DOC_ID)
ClassDatabase.Execute_non_Query(proc, True)
End If
Return True
Else
Return False
End If
Catch ex As Exception
ClassLogger.Add(String.Format("Unexpected Error in Delete_ResultFile: ({0},{1},{2})", RESULT_DOC_ID, RECORD_ID, DELETE_FILE) & ex.Message)
MsgBox("Unexpected Error in Delete ResultFile:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function CheckWrite_IndexeMan(grbxControls As GroupBox)
'#### Zuerst manuelle Werte indexieren ####
Try
If LogErrorsOnly = False Then ClassLogger.Add(" >>In CheckWrite_IndexeMan", False)
Dim result As Boolean = False
For Each ctrl As Control In grbxControls.Controls
' ' MsgBox(ctrl.Name)
If ctrl.Name.StartsWith("txt") Then
Dim box As TextBox = ctrl
If box.Text = "" Then
Dim optional_index = ClassMoreMetadata.Return_CURRENT_TBPMO_INDEX_MAN_VALUE(box.Tag, "OPTIONAL") 'ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBPMO_INDEX_MAN WHERE GUID = " & box.Tag, True)
If Not IsNothing(optional_index) Then
If CBool(optional_index) = False Then
MsgBox("Please insert a value!", MsgBoxStyle.Exclamation, "Missing input:")
box.Focus()
Return False
Else
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(box.Tag, "")
'Indexwert_Postprocessing(Replace(box.Name, "txt", ""), "")
result = True
End If
Else
Return False
End If
Else
'If Indexwert_checkValueDB(Replace(box.Name, "txt", ""), box.Text) = False Then
' ClassLogger.Add(" - Der eingegebene Wert wurde nicht in der Datenbank gefunden", False)
' MsgBox("Der eingegebene Wert wurde nicht in der Datenbank gefunden!", MsgBoxStyle.Exclamation, "Fehlerhafte Indexierung:")
' box.Focus()
' Return False
'Else
' 'Indexwert_Postprocessing(Replace(box.Name, "txt", ""), box.Text)
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(box.Tag, box.Text)
result = True
'End If
End If
End If
If ctrl.Name.StartsWith("btn") Then
Dim btn As Button = ctrl
Dim optional_index = ClassMoreMetadata.Return_CURRENT_TBPMO_INDEX_MAN_VALUE(btn.Tag, "OPTIONAL")
If Not IsNothing(optional_index) Then
If CBool(optional_index) = False Then
For Each row As DataRow In CURRENT_TBPMO_INDEX_MAN.Rows
If row.Item("GUID") = btn.Tag Then
If Not IsDBNull(row.Item("MAN_VALUE")) Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> we got a value for folder...", False)
result = True
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> value for folder is missing...", False)
MsgBox("Please choose a folder!", MsgBoxStyle.Exclamation, "Missing input:")
Return False
End If
End If
Next
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> value for folder is OPTIONAL...", False)
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(btn.Tag, "")
result = True
End If
End If
End If
If ctrl.Name.StartsWith("cmb") Then
Dim cmb As ComboBox = ctrl
If cmb.Text = "" Then
Dim optional_index = ClassMoreMetadata.Return_CURRENT_TBPMO_INDEX_MAN_VALUE(cmb.Tag, "OPTIONAL") 'ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBPMO_INDEX_MAN WHERE GUID = " & box.Tag, True)
If Not IsNothing(optional_index) Then
If CBool(optional_index) = False Then
MsgBox("Please choose a value!", MsgBoxStyle.Exclamation, "Missing input:")
cmb.Focus()
Return False
Else
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(cmb.Tag, "")
'Indexwert_Postprocessing(Replace(box.Name, "txt", ""), "")
result = True
End If
End If
Else
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(cmb.Tag, cmb.Text)
' Indexwert_Postprocessing(Replace(cmb.Name, "cmb", ""), cmb.Text)
result = True
End If
End If
If ctrl.Name.StartsWith("dtp") Then
Dim dtp As DateTimePicker = ctrl
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(dtp.Tag, dtp.Value)
'Indexwert_Postprocessing(Replace(dtp.Name, "dtp", ""), dtp.Text)
result = True
End If
If ctrl.Name.StartsWith("chk") Then
Dim chk As CheckBox = ctrl
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(chk.Tag, chk.Checked)
'Indexwert_Postprocessing(Replace(chk.Name, "chk", ""), chk.Checked)
result = True
End If
If ctrl.Name.StartsWith("lbl") = False And result = False Then
ClassLogger.Add("Die Überprüfung der manuellen Indices ist fehlerhaft. Bitte informieren Sie den Systembetreuer", True)
Return False
End If
Next
Return True
Catch ex As Exception
ClassLogger.Add(" - Unvorhergesehener Fehler in CheckWrite_IndexeMan - Fehler: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unerwarteter Unexpected error in CheckWrite_IndexeMan:")
Return False
End Try
End Function
Public Shared Function SET_CURRENT_TBPMO_INDEX_MAN_VALUE(CONTROL_GUID As Integer, VALUE As String)
Try
For Each row As DataRow In CURRENT_TBPMO_INDEX_MAN.Rows
If row.Item("GUID") = CONTROL_GUID Then
row.Item("MAN_VALUE") = VALUE
Return True
End If
Next
Catch ex As Exception
ClassLogger.Add(" - Unvorhergesehener Fehler in SET_CURRENT_TBPMO_INDEX_MAN_VALUE - Fehler: " & vbNewLine & ex.Message)
Return Nothing
End Try
End Function
End Class

View File

@ -0,0 +1,159 @@
Imports System.IO
Imports Independentsoft
Imports System.Threading
Imports DD_LIB_Standards
Public Class ClassFolderWatcher
Public Shared FolderWatcher_SCAN As FileSystemWatcher
Public Shared NEW_FILES As Boolean = True
Public Shared Function Restart_FolderWatchSCAN()
Try
If FolderWatcher_SCAN.EnableRaisingEvents = True Then
'Gestartet also Stoppen
FolderWatcher_SCAN.EnableRaisingEvents = False
FWSCAN_started = False
'FolderWatch neu instanzieren
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
ClassLogger.Add(" >> FolderWatchScan neu instanziert", False)
FolderWatcher_SCAN.IncludeSubdirectories = CURRENT_SCAN_FOLDERWATCH_SD
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
FWSCAN_started = True
SaveMySettingsValue("FWSCAN_started", "True", "ConfigMain")
End If
Catch ex As Exception
MsgBox("Error in Restart_FolderWatchSCAN:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Function
Public Shared Function StartStop_FolderWatchSCAN()
Try
If CURRENT_SCAN_FOLDERWATCH = "" Then
MsgBox("Bitte definieren Sie einen Überwachungsordner für Scan-Eingänge:", MsgBoxStyle.Exclamation)
Return False
End If
If FolderWatcher_SCAN Is Nothing Then
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
ClassLogger.Add(" >> FolderWatch Scan Gestartet", False)
FolderWatcher_SCAN.IncludeSubdirectories = CURRENT_SCAN_FOLDERWATCH_SD
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
FWSCAN_started = True
SaveMySettingsValue("FWSCAN_started", "True", "ConfigMain")
Return 1
End If
If FolderWatcher_SCAN.EnableRaisingEvents = False Then
' Dim watcher As New FileSystemWatcher()
' watcher.Path = CURRENT_FOLDERWATCH
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
ClassLogger.Add(" >> FolderWatch Scan Gestartet", False)
FolderWatcher_SCAN.IncludeSubdirectories = CURRENT_SCAN_FOLDERWATCH_SD
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
FWSCAN_started = True
SaveMySettingsValue("FWSCAN_started", "True", "ConfigMain")
Return 1
Else
'Gestartet also Stoppen
FolderWatcher_SCAN.EnableRaisingEvents = False
FWSCAN_started = False
ClassLogger.Add(" >> FolderWatch Scan gestoppt", False)
SaveMySettingsValue("FWSCAN_started", "False", "ConfigMain")
Return 0
End If
Catch ex As Exception
MsgBox("Error in StartStop_FolderWatchSCAN:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return 99
End Try
End Function
Private Shared Sub OnCreated(source As Object, e As FileSystemEventArgs)
Try
For Each row As DataRow In DTEXCLUDE_FILES.Rows
Dim content As String = row.Item(0).ToString.ToLower
If e.FullPath.ToLower.Contains(content) Then
Exit Sub
End If
Next
Dim handleType As String
If e.FullPath.EndsWith(".msg") Then
handleType = "SCAN_OUTLOOK_MESSAGE"
Else
handleType = "SCAN"
End If
'Die Datei übergeben
If LogErrorsOnly = False Then ClassLogger.Add(" >> OnCreated-File:" & e.FullPath, False)
If FileExistsinDropTable(CURRENT_FILENAME) = False Then
Insert_USER_File(e.FullPath, handleType)
Else
Console.WriteLine("File existiert bereits")
End If
ClassHelper.Create_USER_FILE_TABLE()
NEW_FILES = True
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in folder_watch_Created")
End Try
End Sub
Public Shared Function FileExistsinDropTable(Filename As String)
Dim check As String
Try
check = "SELECT COUNT(*) FROM TBPMO_FILES_USER WHERE UPPER(FILENAME2WORK) = UPPER('" & Filename & "') AND WORKED = 0"
Dim result = ClassDatabase.Execute_Scalar(check, True)
Return result
Catch ex As Exception
MsgBox("Error in FileExistsinDropTable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & check, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Public Shared Function Insert_USER_File(filename As String, handleType As String)
Try
Dim filename_only As String = Path.GetFileName(filename)
Dim ins As String = String.Format("INSERT INTO TBPMO_FILES_USER (FILENAME2WORK, USER_WORK,HANDLE_TYPE,FILENAME_ONLY) VALUES ('{0}','{1}','{2}','{3}')", filename, USER_USERNAME, handleType, filename_only)
Return ClassDatabase.Execute_non_Query(ins, True)
Catch ex As Exception
MsgBox("Unexpected Error in Insert Scan-File: " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function DELETE_SCAN_File(filename As String)
Try
Dim filename_only As String = Path.GetFileName(filename)
Dim del As String = String.Format("DELETE FROM TBPMO_FILES_USER WHERE UPPER(FILENAME2WORK) = UPPER('{0}')", filename)
Return ClassDatabase.Execute_non_Query(del, True)
Catch ex As Exception
MsgBox("Unexpected Error in DELETE_SCAN_File: " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function DELETE_SCAN_File_User()
Try
Dim del As String = String.Format("DELETE FROM TBPMO_FILES_USER WHERE UPPER(USER_WORK) = UPPER('{0}') AND HANDLE_TYPE = 'SCAN'", USER_USERNAME)
Return ClassDatabase.Execute_non_Query(del, True)
Catch ex As Exception
MsgBox("Unexpected Error in DELETE_SCAN_File_User: " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function Check_Scan_Files()
Try
Dim sql As String = String.Format("select * from TBPMO_FILES_USER where HANDLE_TYPE = 'SCAN' and WORKED = 0 AND UPPER(USER_WORK) = '{0}'", USER_USERNAME)
Dim DT As DataTable = clsDatabase.Return_Datatable(sql, True)
For Each row As DataRow In DT.Rows
If System.IO.File.Exists(row.Item("FILENAME2WORK")) = False Then
DELETE_SCAN_File(row.Item("FILENAME2WORK"))
End If
Next
CURRENT_SCAN_TABLE = clsDatabase.Return_Datatable(sql, True)
Catch ex As Exception
MsgBox("Unexpected Error in DELETE_SCAN_File_User: " & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
End Class

View File

@ -0,0 +1,112 @@
Public Class ClassFormCommands
Public Shared Function LoadForm(guid) As DataTable
Try
Dim SQL As String = "SELECT NAME, LEVEL FROM TBPMO_FORM WHERE GUID = " & guid
Dim DT As DataTable = ClassDatabase.Return_Datatable(SQL, True)
If DT.Rows.Count = 1 Then
Return DT
Else
Throw New Exception()
End If
Catch ex As Exception
MsgBox("Fehler beim Laden der Anzeigeeigenschaften der Form: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Public Shared Function LoadFormView(guid) As DataTable
Try
Dim SQL As String = "SELECT FORM_TITLE FROM TBPMO_FORM_VIEW WHERE FORM_ID = " & guid
Dim DT As DataTable = ClassDatabase.Return_Datatable(SQL, True)
If DT.Rows.Count = 1 Then
Return DT
Else
Throw New Exception()
End If
Catch ex As Exception
MsgBox("Fehler beim Laden der Formeigenschaften: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Public Shared Function SaveForm(guid As Integer, form_name As String, form_level As Integer, form_title As String, doc_view As Integer)
Try
Dim SQL As String
Dim NAME As String = form_name
Dim LEVEL As String = form_level
SQL = "UPDATE TBPMO_FORM SET NAME = '" & NAME & "', LEVEL = " & LEVEL & "WHERE GUID = " & guid
If ClassDatabase.Execute_non_Query(SQL) = True Then
Return SaveFormView(guid, form_title, doc_view)
Else
Throw New Exception()
End If
Catch ex As Exception
MsgBox("Fehler beim Speichern der Formeigenschaften: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function SaveFormView(guid As Integer, form_title As String, doc_view As Integer)
Try
Dim SQL As String
Dim TITLE As String = form_title
Dim DOCUMENT_VIEW As Integer = doc_view
SQL = "UPDATE TBPMO_FORM_VIEW SET FORM_TITLE = '" & TITLE & "', DOCUMENT_VIEW = " & DOCUMENT_VIEW & " WHERE FORM_ID = " & guid
If ClassDatabase.Execute_non_Query(SQL) = True Then
Return True
Else
Throw New Exception()
End If
Catch ex As Exception
MsgBox("Fehler beim Speichern der Anzeigeeigenschaften der Form: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function DeleteFormView(guid)
Try
Dim SQL As String = "DELETE FROM TBPMO_WD_FORMVIEW_DOKTYPES WHERE FORMVIEW_ID in (SELECT GUID FROM TBPMO_FORM_VIEW WHERE FORM_ID = " & guid & ")"
If ClassDatabase.Execute_non_Query(SQL) = False Then Return False
SQL = "DELETE FROM TBPMO_FORM_VIEW WHERE FORM_ID = " & guid
If ClassDatabase.Execute_non_Query(SQL) = False Then
Return False
Else
Return True
End If
Catch ex As Exception
MsgBox("Fehler beim Löschen der Anzeigeeigenschaften der Form: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function DeleteFormControls(guid)
Try
Dim SQL As String = "SELECT GUID FROM TBPMO_CONTROL WHERE FORM_ID = " & guid
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
If dt.Rows.Count > 0 Then
For Each row As DataRow In dt.Rows
Dim controlid As Integer = row.Item(0)
CURRENT_CONTROL_ID = controlid
ClassControlCommands.DeleteControl(controlid)
Next
End If
Return True
Catch ex As Exception
MsgBox("Fehler beim Löschen der FormControls: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
End Class

View File

@ -0,0 +1,76 @@
Public Class ClassFunctionCommands
'Public Shared Function InsertFunction(ControlId As Integer)
' Try
' Dim SQL As String = "INSERT INTO TBPMO_FUNCTION_ADD_APPOINTMENT(CONTROL_ID) VALUES (" & ControlId & ")"
' ClassDatabase.Execute_non_Query(SQL)
' Return True
' Catch ex As Exception
' MsgBox("Fehler beim Anlegen der KalenderFunktion:" & vbNewLine & ex.Message)
' Return False
' End Try
'End Function
Public Shared Function InsertFunction(ControlId As Integer, Method As String)
Try
Dim SQL As String = "INSERT INTO TBPMO_FUNCTION_GENERAL (CONTROL_ID, METHOD) VALUES (" & ControlId & ", '" & Method & "')"
ClassDatabase.Execute_non_Query(SQL)
Return True
Catch ex As Exception
MsgBox("Fehler beim Anlegen der Funktion " & Method & ":" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function UpdateAddAppointmentFunction(ControlId As Integer, FromDateId As Integer, ToDateId As Integer, SubjectString As String, Subject2String As String, PlaceString As String, DescriptionString As String)
Try
Dim SQL As String = "UPDATE TBPMO_FUNCTION_GENERAL SET INTEGER1 = " & FromDateId & ", INTEGER2 = " & ToDateId & ", STRING1 = '" & SubjectString & "', STRING2 = '" & Subject2String & "', STRING3 = '" & PlaceString & "', STRING4 = '" & DescriptionString & "' WHERE CONTROL_ID = " & ControlId
If ClassDatabase.Execute_non_Query(SQL) = False Then
Throw New Exception("Datenbankfehler.")
End If
Return True
Catch ex As Exception
MsgBox("Error in UpdateAddAppointmentFunction:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function UpdateAddFormDataFunction(ControlId As Integer, FormId As Integer, ScreenId As Integer)
Try
Dim SQL As String = "UPDATE TBPMO_FUNCTION_GENERAL SET INTEGER1 = " & FormId & ", INTEGER2 = " & ScreenId & " WHERE CONTROL_ID = " & ControlId
If ClassDatabase.Execute_non_Query(SQL) = False Then
Throw New Exception("Datenbankfehler.")
End If
Return True
Catch ex As Exception
MsgBox("Error in UpdateAddFormDataFunction:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function LoadFunction(ControlId As Integer) As DataRow
Try
Dim SQL As String = "SELECT * FROM TBPMO_FUNCTION_GENERAL WHERE CONTROL_ID = " & ControlId
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
If dt.Rows.Count = 1 Then
Return dt.Rows.Item(0)
Else
Throw New Exception("Funktion für " & ControlId & " wurde nicht gefunden")
End If
Catch ex As Exception
MsgBox("Error in LoadFunction:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Public Shared Function GETCONTROL_ID_FOR_COL_NAME(FORM_ID As Integer, Column_Name As String)
Try
Dim SQL As String = "SELECT GUID FROM TBPMO_CONTROL WHERE FORM_ID = " & FORM_ID & " AND COL_NAME = '" & Column_Name & "'"
Dim result = ClassDatabase.Execute_Scalar(SQL, True)
Return result
Catch ex As Exception
MsgBox("Error in GETCONTROL_ID_FOR_COL_NAME:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
End Class

View File

@ -0,0 +1,211 @@
Imports DevExpress.XtraScheduler
Public Class ClassFunctionCommandsUI
Shared Sub NewEditTaskAppointment(RecordID As Integer, ControlID As Integer, Subject As String, Description As String, DueDateTime As DateTime)
Try
Dim apt As Appointment = frmCalendar.SchedulerStorage1.CreateAppointment(AppointmentType.Normal)
Dim reminder As Reminder = apt.CreateNewReminder()
Dim SQL As String = "SELECT VALUE FROM VWPMO_VALUES where [RECORD_ID] = " & RecordID & " and [CONTROL_ID] = " & ControlID
reminder.AlertTime = DueDateTime
apt.Reminders.Add(reminder)
Dim Value = ClassDatabase.Execute_Scalar(SQL, True)
If Value Is Nothing Then
apt.Subject = Subject & " - " & Value.ToString()
Else
apt.Subject = Subject
End If
apt.Description = Description
apt.AllDay = True
apt.Start = DueDateTime
apt.End = DueDateTime
apt.CustomFields("RecordID") = RecordID
apt.CustomFields("ControlID") = ControlID
frmCalendar.SchedulerControl1.ShowEditAppointmentForm(apt)
Catch ex As Exception
MsgBox("Error in NewEditTaskAppointment:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Shared Sub NewTaskAppointment(RecordID As Integer, ControlID As Integer, Subject As String, Description As String, DueDateTime As DateTime)
Dim apt As Appointment = frmCalendar.SchedulerStorage1.CreateAppointment(AppointmentType.Normal)
Dim reminder As Reminder = apt.CreateNewReminder()
Dim SQL As String = "SELECT VALUE FROM VWPMO_VALUES where [RECORD_ID] = " & RecordID & " and [CONTROL_ID] = " & ControlID
reminder.AlertTime = DueDateTime
apt.Reminders.Add(reminder)
Dim Value = ClassDatabase.Execute_Scalar(SQL, True)
apt.Subject = Subject & " - " & Value.ToString()
apt.Description = Description
apt.AllDay = True
apt.Start = DueDateTime
apt.End = DueDateTime
apt.CustomFields("RecordID") = RecordID
apt.CustomFields("ControlID") = ControlID
frmCalendar.SchedulerControl1.ShowEditAppointmentForm(apt)
End Sub
Shared Sub NewEditAppointment(ControlName As String, FormID As Integer, RecordID As Integer, PanelControls As Control.ControlCollection)
Try
Dim controlID = GetControlID_for_Name(ControlName, FormID)
Dim SQL = "SELECT UniqueID FROM TBPMO_APPOINTMENTS WHERE CustomField1 = " & RecordID & " AND CustomField2 = " & controlID
Dim result = ClassDatabase.Execute_Scalar(SQL)
If result Is Nothing Then
NewAppointment(ControlName, FormID, RecordID, PanelControls)
Else
EditAppointment(ControlName, FormID, RecordID)
End If
Catch ex As Exception
MsgBox("Error in OpenEditAppointment:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Shared Function FindControlValue(ControlName As String, PanelControls As Control.ControlCollection) As String
If ControlName = Nothing Then
Return Nothing
Else
Dim from_ctrls() As Control = PanelControls.Find(ControlName, True)
Dim from_ctrl As Control
If from_ctrls.Length = 1 Then
from_ctrl = from_ctrls(0)
Return from_ctrl.Text
Else : Return Nothing
End If
End If
End Function
Private Shared Sub NewAppointment(ControlName As String, FormID As Integer, RecordID As Integer, PanelControls As Control.ControlCollection)
Try
Dim ControlId As Integer = GetControlID_for_Name(ControlName, FormID)
Dim dr As DataRow = ClassFunctionCommands.LoadFunction(ControlId)
Dim apt As Appointment = frmCalendar.SchedulerStorage1.CreateAppointment(AppointmentType.Normal)
Dim FromDateName, ToDateName As String
Dim FromDateValue, ToDateValue As Date
Dim SubjectValue, Subject2Value, PlaceValue, DescValue As String
Dim FromDateID As Object = dr.Item("INTEGER1")
Dim ToDateID As Object = dr.Item("INTEGER2")
Dim SubjectString As Object = dr.Item("STRING1")
Dim Subject2String As Object = dr.Item("STRING2")
Dim PlaceString As Object = dr.Item("STRING3")
Dim DescString As Object = dr.Item("STRING4")
' Setzt das Start-Datum des Termins fest.
' Wenn kein Start-Datum gefunden wurde, wird das aktuelle Datum benutzt.
If Not IsDBNull(FromDateID) Then
If FromDateID <> 0 Then
FromDateName = Get_Name_for_ControlID(FromDateID, FormID)
FromDateValue = Date.Parse(FindControlValue(FromDateName, PanelControls))
apt.Start = FromDateValue
Else
apt.Start = Date.Now
End If
Else
apt.Start = Date.Now
End If
' Setzt das End-Datum des Termins fest.
' Wenn kein End-Datum gefunden wurde, wird das Start-Datum benutzt.
If Not IsDBNull(ToDateID) Then
If ToDateID <> 0 Then
ToDateName = Get_Name_for_ControlID(ToDateID, FormID)
If (Date.TryParse(FindControlValue(ToDateName, PanelControls), ToDateValue) = True) Then
apt.End = ToDateValue
Else
apt.End = apt.Start
End If
Else
apt.End = apt.Start
End If
Else
apt.End = apt.Start
End If
If Not IsDBNull(SubjectString) OrElse Not String.IsNullOrWhiteSpace(SubjectString) Then
SubjectValue = ReplacePlaceholders(SubjectString, RecordID, ControlName, PanelControls)
apt.Subject = SubjectValue
End If
If Not IsDBNull(Subject2String) OrElse Not String.IsNullOrWhiteSpace(Subject2String) Then
Subject2Value = ReplacePlaceholders(Subject2String, RecordID, ControlName, PanelControls)
If Not String.IsNullOrEmpty(Subject2Value) Then
apt.Subject = apt.Subject & " - " & Subject2Value
End If
End If
If Not IsDBNull(PlaceString) OrElse Not String.IsNullOrWhiteSpace(PlaceString) Then
PlaceValue = ReplacePlaceholders(PlaceString, RecordID, ControlName, PanelControls)
apt.Location = PlaceValue
End If
If Not IsDBNull(DescString) OrElse Not String.IsNullOrWhiteSpace(DescString) Then
DescValue = ReplacePlaceholders(DescString, RecordID, ControlName, PanelControls)
apt.Description = DescValue
End If
apt.AllDay = True
apt.CustomFields("RecordID") = RecordID
apt.CustomFields("ControlID") = ControlId
frmCalendar.SchedulerControl1.ShowEditAppointmentForm(apt)
Catch ex As Exception
MsgBox("Fehler beim Laden der Termininformationen:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Shared Function ReplacePlaceholders(str As String, RecordID As Integer, ControlName As String, PanelControls As Control.ControlCollection)
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
Dim regexp As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
Dim matches As System.Text.RegularExpressions.MatchCollection = regexp.Matches(str)
If matches.Count = 0 Then
Return str
End If
For Each match As System.Text.RegularExpressions.Match In matches
Dim ControlNameToReplace As String = match.Value.Substring(2, match.Value.Length - 3)
Dim ControlValue As String = FindControlValue(ControlNameToReplace, PanelControls)
str = str.Replace(match.Value, ControlValue)
Next
Return str
End Function
Private Shared Sub EditAppointment(ControlName As String, FormID As Integer, RecordID As Integer)
Try
Dim controlID = GetControlID_for_Name(ControlName, FormID)
' Load All appointments first
frmCalendar.TBPMO_RESOURCESTableAdapter.Connection.ConnectionString = MyConnectionString
frmCalendar.TBPMO_APPOINTMENTSTableAdapter.Connection.ConnectionString = MyConnectionString
frmCalendar.TBPMO_RESOURCESTableAdapter.Fill(frmCalendar.DD_DMSDataSetCalendar.TBPMO_RESOURCES)
frmCalendar.TBPMO_APPOINTMENTSTableAdapter.Fill(frmCalendar.DD_DMSDataSetCalendar.TBPMO_APPOINTMENTS)
Dim apt As Appointment = frmCalendar.SchedulerStorage1.Appointments.Items.Find(Function(a As Appointment)
Return Convert.ToInt32(a.CustomFields("RecordID")).Equals(RecordID) And Convert.ToInt32(a.CustomFields("ControlID")).Equals(controlID)
End Function)
If apt IsNot Nothing Then
frmCalendar.SchedulerControl1.ShowEditAppointmentForm(apt)
End If
Catch ex As Exception
MsgBox("Error in EditAppointment:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
End Class

View File

@ -0,0 +1,265 @@
Imports DevExpress.Utils
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraEditors
Imports DevExpress.XtraEditors.Repository
Public Class ClassGridFormatter
Private Shared tDate As Type = GetType(Date)
Private Shared tBool As Type = GetType(Boolean)
Public Enum DataTableType
CONSTRUCTOR_VIEW
WINDREAM_RESULT
End Enum
''' <summary>
''' Die Formatierungsfunktionen für die ConstruktorView Tabellen
''' </summary>
Public Class ConstructorView
Private EntityId As Integer
Private DT As DataTable
Private dateEdit As New RepositoryItemTimeEdit()
Private checkboxEdit = New RepositoryItemCheckEdit()
Public checkboxColumns As New List(Of String)
Public dateColumns As New List(Of String)
Public currencyColumns As New List(Of String)
Public Sub New(DT As DataTable, EntityId As Integer)
Me.EntityId = EntityId
Me.DT = DT
' dateEdit vor-formatieren
dateEdit.DisplayFormat.FormatType = FormatType.DateTime
dateEdit.DisplayFormat.FormatString = CURRENT_DATE_FORMAT
dateEdit.Mask.MaskType = Mask.MaskType.DateTime
dateEdit.Mask.EditMask = CURRENT_DATE_FORMAT
dateEdit.Mask.UseMaskAsDisplayFormat = True
' checkboxEdit vor-formatieren
checkboxEdit.ValueChecked = True
checkboxEdit.ValueUnchecked = False
End Sub
Public Function FormatDatatable() As DataTable
Try
' Datatable klonen, um Spalten zu formatieren
Dim clonedDT As DataTable = Me.DT.Clone()
' Checkbox Spalten bestimmen
Me.checkboxColumns = GetCheckboxColumns()
' Checkbox Spalten formatieren
For Each columnName As String In Me.checkboxColumns
Dim column As DataColumn = clonedDT.Columns(columnName)
If Not IsNothing(column) Then
column.DataType = tBool
End If
Next
' Datums Spalten bestimmen
Me.dateColumns = GetDateColumns()
' Datums Spalten Formatieren
For Each columnName As String In Me.dateColumns
Dim column As DataColumn = clonedDT.Columns(columnName)
If Not IsNothing(column) Then
column.DataType = tDate
End If
Next
' Daten aus DT in formatierte DataTable clonedDT laden
clonedDT.Load(DT.CreateDataReader)
Return clonedDT
Catch ex As Exception
ClassLogger.Add("Unexpected Error in FormatDatatable: " & ex.Message, True)
Return DT
End Try
End Function
Public Sub FormatGridView(gridView As GridView)
If IsNothing(gridView.GridControl.DataSource) Then
Throw New Exception("Error in FormatGridView: DataSource is Empty!")
End If
' Editoren zum Grid hinzufügen
gridView.GridControl.RepositoryItems.AddRange({checkboxEdit, dateEdit})
For Each columnName As String In Me.dateColumns
Dim column As GridColumn = gridView.Columns(columnName)
If Not IsNothing(column) Then
column.DisplayFormat.FormatType = FormatType.DateTime
column.DisplayFormat.FormatString = CURRENT_DATE_FORMAT
column.OptionsFilter.FilterPopupMode = FilterPopupMode.Date
column.FilterMode = ColumnFilterMode.Value ' was DisplayText
column.ColumnEdit = dateEdit
End If
Next
For Each columnName As String In Me.checkboxColumns
Dim column As GridColumn = gridView.Columns(columnName)
If Not IsNothing(column) Then
column.ColumnEdit = checkboxEdit
End If
Next
currencyColumns = GetCurrencyColumns()
For Each columnName As String In currencyColumns
Dim column As GridColumn = gridView.Columns(columnName)
If Not IsNothing(column) Then
column.DisplayFormat.FormatType = FormatType.Numeric
column.DisplayFormat.FormatString = "C"
column.DisplayFormat.Format = New CurrencyFormatter()
End If
Next
End Sub
Class CurrencyFormatter
Implements IFormatProvider, ICustomFormatter
Public Function GetFormat(formatType As Type) As Object Implements IFormatProvider.GetFormat
Return Me
End Function
Public Function Format(formatString As String, arg As Object, formatProvider As IFormatProvider) As String Implements ICustomFormatter.Format
Dim formatValue As String = arg.ToString()
If (formatValue.Count > 0 And formatString.ToUpper() = "C") Then
Return ClassHelper.Format_Currency(formatValue, USER_LANGUAGE)
Else
Return formatValue
End If
End Function
End Class
Private Function GetCurrencyColumns() As List(Of String)
Try
Dim list As New List(Of String)
' Alle Currency Felder für aktuelle Ansicht heraussuchen
Dim sql As String = "SELECT COL_NAME FROM TBPMO_CONTROL WHERE CONTROL_TYPE_ID = 2 AND FORMAT_TYPE = 'Currency' AND SHOW_COLUMN = 1 AND FORM_ID = " & Me.EntityId
Dim dt As DataTable = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_CONTROL, "CONTROL_TYPE_ID = 2 AND FORMAT_TYPE = 'Currency' AND SHOW_COLUMN = 1 AND FORM_ID = " & Me.EntityId, "") 'ClassDatabase.Return_Datatable(sql, True)
For Each row As DataRow In dt.Rows
list.Add(row.Item("COL_NAME"))
Next
Return list
Catch ex As Exception
ClassLogger.Add("Unexpected Error in GetCurrencyColumns: " & ex.Message, True)
Return Nothing
End Try
End Function
Private Function GetCheckboxColumns()
Try
Dim listcheck As New List(Of String)
' Alle Checkboxen für aktuelle Ansicht heraussuchen
' Dim sqlcheck As String = "SELECT COL_NAME FROM TBPMO_CONTROL WHERE CONTROL_TYPE_ID in (10,11) AND SHOW_COLUMN = 1 AND FORM_ID = " & Me.EntityId
Dim dtcheck As DataTable = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_CONTROL, "CONTROL_TYPE_ID in (10,11) AND SHOW_COLUMN = 1 AND FORM_ID = " & Me.EntityId, "") ' ClassDatabase.Return_Datatable(sqlcheck, True)
'Liste von allen Spaltentiteln mit Checkbox erstellen
If dtcheck.Rows.Count > 0 Then
For Each row As DataRow In dtcheck.Rows
listcheck.Add(row.Item("COL_NAME"))
Next
End If
listcheck.Add("files?")
Return listcheck
Catch ex As Exception
ClassLogger.Add("Unexpected Error in GetCheckboxColumns: " & ex.Message, True)
Return Nothing
End Try
End Function
Private Function GetDateColumns()
Try
Dim listdate As New List(Of String)
' Alle Checkboxen für aktuelle Ansicht heraussuchen
' Dim sqlcheck As String = "SELECT COL_NAME FROM TBPMO_CONTROL WHERE CONTROL_TYPE_ID = 4 AND SHOW_COLUMN = 1 AND FORM_ID = " & Me.EntityId
Dim dtdate As DataTable = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_CONTROL, "CONTROL_TYPE_ID = 4 AND SHOW_COLUMN = 1 AND FORM_ID = " & Me.EntityId, "") 'ClassDatabase.Return_Datatable(sqlcheck, True)
'Liste von allen Spaltentiteln mit Checkbox erstellen
If dtdate.Rows.Count > 0 Then
For Each row As DataRow In dtdate.Rows
listdate.Add(row.Item("COL_NAME"))
Next
End If
Return listdate
Catch ex As Exception
ClassLogger.Add("Unexpected Error in GetCheckboxColumns: " & ex.Message, True)
Return Nothing
End Try
End Function
End Class
''' <summary>
''' Die Formatierungsfunktionen für die WindreamResult Tabellen
''' </summary>
Public Class WindreamResult
End Class
End Class
' FOR REFERENCE IN CASE SOMETHING BREAKS :)
'Public Shared Function Format_GridColumns(Primary_DT As DataTable, _ENTITYSQL As String, listcheck As List(Of String), listdate As List(Of String))
' Try
' Dim tbltemp As DataTable = Primary_DT.Clone()
' ' Nicht benötigt? Datumsspalten werden im Grid formatiert
' For Each col As String In listdate
' Dim colDate As DataColumn = tbltemp.Columns(col)
' If Not IsNothing(colDate) Then
' Try
' colDate.DataType = GetType(Date)
' Catch ex As Exception
' MsgBox("Error in Format_GridColumns:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
' End Try
' End If
' Next
' For Each col1 As String In listcheck
' Dim collist As DataColumn = tbltemp.Columns(col1)
' If Not IsNothing(collist) Then
' collist.DataType = GetType(Boolean)
' End If
' Next
' Try
' Dim collist As DataColumn = tbltemp.Columns("files?")
' If Not IsNothing(collist) Then
' collist.DataType = GetType(Boolean)
' End If
' Catch ex As Exception
' End Try
' Try
' tbltemp.Load(Primary_DT.CreateDataReader)
' Return tbltemp
' Catch ex As Exception
' ClassLogger.Add(">> Attention: Format_GridColumns - Could not load converted datatable: " & ex.Message, False)
' 'Tabelle wird ohne Datekonvertierung geladen
' Dim DTEntity As DataTable = ClassDatabase.Return_Datatable(_ENTITYSQL, "Load_Entity_Data_Only")
' Dim primaryKey(1) As DataColumn
' primaryKey(0) = DTEntity.Columns("Record-ID")
' DTEntity.PrimaryKey = primaryKey
' Return DTEntity
' End Try
' Catch ex As Exception
' MsgBox("Unexpected Error in Format_GridColumns:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
' ClassLogger.Add("Error in Format_GridColumns: " & ex.Message, True)
' Return Nothing
' End Try
'End Function

View File

@ -0,0 +1,427 @@
Imports System.IO
Imports System.Globalization
Imports DD_LIB_Standards
Imports System.ComponentModel
Public Class ClassHelper
Private Shared BW_DocPath As String
Private Shared BW_DocID As Integer
Public Shared Function FORMAT_WM_PATH(WMpath As String)
Try
Dim ochanged As Boolean = False
If WMpath.StartsWith("W:") Then
WMpath = WMpath.Replace("W:", "\\windream\Objects")
ochanged = True
ElseIf WMpath.StartsWith("\") Then
If WMpath.StartsWith("\\windream\Objects") = False Then
WMpath = "\\windream\Objects" & WMpath
ochanged = True
End If
End If
If LogErrorsOnly = False And ochanged = True Then ClassLogger.Add(" >> WMpath is: " & WMpath, False)
Return WMpath
Catch ex As Exception
Return WMpath
End Try
End Function
Public Shared Function Format_Currency(value As String, language As String)
Try
If IsNothing(value) Then
Return ""
End If
If language <> "de-DE" Then
value = value.Replace(",", ".")
End If
Dim dValue = Double.Parse(value)
Dim ci = Threading.Thread.CurrentThread.CurrentCulture
Dim nfi As NumberFormatInfo = ci.NumberFormat.Clone()
nfi.CurrencySymbol = "" ' KEIN Currency Symbol
Return dValue.ToString("C", nfi)
Catch ex As Exception
Return value.ToString()
End Try
End Function
Public Shared Function Convert_Date(input As String, format As String)
Try
Dim dt As Date = CDate(input)
Dim result = dt.ToString(format, CultureInfo.InvariantCulture)
Return result
Catch ex As Exception
ClassLogger.Add("Unexpected Error while converting value '" & input & "' to date....." & ex.Message, False)
Return input
End Try
End Function
Public Shared Function CheckDBNull(input As Object, back_Value As String)
If IsDBNull(input) Then
If back_Value = "String" Then
Return ""
Else
Return True
End If
Else
If back_Value = "String" Then
Return input.ToString
Else
Return False
End If
End If
End Function
Public Shared Function Convert_to_Database_Date(input As String)
Try
Dim dt As Date = CDate(input)
Dim result = dt.ToString("yyyy-MM-dd", Nothing)
Return result
Catch ex As Exception
ClassLogger.Add("Unexpected Error while converting value '" & input & "' to date(Convert_to_Database_Date)....." & ex.Message, False)
Return input
End Try
End Function
Public Shared Function Get_TempFilename()
'Eine tempfile generieren
Dim tempFilename = My.Computer.FileSystem.GetTempFileName()
'Nur den Filenamen ohne Erweiterung
Dim tempName = Path.GetDirectoryName(tempFilename) & "\" & Path.GetFileNameWithoutExtension(tempFilename)
'tempfile lsöchen
If My.Computer.FileSystem.FileExists(tempFilename) Then
My.Computer.FileSystem.DeleteFile(tempFilename)
End If
Return tempName
End Function
Public Shared Function CheckFileIsInUse(ByVal filename) As Boolean
Dim fs As Integer = FreeFile()
Dim inuse As Boolean = False
If File.Exists(filename) Then
Try
Using f As New IO.FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.None)
' thisFileInUse = False
End Using
Catch
inuse = True
End Try
Try
FileOpen(fs, filename, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockReadWrite)
Catch ex As Exception
ClassLogger.Add("File " & filename & " inuse or not able to open - message: " & ex.Message, True)
inuse = True
Finally
FileClose(fs)
End Try
End If
Return inuse
End Function
Public Shared Function Versionierung_Datei(Dateiname As String)
Dim extension
Dim _NewFileString
Try
Dim version As Integer = 1
Dim Stammname As String = Path.GetDirectoryName(Dateiname) & "\" & Path.GetFileNameWithoutExtension(Dateiname)
extension = Path.GetExtension(Dateiname)
Dim _neuername As String = Stammname
'Dim MoveFilename As String = DATEINAME.Replace(element.Value, "")
'Überprüfen ob File existiert
If File.Exists(_neuername & extension) = False Then
_NewFileString = _neuername
Else
Do While File.Exists(_neuername & extension)
version = version + 1
_neuername = Stammname & "~" & version
_NewFileString = _neuername
Loop
End If
Return _NewFileString & extension
Catch ex As Exception
ClassLogger.Add(" - Error in versioning file - error: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in versioning file:")
Return ""
End Try
End Function
'' <summary>
''' Ersetzt alle nicht zulässigen Zeichen im angegebenen Dateinamen
''' </summary>
''' <param name="sFilename">Dateiname ohne Pfadangabe</param>
''' <param name="sChar">Ersatzzeichen für alle unzulässigen Zeichen
''' im Dateinamen</param>
Public Shared Function CleanFilename(ByVal sFilename As String,
Optional ByVal REPLACEChar As String = "") As String
' alle nicht zulässigen Zeichen ersetzen
Return System.Text.RegularExpressions.Regex.Replace(
sFilename, "[?*^""<>|]", REPLACEChar)
End Function
Public Shared Function File_open(RESULT_DOC_PATH As Object, DocID As String)
Try
RESULT_DOC_PATH = FORMAT_WM_PATH(RESULT_DOC_PATH)
CURRENT_OFFICE_FILE_CHANGED = False
If RESULT_DOC_PATH <> Nothing Then
If USER_GENERAL_VIEWER = "NONE" Then
Dim EXT = Path.GetExtension(RESULT_DOC_PATH)
EXT = EXT.Replace(".", "")
Dim sql = String.Format("SELECT VIEWER FROM TBPMO_DOC_USER_VIEW WHERE USER_ID = {0} AND UPPER(FILE_EXTENSION) = UPPER('{1}')", USER_GUID, EXT)
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql)
If DT.Rows.Count = 1 Then
Select Case DT.Rows(0).Item("VIEWER")
Case "DOC_VIEW"
OPEN_DOCVIEW(RESULT_DOC_PATH, DocID)
End Select
Else
File_SYSOPEN(RESULT_DOC_PATH, DocID)
End If
Else
Select Case USER_GENERAL_VIEWER
Case "DOC-VIEW"
OPEN_DOCVIEW(RESULT_DOC_PATH, DocID)
End Select
End If
Return True
Else
MSGBOX_Handler("ERROR", "", "Sorry, but the docpath for doc-id: " & DocID & " is nothing!")
Return False
If LogErrorsOnly = False Then ClassLogger.Add(" >> RESULT_DOC_PATH IS NOTHING")
End If
Catch ex As Exception
MsgBox("Unexpected Error in File_open:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
ClassLogger.Add("Error in File_open: " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID, True)
Return False
End Try
End Function
Public Shared Sub Open_Folder(RESULT_DOC_PATH As Object, DocID As String)
Try
If RESULT_DOC_PATH <> Nothing Then
Dim _path = Path.GetDirectoryName(RESULT_DOC_PATH)
FOLDER_OPEN(_path, DocID)
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> RESULT_DOC_PATH IS NOTHING")
End If
Catch ex As Exception
MsgBox("Unexpected Error in Open_Folder:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
ClassLogger.Add("Error in Open_Folder: " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID, True)
End Try
End Sub
Public Shared Sub OPEN_DOCVIEW(Doc_Path As String, DocID As Integer)
Try
Dim DocView
DocView = Nothing
DocView = CreateObject("WMPViewXNG.Viewer")
' open the viewer
Dim viewer_string = Doc_Path.Substring(2)
DocView.ViewFile(viewer_string)
CURRENT_DOCVIEW_PATH = viewer_string
CURRENT_DOCVIEW = DocView
Catch ex As Exception
MsgBox("Unexpected Error in DocView Open:" & vbNewLine & ex.Message & vbNewLine & Doc_Path & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
ClassLogger.Add("Error in DocView Open: " & ex.Message & vbNewLine & " - Path: " & Doc_Path & " - DocID: " & DocID, True)
File_SYSOPEN(Doc_Path, DocID)
End Try
End Sub
Private Shared Sub File_SYSOPEN(RESULT_DOC_PATH As Object, DocID As String)
Try
If RESULT_DOC_PATH <> Nothing Then
BW_DocPath = RESULT_DOC_PATH
BW_DocID = DocID
Dim BWFileHandler As New BackgroundWorker
AddHandler BWFileHandler.DoWork, AddressOf BWFileHandler_DoWork
BWFileHandler.RunWorkerAsync()
End If
Catch ex As Exception
MsgBox("Unexpected Error in File_SYSOPEN:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
ClassLogger.Add("Error in File_SYSOPEN: " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID, True)
End Try
End Sub
Private Shared Sub BWFileHandler_DoWork()
Try
Dim oMyProcess = New Process()
Dim oExtension
Dim oSql
Try
'Dim oPSI As New ProcessStartInfo(BW_DocPath)
oMyProcess.StartInfo.FileName = BW_DocPath
oMyProcess.StartInfo.UseShellExecute = True
oMyProcess.StartInfo.RedirectStandardOutput = False
oMyProcess.Start()
Dim ProcID = oMyProcess.GetCurrentProcess.Id
oExtension = Path.GetExtension(BW_DocPath).ToLower
If LogErrorsOnly = False Then ClassLogger.Add($"Checking oExtension [{oExtension}]...", False)
If FILE_FORMATS_CHANGE_DURING_EDIT.Contains(oExtension) Then
oSql = $"SELECT dwVersionID FROM windream60.dbo.BaseAttributes WHERE dwDocID = {BW_DocID}"
Dim odwVersionId = clsDatabase.Execute_Scalar(oSql, False)
Dim oInsert = $"INSERT INTO TBPMO_DOC_ID_CHANGED (USER_ID,PROCESS_ID,VERSION_ID,OLD_DOC_ID,DOC_PATH) VALUES ({USER_GUID},'{ProcID.ToString}',{odwVersionId},{BW_DocID},'{BW_DocPath}')"
clsDatabase.Execute_non_Query(oInsert, False)
End If
'oMyProcess.WaitForExit()
Catch ex As Exception
ClassLogger.Add("Error in Process1.Start(): " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID, True)
Exit Sub
End Try
Catch ex As Exception
ClassLogger.Add("Error in Process.Start(): " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID, True)
Try
Process.Start(BW_DocPath)
Catch ex1 As Exception
ClassLogger.Add("Error in Process.Start(1): " & ex1.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID, True)
End Try
End Try
End Sub
Private Shared Sub FOLDER_OPEN(PATH As Object, DocID As String)
Try
If PATH <> Nothing Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> in FOLDER_OPEN(" & PATH & ")", False)
If System.IO.Directory.Exists(PATH) = True Then
Process.Start(PATH)
Else
MsgBox("Folder '" & PATH & "' not existing or accessible!", MsgBoxStyle.Exclamation)
End If
End If
Catch ex As Exception
MsgBox("Unexpected Error in FOLDER_OPEN:" & vbNewLine & ex.Message & vbNewLine & PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
ClassLogger.Add("Error in FOLDER_OPEN: " & ex.Message & vbNewLine & " - Path: " & PATH & " - DocID: " & DocID, True)
End Try
End Sub
Shared Function Convert_Date_2_Form_Format(p1 As Date) As Date
Throw New NotImplementedException
End Function
Public Shared Function InsertEssential_Log(REFERENCE_KEY As Integer, REFERENCE_STRING As String, COMMENT As String)
Try
COMMENT = COMMENT.Replace("'", "")
Dim insert = String.Format("INSERT INTO TBPMO_LOG_ESSENTIALS (REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES ({0},'{1}','{2}','{3}')", REFERENCE_KEY, REFERENCE_STRING, COMMENT, USER_USERNAME)
Dim result = clsDatabase.Execute_non_Query(insert, False)
Return result
Catch ex As Exception
ClassLogger.Add("Unexpected Error in InsertEssential_Log: " & ex.Message, True, False)
Return False
End Try
End Function
Public Shared Function DeleteRecord(SELECTED_RECORD_ID As Integer, Optional Comment As String = "")
Try
Dim DeleteRecordSQL = String.Format("EXEC [dbo].[PRPMO_DELETE_RECORD] {0}, '{1}','{2}'", SELECTED_RECORD_ID, USER_USERNAME, Comment)
Dim result As Boolean = ClassDatabase.Execute_non_Query_withConn(DeleteRecordSQL, 1)
If result = False Then
Dim msg = "Der Datensatz '" & SELECTED_RECORD_ID & "' konnte nicht gelöscht werden. Überprüfen Sie das log"
If USER_LANGUAGE <> "de-DE" Then
msg = "The record '" & SELECTED_RECORD_ID & "' could not be deleted. Check the log"
End If
MsgBox(msg, MsgBoxStyle.Exclamation)
Else
ClassProxy.PRPROXY_RECORD_DEL(SELECTED_RECORD_ID, CURRENT_ENTITY_ID)
End If
Return result
Catch ex As Exception
ClassLogger.Add("Unexpected Error in DeleteRecord: " & ex.Message, True)
Return False
End Try
End Function
Public Shared Sub MSGBOX_Handler(type As String, Caption As String, info1 As String, Optional info2 As String = "")
Dim msg = info1
If info2 <> "" Then
msg &= vbNewLine & vbNewLine & info2
End If
If type = "ERROR" Then
MessageBox.Show(msg, Caption, MessageBoxButtons.OK, MessageBoxIcon.Error)
ClassLogger.Add(msg, True)
ElseIf type = "INFO" Then
MessageBox.Show(msg, Caption, MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Sub
Public Shared Function Check_Record_Read_only(RECORD_ID As Integer, ENTITY_ID As Integer)
Dim sql = ""
Try
sql = SQL_RECORD_AND_FILE_READ_ONLY
sql = sql.Replace("@RECORDID", RECORD_ID)
sql = sql.Replace("@RECORD_ID", RECORD_ID)
sql = sql.Replace("@USER_ID", USER_GUID)
sql = sql.Replace("@USER_GUID", USER_GUID)
sql = sql.Replace("@ENTITY_ID", ENTITY_ID)
sql = sql.Replace("@USERNAME", USER_USERNAME)
sql = sql.Replace("@USER_NAME", USER_USERNAME)
If LogErrorsOnly = False Then ClassLogger.Add(" >> RIGHT_ONLY_READ_RECORD_DOC SQL: (When true then disable) '" & sql & "'", False)
Return CBool(ClassDatabase.Execute_Scalar(sql, True))
Catch ex As Exception
ClassLogger.Add(">> SQL_RIGHT_READ_AND_VIEW_ONLY: " & sql)
Return False
End Try
End Function
Public Shared Function Check_File_Read_only(RECORD_ID As Integer, ENTITY_ID As Integer)
Dim sql = ""
Try
sql = SQL_DOC_READ_ONLY
sql = sql.Replace("@RECORDID", RECORD_ID)
sql = sql.Replace("@RECORD_ID", RECORD_ID)
sql = sql.Replace("@USER_ID", USER_GUID)
sql = sql.Replace("@USER_GUID", USER_GUID)
sql = sql.Replace("@ENTITY_ID", ENTITY_ID)
sql = sql.Replace("@USERNAME", USER_USERNAME)
sql = sql.Replace("@USER_NAME", USER_USERNAME)
If LogErrorsOnly = False Then ClassLogger.Add(" >> RIGHT_ONLY_READ_COC SQL: (When true then disable) '" & sql & "'", False)
Return CBool(ClassDatabase.Execute_Scalar(sql, True))
Catch ex As Exception
ClassLogger.Add(">> RIGHT_WINDREAM_FORBIDDEN: " & sql)
Return False
End Try
End Function
Public Shared Sub Create_USER_FILE_TABLE()
Try
Dim sql = String.Format("SELECT *, CONVERT(BIT,0) AS DELETE_FILE FROM TBPMO_FILES_USER WHERE (UPPER(USER_WORK) = UPPER('{0}')) AND WORKED = 0", USER_USERNAME)
CURRENT_TBPMO_FILES_USER = ClassDatabase.Return_Datatable(sql, True)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while creating User_File_Table")
End Try
End Sub
Public Shared Function DELETE_PMO_FILE_USER(GUID As Integer)
Try
Dim del As String = String.Format("DELETE FROM TBPMO_FILES_USER WHERE GUID = {0}", GUID)
Return ClassDatabase.Execute_non_Query(del, True)
Catch ex As Exception
MsgBox("Unexpected Error in DELETE_PMO_FILE_USER: " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function DecryptString(ciphertext As String, MethodName As String)
Dim result As String
Dim wrapper As New ClassEncryption("!35452didalog=")
' DecryptData throws if the wrong password is used.
Try
result = wrapper.DecryptData(ciphertext)
Return result
Catch ex As Exception
ClassLogger.Add("The ciphertext for Method'" & MethodName & "' could not be decrypted", False)
Return ""
End Try
End Function
Public Shared Function FILTER_DATATABLE(BaseDatatable As DataTable, expression As String, sortstring As String)
Try
'Schema übernehmen
Dim filteredData As DataTable = BaseDatatable.Clone()
'Einfügevariante
BaseDatatable.Select(expression, sortstring).CopyToDataTable(filteredData, LoadOption.PreserveChanges)
Console.WriteLine("Found {0} rows.", filteredData.Rows.Count)
'Dim filteredData = BaseDatatable.Select(expression).CopyToDataTable()
Return filteredData
Catch ex As Exception
ClassLogger.Add("unexpected error in FILTER_DATATABLE: " & ex.Message)
Return Nothing
End Try
End Function
End Class

View File

@ -0,0 +1,746 @@
Imports System.IO
Imports System.Globalization
Imports WINDREAMLib
Imports DD_LIB_Standards
Public Class ClassImport_Windream
Public Shared Function Import_File(QuellDatei_Path As String, DOCTYPE_ID As Integer)
Try
Dim err As Boolean = False
CURRENT_FILENAME = QuellDatei_Path
Dim DT_DOCTYPE As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBDD_DOKUMENTART WHERE GUID = " & DOCTYPE_ID, True)
If Not IsNothing(DT_DOCTYPE) Then
Dim Targetpath As String = DT_DOCTYPE.Rows(0).Item("ZIEL_PFAD")
Dim Dokart As String = DT_DOCTYPE.Rows(0).Item("BEZEICHNUNG")
clsWindream.MY_WDOBJECTTYPE = DT_DOCTYPE.Rows(0).Item("OBJEKTTYP")
'Den Namen der Dokumentart generieren
If ClassImport_Windream.Name_Generieren(DOCTYPE_ID) = False Then
err = True
Return False
End If
'Die Datei nach windream importieren
Dim streamresult = clsWD_SET.Stream_File(QuellDatei_Path, Targetpath)
If streamresult = True Then
Dim sql As String = String.Format("SELECT DocID FROM VWPMO_DOC_SYNC WHERE UPPER(FULL_FILENAME) = UPPER('{0}') AND CONVERT(DATE,Change_DateTime) = CONVERT(DATE,GETDATE())", CURRENT_FILEIN_WD)
CURRENT_DOC_ID = ClassDatabase.Execute_Scalar(sql)
sql = $"SELECT * FROM TBDD_INDEX_AUTOM WHERE DOCTYPE_ID = {DOCTYPE_ID} AND ENTITY_ID = {CURRENT_ENTITY_ID}"
Dim dt As DataTable = ClassDatabase.Return_Datatable(sql)
Dim indexierung_erfolgreich As Boolean = False
If dt Is Nothing = False Then
If dt.Rows.Count > 0 Then
Dim Count As Integer = 0
For Each row As DataRow In dt.Rows
Dim indexname = row.Item("INDEXNAME").ToString
Dim idxvalue = row.Item("VALUE")
If idxvalue.ToString.StartsWith("@") Then
Select Case idxvalue.ToString.ToUpper
Case "@RECORD-ID"
idxvalue = idxvalue.ToString.Replace("@Record-ID", CURRENT_RECORD_ID)
Case "@DOKART"
idxvalue = idxvalue.ToString.Replace("@Dokart", Dokart)
End Select
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexvalue: " & idxvalue.ToString, False)
Count += 1
indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, idxvalue, clsWindream.MY_WDOBJECTTYPE)
If indexierung_erfolgreich = False Then
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error: ", "Unexpected Error in indexing '" & indexname & "') - Check logfile!")
err = True
Exit For
End If
'ByVal WD_File As String, ByVal _Indexname As String, ByVal _Value As String
Next
If err = True Then
Return False
End If
''den Entity-Key auslesen
'sql = "Select Top 1 * from TBPMO_WD_OBJECTTYPE where Upper(object_type) = Upper('" & clsWindream.MY_WDOBJECTTYPE & "')"
'dt = ClassDatabase.Return_Datatable(sql, True)
'If Not dt Is Nothing Then
' If dt.Rows.Count = 1 Then
' Dim indexname = dt.Rows(0).Item("IDXNAME_ENTITYID").ToString
' Dim idxvalue = CURRENT_ENTITY_ID
' If LogErrorsOnly = False Then ClassLogger.Add(" >> Entity-ID: " & idxvalue.ToString, False)
' indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, idxvalue, clsWindream.MY_WDOBJECTTYPE)
' If indexierung_erfolgreich = False Then
' err = True
' ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error: ", "Unexpected Error in indexing Entity-ID '" & indexname & "') - Check logfile!")
' Return False
' End If
' indexname = dt.Rows(0).Item("IDXNAME_PARENTID").ToString
' idxvalue = CURRENT_PARENT_ENTITY_ID
' If LogErrorsOnly = False Then ClassLogger.Add(" >> Parent-ID: " & idxvalue.ToString, False)
' indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, idxvalue, clsWindream.MY_WDOBJECTTYPE)
' If indexierung_erfolgreich = False Then
' err = True
' ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error: ", "Unexpected Error in indexing Parent-ID '" & indexname & "') - Check logfile!")
' Return False
' End If
' End If
'End If
If indexierung_erfolgreich = True Then
Return True
Else
MsgBox("Unexpected Error in Indexing file. Please chek log!", MsgBoxStyle.Exclamation, "Achtung:")
Return False
End If
End If
End If
End If
Else
Return False
End If
Catch ex As Exception
MsgBox("Unexpected error in Import_File ClassImport_windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function Name_Generieren(DocTypeID As Integer)
Try
Dim FILE_DELIMITER, VERSION_DELIMITER, _WDOBJECTTYPE, _NewFileString As String
Dim sql As String = "select VERSION_DELIMITER, FILE_DELIMITER FROM TBDD_MODULES where UPPER(NAME) = UPPER('Global-Indexer')"
Dim DT1 As DataTable = ClassDatabase.Return_Datatable(sql)
FILE_DELIMITER = DT1.Rows(0).Item("FILE_DELIMITER")
VERSION_DELIMITER = DT1.Rows(0).Item("VERSION_DELIMITER")
Dim err As Boolean = False
Dim oWMTARGET_FOLDER As String
Dim oExtension As String = Path.GetExtension(CURRENT_FILENAME)
Dim oDT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBDD_DOKUMENTART WHERE GUID = " & DocTypeID, True)
'sql_history_INSERT_INTO = "INSERT INTO TBGI_HISTORY (FILENAME_ORIGINAL,FILENAME_NEW"
'sql_history_Index_Values = ""
Dim AnzahlIndexe As Integer = 1
_WDOBJECTTYPE = oDT.Rows(0).Item("OBJEKTTYP")
' Den Zielordner erstellen
oWMTARGET_FOLDER = oDT.Rows(0).Item("ZIEL_PFAD")
sql = $"SELECT * FROM TBPMO_WD_FORMVIEW_DOKTYPES WHERE FORMVIEW_ID = {CURRENT_FORMVIEW_ID} AND DOCTYPE_ID = {DocTypeID}"
Dim oDTFW_DOCTYPES As DataTable = ClassDatabase.Return_Datatable(sql)
Dim oDYNAMIC_FOLDER = oDTFW_DOCTYPES.Rows(0).Item("DYNAMIC_FOLDER")
Dim oNAME_CONVENTION = oDTFW_DOCTYPES.Rows(0).Item("NAME_CONVENTION")
Dim oROOTWM_FOLDER
Try
oROOTWM_FOLDER = oDTFW_DOCTYPES.Rows(0).Item("ROOT_FOLDER")
Catch ex As Exception
oROOTWM_FOLDER = ""
End Try
If oROOTWM_FOLDER <> String.Empty Then
If LogErrorsOnly = False Then ClassLogger.Add($">> oROOTWM_FOLDER '{oROOTWM_FOLDER}' will be used", False)
oWMTARGET_FOLDER = oROOTWM_FOLDER
End If
'ClassDatabase.Execute_Scalar(sql)
If Not IsDBNull(oDYNAMIC_FOLDER) Then
If oDYNAMIC_FOLDER <> String.Empty Then
If CREATE_FOLDER_INDEX(oDYNAMIC_FOLDER, DocTypeID) = True And CURRENT_VARIABLE_FOLDER <> "" Then
If LogErrorsOnly = False Then
ClassLogger.Add(" >> After CREATE_FOLDER_INDEX - oWMTARGET_FOLDER: " & oWMTARGET_FOLDER, False)
ClassLogger.Add(" >> After CREATE_FOLDER_INDEX - CURRENT_VARIABLE_FOLDER: " & CURRENT_VARIABLE_FOLDER, False)
End If
If oWMTARGET_FOLDER <> CURRENT_VARIABLE_FOLDER Then
oWMTARGET_FOLDER = oWMTARGET_FOLDER & "\" & CURRENT_VARIABLE_FOLDER.Replace(oWMTARGET_FOLDER, "")
Else
oWMTARGET_FOLDER = CURRENT_VARIABLE_FOLDER
End If
'End If
Else
MsgBox("Unexpected Error in Creating Variable Folder - Check logfile!", MsgBoxStyle.Critical)
Return False
End If
End If
End If
If LogErrorsOnly = False Then
ClassLogger.Add(" >> oWMTARGET_FOLDER: " & oWMTARGET_FOLDER, False)
ClassLogger.Add(" >> CURRENT_SUBFOLDER: " & CURRENT_SUBFOLDER, False)
End If
'Untsserordner ja oder nein
If CURRENT_CHECK_SUBFOLDER = True And CURRENT_SUBFOLDER <> "" Then
oWMTARGET_FOLDER = oWMTARGET_FOLDER & "\" & CURRENT_SUBFOLDER
End If
oWMTARGET_FOLDER = oWMTARGET_FOLDER.Replace("\\", "\")
If oWMTARGET_FOLDER.Contains("/") Then
ClassLogger.Add(String.Format(">> Targetpath contains /-sign. / will be replaced with _"))
oWMTARGET_FOLDER = oWMTARGET_FOLDER.Replace("/", "_")
End If
Try
Select Case clsWD_GET.WD_PATH_EXISTS(oWMTARGET_FOLDER.Substring(2))
Case False
ClassLogger.Add(String.Format(">> Targetpath ({0}) is not existing or result of WD_PATH_EXISTS was false.", oWMTARGET_FOLDER.Substring(2)), False)
Dim split() As String = oWMTARGET_FOLDER.Split("\")
Dim Path_Combined As String = ""
For Each s As String In split
Path_Combined &= s & "\"
If Path_Combined <> "W:\" Then
Dim temppath = Path_Combined.Substring(2)
Try
temppath = Path_Combined.Substring(2).Substring(0, temppath.Length)
Select Case clsWD_GET.WD_PATH_EXISTS(temppath)
Case False
If LogErrorsOnly = False Then
ClassLogger.Add(" >> Trying to create folder-part: " & temppath, False)
End If
clsWindream.MY_WDSESSION.GetNewWMObjectFS(2, temppath, 0) 'WMEntityFolder,WMObjectEditModeNoEdit)
Case -10
ClassLogger.Add(">> WD_PATH_EXISTS returned -10 for: " & temppath, False)
Return False
End Select
Catch ex As Exception
If Not ex.Message.Contains("Filename exists!") Then
ClassLogger.Add(String.Format(">> Could not create folder-part: {0} - Complete path is: ({1})", temppath, oWMTARGET_FOLDER.Substring(2)))
ClassLogger.Add(String.Format(">> ErrorMessage: {0}: ", ex.Message))
Return False
End If
End Try
End If
Next
Case -10
MsgBox("Attention: the folder of the doctype does not exist or there was an error while checking....", MsgBoxStyle.Critical)
Return False
End Select
Catch ex As Exception
If Not ex.Message.Contains("Filename exists!") Then
ClassLogger.Add(String.Format(">> Could not create folder ({0}): " & ex.Message, oWMTARGET_FOLDER.Substring(2)), False)
Return False
End If
End Try
'####
' Regulären Ausdruck zum Auslesen der Indexe definieren
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
'Namenkonvention laden
'Dim NameConv = ClassDatabase.Execute_Scalar("SELECT TOP 1 NAME_CONVENTION FROM TBPMO_WD_FORMVIEW_DOKTYPES WHERE DOCTYPE_ID = " & DocTypeID & " AND FORMVIEW_ID = " & CURRENT_FORMVIEW_ID, True)
If IsDBNull(oNAME_CONVENTION) Then
ClassLogger.Add(">> Achtung: Namenskonvention is DBNull", False)
oNAME_CONVENTION = Path.GetFileNameWithoutExtension(CURRENT_FILENAME)
ElseIf oNAME_CONVENTION = String.Empty Then
ClassLogger.Add(">> Achtung: Namenskonvention is String empty", False)
oNAME_CONVENTION = Path.GetFileNameWithoutExtension(CURRENT_FILENAME)
End If
'schonmal den gesamten Pfad laden
Dim oNewWM_Filename As String = oWMTARGET_FOLDER & "\" & oNAME_CONVENTION
If LogErrorsOnly = False Then ClassLogger.Add(" >> oNewWM_Filename: " & oNewWM_Filename, False)
' einen Regulären Ausdruck laden
Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
' die Vorkommen im SQL-String auslesen
Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(oNewWM_Filename)
'####
' alle Vorkommen innerhalbd er Namenkonvention durchlaufen
For Each element As System.Text.RegularExpressions.Match In elemente
If LogErrorsOnly = False Then ClassLogger.Add(" >> element in RegeX: " & element.Value, False)
Select Case element.Value.Substring(2, 1).ToUpper
'Nur automatische Indizes auswerten
Case "A"
Dim APattern = element.Value.Substring(3, element.Value.Length - 4)
Dim value As String
Select Case APattern
'Laufzeitvariable Record-ID
Case "RECORD_ID"
value = CURRENT_RECORD_ID
Case "DOKART"
'Laufzeitvariable Dokumentartstring
value = CURRENT_DOKARTSTRING
Case Else
'Ein Index der nur für die Namenkonvention herangezogen wird
If APattern.StartsWith("NC_") And APattern.Contains("#") Then
Dim split() As String = APattern.Split("#")
If split.Length = 2 Then
'Die GUID des AutoIndex auslesen
Dim INDEX_ID = split(1)
If IsNumeric(INDEX_ID) Then
Dim sql_AUTOindexresult = ClassDatabase.Execute_Scalar("SELECT SQL_RESULT FROM TBDD_INDEX_AUTOM WHERE GUID = " & INDEX_ID, True)
If IsNothing(sql_AUTOindexresult) Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> unexpected: sql_AUTOindexresult is nothing!!", False)
value = ""
Else
If IsDBNull(sql_AUTOindexresult) Then
value = ""
Else
sql_AUTOindexresult = sql_AUTOindexresult.ToString.ToUpper.Replace("@RECORD-ID", CURRENT_RECORD_ID)
Dim AUTOindexresult = ClassDatabase.Execute_Scalar(sql_AUTOindexresult, True)
If IsNothing(AUTOindexresult) Then
ClassLogger.Add(">> ATTENTION: unexpected: AUTOindexresult is nothing!!", False)
ClassLogger.Add(">> " & sql_AUTOindexresult, False)
value = ""
Else
If IsDBNull(AUTOindexresult) Then
value = ""
Else
value = AUTOindexresult
End If
End If
End If
End If
Else
ClassLogger.Add(">> INDEX_ID is not numeric: " & INDEX_ID.ToString & "- APattern: " & APattern, False)
value = ""
End If
Else
ClassLogger.Add(">> split.Length <> 2 - APattern: " & APattern, False)
value = ""
End If
ElseIf APattern.Contains("#") Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> element [" & APattern & "] filled with Record-Data...: ", False)
Dim split() As String = APattern.Split("#")
If split.Length = 2 Then
Dim CONTROL_ID = split(1)
If IsNumeric(CONTROL_ID) Then
Dim CONTROLVALUE = ClassControlValues.Get_Control_Value_for_ID(CONTROL_ID, CURRENT_RECORD_ID)
If IsNothing(CONTROLVALUE) Then
Dim checktype = "SELECT CONTROL_TYPE_ID,SQL_COMMAND_1,CONNECTION_ID_1 FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID
Dim DTtype As DataTable = ClassDatabase.Return_Datatable(checktype)
If DTtype.Rows.Count = 1 Then
Dim lblsql = DTtype.Rows(0).Item(1)
lblsql = lblsql.ToString.ToUpper.Replace("@RECORD_ID", CURRENT_RECORD_ID)
lblsql = lblsql.ToString.ToUpper.Replace("@RECORD-ID", CURRENT_RECORD_ID)
lblsql = lblsql.ToString.ToUpper.Replace("@ENTITY-ID", CURRENT_ENTITY_ID)
lblsql = lblsql.ToString.ToUpper.Replace("@ENTITY_ID", CURRENT_ENTITY_ID)
If LogErrorsOnly = False Then ClassLogger.Add(" >> variable sql will be used for convention", False)
Dim result = ClassDatabase.Execute_ScalarWithConnection(DTtype.Rows(0).Item(2), lblsql)
If Not IsNothing(result) Then
value = result.ToString
Else
ClassLogger.Add(">> variable sqlresult is nothing - " & lblsql, False)
value = ""
End If
Else
ClassLogger.Add(">> NameConvention should be filled with value of Control-ID '" & CONTROL_ID & "', but result was nothing.", False)
ClassLogger.Add(">> SQL-Command: " & CURRENT_LAST_SQL)
value = ""
End If
Else
If IsDBNull(CONTROLVALUE) Then
ClassLogger.Add(">> NameConvention should be filled with value of Control-ID '" & CONTROL_ID & "', but result was DBNULL.", False)
ClassLogger.Add(">> SQL-Command: " & CURRENT_LAST_SQL)
value = ""
Else
Dim sql1 = "SELECT * FROM TBPMO_WD_NAMECONVENTION_FORMAT WHERE ID = (SELECT TOP 1 GUID FROM TBPMO_WD_FORMVIEW_DOKTYPES WHERE DOCTYPE_ID = " & DocTypeID & " AND FORMVIEW_ID = " & CURRENT_FORMVIEW_ID & ")"
Dim DT_FORMAT As DataTable = ClassDatabase.Return_Datatable(sql1, True)
If Not IsNothing(DT_FORMAT) Then
If DT_FORMAT.Rows.Count > 0 Then
Dim result
Try
result = (From FormatRow In DT_FORMAT.AsEnumerable
Select FormatRow Where FormatRow.Item("PATTERN") = APattern).Single()
Catch ex As Exception
End Try
If Not IsNothing(result) Then
Dim _rule = result.Item("FORMAT_RULE")
If Not IsNothing(_rule) Then
If IsDate(CONTROLVALUE) Then
Dim _date As Date = CDate(CONTROLVALUE)
'Dim _date = CDate(Format(CONTROLVALUE, "dd-MM-yyyy"))
_rule = _rule.ToString.Replace("Y", "y")
_rule = _rule.ToString.Replace("D", "d")
_rule = _rule.ToString.Replace("m", "M")
Dim convertedvalue = _date.ToString(_rule, CultureInfo.InvariantCulture)
CONTROLVALUE = convertedvalue
End If
End If
End If
End If
End If
value = CONTROLVALUE
End If
End If
End If
End If
End If
End Select
If value <> String.Empty Then
oNewWM_Filename = oNewWM_Filename.Replace(element.Value, value)
_NewFileString = oNewWM_Filename
If LogErrorsOnly = False Then ClassLogger.Add(" >> Actual NEWFILESTRING: " & _NewFileString, False)
' sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString
AnzahlIndexe += 1
' sql_history_Index_Values = sql_history_Index_Values & ", '" & value & "'"
Else
err = True
End If
Case "V"
Dim datetemp As String
Dim _Month As String = My.Computer.Clock.LocalTime.Month
If _Month.Length = 1 Then
_Month = "0" & _Month
End If
Dim _day As String = My.Computer.Clock.LocalTime.Day
If _day.Length = 1 Then
_day = "0" & _day
End If
Dim type = element.Value '.ToUpper.Replace("[v%", "")
type = type.Replace("[%v", "")
type = type.Replace("]", "")
Select Case type.ToUpper
Case "YY_MM_DD"
datetemp = My.Computer.Clock.LocalTime.Year.ToString.Substring(2) & "_" & _Month & "_" & _day
Case "YYMMDD"
datetemp = My.Computer.Clock.LocalTime.Year.ToString.Substring(2) & _Month & _day
Case "YY_MM"
datetemp = My.Computer.Clock.LocalTime.Year.ToString.Substring(2) & "_" & _Month
Case "YYYY_MM_DD"
datetemp = My.Computer.Clock.LocalTime.Year & "_" & _Month & "_" & _day
Case "YYYYMM"
datetemp = My.Computer.Clock.LocalTime.Year & _Month
Case "YYYYMMDD"
datetemp = My.Computer.Clock.LocalTime.Year & _Month & _day
Case "DD_MM_YY"
datetemp = _day & "_" & _Month & "_" & My.Computer.Clock.LocalTime.Year.ToString.Substring(2)
Case "DD_MM_YYYY"
datetemp = _day & "_" & _Month & "_" & My.Computer.Clock.LocalTime.Year.ToString
Case "DD.MM.YY"
datetemp = _day & "." & _Month & "." & My.Computer.Clock.LocalTime.Year.ToString.Substring(2)
Case "DDMMYY"
datetemp = _day & _Month & My.Computer.Clock.LocalTime.Year.ToString.Substring(2)
Case "DDMMYYYY"
datetemp = _day & _Month & My.Computer.Clock.LocalTime.Year
Case "DD.MM.YYYY"
datetemp = _day & "." & _Month & "." & My.Computer.Clock.LocalTime.Year
Case "YYYY_MM"
datetemp = My.Computer.Clock.LocalTime.Year & "_" & _Month
Case "MM_YYYY"
datetemp = _Month & "_" & My.Computer.Clock.LocalTime.Year
Case "OFilename".ToUpper
oNewWM_Filename = oNewWM_Filename.Replace(element.Value, Path.GetFileNameWithoutExtension(CURRENT_FILENAME))
Case "Username".ToUpper
oNewWM_Filename = oNewWM_Filename.Replace(element.Value, USER_USERNAME)
End Select
If datetemp <> "" Then
oNewWM_Filename = oNewWM_Filename.Replace(element.Value, datetemp)
End If
_NewFileString = oNewWM_Filename
Case Else
Dim msg As String
msg = "In der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper
If USER_LANGUAGE <> "de-DE" Then
msg = "In nameconvention an element was defined which could not be replaced." & vbNewLine & "elementname: " & element.Value.ToUpper
End If
ClassLogger.Add(msg)
MsgBox(msg, MsgBoxStyle.Exclamation, "Error in Name Convention:")
End Select
Next
Try
'ungültige Zeichen entfernen
oNewWM_Filename = ClassHelper.CleanFilename(oNewWM_Filename, "")
If oNewWM_Filename.Contains("/") Then
ClassLogger.Add(String.Format(">> DATEINAME contains /-sign. / will be replaced with _"))
oNewWM_Filename = oNewWM_Filename.Replace("/", "_")
End If
Catch ex As Exception
ClassLogger.Add(" - Error in Versioning file - Error: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Versioning file:")
err = True
End Try
CURRENT_NEWFILENAME = oNewWM_Filename & oExtension
'False oder True zurückgeben
If err = False Then
Return True
Else
Dim msg As String
msg = "Fehler während der Dateinamengenerierung. Evtl. wurden Mussfelder nicht ausgefüllt?"
If USER_LANGUAGE <> "de-DE" Then
msg = "Error in create variable filename. Reasons: unfilled control values. Check logfile."
End If
MsgBox(msg, MsgBoxStyle.Exclamation)
Return False
End If
Catch ex As Exception
ClassLogger.Add(" - Unexpected Error in FileName-Creating: " & vbNewLine & ex.Message)
MsgBox(" - Unexpected Error in FileName-Creating: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Private Shared Function CREATE_FOLDER_INDEX(FolderConvention As String, DocTypeID As Integer)
Try
CURRENT_VARIABLE_FOLDER_OVERRIDE = False
'Dim RootFolder As String = Path.GetDirectoryName(CURRENT_NEWFILENAME)
CURRENT_VARIABLE_FOLDER = ""
'######
Dim p_reg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
' einen Regulären Ausdruck laden
Dim regularExpression As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(p_reg)
' die Vorkommen im Folder-String auslesen
Dim elemente As System.Text.RegularExpressions.MatchCollection = regularExpression.Matches(FolderConvention)
'####
' alle Vorkommen innerhalb des Ordnerstrings durchlaufen
For Each element As System.Text.RegularExpressions.Match In elemente
If LogErrorsOnly = False Then ClassLogger.Add(" >> Elementname in FolderString: '" & element.ToString & "'", False)
Dim EL_SUBSTRING = element.Value.Substring(2, 1).ToUpper
If LogErrorsOnly = False Then ClassLogger.Add(" >> EL_SUBSTRING is: '" & EL_SUBSTRING & "'", False)
Select Case EL_SUBSTRING
'Manueller Indexwert
Case "A"
Dim split() As String = element.Value.Substring(3, element.Value.Length - 4).Split("#")
If split.Length = 2 Then
'Die GUID des AutoIndex auslesen
Dim INDEX_ID = split(1)
If IsNumeric(INDEX_ID) Then
Dim sql = "SELECT SQL_RESULT FROM TBDD_INDEX_AUTOM WHERE GUID = " & INDEX_ID
Dim sql_command = ClassDatabase.Execute_Scalar(sql)
If IsNothing(sql_command) Then
ClassLogger.Add(" >> unexpected: SQL_RESULT is nothing!!", False)
ClassLogger.Add(" >> " & sql, False)
Else
If IsDBNull(sql_command) Then
ClassLogger.Add(" >> unexpected: sql_command is DBNULL!!", False)
Else
sql_command = sql_command.ToString.ToUpper.Replace("@RECORD-ID", CURRENT_RECORD_ID)
sql_command = sql_command.ToString.ToUpper.Replace("@RECORD_ID", CURRENT_RECORD_ID)
sql_command = sql_command.ToString.ToUpper.Replace("@ENTITY-ID", CURRENT_ENTITY_ID)
sql_command = sql_command.ToString.ToUpper.Replace("@ENTITY_ID", CURRENT_ENTITY_ID)
Dim AUTOindexresult = ClassDatabase.Execute_Scalar(sql_command, True)
If IsNothing(AUTOindexresult) Then
ClassLogger.Add(">> unexpected: AUTOindexresult is nothing!!", False)
ClassLogger.Add(">> " & sql_command, False)
Else
If IsDBNull(AUTOindexresult) Then
ClassLogger.Add(">> unexpected: AUTOindexresult is DBNULL - " & sql_command, False)
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> AUTOindexresult is: '" & AUTOindexresult & "'", False)
FolderConvention = FolderConvention.Replace(element.ToString, AUTOindexresult)
End If
End If
End If
End If
Else
ClassLogger.Add(">> INDEX_ID is not numeric: " & INDEX_ID.ToString & "- APattern: " & element.Value, False)
End If
Else
ClassLogger.Add(">> split.Length <> 2 - APattern: " & element.Value, False)
End If
Case "M"
If LogErrorsOnly = False Then ClassLogger.Add(" >> Working on manual value......'", False)
Dim split() As String = element.Value.Substring(3, element.Value.Length - 4).Split("#")
If split.Length = 2 Then
'Die GUID des AutoIndex auslesen
Dim INDEX_ID = split(1)
If IsNumeric(INDEX_ID) Then
If element.Value.ToUpper.Contains("FOLDERSELECT") Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> FOLDERSELECT......'", False)
For Each row As DataRow In CURRENT_TBPMO_INDEX_MAN.Rows
If row.Item("GUID") = INDEX_ID Then
Dim manvalue = row.Item("MAN_VALUE")
If manvalue <> String.Empty Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> folder value is: '" & manvalue & "'", False)
CURRENT_VARIABLE_FOLDER_OVERRIDE = True
CURRENT_VARIABLE_FOLDER = manvalue
Return True
Else
ClassLogger.Add(">> Attention: manvalue (from Input indexing is empty!!", False)
End If
End If
Next
Else
For Each row As DataRow In CURRENT_TBPMO_INDEX_MAN.Rows
If row.Item("GUID") = INDEX_ID Then
Dim manvalue = row.Item("MAN_VALUE")
If manvalue <> String.Empty Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> manvalue is: '" & manvalue & "'", False)
FolderConvention = FolderConvention.Replace(element.ToString, manvalue)
FolderConvention = FolderConvention.Replace("\\", "")
Else
ClassLogger.Add(">> Attention: manvalue (from Input indexing is empty!!", False)
End If
End If
Next
End If
Else
ClassLogger.Add(">> INDEX_ID is not numeric: " & INDEX_ID.ToString & "- APattern: " & element.Value, False)
End If
Else
ClassLogger.Add(">> split.Length <> 2 - APattern: " & element.Value, False)
End If
Case "V"
Dim elmt = element.Value.Substring(3, element.Value.Length - 4).Split("#")
Dim split() As String = elmt
If split.Length = 2 Then
Dim VARTYPE = split(0)
If LogErrorsOnly = False Then ClassLogger.Add(" >> VARTYPE is: '" & VARTYPE & "'", False)
Select Case VARTYPE
Case "ARDoctype"
FolderConvention = FolderConvention.Replace(element.ToString, CURRENT_DOKARTSTRING)
End Select
Else
Dim folder_temp As String
Dim _Month As String = My.Computer.Clock.LocalTime.Month
If _Month.Length = 1 Then
_Month = "0" & _Month
End If
Dim _day As String = My.Computer.Clock.LocalTime.Day
If _day.Length = 1 Then
_day = "0" & _day
End If
Dim type = element.Value.Substring(3, element.Value.Length - 4)
If type.StartsWith("_") Then
type = type.Replace("_", "")
End If
Select Case type
Case "YYYY/MM/DD"
folder_temp = My.Computer.Clock.LocalTime.Year & "\" & _Month & "\" & _day
Case "YYYY/MM"
folder_temp = My.Computer.Clock.LocalTime.Year & "\" & _Month
Case "YYYY"
folder_temp = My.Computer.Clock.LocalTime.Year
Case "YYYY-MM"
folder_temp = My.Computer.Clock.LocalTime.Year & "-" & _Month
End Select
FolderConvention = FolderConvention.Replace(element.ToString, folder_temp)
End If
Case "C"
'Füllen mit Controlwert
Dim elmt = element.Value.Substring(3, element.Value.Length - 4).Split("#")
Dim APattern = element.Value.Substring(3, element.Value.Length - 4)
Dim split() As String = elmt
If split.Length = 2 Then
Dim CONTROL_ID = split(1)
If IsNumeric(CONTROL_ID) Then
Dim CONTROLVALUE = ClassControlValues.Get_Control_Value_for_ID(CONTROL_ID, CURRENT_RECORD_ID)
If IsNothing(CONTROLVALUE) Then
Dim checktype = "SELECT CONTROL_TYPE_ID,SQL_COMMAND_1,CONNECTION_ID_1 FROM TBPMO_CONTROL WHERE SQL_COMMAND_1 is not null and SQL_COMMAND_1 <> '' AND GUID = " & CONTROL_ID
Dim DTtype As DataTable = ClassDatabase.Return_Datatable(checktype)
If DTtype.Rows.Count = 1 Then
Dim lblsql = DTtype.Rows(0).Item(1)
lblsql = lblsql.ToString.ToUpper.Replace("@RECORD_ID", CURRENT_RECORD_ID)
lblsql = lblsql.ToString.ToUpper.Replace("@RECORD-ID", CURRENT_RECORD_ID)
lblsql = lblsql.ToString.ToUpper.Replace("@ENTITY-ID", CURRENT_ENTITY_ID)
lblsql = lblsql.ToString.ToUpper.Replace("@ENTITY_ID", CURRENT_ENTITY_ID)
If LogErrorsOnly = False Then ClassLogger.Add(" >> variable sql will be used for convention", False)
Dim result = ClassDatabase.Execute_ScalarWithConnection(DTtype.Rows(0).Item(2), lblsql)
If Not IsNothing(result) Then
FolderConvention = FolderConvention.Replace(element.ToString, result.ToString)
Else
ClassLogger.Add(">> variable sqlresult is nothing - " & lblsql, False)
End If
Else
ClassLogger.Add(">> Variable folder should be filled with value of Control-ID '" & CONTROL_ID & "', but result was nothing.", False)
ClassLogger.Add(">> SQL-Command: " & checktype)
End If
Else
If IsDBNull(CONTROLVALUE) Then
ClassLogger.Add(">> Variable folder should be filled with value of Control-ID '" & CONTROL_ID & "', but result was DBNULL.", False)
ClassLogger.Add(">> SQL-Command: " & CURRENT_LAST_SQL)
Else
Dim sql1 = "SELECT * FROM TBPMO_WD_NAMECONVENTION_FORMAT WHERE ID = (SELECT TOP 1 GUID FROM TBPMO_WD_FORMVIEW_DOKTYPES WHERE DOCTYPE_ID = " & DocTypeID & " AND FORMVIEW_ID = " & CURRENT_FORMVIEW_ID & ")"
Dim DT_FORMAT As DataTable = ClassDatabase.Return_Datatable(sql1, True)
If Not IsNothing(DT_FORMAT) Then
If DT_FORMAT.Rows.Count > 0 Then
Dim result
result = (From FormatRow In DT_FORMAT.AsEnumerable
Select FormatRow Where FormatRow.Item("PATTERN") = APattern).Single()
If Not IsNothing(result) Then
Dim _rule = result.Item("FORMAT_RULE")
If Not IsNothing(_rule) Then
If IsDate(CONTROLVALUE) Then
Dim _date As Date = CDate(CONTROLVALUE)
'Dim _date = CDate(Format(CONTROLVALUE, "dd-MM-yyyy"))
_rule = _rule.ToString.Replace("Y", "y")
_rule = _rule.ToString.Replace("D", "d")
_rule = _rule.ToString.Replace("m", "M")
Dim convertedvalue = _date.ToString(_rule, CultureInfo.InvariantCulture)
CONTROLVALUE = convertedvalue
End If
End If
End If
End If
End If
FolderConvention = FolderConvention.Replace(element.ToString, CONTROLVALUE.ToString)
End If
End If
End If
End If
Case "V"
Case Else
ClassLogger.Add(" -Undefined pattern found in folderconvention" & vbNewLine & "Elementname: " & element.Value.ToUpper)
MsgBox("Achtung - in der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper, MsgBoxStyle.Exclamation, "Unexpected error in Name generieren:")
End Select
If LogErrorsOnly = False Then ClassLogger.Add($" >> FolderConvention so far is: '{FolderConvention}'", False)
Next
CURRENT_VARIABLE_FOLDER = FolderConvention
Return True
Catch ex As Exception
MsgBox("Unexpected Error in CreateFolderforIndex-Method:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
ClassLogger.Add(" >> Fehler in CrFolderForIndex: " & ex.Message, True)
Return False
End Try
End Function
Public Shared Function Version_Ueberprüfen(Dateiname As String)
Dim extension
Dim _NewFileString
Try
Dim version As Integer = 2
Dim Stammname As String = Path.GetDirectoryName(Dateiname) & "\" & Path.GetFileNameWithoutExtension(Dateiname)
extension = Path.GetExtension(Dateiname)
Dim _neuername As String = Stammname
'Dim MoveFilename As String = DATEINAME.Replace(element.Value, "")
'Überprüfen ob File existiert
If File.Exists(_neuername & extension) = False Then
_NewFileString = _neuername
Else
Do While File.Exists(_neuername & extension)
version = version + 1
_neuername = Stammname & "~" & version
_NewFileString = _neuername
Loop
End If
CURRENT_NEWFILENAME = _NewFileString & extension
Return True
Catch ex As Exception
ClassLogger.Add(" - Error in versioning file - error: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in versioning file:")
Return False
End Try
End Function
End Class

View File

@ -0,0 +1,45 @@
Public Class ClassInactivity
Private _timer As Timers.Timer
Private _interval As Integer
Public Sub New(intervalMinutes As Integer)
_interval = intervalMinutes * 1000 * 60
_timer = New Timers.Timer(_interval)
_timer.AutoReset = False
_timer.Enabled = True
AddHandler _timer.Elapsed, AddressOf OnTick
End Sub
Public Sub Start()
If _interval > 0 Then
_timer.Enabled = True
End If
End Sub
Public Sub Reset()
_timer.Enabled = False
_timer.Enabled = True
End Sub
Public Sub SetInterval(newInterval As Integer)
_timer.Interval = newInterval
_interval = newInterval
End Sub
Private Sub OnTick()
' Der User wird ausgeloggt
ClassUser.LogoutUser()
Dim result As DialogResult = MessageBox.Show("Sie wurden aufgrund von Inaktivität ausgeloggt. Möchten Sie sich wieder anmelden?", "Inaktivität", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = DialogResult.Yes Then
ClassInit.InitUserLogin()
MsgBox("Sie wurden wieder eingeloggt")
Else
MsgBox("Die Anwendung wird beendet")
Application.Exit()
End If
End Sub
End Class

View File

@ -0,0 +1,29 @@
Public Class ClassInactivityFilter
Implements IMessageFilter
Private _form As frmMain
Private _last_check As New DateTime()
Public Sub New(form As frmMain)
_form = form
End Sub
Public Function PreFilterMessage(ByRef m As Message) As Boolean Implements IMessageFilter.PreFilterMessage
' PrefilterMessage empfängt ALLE Events ab, die zur Laufzeit passieren
' Überprüft ob die abgefangenen Events zu Aktionen mit Maus oder Keyboard gehören
Dim mouse As Boolean = (m.Msg >= &H200 And m.Msg <= &H20D) Or (m.Msg >= &HA0 And m.Msg <= &HAD)
Dim kbd As Boolean = (m.Msg >= &H100 And m.Msg <= &H109)
' Errechnet die Zeit-Differenz zwischen Jetzt und dem letzten Zurücksetzen des Timers
Dim diffMs = (DateTime.Now.Ticks - _last_check.Ticks) / 10000
' Timer wird nur zurückgesetzt, wenn Maus/Keyboard Events passieren
' und wenn das letzte Zurücksetzen mind. 500ms in der Vergangenheit liegt
If (mouse Or kbd) And diffMs > 500 Then
_last_check = DateTime.Now
_form.TIMER_INACTIVITY.Reset()
End If
Return False
End Function
End Class

View File

@ -0,0 +1,315 @@
Imports System.ComponentModel
Imports System.IO
Imports DD_LIB_Standards
Public Class ClassInit
Public Sub New()
End Sub
Public Sub InitLogger()
ClassLogger.Init("", USER_USERNAME)
clsLogger.LOGFILE_PATH = ClassLogger.logDateiname
End Sub
Public Shared Function InitDatabase()
Try
Dim dbResult As Boolean
MySettings_Load()
If LoadFileExclusion() = False Then
MsgBox("The Exclude File Structure for files in Folderwatch could not be initialized!", MsgBoxStyle.Information)
End If
clsDatabase.GUI = True
If MyConnectionString <> String.Empty Then
dbResult = clsDatabase.Init(MyConnectionString)
Else
frmConfig_Basic.ShowDialog()
dbResult = clsDatabase.Init(MyConnectionString)
End If
If ClassProxy.MyPROXYConnectionString <> String.Empty Then
If clsDatabase.Init(ClassProxy.MyPROXYConnectionString, True) = False Then
ClassHelper.MSGBOX_Handler("ERROR", "", "Error while Initializing proxyserver - Check logfile")
Else
Dim csb As New SqlClient.SqlConnectionStringBuilder
csb.ConnectionString = ClassProxy.MyPROXYConnectionString
ClassHelper.InsertEssential_Log(USER_GUID, "USER-ID", String.Format("Proxy-Server {0} - Database {1} is used", csb.DataSource, csb.InitialCatalog))
End If
End If
ClassDatabase.Init()
If dbResult = False Then
If clsLogger.LOGG_MSG <> String.Empty Then
Throw New Exception("Error while Initializing database:" & vbNewLine & clsLogger.LOGG_MSG)
Else
Throw New Exception("Find more information in the logfile.")
End If
End If
Return True
Catch ex As Exception
MsgBox("Unexpected Error in Init Database:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Sub InitAddons()
Try
Dim CurrentDir As String = My.Application.Info.DirectoryPath
' Dim Sql As String = "SELECT PATH_ADDONS from TBPMO_KONFIGURATION WHERE GUID = 1"
Dim AddonPath As String = MY_ADDON_PATH ' ClassDatabase.Execute_Scalar(Sql)
Dim Dev_AddonPath As String = System.IO.Path.GetFullPath(System.IO.Path.Combine(CurrentDir, "..\..\..\..\app"))
If AddonPath Is Nothing OrElse AddonPath = "" Then
' Addon Pfad in der Datenbank ist leer
Dim path = System.IO.Path.Combine(CurrentDir, "Addons")
Dim AddonDir As New DirectoryInfo(path)
If AddonDir.Exists Then
AddonPath = path
Else
AddonPath = Dev_AddonPath
End If
Else
' Addon Pfad steht in der Datenbank
Dim path = AddonPath
Dim AddonDir As New DirectoryInfo(path)
If (AddonDir.Exists) Then
If AddonDir.Name = "Addons" Then
AddonPath = path
Else
AddonPath = Dev_AddonPath
End If
Else
AddonPath = Dev_AddonPath
End If
End If
MY_ADDON_PATH = AddonPath
SaveMySettingsValue("PATH_ADDON", MY_ADDON_PATH, "ConfigMain")
Catch ex As Exception
MsgBox("Unexpected Error in InitAddons:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Sub InitBasics2()
Try
Dim configResult As Boolean
configResult = Settings_LoadBasicConfig()
If configResult = False Then
Throw New Exception("Find more information in the logfile.")
End If
Dim sql = String.Format("SELECT * FROM TBPMO_KONFIGURATION WHERE GUID = 1")
Dim KONFIG_DT As DataTable = ClassDatabase.Return_Datatable(sql, False)
If KONFIG_DT.Rows.Count = 1 Then
Try
MY_WIKISTRING = KONFIG_DT.Rows(0).Item("WIKI_STRING")
Catch ex As Exception
MY_WIKISTRING = ""
End Try
WD_UNICODE = KONFIG_DT.Rows(0).Item("WD_UNICODE")
SQL_FULLTEXT = KONFIG_DT.Rows(0).Item("SQL_FULLTEXT")
End If
sql = "SELECT * FROM TBPMO_CONTROL"
CURRENT_TBPMO_CONTROL = ClassDatabase.Return_Datatable(sql, True)
sql = String.Format("SELECT * FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE VISIBLE = 1")
CURRENT_RESULTLIST_CONFIG = ClassDatabase.Return_Datatable(sql, True)
sql = String.Format("SELECT * FROM TBPMO_DOCSEARCH_VARIABLE_CONTROLS")
CURRENT_VARIABLE_CONTROLS = ClassDatabase.Return_Datatable(sql, True)
sql = String.Format("SELECT * FROM TBPMO_FORM_VIEW")
CURRENT_TBPMO_FORM_VIEW = ClassDatabase.Return_Datatable(sql, True)
sql = String.Format("select T.*, T1.HEADER_CAPTION,T1.TYPE_ID ,T1.ENTITY_ID,T1.LANGUAGE from TBPMO_DOCRESULT_DROPDOWN_ITEMS T, TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 WHERE T.CONFIG_ID = T1.GUID")
CURRENT_TBPMO_DOCRESULT_DROPDOWN_ITEMS = ClassDatabase.Return_Datatable(sql, True)
clsCURRENT.LOG_ERRORS_ONLY = LogErrorsOnly
sql = String.Format("select* from TBPMO_FILE_FORMATS_CHANGE")
Dim oDTFF_CHANGE As DataTable = ClassDatabase.Return_Datatable(sql, True)
For Each oRow As DataRow In oDTFF_CHANGE.Rows
FILE_FORMATS_CHANGE_DURING_EDIT.Add(oRow.Item("FILE_EXT"))
Next
Catch ex As Exception
MsgBox("Unexpected Error in InitBasics2:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Shared Sub Init_CONN_SWITCH()
Try
Dim sql = String.Format("SELECT T1.GUID, T.DESCRIPTION, T.SQL_CONNECTION, T.SQL_CONNECTION_PROXY, T.WM_ALIAS,T1.ACTIVE FROM " &
"TBPMO_CLIENT_CONNECTION_SWITCH T, TBPMO_CLIENT_CONN_SWITCH_USER T1 WHERE T.GUID = T1.CONN_SWITCH_ID " &
"And T.ACTIVE = 1 And T1.USER_ID = {0}", USER_GUID)
CURRENT_TBPMO_CONN_SWITCH = ClassDatabase.Return_Datatable(sql)
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Init_CONN_SWITCH: " & ex.Message)
End Try
End Sub
Public Shared Function InitUserLogin(Optional _User As String = "")
Try
If _User = "" Then
USER_USERNAME = Environment.UserName
Else
USER_USERNAME = _User
End If
Dim sql = String.Format("SELECT T.*, T1.IS_ADMIN FROM TBDD_USER T INNER JOIN TBDD_USER_MODULES T1 ON T.GUID = T1.USER_ID INNER JOIN TBDD_MODULES T2 ON T1.MODULE_ID = T2.GUID
WHERE (LOWER(USERNAME) = LOWER('{0}')) AND T2.SHORT_NAME = 'ADDI'", USER_USERNAME)
ClassLogger.Add(">> Login at: " & Now.ToString, False)
ClassLogger.Add(">> Username: " & USER_USERNAME, False)
Dim USER_DT As DataTable = ClassDatabase.Return_Datatable(sql, True)
If USER_DT.Rows.Count = 0 Then
ClassLogger.Add(" - User '" & USER_USERNAME & "' not listed in Useradminsitration!", False)
'MsgBox("Achtung: Sie sind nicht in der Userverwaltung hinterlegt." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
'Me.Close()
Dim msg = String.Format("You are not listed in the Useradministration." & vbNewLine & "Please contact the admin.")
MsgBox(msg, MsgBoxStyle.Exclamation)
ClassHelper.InsertEssential_Log(0, "USER-ID", String.Format("User '{0}' not listed in Userconfiguration", USER_USERNAME))
Return False
Else
Dim Right_RO As Boolean = False
USER_GUID = USER_DT.Rows(0).Item("GUID")
USERID_FK_INT_ECM = USER_DT.Rows(0).Item("USERID_FK_INT_ECM")
USER_WAN = USER_DT.Rows(0).Item("WAN_ENVIRONMENT") 'ClassDatabase.Execute_Scalar("SELECT WAN_ENVIRONMENT FROM TBDD_USER WHERE GUID = " & USER_GUID, False)
USER_LANGUAGE = USER_DT.Rows(0).Item("LANGUAGE")
clsCURRENT.USER_LANGUAGE = USER_LANGUAGE
USER_DATE_FORMAT = USER_DT.Rows(0).Item("DATE_FORMAT")
USER_GENERAL_VIEWER = USER_DT.Rows(0).Item("GENERAL_VIEWER")
Right_RO = True
If Right_RO = False Then
ClassLogger.Add("User '" & USER_USERNAME & "' not authorized for using Record-Organizer!")
'MsgBox("Achtung: Sie sind nicht für die Nutzung dieses Moduls freigeschaltet." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
Dim msg = String.Format("Sie sind nicht für die Nutzung dieses Moduls freigeschaltet." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!")
If USER_LANGUAGE <> "de-DE" Then
msg = String.Format("You are not authorized for using this module." & vbNewLine & "Please contact the admin.")
End If
MsgBox(msg, MsgBoxStyle.Exclamation)
Return False
'Me.Close()
Else
sql = String.Format("select * from TBPMO_RIGHT_USER WHERE USER_ID = " & USER_GUID)
CURRENT_TBPMO_RIGHT_USER = ClassDatabase.Return_Datatable(sql, True)
Init_CONN_SWITCH()
'USER_LANGUAGE = ClassDatabase.Execute_Scalar("SELECT LANGUAGE FROM TBDD_USER WHERE GUID = " & USER_GUID, False)
DT_CLIENT_USER = ClassDatabase.Return_Datatable("SELECT T.*, T1.LICENSE_PMO, T1.CLIENT_NAME FROM TBDD_CLIENT_USER T,TBDD_CLIENT T1 WHERE T.CLIENT_ID = T1.GUID AND T.USER_ID = " & USER_GUID, False)
If DT_CLIENT_USER.Rows.Count > 1 Then
frmClientLogin.ShowDialog()
ElseIf DT_CLIENT_USER.Rows.Count = 1 Then
CLIENT_SELECTED = DT_CLIENT_USER.Rows(0).Item("CLIENT_ID")
End If
If CLIENT_SELECTED = 99 Then
Dim msg = String.Format("Die Mandantenanmeldung war nicht möglich." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!")
If USER_LANGUAGE <> "de-DE" Then
msg = String.Format("The client-login was not possible." & vbNewLine & "Please contact the admin.")
End If
MsgBox(msg, MsgBoxStyle.Exclamation)
Return False
End If
'Am System anmelden
ClassLicence.Refresh_Licence(CLIENT_SELECTED)
'Am System anmelden
'sql = String.Format("UPDATE TBDD_USER SET LOGGED_IN = 1, LOGGED_WHERE = '{0}' WHERE GUID = {1}", Environment.MachineName, USER_GUID)
ClassDatabase.Execute_non_Query(sql)
sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND UPPER(MODULE)= UPPER('Record-Organizer')"
If ClassDatabase.Execute_non_Query(sql) = True Then
End If
Dim ConStringMain As String
If clsDatabase.DB_PROXY_INITIALIZED = True Then
ConStringMain = "PROXY: " & ClassProxy.MyPROXYConnectionString & " # MAIN: " & MyConnectionString
Else
ConStringMain = "Main: " & MyConnectionString
End If
sql = String.Format("INSERT INTO TBDD_USER_MODULE_LOG_IN (USER_ID,CLIENT_ID,MODULE,VERSION_CLIENT,MACHINE_NAME,CONNECTION_STRING) VALUES ({0},{1},'Record-Organizer','{2}','{3}','{4}')", USER_GUID, CLIENT_SELECTED, My.Application.Info.Version.ToString, Environment.MachineName, ConStringMain)
ClassDatabase.Execute_non_Query(sql)
USER_IS_ADMIN = USER_DT.Rows(0).Item("IS_ADMIN") 'vorher RECORD_ADMIN
If USER_IS_ADMIN = True Then
If ESC_Hidden = True Then
frmLoginUserSelect.ShowDialog()
ESC_Hidden = False
If USER_USERNAME <> "" Then
InitUserLogin(USER_USERNAME)
End If
End If
Else
End If
Try
If clsWindream.Create_Session = False Then
ClassLogger.Add("Could not create the login for windream - No session created!")
ClassHelper.MSGBOX_Handler("ERROR", "windream-login Error:", "Could not create the login/session!", "ADDI will start anyway but be aware that searching and importing won't be possible!")
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in clswindream.Init: " & ex.Message)
MsgBox("Unexpected Error in Creating windream-Session: " & ex.Message & vbNewLine & "Please inform Your sysadmin!", MsgBoxStyle.Critical)
End Try
sql = String.Format("SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER('Record-Organizer') AND CLIENT_ID = {0}", CLIENT_SELECTED)
Dim anzahl = ClassDatabase.Execute_Scalar(sql, False)
USERS_LOGGED_IN = CInt(anzahl)
If LogErrorsOnly = False Then ClassLogger.Add(" >> User# logged in: " & anzahl.ToString, False)
'####
If LICENSE_COUNT < USERS_LOGGED_IN And LICENSE_EXPIRED = False Then
Dim msg = String.Format("Die Anzahl der aktuell angemeldeten User (" & USERS_LOGGED_IN.ToString & ") überschreitet die Anzahl der aktuellen Lizenzen!" & vbNewLine & "Anzahl der Lizenzen: " & LICENSE_COUNT.ToString & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!")
If USER_LANGUAGE <> "de-DE" Then
msg = String.Format("The number of logged Users (" & USERS_LOGGED_IN.ToString & ") exceeds the number of licenses." & vbNewLine &
"Number of licenses: " & LICENSE_COUNT.ToString & vbNewLine & "Please contact Your admin!")
End If
MsgBox(msg, MsgBoxStyle.Exclamation)
ClassLogger.Add(" >> The number of logged Users (" & USERS_LOGGED_IN.ToString & ") exceeds the number of licenses (" & LICENSE_COUNT & ") ", False)
If USER_IS_ADMIN = False Then
'Anmeldung wieder herausnehmen
sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Record-Organizer'"
ClassDatabase.Execute_non_Query(sql)
ClassLogger.Add(" - logged out the user", False)
Return False
End If
Else
Try
'Die FolderWatch starten
Dim sql1 = "SELECT FOLDER_PATH FROM TBPMO_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & USER_GUID
Dim folderwatch_SCAN = ClassDatabase.Execute_Scalar(sql1, False)
If Not folderwatch_SCAN Is Nothing Then
CURRENT_SCAN_FOLDERWATCH = folderwatch_SCAN
If FWSCAN_started = True Then
ClassFolderWatcher.StartStop_FolderWatchSCAN()
End If
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Init_Folderwatch: " & ex.Message, True)
Return False
End Try
End If
If LICENSE_PROXY = True And clsDatabase.DB_PROXY_INITIALIZED Then
SQL_FULLTEXT = "SELECT DISTINCT [dwDocID] FROM [dbo].FullText WHERE CONTAINS([Text], '""*@FULLTEXT*""') "
End If
Return True
'LabelLoggedIn.Caption = "Anzahl Angemeldete User: " & anzahl.ToString
End If
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in InitUserLogin: " & ex.Message)
MsgBox("Unexpected Error in InitUserLogin: " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
End Class

View File

@ -0,0 +1,69 @@
Imports CommandLine
Imports CommandLine.Text
Imports System.Text.RegularExpressions
Public Class ClassJumpRecord
Private Shared ProtocolRegex As New Regex("pmo://(?<constructorId>\d+)-(?<recordId>\d+)")
'Aufruf: PMO.exe --data pmo://10-60
Class Options
<[Option]("d", "data")>
Public Property data As String
End Class
Public Shared Sub ParseArgs()
Try
Dim args() As String = Environment.GetCommandLineArgs()
Dim options As New Options()
Dim type_ID As Integer
Dim recordId As Integer
If args.Length <> 3 Then
Exit Sub
End If
If (Parser.Default.ParseArguments(args, options)) Then
Dim data As String = options.data
Dim match = ProtocolRegex.Match(data)
If Not match.Success Then
Exit Sub
End If
type_ID = match.Groups("constructorId").Value
recordId = match.Groups("recordId").Value
JumpToRecord(type_ID, recordId)
Else
Exit Sub
End If
Catch ex As Exception
MsgBox("Error in ParseArgs:" & vbNewLine & ex.Message)
Exit Sub
End Try
End Sub
Public Shared Sub JumpToRecord(STATE_ID As Integer, recordId As Integer)
Try
'Dim constructorIdExists As Boolean = ClassDatabase.Execute_Scalar(String.Format("SELECT CONSTRUCT_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0}", constructorId))
Dim recordIdExists As Boolean = ClassDatabase.Execute_Scalar(String.Format("SELECT GUID FROM TBPMO_RECORD WHERE GUID = {0}", recordId), True)
'If constructorIdExists = False Or recordIdExists = False Then
' MsgBox("Das angegebene Formular konnte nicht geöffnet werden. Grund: Die ConstructorID oder die RecordID wurde nicht gefunden." & vbNewLine & "constructorId: " & constructorId & ", recordId: " & recordId, MsgBoxStyle.Exclamation, "URL Handler")
' Exit Sub
'End If
If Not recordIdExists Then
MsgBox(String.Format("RecordId {0} could not be found. Record will not be loaded.", recordId))
Exit Sub
End If
JUMP_STATE = STATE_ID
JUMP_RECORD_ID = recordId
'OpenFormConstructor(constructorId, recordId)
OpenRecordView(recordId)
Catch ex As Exception
MsgBox("Error in JumpToRecord:" & vbNewLine & ex.Message)
Exit Sub
End Try
End Sub
End Class

View File

@ -0,0 +1,223 @@
Imports System.Xml
Imports System.IO
Public Class ClassWindowLocation
Public Shared Sub LoadFormLocationSize(ByRef form As Form, FormID As Integer, ScreenID As Integer, Optional Prefix As String = "")
Try
Dim LayoutPath As String
If FormID = 99 Then
LayoutPath = Path.Combine(Application.UserAppDataPath(), Prefix & "-PositionSize.xml")
Else
LayoutPath = Path.Combine(Application.UserAppDataPath(), Prefix & "SCREEN" & ScreenID & "-FORM" & FormID & "-PositionSize.xml")
End If
Dim layout As ClassLayout = New ClassLayout(LayoutPath)
Dim settings As System.Collections.Generic.List(Of ClassSetting)
settings = layout.Load()
If settings.Count = 0 Then
settings.Add(New ClassSetting("PositionX", form.Location.X))
settings.Add(New ClassSetting("PositionY", form.Location.Y))
settings.Add(New ClassSetting("Width", form.Size.Width))
settings.Add(New ClassSetting("Height", form.Size.Height))
layout.Save(settings)
End If
For Each s As ClassSetting In settings
Dim x, y, w, h As Integer
Select Case s._name
Case "PositionX"
x = Integer.Parse(s._value)
Case "PositionY"
y = Integer.Parse(s._value)
Case "Width"
w = Integer.Parse(s._value)
Case "Height"
h = Integer.Parse(s._value)
End Select
If x = 5000 Then
Select Case Prefix
Case "frmTool_FormDesigner"
ClassLogger.Add(">> frmTool_FormDesigner - Maximize Eigenschaft Form wird nicht gesetzt.", False)
Case "frmTool_ControlProperties"
ClassLogger.Add(">> frmTool_ControlProperties - Maximize Eigenschaft Form wird nicht gesetzt.", False)
Case Else
form.WindowState = FormWindowState.Maximized
End Select
Else
If x > 0 Then
Select Case Prefix
Case "frmTool_FormDesigner"
form.Location = New Point(x, y)
Case "frmTool_ControlProperties"
form.Location = New Point(x, y)
Case Else
form.Location = New Point(x, y)
form.Size = New Size(w, h)
End Select
End If
End If
Next
Catch notFoundEx As System.IO.FileNotFoundException
ClassLogger.Add("Window Position & Size added for Screen " & ScreenID & ", Form " & FormID)
Catch ex As Exception
MsgBox("Error while loading Window Position!" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Shared Sub SaveFormLocationSize(ByRef form As Form, FormID As Integer, ScreenID As Integer, Optional Prefix As String = "")
Try
Dim _path As String
If FormID = 99 Then
_path = Path.Combine(Application.UserAppDataPath(), Prefix & "-PositionSize.xml")
Else
_path = Path.Combine(Application.UserAppDataPath(), Prefix & "SCREEN" & ScreenID & "-FORM" & FormID & "-PositionSize.xml")
End If
Dim layout As ClassLayout = New ClassLayout(_path)
Dim settings As System.Collections.Generic.List(Of ClassSetting) = New System.Collections.Generic.List(Of ClassSetting)
Dim width As Integer
Dim height As Integer
Dim x As Integer
Dim y As Integer
If form.WindowState = FormWindowState.Maximized Then
width = 5000
height = 5000
x = 5000
y = 5000
Else
width = form.Size.Width
height = form.Size.Height
x = form.Location.X
y = form.Location.Y
End If
settings.Add(New ClassSetting("PositionX", x))
settings.Add(New ClassSetting("PositionY", y))
settings.Add(New ClassSetting("Width", width))
settings.Add(New ClassSetting("Height", height))
layout.Save(settings)
Catch notFoundEx As System.IO.FileNotFoundException
ClassLogger.Add("Window Position & Size added for Screen " & ScreenID & ", Form " & FormID)
Catch ex As Exception
MsgBox("Error while saving Window Position!" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
End Class
'-------------------------------------------------------------------
Public Class ClassSetting
Public _name As String
Public _value As String
Public Sub New(name As String, value As String)
_name = name
_value = value
End Sub
End Class
Public Class ClassLayout
Private _filename As String
Private _reader As XmlReader
Private _settings As XmlWriterSettings
Public Sub New(filename As String)
_filename = filename
_settings = New XmlWriterSettings()
_settings.Encoding = System.Text.Encoding.UTF8
_settings.Indent = True
End Sub
Public Sub Save(settings As System.Collections.Generic.List(Of ClassSetting))
Dim w = XmlTextWriter.Create(_filename, _settings)
w.WriteStartDocument()
w.WriteStartElement("Settings")
For Each setting As ClassSetting In settings
w.WriteStartElement("Setting")
w.WriteAttributeString("name", setting._name)
w.WriteAttributeString("value", setting._value.ToString())
w.WriteEndElement()
Next
w.WriteEndElement()
w.WriteEndDocument()
w.Dispose()
w.Close()
End Sub
Public Function Load() As System.Collections.Generic.List(Of ClassSetting)
Dim Result As List(Of ClassSetting) = New List(Of ClassSetting)()
If Not File.Exists(_filename) Then
Return Result
End If
_reader = XmlReader.Create(_filename)
While _reader.Read()
If _reader.IsStartElement() Then
If _reader.Name = "Setting" Then
Dim name As String = _reader("name")
' Dim value As Integer = Integer.Parse(_reader("value"))
Dim setting As ClassSetting = New ClassSetting(name, _reader("value")) 'value)
Result.Add(setting)
End If
End If
End While
_reader.Dispose()
_reader.Close()
Return Result
End Function
Public Sub PutValue(Name As String, Value As String)
Dim doc As XDocument = XDocument.Load(_filename)
Dim settings As XElement = doc.Element("Settings")
Dim el As XElement = settings.Descendants("Setting").Where(Function(s)
Return s.Attribute("name") = Name
End Function).SingleOrDefault()
If IsNothing(el) Then
settings.Add(New XElement("Setting",
New XAttribute("name", Name),
New XAttribute("value", Value)))
Else
el.SetAttributeValue("value", Value)
End If
doc.Save(_filename)
End Sub
Public Function GetValue(Name As String) As String
Dim doc As XDocument = XDocument.Load(_filename)
Dim settings As XElement = doc.Element("Settings")
Dim el As XElement = settings.Descendants("Setting").Where(Function(s)
Return s.Attribute("name") = Name
End Function).SingleOrDefault()
If IsNothing(el) Then
Return Nothing
Else
Return el.Attribute("value").Value
End If
End Function
End Class

View File

@ -0,0 +1,115 @@
Imports System.Globalization
Imports DLLLicenseManager
Public Class ClassLicence
Private Shared _lizenzManager As ClassLicenseManager
Public Shared Sub Refresh_Licence(CLIENT_ID As Integer)
Try
Dim todayDate As Date = New Date(Now.Year, Now.Month, Now.Day)
If LogErrorsOnly = False Then ClassLogger.Add(" >> todayDate: " & todayDate.ToString, False)
_lizenzManager = New ClassLicenseManager("#DigitalData35452!#", "")
Dim sql As String = String.Format("SELECT LICENSE_PMO FROM TBDD_CLIENT WHERE GUID = {0}", CLIENT_ID)
Dim lic As String = ClassDatabase.Execute_Scalar(sql, False)
If lic = "" Then
LICENSE_COUNT = 0
LICENSE_DATE = "1900-01-01"
LICENSE_DOSSIER_COUNT = 0
Exit Sub
End If
Dim licString = _lizenzManager.DecodeLicenseKey(lic)
Dim split() = licString.ToString.Split("#")
If lic <> "" Then
LICENSE_COUNT = split(0)
Else
LICENSE_COUNT = 0
End If
Dim LicDATEsplit() = split(1).ToString.Split("-")
Dim LICENSE_FILE_DATE As Date
Try
LICENSE_FILE_DATE = New Date(LicDATEsplit(0), LicDATEsplit(1), LicDATEsplit(2))
If LogErrorsOnly = False Then ClassLogger.Add(" >> LICENSE_FILE_DATE: " & LICENSE_FILE_DATE.ToString, False)
Try
Try
LICENSE_DATE = CDate(LICENSE_FILE_DATE)
Catch ex As Exception
ClassLogger.Add(">> Could not read LICENSE_DATE2: " & ex.Message, False)
End Try
Catch ex As Exception
ClassLogger.Add(">> Could not read LICENSE_DATE1: " & ex.Message, False)
End Try
Catch ex As Exception
ClassLogger.Add(">> Could not read LICENSE_DATE3: " & ex.Message, False)
LICENSE_FILE_DATE = New Date(Now.Year, Now.Month, Now.Day)
End Try
If LICENSE_FILE_DATE < CDate(todayDate) Then
MsgBox("Your license expired!" & vbNewLine & "Last valid date: " & split(1) & vbNewLine & "Please contact Digital Data.", MsgBoxStyle.Exclamation)
LICENSE_EXPIRED = True
LICENSE_COUNT = 0
End If
sql = String.Format("SELECT NAME, VALID_DATE, '' AS State FROM TBDD_LICENSE_ADD_ON WHERE CLIENT_ID = {0} AND MODULE = 'Record-Organizer'", CLIENT_ID)
DT_LICENSE_ADDONS = ClassDatabase.Return_Datatable(sql)
For Each license_Row As DataRow In DT_LICENSE_ADDONS.Rows
Dim expired As Boolean = False
If LogErrorsOnly = False Then ClassLogger.Add(" >> AddOnName: " & license_Row.Item("NAME"), False)
Dim result = ClassHelper.DecryptString(license_Row.Item("VALID_DATE"), license_Row.Item("NAME"))
If result <> "" Then
Dim datesplit() = result.ToString.Split("-")
Dim licdate As Date = New Date(datesplit(0), datesplit(1), datesplit(2))
Dim license_date = CDate(result)
If CDate(licdate) < CDate(todayDate) Then
expired = True
license_Row.Item("State") = "Expired"
Else
expired = False
license_Row.Item("State") = "Valid"
End If
Else
expired = True
End If
If license_Row.Item("NAME") = "Proxy-Server" Then
If expired = False Then
LICENSE_PROXY = True
End If
ElseIf license_Row.Item("NAME") = "Site-AddOn" Then
If expired = False Then
LICENSE_SITE = True
End If
ElseIf license_Row.Item("NAME") = "SAP-Connect" Then
If expired = False Then
LICENSE_SAP_Connect = True
End If
End If
Next
Try
LICENSE_DOSSIER_COUNT = split(2)
Catch ex As Exception
ClassLogger.Add(">> Could not read License for LICENSE_DOSSIER_COUNT: " & ex.Message, False)
LICENSE_DOSSIER_COUNT = 0
End Try
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in licensemanager:")
End Try
End Sub
Public Shared Function license_is_Valid()
If LICENSE_EXPIRED Then
MsgBox("Your license has expired!" & vbNewLine & "Last valid date: " & LICENSE_DATE & vbNewLine & "Please contact Digital Data!", MsgBoxStyle.Exclamation)
Return False
Else : Return True
End If
End Function
End Class

View File

@ -0,0 +1,200 @@
Imports System.IO
Imports DD_LIB_Standards
Public Class ClassLogger
Public Shared DateiSpeicherort As String = Nothing
Public Shared DateiPrefix As String = ""
Public Shared Datei As IO.File = Nothing
Public Shared logDateiname As String = ""
Private Shared StreamWriter As IO.StreamWriter = Nothing
Private Shared HasInformedAboutError As Boolean = False
' eine Art Konstruktor
Public Shared Sub Init(ByVal speicherort As String, Optional ByVal prefix As String = "", Optional ByVal appendFile As Boolean = True)
' initialisiert den Speicherort
ClassLogger.SetSpeicherort()
'wenn ein Prfix gesetzt wurde
If Not prefix = "" Then
'initialisiert das Prefix
ClassLogger.SetPrefix(prefix)
End If
Dim str As String = ClassLogger.DateiSpeicherort & "\" & ClassLogger.DateiPrefix & System.DateTime.Now.ToString("yyyy_MM_dd") & ".txt"
Dim anz As Integer = 1
Do While File.Exists(str)
Dim info As New FileInfo(str)
Dim length As Long = info.Length
If length > 5000000 Then
str = IO.Path.GetDirectoryName(str)
str = str & "\" & ClassLogger.DateiPrefix & System.DateTime.Now.ToString("yyyy_MM_dd") & "(" & anz.ToString & ").txt"
anz = anz + 1
Else
Exit Do
End If
Loop
ClassLogger.logDateiname = str
If Not appendFile Then
' der Versuch die Datei zu löschen
My.Computer.FileSystem.WriteAllText(ClassLogger.logDateiname, String.Empty, False)
End If
' testen ob sich die Datei öffnen und beschreiben lässt
'ClassNILogger.CheckIsLogWritable()
End Sub
' legt den Speicherort fest
Public Shared Sub SetSpeicherort()
Dim f As New IO.DirectoryInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Digital Data\RecordOrganizer\Log"))
If IO.Directory.Exists(f.ToString) = False Then
IO.Directory.CreateDirectory(f.ToString)
End If
ClassLogger.DateiSpeicherort = f.ToString
End Sub
' legt das Prefix für den Dateinamen fest
Public Shared Sub SetPrefix(ByVal prefix As String)
ClassLogger.DateiPrefix = prefix
End Sub
Public Shared Sub Add(ByVal information As String, Optional ByVal ACHTUNG As Boolean = True, Optional ByVal Essential As Boolean = True)
If ClassLogger.OpenFile Then
Try
If ACHTUNG Then
ClassLogger.StreamWriter.WriteLine(String.Format("{0}: #ATTENTION# : {1}", Now.ToString, information))
If clsDatabase.DB_DEFAULT_INITIALIZED = True And USER_GUID > 0 And Essential = True Then
ClassHelper.InsertEssential_Log(USER_GUID, "USER-ID", information)
Else
ClassLogger.StreamWriter.WriteLine(String.Format("{0},{1},{2}", clsDatabase.DB_DEFAULT_INITIALIZED.ToString, USER_GUID.ToString, Essential.ToString))
End If
Else
ClassLogger.StreamWriter.WriteLine(String.Format("{0}: {1}", Now.ToString, information))
End If
ClassLogger.CloseFile()
Catch e As Exception
ClassLogger.ShowErrorMessage()
End Try
Else
ClassLogger.ShowErrorMessage()
End If
End Sub
'Public Shared Sub Add(ByVal ex As Exception)
' If ClassLogger.OpenFile Then
' Try
' ClassLogger.StreamWriter.WriteLine("##### Exception (" & System.DateTime.Now & ")")
' ClassLogger.StreamWriter.WriteLine("##### Error: " & ex.Message & " Source [" & ex.Source & "]")
' ClassLogger.CloseFile()
' Catch e As Exception
' ClassLogger.ShowErrorMessage()
' End Try
' Else
' ClassLogger.ShowErrorMessage()
' End If
'End Sub
' öffnet eine Datei zum Schreiben
Private Shared Function OpenFile()
Try
' wenn ein Speicherort festgelegt wurde
If Not ClassLogger.DateiSpeicherort = Nothing Then
' den Dateienamen definieren
Dim dateiname As String = ClassLogger.logDateiname
' Datei anlegen wenn noch nicht vorhanden
My.Computer.FileSystem.WriteAllText(dateiname, String.Empty, True)
' die Datei zum Schreiben öffnen
ClassLogger.StreamWriter = New IO.StreamWriter(dateiname, True, System.Text.Encoding.UTF8)
End If
' wenn die Datei erfolgreich geöffnet wurde
If ClassLogger.StreamWriter IsNot Nothing Then
Return True
Else
Return False
End If
Catch ex As Exception
Return False
End Try
End Function
' öffnet eine Datei zum Schreiben
Private Shared Function OpenFile(ByVal DateiSpeicherort As String, ByVal DateiPrefix As String)
Try
' wenn ein Speicherort festgelegt wurde
If Not DateiSpeicherort = Nothing And ClassLogger.CheckIsLogWritable() Then
' den Dateienamen definieren
Dim dateiname As String = ClassLogger.logDateiname
' Datei anlegen wenn noch nicht vorhanden
My.Computer.FileSystem.WriteAllText(dateiname, String.Empty, True)
' die Datei zum Schreiben öffnen
ClassLogger.StreamWriter = New IO.StreamWriter(dateiname, True, System.Text.Encoding.UTF8)
End If
' wenn die Datei erfolgreich geöffnet wurde
If ClassLogger.StreamWriter IsNot Nothing Then
Return True
Else
Return False
End If
Catch ex As Exception
Return False
End Try
End Function
' schliesst die geöffnete Datei
Private Shared Sub CloseFile()
' wenn eine Datei geöffnet ist
If ClassLogger.StreamWriter IsNot Nothing Then
' die Datei schliessen
ClassLogger.StreamWriter.Close()
ClassLogger.StreamWriter = Nothing
End If
End Sub
Public Shared Function CheckIsLogWritable()
If ClassLogger.OpenFile Then
Try
ClassLogger.CloseFile()
Catch e As Exception
ClassLogger.ShowErrorMessage()
Return False
End Try
Else
ClassLogger.ShowErrorMessage()
Return False
End If
Return True
End Function
Public Shared Function CheckIsLogWritable(ByVal vDateiSpeicherort As String, ByVal vDateiPrefix As String)
If ClassLogger.OpenFile(vDateiSpeicherort, vDateiPrefix) Then
Try
ClassLogger.CloseFile()
Catch e As Exception
ClassLogger.ShowErrorMessage()
Return False
End Try
Else
ClassLogger.ShowErrorMessage()
Return False
End If
Return True
End Function
Private Shared Sub ShowErrorMessage()
If Not ClassLogger.HasInformedAboutError Then
MsgBox("Please make sure You can access the logpath and are able to write to the file. This may be due to security privileges or storage place in the drive." & _
vbNewLine & vbNewLine & "A logfile won't be written from now on." & vbNewLine & vbNewLine & "You won't be informed about further logdetails from now on.", _
MsgBoxStyle.Information, "Error opening Logfile")
ClassLogger.HasInformedAboutError = True
End If
End Sub
End Class

View File

@ -0,0 +1,20 @@
Public Class ClassMoreMetadata
Public Shared Function Return_CURRENT_TBPMO_INDEX_MAN_VALUE(CONTROL_GUID As Integer, COL_NAME As String)
Try
' Presuming the DataTable has a column named ENTITY_ID and TYPE_NODE.
Dim expression As String
expression = "GUID = " & CONTROL_GUID
Dim foundRowsLevel0() As DataRow
' Use the Select method to find all rows matching the filter.
foundRowsLevel0 = CURRENT_TBPMO_INDEX_MAN.Select(expression)
Dim i As Integer
' For each row create a Node
For i = 0 To foundRowsLevel0.GetUpperBound(0)
Return foundRowsLevel0(i)(COL_NAME)
Next
Catch ex As Exception
ClassLogger.Add(" - Unvorhergesehener Fehler in Return_CURRENT_TBPMO_INDEX_MAN_VALUE - Fehler: " & vbNewLine & ex.Message)
Return Nothing
End Try
End Function
End Class

View File

@ -0,0 +1,405 @@
Imports System.Data.SqlClient
Imports DevExpress.Utils
Public Class ClassNodeNavigation
Public Shared NODE_CONFIGURABLE_ID As Integer
Public Shared MyTreeView As TreeView
Public Shared Datatable_Nodes As DataTable
Public Shared TREEVIEW_IMAGELIST As ImageList
Public Shared IMAGE_COLLECTION As ImageCollection
Public Shared Function CreateNodeProcedure(RECORD_ID As Integer, NODE_CONFIG_ID As Integer, NODE_CAPTION As String, NODE_ID1 As String, NODE_PARENT_ID As String, ADDED_WHO As String)
Try
Dim connection As New SqlConnection
connection.ConnectionString = MyConnectionString
Using cmd As New SqlCommand("PRPMO_CREATE_NODE", connection)
cmd.CommandType = CommandType.StoredProcedure
'@pNODE_PARENT_ID INT, @pADDED_WHO
cmd.Parameters.AddWithValue("@pRECORD_ID", RECORD_ID)
cmd.Parameters.AddWithValue("@pNODE_CONFIG_ID", NODE_CONFIG_ID)
cmd.Parameters.AddWithValue("@pNODE_CAPTION", NODE_CAPTION)
cmd.Parameters.AddWithValue("@pNODE_ID1", NODE_ID1)
cmd.Parameters.AddWithValue("@pNODE_PARENT_ID", NODE_PARENT_ID)
cmd.Parameters.AddWithValue("@pADDED_WHO", ADDED_WHO)
cmd.Parameters.Add("@pRESULT", SqlDbType.Int)
cmd.Parameters("@pRESULT").Direction = ParameterDirection.Output
connection.Open()
cmd.ExecuteNonQuery()
connection.Close()
Dim GUID As Integer = cmd.Parameters("@pRESULT").Value
Return GUID
End Using
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in CreateNodeProcedure: ")
ClassLogger.Add("Error in CreateNodeProcedure: " & ex.Message, True)
Return 0
End Try
End Function
Public Shared Function CREATE_IMAGE_COLL(DT_IMAGELIST As DataTable)
IMAGE_COLLECTION = New ImageCollection
For Each row As DataRow In DT_IMAGELIST.Rows
Try
Dim bimage = row.Item("NODE_IMAGE")
If Not IsDBNull(bimage) Then
Dim Node_image = ByteArrayToBitmap(bimage)
IMAGE_COLLECTION.AddImage(Node_image, row.Item("GUID")) 'row.Item("GUID").ToString & "#" & row.Item("ENTITY_ID")
End If
Catch ex As Exception
End Try
Next
End Function
Public Shared Function Return_Node(PARENT_ID As Integer, ParentNode As TreeNode)
Dim expression As String
expression = "PARENT_GUID = " & PARENT_ID 'Einschränkung auf Type und Parent_Guid
Dim foundRows() As DataRow
foundRows = Datatable_Nodes.Select(expression)
Dim q As Integer
For q = 0 To foundRows.GetUpperBound(0)
Dim ID9 = foundRows(q)("GUID")
Dim LevelEntity9 = foundRows(q)("ENTITY_ID")
Dim controlID9 = foundRows(q)("CONTROL_ID")
Dim nodetext9 = foundRows(q)("NODE_CAPTION")
Dim RECORD_ID = foundRows(q)("RECORD_ID")
Dim NODE_CONFIG_ID = foundRows(q)("NODE_CONFIG_ID")
' Node erstellen..
Dim NEW_NODE As TreeNode
NEW_NODE = New TreeNode(nodetext9)
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity9, NEW_NODE)
NEW_NODE.Tag = ClassNodeNavigation.CreateNODE_TAG(LevelEntity9, ID9, RECORD_ID, NODE_CONFIG_ID)
Dim index = 0
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
If img.Replace("LEVEL#ENTITY", "") = "6" & LevelEntity9.ToString Then
Exit For
End If
index += 1
Next
NEW_NODE.ImageIndex = index
NEW_NODE.SelectedImageIndex = index
' ..und einfügen
ParentNode.Nodes.Add(NEW_NODE)
Next '
End Function
Public Shared Sub Check_NODE_CONFIG_ID(ENTITY_ID As Integer, myTreeNode As TreeNode)
Try
If myTreeNode Is Nothing Then
Exit Sub
End If
Dim NODE_ID
Dim NODE_CONFIG_ID
Dim staticListItems = myTreeNode.Tag.Split("#")
If staticListItems(0).Contains("NODE-TYPE") Then
' NODE_ID = staticListItems(0).ToString.Replace("NODE-TYPE-", "")
NODE_ID = Return_NODEID_forTag(myTreeNode.Tag)
NODE_CONFIG_ID = Return_NODE_CONFIG_ID_forTag(myTreeNode.Tag)
End If
If NODE_CONFIGURABLE_NODES_DT.Rows.Count > 0 And IsNumeric(NODE_ID) Then
'Prüfen ob es für dieses Level einen konfigurierbaren Knoten gibt
Dim oTable As DataTable = NODE_CONFIGURABLE_NODES_DT
' Get rows with PARENT_ID = NODE_ID
Dim result() As DataRow = oTable.Select("PARENT_NODE = " & NODE_CONFIG_ID)
Dim count As Integer
Dim ID
' Loop.
For Each row As DataRow In result
count += 1
ID = row.Item("GUID")
CURRENT_NODE_IMAGE = row.Item("NODE_IMAGE")
If count = 2 Then Exit For
Console.WriteLine(row(0))
Next
'Dim result = (From form In NODE_CONFIGURABLE_NODES_DT.AsEnumerable()
' Select form
' Where form.Item("PARENT_NODE") = NODE_ID).Single()
If Not IsNothing(ID) Then
ClassNodeNavigation.NODE_CONFIGURABLE_ID = ID
CURRENT_NODE_CONFIGURABLE_ID = ID
Else
' If LogErrorsOnly = False Then ClassLogger.Add("CURRENT_NODE_CONFIGURABLE_ID would be nothing...", False)
CURRENT_NODE_CONFIGURABLE_ID = 0
End If
Else
If LogErrorsOnly = False Then ClassLogger.Add("NO NODE_CONFIGURABLE_NODES_DT", False)
CURRENT_NODE_CONFIGURABLE_ID = 0
End If
Catch ex As Exception
If LogErrorsOnly = False Then ClassLogger.Add("CURRENT_NODE_CONFIGURABLE_ID would be nothing(1)...", False)
ClassNodeNavigation.NODE_CONFIGURABLE_ID = 0
CURRENT_NODE_CONFIGURABLE_ID = 0
End Try
End Sub
Public Shared Function CreateNODE_TAG(Entity As Integer, IDNode As String, Record As Object, NODE_CONFIG_ID As Integer)
Dim vType, TagString As String
Try
If NODE_CONFIGURABLE_ID = NODE_CONFIG_ID Then
vType = "CONFIG_NODE-" & NODE_CONFIG_ID.ToString
Else
vType = "NODE-TYPE-" & NODE_CONFIG_ID.ToString
End If
If Not IsDBNull(Record) Then
TagString = vType & "#" & Entity & "#NODE_ID-" & IDNode & "#RECORD-ID" & Record.ToString
Else
TagString = vType & "#" & Entity & "#NODE_ID-" & IDNode
End If
Return TagString
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in CreateNODE_TAG (NodeNavigation): " & ex.Message, True)
MsgBox("Error in CreateNODE_TAG (NodeNavigation):" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
TagString = "ERROR NODETAG_CREATION"
Return TagString
End Try
End Function
Public Shared Function CreateTreeViewNodes(DT_TREEVIEW_NODES As DataTable, TREEVIEW_IMAGELIST As ImageList)
Try
Dim sw As New SW("CreateTreeViewNodes")
Dim mytrv As New TreeView
Dim ENTITY_ID As Integer
Dim expression As String
expression = "PARENT_GUID = 0"
Dim MAIN_NODES() As DataRow
'Use the Select method to find all rows matching the filter.
MAIN_NODES = DT_TREEVIEW_NODES.Select(expression, "SEQUENCE, NODE_CAPTION")
' For each row create a Node
For i = 0 To MAIN_NODES.GetUpperBound(0)
If ENTITY_ID <> MAIN_NODES(i)("ENTITY_ID") Then
ENTITY_ID = MAIN_NODES(i)("ENTITY_ID")
ClassNodeNavigation.Check_NODE_CONFIG_ID(MAIN_NODES(i)("ENTITY_ID"), Nothing)
End If
Dim NODE_Tag = CreateNODE_TAG(MAIN_NODES(i)("ENTITY_ID"), MAIN_NODES(i)("GUID"), MAIN_NODES(i)("RECORD_ID"), MAIN_NODES(i)("NODE_CONFIG_ID"))
Dim MAIN_NODE = New TreeNode(MAIN_NODES(i)("NODE_CAPTION")) '"NODE_CAPTION"
MAIN_NODE.Tag = NODE_Tag
Dim index As Integer = 0
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
If img = MAIN_NODES(i)("NODE_CONFIG_ID") Then ' & "#" & MAIN_NODES(i)("ENTITY_ID")
Exit For
End If
index += 1
Next
MAIN_NODE.ImageIndex = index
MAIN_NODE.SelectedImageIndex = index
'New Font(fontfamily, fontsize, CType(fontstyle, FontStyle))
Dim fontfamily, backcolor As String
Dim fontstyle, fontcolor, fontsize As Integer
fontfamily = MAIN_NODES(i)("FONT_FAMILY").ToString
fontsize = CInt(MAIN_NODES(i)("FONT_SIZE"))
fontstyle = MAIN_NODES(i)("FONT_STYLE")
fontcolor = MAIN_NODES(i)("FONT_COLOR")
backcolor = MAIN_NODES(i)("BACK_COLOR")
MAIN_NODE.NodeFont = New Font(fontfamily, fontsize, CType(fontstyle, FontStyle))
MAIN_NODE.ForeColor = IntToColor(fontcolor)
Try
If backcolor <> String.Empty Then
MAIN_NODE.BackColor = Color.FromName(backcolor)
End If
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in Formatting NodeColor (CreateTreViewNodes): " & ex.Message, True)
End Try
MAIN_NODE = CheckSubNodes(DT_TREEVIEW_NODES, MAIN_NODES(i)("GUID"), TREEVIEW_IMAGELIST, MAIN_NODE, MAIN_NODES(i)("EXPAND_NODE"))
'Add the node
mytrv.Nodes.Add(MAIN_NODE)
Next
sw.Done()
Return mytrv
Catch ex As System.Exception
ClassLogger.Add(">> Unexpected Error in CreateTreeViewNodes (NodeNavigation-CreateTreViewNodes): " & ex.Message, True)
MsgBox("Error in CreateTreeViewNodes (NodeNavigation):" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Private Shared Function CheckSubNodes(DT_TREEVIEW_NODES As DataTable, PARENT_GUID As Integer, TREEVIEW_IMAGELIST As ImageList, MY_NODE As TreeNode, EXPAND As Boolean)
Dim ENTITY_ID As Integer
Dim expression As String
expression = "PARENT_GUID = " & PARENT_GUID.ToString
Dim SUB_NODE_ROW() As DataRow
' Use the Select method to find all rows matching the filter.
SUB_NODE_ROW = DT_TREEVIEW_NODES.Select(expression, "SEQUENCE, NODE_CAPTION")
' For each row create a Node
For i = 0 To SUB_NODE_ROW.GetUpperBound(0)
If ENTITY_ID <> SUB_NODE_ROW(i)("ENTITY_ID") Then
ENTITY_ID = SUB_NODE_ROW(i)("ENTITY_ID")
ClassNodeNavigation.Check_NODE_CONFIG_ID(SUB_NODE_ROW(i)("ENTITY_ID"), MY_NODE)
End If
Dim NODE_Tag = CreateNODE_TAG(SUB_NODE_ROW(i)("ENTITY_ID"), SUB_NODE_ROW(i)("GUID"), SUB_NODE_ROW(i)("RECORD_ID"), SUB_NODE_ROW(i)("NODE_CONFIG_ID"))
If SUB_NODE_ROW(i)("NODE_CAPTION").ToString.Contains("Neuer") Then
Console.WriteLine(SUB_NODE_ROW(i)("NODE_CAPTION"))
End If
Dim SUB_NODE = New TreeNode(SUB_NODE_ROW(i)("NODE_CAPTION"))
SUB_NODE.Tag = NODE_Tag
Dim index As Integer = 0
For Each imgkey As String In TREEVIEW_IMAGELIST.Images.Keys
If SUB_NODE_ROW(i)("NODE_CONFIG_ID") = "34" Then
Console.WriteLine(SUB_NODE_ROW(i)("NODE_CONFIG_ID"))
End If
Dim NODE_CONFIG_ID = SUB_NODE_ROW(i)("NODE_CONFIG_ID")
If imgkey = SUB_NODE_ROW(i)("NODE_CONFIG_ID") Then '& "#" & SUB_NODE_ROW(i)("ENTITY_ID")
'found the key for this node
Exit For
End If
index += 1
Next
SUB_NODE.ImageIndex = index
SUB_NODE.SelectedImageIndex = index
Dim fontfamily, backcolor As String
Dim fontstyle, fontcolor, fontsize As Integer
fontfamily = SUB_NODE_ROW(i)("FONT_FAMILY").ToString
fontsize = CInt(SUB_NODE_ROW(i)("FONT_SIZE"))
fontstyle = SUB_NODE_ROW(i)("FONT_STYLE")
fontcolor = SUB_NODE_ROW(i)("FONT_COLOR")
backcolor = SUB_NODE_ROW(i)("BACK_COLOR")
SUB_NODE.NodeFont = New Font(fontfamily, fontsize, CType(fontstyle, FontStyle))
SUB_NODE.ForeColor = IntToColor(fontcolor)
Try
If backcolor <> String.Empty Then
SUB_NODE.BackColor = Color.FromName(backcolor)
Dim icolor = SUB_NODE.BackColor
End If
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in Formatting NodeColor (Subnodes): " & ex.Message, True)
End Try
CheckSubNodes(DT_TREEVIEW_NODES, SUB_NODE_ROW(i)("GUID"), TREEVIEW_IMAGELIST, SUB_NODE, SUB_NODE_ROW(i)("EXPAND_NODE"))
'Add the node
MY_NODE.Nodes.Add(SUB_NODE)
'If EXPAND = True Then
' MY_NODE.ExpandAll()
'End If
Next
Return MY_NODE
End Function
Private Shared Function FindNode(tncoll As TreeNodeCollection, PARENT_GUID As Integer) As TreeNode
Try
Dim tnFound As TreeNode
For Each tnCurr As TreeNode In tncoll
If tnCurr.Tag.ToString.Contains("#NODE_ID-" & PARENT_GUID) Then
Return tnCurr
End If
tnFound = FindNode(tnCurr.Nodes, PARENT_GUID)
If tnFound IsNot Nothing Then
Return tnFound
End If
Next
Return Nothing
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in FindNode (NodeNavigation): " & ex.Message, True)
MsgBox("Error in FindNode (NodeNavigation):" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Public Shared Function Return_ENTITY_FOR_TAG(NodeString As String)
If IsNumeric(NodeString) Then
Return NodeString
Else
Try
Dim staticListItems = NodeString.Split("#")
Return staticListItems(1)
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Return_ENTITY_FOR_TAG ('" & NodeString & "'): " & ex.Message, True)
Return 0
End Try
End If
End Function
Public Shared Function Return_RECORD_forTag(NodeString As String)
Dim sw As New SW("Return_RECORD_forTag")
If IsNumeric(NodeString) Then
Return NodeString
Else
Dim staticListItems = NodeString.Split("#")
If staticListItems(3).Contains("RECORD-ID") Then
Try
Dim _RECORD = staticListItems(3).ToString.Replace("RECORD-ID", "")
If IsNumeric(_RECORD) Then
sw.Done()
Return _RECORD
Else
sw.Done()
Return 0
End If
Catch ex As Exception
sw.Done()
ClassLogger.Add("Unexpected Error in Return_RECORD_forTag ('" & NodeString & "'): " & ex.Message, True)
Return 0
End Try
Else
sw.Done()
Return 0
End If
End If
End Function
Public Shared Function Return_NODEID_forTag(NodeString As String)
'If NODE_CONFIGURABLE_ID = NODE_CONFIG_ID Then
' vType = "CONFIG_NODE-" & NODE_CONFIG_ID.ToString
'Else
' vType = "NODE-TYPE-" & NODE_CONFIG_ID.ToString
'End If
'If Not IsDBNull(Record) Then
' TagString = vType & "#" & Entity & "#" & "NODE_ID-" & IDNode & "#RECORD-ID" & Record.ToString
'Else
' TagString = vType & "#" & Entity & "#" & "NODE_ID-" & IDNode
'End If
If IsNumeric(NodeString) Then
Return NodeString
Else
Dim staticListItems = NodeString.Split("#")
If staticListItems(2).Contains("NODE_ID") Then
Return staticListItems(2).ToString.Replace("NODE_ID-", "")
Else
Return 0
End If
End If
End Function
Public Shared Function Return_NODE_CONFIG_ID_forTag(NodeString As String)
'If NODE_CONFIGURABLE_ID = NODE_CONFIG_ID Then
' vType = "CONFIG_NODE-" & NODE_CONFIG_ID.ToString
'Else
' vType = "NODE-TYPE-" & NODE_CONFIG_ID.ToString
'End If
'If Not IsDBNull(Record) Then
' TagString = vType & "#" & Entity & "#" & "NODE_ID-" & IDNode & "#RECORD-ID" & Record.ToString
'Else
' TagString = vType & "#" & Entity & "#" & "NODE_ID-" & IDNode
'End If
'NODE-TYPE-17#5#NODE_ID-2
If IsNumeric(NodeString) Then
Return NodeString
Else
Dim staticListItems = NodeString.Split("#")
If staticListItems(0).Contains("NODE-TYPE") Then
Return staticListItems(0).ToString.Replace("NODE-TYPE-", "")
Else
Return 0
End If
End If
End Function
End Class

View File

@ -0,0 +1,117 @@
Imports Microsoft.Office.Interop.Word
Public Class ClassOfficeTemplate
Public Shared Function Open_Word_Template(Template_ID As Integer, Record_ID As Integer)
Try
Dim sql_Template As String = "SELECT * FROM VWPMO_TEMPLATE_ENTITY WHERE TEMPLATE_ID = " & Template_ID
Dim DT_TEMPLATE As System.Data.DataTable = ClassDatabase.Return_Datatable(sql_Template)
Dim sql_patterns As String = String.Format("select * from TBPMO_TEMPLATE_PATTERN where TEMPLATE_ENT_ID = (SELECT GUID FROM TBPMO_TEMPLATE_ENTITY WHERE ENTITY_ID = {0} AND TEMPLATE_ID = {1})", CURRENT_ENTITY_ID, Template_ID)
Dim DT_PATTERNS As System.Data.DataTable = ClassDatabase.Return_Datatable(sql_patterns)
If IsNothing(DT_PATTERNS) Then
MsgBox("Keine Patterns für diese Vorlage definiert. Bitte prüfen Sie die Konfiguration!", MsgBoxStyle.Critical)
Return False
End If
Dim Original_Vorlage As String = DT_TEMPLATE.Rows(0).Item("TEMPLATE_PATH")
Dim DOCTYPE_ID As Integer = ClassDatabase.Execute_Scalar("SELECT DOCTYPE_ID FROM TBPMO_TEMPLATE WHERE GUID = " & Template_ID, True)
If System.IO.File.Exists(Original_Vorlage) = False Then
MsgBox("Achtung: die Vorlage " & vbNewLine & Original_Vorlage & vbNewLine & "existiert nicht!", MsgBoxStyle.Critical)
Return False
End If
Dim tempdoc = ClassHelper.Get_TempFilename & ".docx"
System.IO.File.Copy(Original_Vorlage, tempdoc)
Dim word As New Microsoft.Office.Interop.Word.Application
Dim doc As Microsoft.Office.Interop.Word.Document
doc = word.Documents.Open(tempdoc)
doc.Activate()
Dim _BuiltInProperties As Object = doc.BuiltInDocumentProperties
If Not _BuiltInProperties Is Nothing Then
'_BuiltInProperties("Title").Value = txtTitle.Text.Trim()
'_BuiltInProperties("Subject").Value = txtSubject.Text.Trim()
' _BuiltInProperties("Author").Value = txtAuthor.Text.Trim()
'_BuiltInProperties("Manager").Value = txtManager.Text.Trim()
'_BuiltInProperties("Company").Value = txtCompany.Text.Trim()
_BuiltInProperties("Category").Value = DT_TEMPLATE.Rows(0).Item("TEMPLATE_NAME")
'_BuiltInProperties("Keywords").Value = txtKeyWords.Text.Trim()
_BuiltInProperties("Comments").Value = "RECORD_ID:" & CURRENT_RECORD_ID.ToString
End If
' word.Visible = (True) 'Word sichtbar
For Each cc In doc.ContentControls
If LogErrorsOnly = False Then ClassLogger.Add(" >> Office-Pattern: " & cc.Tag, False)
For Each patternrow As System.Data.DataRow In DT_PATTERNS.Rows
If patternrow.Item("NAME_PATTERN").ToString.ToUpper = cc.Tag.ToString.ToUpper Then
If Not IsDBNull(patternrow.Item("FIXED_VALUE")) Then
'Fixed Value ist gefüllt
Dim fvalue As String = patternrow.Item("FIXED_VALUE").ToString.ToUpper
If fvalue <> "" Then
' If fvalue.Contains("@") Then
'If fvalue.Contains("CONTROLID") Then
Dim Control_ID = fvalue '.Replace("@CONTROLID:", "")
Try
If CInt(Control_ID) Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Get Value for Control-ID: " & Control_ID.ToString, False)
Dim value_akt = ClassDatabase.Execute_Scalar("SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = " & Control_ID & " AND RECORD_ID = " & Record_ID)
If Not IsNothing(value_akt) Then
cc.Range.Text = value_akt.ToString
Else
ClassLogger.Add("Für Control-ID '" & Control_ID & "' konnte kein Wert gelesen werden!", True)
End If
End If
Catch ex As Exception
ClassLogger.Add("Unerwarteter Fehler beim Auslesen eines Control-Wertes in Pattern-For: " & ex.Message, True)
End Try
'End If
'Else
' If LogErrorsOnly = False Then ClassLogger.Add(" >> Pattern wird mit festem Wert '" & patternrow.Item("FIXED_VALUE") & "' gefüllt!", False)
' cc.Range.Text = patternrow.Item("FIXED_VALUE").ToString
'End If
End If
Else 'Kein Fixed Value, also wohl eher sql-result
If Not IsDBNull(patternrow.Item("CONNECTION_ID")) Then
If Not IsDBNull(patternrow.Item("SQL_COMMAND")) Then
End If
End If
End If
End If
Next
Next cc
' doc.ContentControls().Item("Name").Range.Text = "Schreiber"
'Textmarken füllen
' doc.().Item("Name").Range.Text = "Schreiber"
'doc.Bookmarks().Item("Vorname").Range.Text = "Marlon"
'doc.Bookmarks().Item("Produktion").Range.Text = "Testproduktion"
doc.SaveAs(tempdoc)
TEMP_FILES.Add(tempdoc)
'doc.Close()
'speichern / drucken
'doc.SaveAs("c:\Proforma.doc")
'doc.PrintOut()
doc.Close()
doc = Nothing
word.Quit()
If ClassImport_Windream.Import_File(tempdoc, DOCTYPE_ID) = True Then
System.IO.File.Delete(tempdoc)
Process.Start(CURRENT_FILEIN_WD)
Return True
Else
MsgBox("Die Vorlage konnte nicht nach windream importiert werden. Die Datei wird dennoch geöffnet!", MsgBoxStyle.Exclamation)
Process.Start(tempdoc)
Return False
End If
Catch ex As Exception
ClassLogger.Add("Error in Open_Word_Template: " & ex.Message, True)
MsgBox("Unexpected Error in Open_Word_Template:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Private Func
End Class

View File

@ -0,0 +1,140 @@
Imports DevExpress.XtraEditors.Controls
Imports DevExpress.XtraEditors.Repository
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.Grid
Public Class ClassPosGrid
Private Shared Sub FormatDateColumn(grid As GridView, column As GridColumn, dateEdit As RepositoryItemDateEdit)
column.ColumnEdit = dateEdit
End Sub
Private Shared Sub FormatBooleanColumn(grid As GridView, column As GridColumn, checkboxEdit As RepositoryItemCheckEdit)
column.ColumnEdit = checkboxEdit
End Sub
Private Shared Sub FormatComboColumn(grid As GridView, column As GridColumn, comboEdit As RepositoryItemComboBox, sqlCommand As String, staticList As String)
Dim comboItems As ComboBoxItemCollection = comboEdit.Items
If staticList <> "" Then
Dim staticListItems() As String = staticList.Split(";")
comboItems.BeginUpdate()
Try
For Each item In staticListItems
comboItems.Add(item)
Next
Finally
comboItems.EndUpdate()
End Try
ElseIf sqlCommand <> "" Then
Dim DT As DataTable
Try
DT = ClassDatabase.Return_Datatable(sqlCommand)
Catch ex As Exception
ClassLogger.Add("Error in FormatComboColumn: " & ex.Message)
Exit Sub
End Try
comboItems.BeginUpdate()
Try
For Each row As DataRow In DT.Rows
Dim value As String = row.Item(0)
comboItems.Add(value)
Next
Finally
comboItems.EndUpdate()
End Try
End If
column.ColumnEdit = comboEdit
End Sub
Private Shared Sub FormatTextColumn(grid As GridView, column As GridColumn, controlId As Integer)
Dim format As String = ClassDatabase.Execute_Scalar("SELECT FORMAT_TYPE FROM TBPMO_CONTROL WHERE GUID = " & controlId)
If IsNothing(format) Then
Exit Sub
End If
If (format = "Currency") Then
column.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom
column.DisplayFormat.FormatString = "c"
ElseIf (format = "Decimal") Then
column.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric
End If
End Sub
Shared Sub FormatColumns(grid As GridView, formId As Integer)
' Dim SQL As String = String.Format("SELECT CONTROL_ID, CONTROL_COL_NAME, CTRLTYPE_ID, CONTROL_SQLCOMMAND_1 AS CONTROL_SQL, CONTROL_STATIC_LIST, CONTROL_SHOW_COLUMN FROM VWPMO_CONTROL_SCREEN WHERE CTRLTYPE_ID IN (3,4,10,11) AND FORM_ID = {0}", formId)
Dim Expression As String = String.Format("CTRLTYPE_ID IN (3,4,10,11) AND FORM_ID = {0}", formId)
Dim DT As DataTable = ClassHelper.FILTER_DATATABLE(DT_VWPMO_CONTROL_SCREEN, Expression, "") 'ClassDatabase.Return_Datatable(SQL)
Dim dateEdit As New RepositoryItemDateEdit()
Dim comboEdit As New RepositoryItemComboBox()
Dim checkboxEdit = New RepositoryItemCheckEdit()
' Spalteneditoren dem Grid hinzufügen
grid.GridControl.RepositoryItems.AddRange({dateEdit, comboEdit, checkboxEdit})
For Each row As DataRow In DT.Rows
Dim typeId = row.Item("CTRLTYPE_ID")
Dim controlId = row.Item("CONTROL_ID")
Dim columnName = row.Item("CONTROL_COL_NAME")
Dim sqlCommand = row.Item("CONTROL_SQL")
Dim staticList = row.Item("CONTROL_STATIC_LIST")
Dim showColumn = row.Item("CONTROL_SHOW_COLUMN")
Dim column As GridColumn = grid.Columns.Item(columnName)
' Überprüfen, ob der Spaltenname exisitiert
If IsNothing(column) Then
Resume Next
End If
' Spalten ausblenden, die nicht angezeigt werden sollen
If (showColumn = False) Then
column.Visible = False
Resume Next
End If
' Editoren zuweisen
Select Case typeId
Case 2 'Textbox
FormatTextColumn(grid, column, controlId)
Case 3 'Combobox
FormatComboColumn(grid, column, comboEdit, sqlCommand, staticList)
Case 4 'Datum
FormatDateColumn(grid, column, dateEdit)
Case 10, 11 'Checkbox & Radiobutton
FormatBooleanColumn(grid, column, checkboxEdit)
End Select
Next
' Spalten Statisch Verstecken
HideColumnIfExists(grid.Columns.Item("Record-ID"))
HideColumnIfExists(grid.Columns.Item("Form-ID"))
HideColumnIfExists(grid.Columns.Item("ROW_COLOR"))
HideColumnIfExists(grid.Columns.Item("files?"))
HideColumnIfExists(grid.Columns.Item("file count"))
' Spalten Statisch ReadOnly Machen
MakeReadOnlyIfExists(grid.Columns.Item("AddedWho"))
MakeReadOnlyIfExists(grid.Columns.Item("AddedWhen"))
MakeReadOnlyIfExists(grid.Columns.Item("ChangedWho"))
MakeReadOnlyIfExists(grid.Columns.Item("ChangedWhen"))
End Sub
Private Shared Sub HideColumnIfExists(column As GridColumn)
If Not IsNothing(column) Then
column.Visible = False
End If
End Sub
Shared Sub MakeReadOnlyIfExists(column As GridColumn)
If Not IsNothing(column) Then
column.OptionsColumn.AllowEdit = False
End If
End Sub
End Class

View File

@ -0,0 +1,216 @@
Imports DD_LIB_Standards
Public Class ClassProxy
Public Shared MyPROXYConnectionString As String = ""
Public Shared MyLinkedServer As String
Public Shared Function Refresh_Object_Data()
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sel = "DECLARE @return_value int" & vbNewLine &
"EXEC @return_value = [dbo].[PRPROXY_SYNC_OBJECTS]" & vbNewLine &
"SELECT 'Return Value' = @return_value"
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
If Not IsNothing(Result) Then
If Result.Rows(0).Item(0) = 0 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function PRPROXY_SYNC_DOC_OBJECTS()
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sel = "DECLARE @return_value int" & vbNewLine &
"EXEC @return_value = [dbo].[PRPROXY_SYNC_DOC_OBJECTS]" & vbNewLine &
"SELECT 'Return Value' = @return_value"
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
If Not IsNothing(Result) Then
If Result.Rows(0).Item(0) = 0 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function PRPROXY_RECORD_DEL(RECID As Integer, ENTITY_ID As Integer)
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sel = String.Format("DECLARE @return_value int" & vbNewLine &
"EXEC @return_value = [dbo].[PRPROXY_RECORD_DEL] {0},{1} " & vbNewLine &
"SELECT 'Return Value' = @return_value", RECID, ENTITY_ID)
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
If Not IsNothing(Result) Then
If Result.Rows(0).Item(0) = 0 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function PRPROXY_RECORD_UPD_INS(ENT_ID As Integer, RECID As Integer)
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sel = String.Format("DECLARE @return_value int" & vbNewLine &
"EXEC @return_value = [dbo].[PRPROXY_RECORD_UPD_INS] {0},{1} " & vbNewLine &
"SELECT 'Return Value' = @return_value", ENT_ID, RECID)
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
If Not IsNothing(Result) Then
If Result.Rows(0).Item(0) = 0 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function PRPROXY_RECORD_CONNECT(PARENT_RECID As Integer, RECID As Integer)
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sel = String.Format("DECLARE @return_value int" & vbNewLine &
"EXEC @return_value = [dbo].[PRPROXY_RECORD_CONNECT] {0},{1} " & vbNewLine &
"SELECT 'Return Value' = @return_value", PARENT_RECID, RECID)
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
If Not IsNothing(Result) Then
If Result.Rows(0).Item(0) = 0 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function PRPROXY_CONTROL_DEL(REC_ID As Integer, ENT_ID As Integer, CONTROL_ID As Integer)
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sel = String.Format("DECLARE @return_value int" & vbNewLine &
"EXEC @return_value = [dbo].[PRPROXY_CONTROL_DEL] {0},{1},{2}" & vbNewLine &
"SELECT 'Return Value' = @return_value", REC_ID, ENT_ID, CONTROL_ID)
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
If Not IsNothing(Result) Then
If Result.Rows(0).Item(0) = 0 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function Refresh_Workflow_Data()
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sel = "DECLARE @return_value int" & vbNewLine &
"EXEC @return_value = [dbo].[PRPROXY_SYNC_WORKFLOWS]" & vbNewLine &
"SELECT 'Return Value' = @return_value"
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
If Not IsNothing(Result) Then
If Result.Rows(0).Item(0) = 0 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function PRPROXY_SYNC_DETAIL_OBJECT(Objectname As String)
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sel = "DECLARE @return_value int" & vbNewLine &
"EXEC @return_value = [dbo].[PRPROXY_SYNC_DETAIL_OBJECT] '" & Objectname & "'" & vbNewLine &
"SELECT 'Return Value' = @return_value"
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
If Not IsNothing(Result) Then
If Result.Rows(0).Item(0) = 0 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function PRPROXY_CONTROL_VALUE_UPD_INS(EntityID As Integer, ControlID As Integer, RecordID As Integer, Value As String)
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sel = String.Format("DECLARE @return_value int" & vbNewLine &
"EXEC @return_value = [dbo].[PRPROXY_CONTROL_VALUE_UPD_INS] {0},{1},{2},'{3}','{4}'" & vbNewLine &
"SELECT 'Return Value' = @return_value", EntityID, ControlID, RecordID, Value, USER_USERNAME)
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
If Not IsNothing(Result) Then
If Result.Rows(0).Item(0) = 0 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function PRPROXY_CONTROL_VALUE_RENEW(RecordID As Integer)
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sel = String.Format("DECLARE @return_value int" & vbNewLine &
"EXEC @return_value = [dbo].[PRPROXY_CONTROL_VALUE_RENEW] {0}" & vbNewLine &
"SELECT 'Return Value' = @return_value", RecordID)
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
If Not IsNothing(Result) Then
If Result.Rows(0).Item(0) = 0 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function IS_PROXY_BUSY()
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sql = "SELECT SYNC_RUNNING FROM TBPROXY_CONFIG WHERE GUID = 1"
Dim BUSY
BUSY = clsDatabase.Execute_Scalar(sql, True)
If IsNothing(BUSY) Then
Return True
Else
Return BUSY
End If
End Function
Public Shared Function PRPROXY_DOC_VALUES_UPD(DocID As Integer, RecId As Integer)
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sel = String.Format("DECLARE @return_value int" & vbNewLine &
"EXEC @return_value = [dbo].[PRPROXY_DOC_VALUES_UPD] {0}, {1} " & vbNewLine &
"SELECT 'Return Value' = @return_value", DocID, RecId)
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
If Not IsNothing(Result) Then
If Result.Rows(0).Item(0) = 0 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
End Class

View File

@ -0,0 +1,60 @@
Imports System.Data.SqlClient
Imports DD_LIB_Standards
Public Class ClassRecordCommands
Public Shared Function CreateRecordProcedure(formId As Integer)
Try
Dim connection As New SqlConnection
connection.ConnectionString = MyConnectionString
Using cmd As New SqlCommand("PRPMO_CREATE_RECORD", connection)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@pFORM_ID", formId)
cmd.Parameters.AddWithValue("@pADDED_WHO", Environment.UserName)
cmd.Parameters.Add("@pRESULT", SqlDbType.Int)
cmd.Parameters("@pRESULT").Direction = ParameterDirection.Output
connection.Open()
cmd.ExecuteNonQuery()
connection.Close()
Dim GUID As Integer = cmd.Parameters("@pRESULT").Value
If GUID > 0 And clsDatabase.DB_PROXY_INITIALIZED = True Then
If ClassProxy.PRPROXY_RECORD_UPD_INS(formId, GUID) = True Then
ClassProxy.PRPROXY_CONTROL_VALUE_RENEW(GUID)
End If
End If
Return GUID
End Using
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in CreateRecordProcedure: ")
ClassLogger.Add("Error in CreateRecordProcedure: " & ex.Message, True)
ClassHelper.InsertEssential_Log(formId, "ENTITY-ID", "ENTITY-ID: " & formId & ": " & ex.Message)
Return 0
End Try
End Function
Public Shared Function CreateRecord(EntityID)
Dim SQL = "INSERT INTO TBPMO_RECORD(ADDED_WHO, FORM_ID,RECORD_ENTITY_ID) VALUES ('" & USER_USERNAME & "', " & EntityID & ",4711)"
Return ClassDatabase.Execute_non_Query(SQL)
End Function
Public Shared Function GetLastRecord()
Dim SQL = String.Format("SELECT MAX(GUID) FROM TBPMO_RECORD where PARENT_RECORD = 0 AND FORM_ID = {0} AND UPPER(ADDED_WHO) = UPPER('{1}') AND DELETED = 0", CURRENT_ENTITY_ID, USER_USERNAME)
Return ClassDatabase.Execute_Scalar(SQL)
End Function
Public Shared Function ConnectRecord(PARENT_RECORD As Integer, LINK_RECORD As Integer, Optional Comment As String = "")
Dim SQL = "INSERT INTO TBPMO_RECORD_CONNECT(RECORD1_ID,RECORD2_ID,COMMENT,ADDED_WHO) VALUES (" & PARENT_RECORD & "," & LINK_RECORD & ",'" & Comment & "','" & USER_USERNAME & "')"
If LogErrorsOnly = False Then ClassLogger.Add(" >> ConnectRecord SQL: " & SQL, False)
Return ClassDatabase.Execute_non_Query(SQL)
End Function
Public Shared Function CHECK_RECORD_FINAL(RecordId As Integer, IsInsert As Boolean)
If RecordId = 0 Then Return True
Dim SQL = String.Format("EXEC PRPMO_RECORD_CHECK_INTEGRITY {0},'{1}',{2}", RecordId, Environment.UserName, IsInsert)
Return ClassDatabase.Execute_non_Query(SQL)
End Function
End Class

View File

@ -0,0 +1,67 @@
Public Class ClassRecordState
Public Shared Sub LockRecord(RecordId As Integer)
Try
If RecordId = 0 Then
Exit Sub
End If
Dim SQL As String = String.Format("UPDATE TBPMO_RECORD SET IN_WORK = 1, IN_WORK_WHO = '{0}' WHERE GUID = {1}", USER_USERNAME, RecordId)
If DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
ClassDatabase.Execute_non_Query(SQL, True)
End If
ClassDatabase.Execute_non_Query(SQL)
Catch ex As Exception
MsgBox("Error in LockRecord: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Shared Sub UnlockRecord(RecordId As Integer)
Try
If RecordId = 0 Then
Exit Sub
End If
Dim RECLOCKED = IsRecordLocked(RecordId)
If IsNothing(RECLOCKED) Then
Exit Sub
End If
Dim SQL As String = String.Format("UPDATE TBPMO_RECORD SET IN_WORK = 0, IN_WORK_WHO = NULL WHERE GUID = {0}", RecordId)
If DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
ClassDatabase.Execute_non_Query(SQL, True)
End If
ClassDatabase.Execute_non_Query(SQL)
Catch ex As Exception
MsgBox("Error in UnlockRecord: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Shared Function IsRecordLocked(RecordId As Integer) As String
Try
Dim SQL As String = String.Format("SELECT IN_WORK, IN_WORK_WHO FROM TBPMO_RECORD WHERE GUID = {0}", RecordId)
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL, True)
If dt.Rows.Count = 1 Then
Dim IN_WORK As Boolean = dt.Rows(0).Item("IN_WORK")
Dim IN_WORK_WHO As String = dt.Rows(0).Item("IN_WORK_WHO").ToString
If IN_WORK = True Then
' Record ist in Arbeit, benutzer zurückgeben
Return IN_WORK_WHO
ElseIf IN_WORK = False Then
' Record ist nicht in Arbeit, nothing zurück geben
Return Nothing
End If
ElseIf dt.Rows.Count = 0 Then
Return Nothing
Else
MsgBox("Unexpected behaviour in IsRecordLocked: ", MsgBoxStyle.Information)
Return Nothing
End If
Catch ex As Exception
MsgBox("Error in IsRecordLocked: " + vbNewLine + ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
End Class

View File

@ -0,0 +1,595 @@
Imports DevExpress.XtraEditors
Imports System.Text.RegularExpressions
Public Class ClassRecordView
Public RecordId As Integer
Private DTControls As DataTable
Private DTValues As DataTable
Private Entity_ID As Integer
Private Panel As Panel
Private Const CONTROL_ID_PATTERN = "@\d{1,}@"
Private Const STATIC_PATTERN = "@\w{1,}"
''' <summary>
''' Initialisiert die RecordView Klasse
''' </summary>
Public Sub New(panel As Panel)
Me.Panel = panel
End Sub
''' <summary>
''' Lädt die Controls und Werte für die angegebene RecordId
''' </summary>
Public Sub LoadRecord(recordId As Integer)
Try
Me.RecordId = recordId
Me.LoadControls()
Me.LoadValues(Me.Panel.Controls)
Me.PreventControlValueChanges()
Catch ex As Exception
End Try
End Sub
#Region "Helper Functions"
Private Sub Noop()
' Verhindert Bestimmte Events
End Sub
Private Function GetEntityId() As Integer
Dim SQL = String.Format("SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}", RecordId)
Me.Entity_ID = ClassDatabase.Execute_Scalar(SQL, True)
Return Me.Entity_ID
End Function
Private Function MapRowToProps(r As DataRow) As ControlProps
Try
Dim props As New ControlProps
props.Id = r.Item("CONTROL_ID")
props.Name = r.Item("CONTROL_NAME").ToString
props.Type = r.Item("CTRLTYPE_NAME").ToString
props.Caption = r.Item("CTRLSCR_CAPTION").ToString
props.X = r.Item("CTRLSCR_X_LOC")
props.Y = r.Item("CTRLSCR_Y_LOC")
props.Height = r.Item("CTRLSCR_HEIGHT")
props.Width = r.Item("CTRLSCR_WIDTH")
props.FontFamily = r.Item("CTRLSCR_FONT_FAMILY")
props.FontSize = r.Item("CTRLSCR_FONT_SIZE")
props.FontStyle = CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle)
props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR"))
props.BackColor = IntToColor(r.Item("CTRLSCR_BACK_COLOR"))
props.Font = New Font(props.FontFamily, props.FontSize, props.FontStyle)
props.SqlCommand1 = r.Item("CONTROL_SQLCOMMAND_1").ToString()
props.SqlCommand2 = r.Item("CONTROL_SQLCOMMAND_2").ToString()
props.StaticList = r.Item("CONTROL_STATIC_LIST").ToString()
Return props
Catch ex As Exception
End Try
End Function
''' <summary>
''' Hilfsfunktion, die allgemeine Eigenschaften für alle Controls setzt
''' </summary>
''' <param name="c">Das zu initialisierende Control</param>
''' <param name="props">Das Eigenschaften Objekt</param>
''' <returns>Das Control mit den allgemeinen Eigenschaften</returns>
Private Function SetBaseProps(c As Control, props As ControlProps)
Try
c.Location = New Point(props.X, props.Y)
c.Width = props.Width
c.Height = props.Height
c.Tag = props
Return c
Catch ex As Exception
End Try
End Function
#End Region
#Region "Data Loading Functions"
Private Function LoadStaticList(props As ControlProps) As List(Of String)
Dim staticlist As String = props.StaticList
Dim list As List(Of String) = Nothing
' Wenn StaticList Elemente enthält, werden diese
' als DataSource aufbnereitet
If (staticlist.Length > 0) Then
list = staticlist.Split(";").ToList()
End If
Return list
End Function
Private Function ReplaceStaticPlaceholders(sqlcommand As String) As String
Try
If (New Regex(STATIC_PATTERN).IsMatch(sqlcommand)) Then
Dim FormId As Integer = ClassControlCommands.GetFormId(Me.RecordId)
Dim ParentRecordId As Integer = ClassControlCommands.GetParentRecordId(Me.RecordId)
sqlcommand = sqlcommand _
.Replace("@RECORD_ID", Me.RecordId) _
.Replace("@RECORDID", Me.RecordId) _
.Replace("@FORM_ID", FormId) _
.Replace("@ENTITY_ID", FormId)
If ParentRecordId > 0 Then
sqlcommand = sqlcommand _
.Replace("@PARENTRECORDID", ParentRecordId) _
.Replace("@PARENTRECORD_ID", ParentRecordId)
End If
End If
Return sqlcommand
Catch ex As Exception
Return sqlcommand
End Try
End Function
Private Function LoadSQLList(props As ControlProps) As DataTable
Dim sqllist As DataTable = Nothing
Dim sqlcommand = props.SqlCommand1
Dim ControlIdRegex As New Regex(CONTROL_ID_PATTERN)
If sqlcommand.Length = 0 Then
Return sqllist
End If
' Replace Dynamic Placeholders like @993@
If ControlIdRegex.IsMatch(sqlcommand) Then
Dim match As String = ControlIdRegex.Match(sqlcommand).Value 'Get Full Match to replace later
Dim controlId As Integer = Integer.Parse(match.Replace("@", "")) 'Get Value after removing @-chars
Dim controlSQL = String.Format("SELECT VALUE FROM VWPMO_VALUES WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", controlId, Me.RecordId)
Dim controlValue = ClassDatabase.Execute_Scalar(controlSQL, True) 'Get the actual value
sqlcommand = sqlcommand.Replace(match, controlValue.ToString()) 'Replace the actual value with the placeholder string/match
End If
' Replace Static Placeholders like @RECORD_ID@
sqlcommand = ReplaceStaticPlaceholders(sqlcommand)
sqllist = ClassDatabase.Return_Datatable(sqlcommand)
Return sqllist
End Function
Private Function TransformSQLCommand(props As ControlProps) As ControlProps
Return props
End Function
Private Function LoadDataSource(props As ControlProps) As ControlProps
Dim datasource As Object = Nothing
Dim staticList = LoadStaticList(props)
Dim dynamicList = LoadSQLList(props)
If staticList IsNot Nothing Then
datasource = staticList
End If
If dynamicList IsNot Nothing Then
datasource = dynamicList
End If
props.DataSource = datasource
Return props
End Function
#End Region
Private Sub LoadControls()
Try
Dim controls As New List(Of Control)
DTControls = ClassDatabase.Return_Datatable(String.Format("SELECT * FROM VWPMO_CONTROL_SCREEN WHERE FORM_ID = {0}", GetEntityId()), True)
For Each row As DataRow In DTControls.Rows
Dim props As ControlProps = MapRowToProps(row)
Dim control As Control = Nothing
Select Case props.Type
Case "Label"
control = LoadLabel(props)
Case "Textbox"
control = LoadTextBox(props)
Case "Combobox"
control = LoadCombobox(props)
Case "Datepicker"
control = LoadDatePicker(props)
Case "Datagridview"
control = LoadDataGridView(props)
Case "ListBox"
control = LoadListBox(props)
Case "CheckedListBox"
control = LoadCheckedListBox(props)
Case "Checkbox"
control = LoadCheckBox(props)
Case "Radiobutton"
control = LoadRadioButton(props)
Case "Picturebox"
control = LoadPictureBox(props)
End Select
If control IsNot Nothing Then
controls.Add(control)
End If
Next
Me.Panel.Controls.Clear()
Me.Panel.Controls.AddRange(controls.ToArray())
Catch ex As Exception
End Try
End Sub
Private Sub PreventControlValueChanges()
Try
For Each c As Control In Me.Panel.Controls
Dim type As String = DirectCast(c.Tag, ControlProps).Type
If type = "CheckedListBox" Then
Dim checklistbox = DirectCast(c, CheckedListBoxControl)
AddHandler checklistbox.ItemChecking, Sub(sender As Object, e As DevExpress.XtraEditors.Controls.ItemCheckingEventArgs)
e.Cancel = True
End Sub
End If
Next
Catch ex As Exception
End Try
End Sub
Private Sub LoadValues(controlCollection As Control.ControlCollection)
Try
Dim controls As New List(Of Control)
DTValues = ClassDatabase.Return_Datatable(String.Format("SELECT * FROM VWPMO_VALUES WHERE RECORD_ID = {0}", Me.RecordId), True)
' ControlCollection in eine List<Of Control> konvertieren
controls = controlCollection.Cast(Of Control)().ToList()
For Each control As Control In controls
Dim controlId As Integer = DirectCast(control.Tag, ControlProps).Id
Dim controlType As String = DirectCast(control.Tag, ControlProps).Type
Dim values As List(Of Object) = (From row In DTValues.AsEnumerable()
Where row.Item("CONTROL_ID") = controlId
Select row.Item("VALUE")).ToList()
' Wenn kein Wert existiert, keinen Wert laden
If values.Count = 0 And Not controlType = "Picturebox" Then
Continue For
Else
LoadValue(control, values)
End If
Next
Catch ex As Exception
End Try
End Sub
Public Sub LoadValue(control As Control, values As List(Of Object))
Try
Dim controlType As String = DirectCast(control.Tag, ControlProps).Type
Dim value = Nothing
If values.Count > 0 Then
value = values(0)
End If
Select Case controlType
Case "Label"
' Hier muss kein Wert geladen werden
Exit Select
Case "Textbox"
DirectCast(control, TextBox).Text = value.ToString()
Case "Combobox"
DirectCast(control, TextBox).Text = value.ToString()
Case "Datepicker"
Dim dtp As TextBox = DirectCast(control, TextBox)
Try
dtp.Text = DateTime.Parse(value).ToShortDateString()
Catch ex As Exception
dtp.Text = "Invalid Date"
End Try
Case "Checkbox"
Dim checkbox = DirectCast(control, CheckBox)
Try
checkbox.Checked = Boolean.Parse(value)
Catch ex As Exception
checkbox.Checked = False
End Try
Case "RadioButton"
Dim radio = DirectCast(control, RadioButton)
Try
radio.Checked = Boolean.Parse(value)
Catch ex As Exception
radio.Checked = False
End Try
Case "Datagridview"
Try
Dim datagridview As ListBoxControl = DirectCast(control, ListBoxControl)
datagridview.Items.AddRange(values.ToArray())
Catch ex As Exception
' Keine Items hinzufügen
End Try
Case "ListBox"
Try
Dim listbox As ListBoxControl = DirectCast(control, ListBoxControl)
listbox.Items.AddRange(values.ToArray())
Catch ex As Exception
' Keine Items hinzufügen
End Try
Case "CheckedListBox"
Try
Dim checkedlist As CheckedListBoxControl = DirectCast(control, CheckedListBoxControl)
For Each v As String In values
Dim posBefore As Integer = 0
While (checkedlist.FindStringExact(v, posBefore) > -1)
Dim pos = checkedlist.FindStringExact(v, posBefore)
' Wenn v gefunden wurde, anhaken
If pos >= 0 Then
checkedlist.SetItemCheckState(pos, CheckState.Checked)
posBefore = pos + 1
End If
' Verhindere Endlosschleife
If pos = 100 Then
Exit While
End If
End While
Next
Catch ex As Exception
' Keine Items anchecken
End Try
Case "Picturebox"
Try
Dim pb As PictureBox = DirectCast(control, PictureBox)
Dim controlId As Integer = DirectCast(control.Tag, ControlProps).Id
Dim sql = String.Format("SELECT IMG FROM TBPMO_CONTROL_IMAGE WHERE RECORD_ID = {0} AND CONTROL_ID = {1}", Me.RecordId, controlId)
Dim bimg() As Byte = ClassDatabase.Execute_Scalar(sql)
If Not IsNothing(bimg) Then
Dim img As Bitmap = ByteArrayToBitmap(bimg)
pb.BackgroundImage = img
pb.BackgroundImageLayout = ImageLayout.Zoom
End If
Catch ex As Exception
' Kein Bild laden
MsgBox(ex.Message)
End Try
End Select
Catch ex As Exception
End Try
End Sub
Class ControlProps
' Base Props
Public Id As Integer
Public Name As String
Public Type As String
Public Caption As String
' Position/Size Props
Public X As Integer
Public Y As Integer
Public Height As Integer
Public Width As Integer
' Font/Color Props
Public FontColor As Color
Public FontSize As Integer
Public FontStyle As FontStyle
Public FontFamily As String
Public Font As Font
Public BackColor As Color
' Flag Props
Public IsRequired As Boolean
Public IsReadOnly As Boolean
Public IsMultiline As Boolean
' Data Props
Public SqlCommand1 As String
Public SqlCommand2 As String
Public StaticList As String
Public DataSource As Object
' Misc Props
Public FormatType As String
End Class
#Region "Control Builder Simple"
Private Function LoadLabel(props As ControlProps) As Label
Try
Dim label As Label = SetBaseProps(New Label, props)
label.Text = props.Caption
label.Font = props.Font
label.ForeColor = props.FontColor
'label.BackColor = props.BackColor
label.BackColor = Color.White
label.AutoSize = True
props = LoadDataSource(props)
If (Not IsNothing(props.DataSource)) Then
If props.DataSource.GetType() Is GetType(DataTable) Then
Dim row0 As DataRow = DirectCast(props.DataSource, DataTable).Rows(0)
Dim value = row0.Item(0)
label.Text = value
Else
label.Text = props.DataSource.ToString()
End If
End If
Return label
Catch ex As Exception
End Try
End Function
Private Function LoadTextBox(props As ControlProps) As TextBox
Try
Dim textbox As TextBox = SetBaseProps(New TextBox, props)
textbox.BorderStyle = BorderStyle.FixedSingle
textbox.Font = props.Font
textbox.ForeColor = props.FontColor
'textbox.BackColor = props.BackColor
textbox.BackColor = Color.White
textbox.ReadOnly = True
Return textbox
Catch ex As Exception
Return Nothing
End Try
End Function
' Die Combobox wird als Textbox dargestellt
Private Function LoadCombobox(props As ControlProps) As TextBox
Try
Dim combo As TextBox = SetBaseProps(New TextBox, props)
combo.BorderStyle = BorderStyle.FixedSingle
combo.Font = props.Font
combo.ForeColor = props.FontColor
'combo.BackColor = props.BackColor
combo.BackColor = Color.White
combo.ReadOnly = True
Return combo
Catch ex As Exception
End Try
End Function
' Der Datepicker wird als Textbox dargestellt
Private Function LoadDatePicker(props As ControlProps) As TextBox
Try
Dim dtp As TextBox = SetBaseProps(New TextBox, props)
dtp.BorderStyle = BorderStyle.FixedSingle
dtp.Font = props.Font
dtp.ForeColor = props.FontColor
'dtp.BackColor = props.BackColor
dtp.BackColor = Color.White
dtp.ReadOnly = True
Return dtp
Catch ex As Exception
End Try
End Function
Private Function LoadCheckBox(props As ControlProps) As CheckBox
Try
Dim check As CheckBox = SetBaseProps(New CheckBox, props)
check.Text = props.Caption
check.AutoCheck = False
Return check
Catch ex As Exception
End Try
End Function
Private Function LoadRadioButton(props As ControlProps) As RadioButton
Try
Dim radio As RadioButton = SetBaseProps(New RadioButton, props)
radio.Text = props.Caption
radio.AutoCheck = False
Return radio
Catch ex As Exception
End Try
End Function
Private Function LoadListBox(props As ControlProps) As ListBoxControl
Dim listbox As ListBoxControl = SetBaseProps(New ListBoxControl, props)
Return listbox
End Function
Private Function LoadDataGridView(props As ControlProps) As ListBoxControl
Dim datagridview As ListBoxControl = SetBaseProps(New ListBoxControl, props)
Return datagridview
End Function
Private Function LoadCheckedListBox(props As ControlProps) As CheckedListBoxControl
Try
Dim checklistbox As CheckedListBoxControl = SetBaseProps(New CheckedListBoxControl, props)
props = LoadDataSource(props)
If Not IsNothing(props.StaticList) Then
checklistbox.DataSource = props.StaticList
End If
If Not IsNothing(props.DataSource) Then
If props.DataSource.GetType() Is GetType(DataTable) Then
Dim dt As DataTable = props.DataSource
If dt.Columns.Count = 1 Then
checklistbox.DisplayMember = dt.Columns(0).ColumnName
checklistbox.ValueMember = dt.Columns(0).ColumnName
ElseIf dt.Columns.Count = 2 Then
checklistbox.DisplayMember = dt.Columns(1).ColumnName
checklistbox.ValueMember = dt.Columns(0).ColumnName
End If
End If
checklistbox.DataSource = props.DataSource
End If
Return checklistbox
Catch ex As Exception
End Try
End Function
Private Function LoadPictureBox(props As ControlProps) As PictureBox
Dim pb As PictureBox = SetBaseProps(New PictureBox, props)
pb.BorderStyle = BorderStyle.FixedSingle
Return pb
End Function
#End Region
End Class

View File

@ -0,0 +1,86 @@
Public Class ClassRightManagement
Public Shared Sub Check_Set_Rights(RECORD_ID As Integer, ENTITY_ID As Integer)
Try
Dim sw = New SW("Check_Set_Rights")
RIGHT_EDIT_R = False
RIGHT_ADD_R = False
RIGHT_DELETE_R = False
RIGHT_RECORD_AND_FILE_READ_ONLY = False
RIGHT_ADD_DOC = False
RIGHT_VIEW_DOC = True
RIGHT_DELETE_DOC = False
RIGHT_READ_ONLY_DOC = False
' Wenn Rechte pro Record defineirt wurden!!!
If SQL_RECORD_AND_FILE_READ_ONLY <> "" Or SQL_DOC_READ_ONLY <> "" Then
If SQL_RECORD_AND_FILE_READ_ONLY <> "" Then
RIGHT_RECORD_AND_FILE_READ_ONLY = ClassHelper.Check_Record_Read_only(RECORD_ID, ENTITY_ID)
If RIGHT_RECORD_AND_FILE_READ_ONLY = True Then
RIGHT_EDIT_R = False
RIGHT_ADD_R = False
RIGHT_DELETE_R = False
End If
End If
If SQL_DOC_READ_ONLY <> "" Then
RIGHT_READ_ONLY_DOC = ClassHelper.Check_File_Read_only(RECORD_ID, ENTITY_ID)
If RIGHT_READ_ONLY_DOC = True Then
RIGHT_ADD_DOC = False
RIGHT_DELETE_DOC = False
Else
RIGHT_ADD_DOC = True
RIGHT_DELETE_DOC = True
End If
End If
Else
If DT_RIGHTS_USER Is Nothing Or DT_RIGHTS_GROUP Is Nothing Then
Dim Sql As String
Sql = String.Format("select * from TBPMO_RIGHT_USER WHERE USER_ID = {0} AND ENTITY_ID = {1}", USER_GUID, ENTITY_ID)
DT_RIGHTS_USER = ClassDatabase.Return_Datatable(Sql, True)
Sql = String.Format("SELECT DISTINCT EDIT_REC,ADD_REC,DELETE_REC,ADD_DOC,VIEW_DOC,DELETE_DOC FROM TBPMO_RIGHT_GROUP WHERE ENTITY_ID = {0} AND GROUP_ID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WHERE USER_ID = {1})", ENTITY_ID, USER_GUID)
DT_RIGHTS_GROUP = ClassDatabase.Return_Datatable(Sql, True)
End If
'Definition der Rechte erfolgt über UserGroupstable......wenn gefüllt
If DT_RIGHTS_GROUP.Rows.Count > 0 And DT_RIGHTS_USER.Rows.Count = 0 Then
For Each row As DataRow In DT_RIGHTS_GROUP.Rows
RIGHT_EDIT_R = CBool(DT_RIGHTS_GROUP.Rows(0).Item(0))
RIGHT_ADD_R = CBool(DT_RIGHTS_GROUP.Rows(0).Item(1))
RIGHT_DELETE_R = CBool(DT_RIGHTS_GROUP.Rows(0).Item(2))
RIGHT_ADD_DOC = CBool(DT_RIGHTS_GROUP.Rows(0).Item(3))
RIGHT_VIEW_DOC = CBool(DT_RIGHTS_GROUP.Rows(0).Item(4))
RIGHT_DELETE_DOC = CBool(DT_RIGHTS_GROUP.Rows(0).Item(5))
If RIGHT_ADD_DOC = False And RIGHT_DELETE_DOC = False Then
RIGHT_READ_ONLY_DOC = True
End If
Next
Else
'Definition der Rechte erfolgt über UserRighttable
If DT_RIGHTS_USER.Rows.Count = 1 Then
RIGHT_EDIT_R = CBool(DT_RIGHTS_USER.Rows(0).Item("EDIT_REC"))
RIGHT_ADD_R = CBool(DT_RIGHTS_USER.Rows(0).Item("ADD_REC"))
RIGHT_DELETE_R = CBool(DT_RIGHTS_USER.Rows(0).Item("DELETE_REC"))
RIGHT_ADD_DOC = CBool(DT_RIGHTS_USER.Rows(0).Item("ADD_DOC"))
RIGHT_VIEW_DOC = CBool(DT_RIGHTS_USER.Rows(0).Item("FILES_VISIBLE"))
RIGHT_DELETE_DOC = CBool(DT_RIGHTS_USER.Rows(0).Item("DELETE_DOC"))
RIGHT_READ_ONLY_DOC = CBool(DT_RIGHTS_USER.Rows(0).Item("READ_ONLY_DOC"))
End If
End If
End If
If LogErrorsOnly = False Then
ClassLogger.Add(" >> RIGHT_EDIT_R: " & RIGHT_EDIT_R.ToString, False)
ClassLogger.Add(" >> RIGHT_ADD_R: " & RIGHT_ADD_R.ToString, False)
ClassLogger.Add(" >> RIGHT_DELETE_R: " & RIGHT_DELETE_R.ToString, False)
ClassLogger.Add(" >> RIGHT_ADD_DOC: " & RIGHT_ADD_DOC.ToString, False)
ClassLogger.Add(" >> RIGHT_VIEW_DOC: " & RIGHT_VIEW_DOC.ToString, False)
ClassLogger.Add(" >> RIGHT_DELETE_DOC: " & RIGHT_DELETE_DOC.ToString, False)
ClassLogger.Add(" >> RIGHT_READ_ONLY_DOC: " & RIGHT_READ_ONLY_DOC.ToString, False)
End If
sw.Done()
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in Check_Set_Rights", ex.Message, ex.StackTrace)
End Try
End Sub
End Class

View File

@ -0,0 +1,230 @@
Imports ERPConnect
Public Class ClassSAP
Public Shared SAPConnectionString
Public Shared SAP_CONNECTION As New R3Connection()
Public Shared Function ConnectionInit(Host As String, SysNumber As String, Username As String, PW As String, Client As String, Lang As String)
Try
If LogErrorsOnly = False Then ClassLogger.Add("", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> SAP Connect started:", False)
SAPConnectionString = String.Format("USER={0} LANG={1} CLIENT={2} SYSNR={3} ASHOST={4} PASSWD={5}", Username, Lang, Client, SysNumber, Host, PW)
Dim con As New R3Connection()
ERPConnect.LIC.SetLic("W86DWC992C")
If LogErrorsOnly = False Then ClassLogger.Add(" >> SAP Connectionstring: " & SAPConnectionString, False)
con.Open(SAPConnectionString)
SAP_CONNECTION.Open(SAPConnectionString)
If LogErrorsOnly = False Then ClassLogger.Add(" >> SAP-Connection created!", False)
If LogErrorsOnly = False Then ClassLogger.Add("", False)
Return True
Catch ex As Exception
MsgBox("Error in SAP ConnectionInit: " & ex.Message, MsgBoxStyle.Critical)
ClassLogger.Add("Error in SAP ConnectionInit: " & ex.Message, True)
Return False
End Try
End Function
Public Shared Function FuBa_Returndatatable_Seperated(FuBaName As String, SplitCharacter As String, Optional RowLimit As Integer = 0)
Try
Dim RESULT_TABLE As DataTable = New DataTable
If LogErrorsOnly = False Then ClassLogger.Add(" >> Get data from FuBa-Function", False)
Dim func As RFCFunction
Try
func = SAP_CONNECTION.CreateFunction(FuBaName)
If LogErrorsOnly = False Then ClassLogger.Add(" >> func.Execute", False)
func.Execute()
If LogErrorsOnly = False Then ClassLogger.Add(" >> function was executed", False)
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in Create SAP Function: " & ex.Message, False)
MsgBox("Error in Create SAP Function: " & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
Dim FUNCT_ROW_COUNT As Integer = 1
Dim RowMaskresult As String = ""
Try
If LogErrorsOnly = False Then ClassLogger.Add(" >> Checking FunctionExecute", False)
'Den ersten Wert ausgeben lassen um die Spalten zu splitten
For Each row As RFCStructure In func.Tables("T_INDEX").Rows
Try
If row.Item(1).ToString.Contains(SplitCharacter) Then
RowMaskresult = row.Item(1).ToString
If LogErrorsOnly = False Then ClassLogger.Add(" >> RowMask result: " & RowMaskresult, False)
FUNCT_ROW_COUNT = 2
End If
Catch ex As Exception
RowMaskresult = "ErrorInGetSeperatedResult: " & ex.Message
End Try
If FUNCT_ROW_COUNT = 2 Then Exit For
Next
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in Checking FunctionExecute: " & ex.Message, False)
MsgBox("Error in Checking FunctionExecute: " & ex.Message, MsgBoxStyle.Critical)
SAP_CONNECTION.Close()
Return Nothing
End Try
FUNCT_ROW_COUNT = 1
Dim ColCount As Integer
If SplitCharacter <> "" And RowMaskresult.Contains(SplitCharacter) Then
Try
If LogErrorsOnly = False Then ClassLogger.Add(" >> Define Datatable with SplitCharacter method", False)
Dim split() = RowMaskresult.Split(SplitCharacter)
If split.Length > 0 Then
ColCount = split.Length - 1
CURRENT_COL_COUNT = ColCount
If LogErrorsOnly = False Then
ClassLogger.Add(" >> ColCount: " & ColCount.ToString, False)
ClassLogger.Add(" >> Split-Results: ", False)
For Each s As String In split
ClassLogger.Add(" # " & s, False)
Next
End If
For x = 0 To ColCount
' Declare DataColumn and DataRow variables.
Dim column As DataColumn
column = New DataColumn()
column = New DataColumn()
column.DataType = Type.GetType("System.String")
column.ColumnName = "Column " & x.ToString
RESULT_TABLE.Columns.Add(column)
Next
If LogErrorsOnly = False Then ClassLogger.Add(" >> Datatable Columns after Split created", False)
' Create new DataRow objects and add to DataTable.
'Jetzt die Zeilen der Function durchlaufen
For Each row As RFCStructure In func.Tables("T_INDEX").Rows
Dim new_row As DataRow
If RowLimit <> 0 Then
If RowLimit = FUNCT_ROW_COUNT Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> RowCount limited to" & RowLimit.ToString & " rows. Exit SAP Function", False)
Exit For
End If
End If
new_row = RESULT_TABLE.NewRow()
Dim Rowresult As String = row.Item(1).ToString
If Rowresult.Contains(SplitCharacter) Then
Dim RowSplit() = Rowresult.Split(SplitCharacter)
Dim col_index = 0
'Jetzt die Spaltenwerte in die NewRow eintragen
For x = 0 To ColCount
new_row(x) = RowSplit(x)
Next
FUNCT_ROW_COUNT += 1
RESULT_TABLE.Rows.Add(new_row)
End If
Next
If LogErrorsOnly = False Then ClassLogger.Add(" >> RowCount FuBa: " & RESULT_TABLE.Rows.Count.ToString, False)
Return RESULT_TABLE
Else
Return Nothing
End If
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in Create Datatable with split-method: " & ex.Message, False)
MsgBox("Unexpected Error in Create Datatable with split-method: " & ex.Message, MsgBoxStyle.Critical)
SAP_CONNECTION.Close()
Return Nothing
End Try
Else
Return Nothing
End If
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in Function FuBa_ReturnDatatable Seperated: " & ex.Message, False)
MsgBox("Unexpected Error in Function FuBa_ReturnDatatable Seperated: " & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Public Shared Function Return_Datatable_for_Table(tablename As String, where_clause As String, Optional RowLimit As Integer = 0)
Try
Dim RESULT_TABLE As DataTable = New DataTable
If LogErrorsOnly = False Then ClassLogger.Add(" >> Get data from SAP Table", False)
Dim table As New ERPConnect.Utils.ReadTable(SAP_CONNECTION)
'Dim cWhereClause = "SAP_OBJECT EQ '<ObjectType>' AND AR_DATE GE '<AR_DATE>'"
'Dim sSearchDate1 = "20160101"
'cWhereClause = Replace(cWhereClause, "<ObjectType>", Objekttyp.Text)
'cWhereClause = Replace(cWhereClause, "<AR_DATE>", sSearchDate1)
If where_clause <> "" Then
table.AddCriteria(where_clause)
End If
table.TableName = tablename
If RowLimit <> 0 Then
table.RowCount = RowLimit
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >>Table.Run executing.....", False)
table.Run()
If LogErrorsOnly = False Then ClassLogger.Add(" >>Table.Run executed", False)
RESULT_TABLE = table.Result
SAP_CONNECTION.Close()
Return RESULT_TABLE
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in SAP Table Result: " & ex.Message, False)
MsgBox("Unexpected Error in SAP Table Result: " & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Public Shared Function LINK_ARC_OBJECT(table As String, barcode As String, contrep As String, docid As String, ardate As String, doctype As String)
Try
If LogErrorsOnly = False Then ClassLogger.Add(" >> CREATE_ARC_OBJECT", False)
Dim sapfunc As RFCFunction = SAP_CONNECTION.CreateFunction("BAPI_BARCODE_SENDLIST")
'Create and fill the frist row
Dim row As RFCStructure = sapfunc.Tables(table).AddRow()
row("BARCODE") = barcode
row("CONTREP") = contrep
row("DOCID") = docid
row("ARDATE") = ardate
row("DOCTYPE") = doctype
' Execut e the function
sapfunc.Execute()
' process return structure
Dim ret As RFCStructure = sapfunc.Imports("RETURN").ToStructure()
If (ret("TYPE").ToString().Equals("")) Then
Console.WriteLine("No error reported")
Return ""
Else
Return ret("MESSAGE")
End If
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in SAP Table Result: " & ex.Message, False)
MsgBox("Unexpected Error in CREATE_ARC_OBJECT: " & ex.Message, MsgBoxStyle.Critical)
Return ex.Message
End Try
End Function
Public Shared Function INSERT_ARCHIVE_OBJECT(ARCHIV_ID As String, ARC_DOC_ID As String, AR_OBJECT As String, OBJECT_ID As String, SAP_OBJECT As String, DOC_TYPE As String, table As String)
Try
If LogErrorsOnly = False Then ClassLogger.Add(" >> INSERT_ARCHIVE_OBJECT", False)
Dim sapfunc As RFCFunction = SAP_CONNECTION.CreateFunction("ARCHIV_CONNECTION_INSERT")
'Create and fill the frist row
'Dim row As RFCStructure = sapfunc.
sapfunc.Exports("ARCHIV_ID").ParamValue = ARCHIV_ID
sapfunc.Exports("ARC_DOC_ID").ParamValue = ARC_DOC_ID
sapfunc.Exports("AR_OBJECT").ParamValue = AR_OBJECT
sapfunc.Exports("OBJECT_ID").ParamValue = OBJECT_ID
sapfunc.Exports("SAP_OBJECT").ParamValue = SAP_OBJECT
sapfunc.Exports("DOC_TYPE").ParamValue = DOC_TYPE
' row("AR_DATE") = AR_DATE
' Execut e the function
Try
sapfunc.Execute()
Catch ex As Exception
MsgBox("Unexpected Error in sapfunc.Execute: " & ex.Message, MsgBoxStyle.Critical)
Dim ret As RFCStructure = sapfunc.Imports("RETURN").ToStructure()
If (ret("TYPE").ToString().Equals("")) Then
Console.WriteLine("No error reported")
Return "ERROR in Function Execute"
Else
Return ret("MESSAGE")
End If
End Try
' process return structure
Return ""
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in INSERT_ARCHIVE_OBJECT: " & ex.Message, False)
MsgBox("Unexpected Error in INSERT_ARCHIVE_OBJECT: " & ex.Message, MsgBoxStyle.Critical)
Return ex.Message
End Try
End Function
End Class

View File

@ -0,0 +1,60 @@
Imports System.ComponentModel
Imports System.Drawing.Design
Imports System.Windows.Forms
Imports System.Windows.Forms.Design
Public Class ClassSQLEditor
Inherits UITypeEditor
Public Overrides Function GetEditStyle(context As ITypeDescriptorContext) As UITypeEditorEditStyle
'Return MyBase.GetEditStyle(context)
Return UITypeEditorEditStyle.Modal
End Function
Public Overrides Function EditValue(context As ITypeDescriptorContext, provider As IServiceProvider, value As Object) As Object
'Return MyBase.EditValue(context, provider, value)
Dim svc As IWindowsFormsEditorService = TryCast(provider.GetService(GetType(IWindowsFormsEditorService)), IWindowsFormsEditorService)
Dim SQLSTring As String = DirectCast(value, SQLValue).Value
If svc IsNot Nothing AndAlso SQLSTring IsNot Nothing Then
Using Form As New frmSQLEditor()
Form.Value = SQLSTring
If svc.ShowDialog(Form) = DialogResult.OK Then
Dim sql As New SQLValue(Form.Value)
value = sql
End If
End Using
End If
Return value
End Function
End Class
<Editor(GetType(ClassSQLEditor), GetType(UITypeEditor))> _
<TypeConverter(GetType(SQLTypeConverter))> _
Public Class SQLValue
Private _value As String
Public Sub New(value As String)
Me.Value = value
End Sub
Public Property Value As String
Get
Return _value
End Get
Set(value As String)
_value = value
End Set
End Property
End Class
Public Class SQLTypeConverter
Inherits TypeConverter
Public Overrides Function ConvertTo(context As ITypeDescriptorContext, culture As Globalization.CultureInfo, value As Object, destinationType As Type) As Object
'Return MyBase.ConvertTo(context, culture, value, destinationType)
Dim sqlvalue As SQLValue = DirectCast(value, SQLValue)
Return sqlvalue.Value
End Function
End Class

View File

@ -0,0 +1,29 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ClassSnapPanel
Inherits System.Windows.Forms.Panel
'UserControl1 überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Wird vom Windows Form-Designer benötigt.
Private components As System.ComponentModel.IContainer
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
'Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
End Sub
End Class

View File

@ -0,0 +1,56 @@
Public Class ClassSnapPanel
Inherits System.Windows.Forms.Panel
Private _ShowGrid As Boolean = True
Private _GridSize As Integer = 16
Private Property AutoScaleMode As AutoScaleMode
Public Property GridSize As Integer
Get
Return _GridSize
End Get
Set(value As Integer)
_GridSize = value
Refresh()
End Set
End Property
Public Property ShowGrid As Boolean
Get
Return _ShowGrid
End Get
Set(value As Boolean)
_ShowGrid = value
Refresh()
End Set
End Property
Protected Overrides Sub OnControlAdded(e As System.Windows.Forms.ControlEventArgs)
AddHandler e.Control.LocationChanged, AddressOf AlignToGrid
AddHandler e.Control.DragDrop, AddressOf AlignToGrid
MyBase.OnControlAdded(e)
End Sub
Protected Overrides Sub OnControlRemoved(e As System.Windows.Forms.ControlEventArgs)
RemoveHandler e.Control.LocationChanged, AddressOf AlignToGrid
RemoveHandler e.Control.DragDrop, AddressOf AlignToGrid
MyBase.OnControlRemoved(e)
End Sub
Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
If _ShowGrid Then
ControlPaint.DrawGrid(e.Graphics, ClientRectangle, New Size(_GridSize, _GridSize), BackColor)
End If
MyBase.OnPaint(e)
End Sub
Private Sub AlignToGrid(sender As Object, e As EventArgs)
If _ShowGrid Then
Dim item As Control = CType(sender, Control)
Dim x As Integer = Math.Round(item.Left / _GridSize) * _GridSize
Dim y As Integer = Math.Round(item.Top / _GridSize) * _GridSize
item.Location = New Point(x, y)
End If
End Sub
End Class

View File

@ -0,0 +1,62 @@
Imports System.ComponentModel
'Imports System.ComponentModel.Design
Imports System.Drawing.Design
'Imports System.Windows.Forms
Imports System.Windows.Forms.Design
Public Class ClassStaticListEditor
Inherits UITypeEditor
Public Overrides Function GetEditStyle(context As ITypeDescriptorContext) As UITypeEditorEditStyle
Return UITypeEditorEditStyle.Modal
End Function
Public Overrides Function EditValue(context As ITypeDescriptorContext, provider As IServiceProvider, value As Object) As Object
Dim svc As IWindowsFormsEditorService = TryCast(provider.GetService(GetType(IWindowsFormsEditorService)), IWindowsFormsEditorService)
Dim SLString As String = DirectCast(value, StaticListValue).Value
If svc IsNot Nothing AndAlso SLString IsNot Nothing Then
Using Form As New frmStaticListEditor()
SLString = SLString.Replace(";", vbNewLine) ' Semikolon zu vbNewLine
Form.Value = SLString
If svc.ShowDialog(Form) = DialogResult.OK Then
Dim str As String = Form.Value.Replace(vbNewLine, ";") ' vbNewLine zu Semikolon
Dim sl As New StaticListValue(str)
value = sl
End If
End Using
End If
Return value
End Function
End Class
<Editor(GetType(ClassStaticListEditor), GetType(UITypeEditor))> _
<TypeConverter(GetType(StaticListTypeConverter))> _
Public Class StaticListValue
Private _value As String
Public Sub New(value As String)
Me._value = value
End Sub
Public Property Value As String
Get
Return _value
End Get
Set(value As String)
_value = value
End Set
End Property
End Class
Public Class StaticListTypeConverter
Inherits TypeConverter
' Diese Funktion gibt den String zurück, der im PropertyGrid für den Benutzer sichtbar ist, kann ruhig etwas hübscher sein als foo;bar;baz
Public Overrides Function ConvertTo(context As ITypeDescriptorContext, culture As Globalization.CultureInfo, value As Object, destinationType As Type) As Object
Dim staticlistvalue As StaticListValue = DirectCast(value, StaticListValue)
Dim stringvalue = staticlistvalue.Value
Return stringvalue.Replace(";", ", ")
End Function
End Class

View File

@ -0,0 +1,397 @@
Imports System.IO
Imports DD_LIB_Standards
Public Class ClassUpdate
Public Shared MyServer_UpdatePath As String
Public Shared VERSION_SERVER = "1.0.0.0"
Public Shared VERSION_USER = "1.0.0.0"
Public Shared FORCE_UPDATE As Boolean = False
Public Shared UPDATE_ID As Integer
Public Shared ALL_USERS As Boolean = False
Public Shared VERSIONS_FOR_FORCE_UPDATE As String = ""
Public Shared FOLDER_TEMP As String
Public Shared MY_INSTALL_PATH As String
Public Shared DT_UPDATE_ITEMS As DataTable
Public Shared DT_UPDATE As DataTable
Public Shared ERROR_WHILE_UPDATING As Boolean = False
Public Shared UPDATE_NECESSARY As Boolean = False
Public Shared UPDATE_CANCELLED As Boolean = False
Public Shared UPDATE_ERROR As Boolean = False
Private Shared RecExe_found As Boolean = False
Public Shared DT_USER_DATA As DataTable
Private Shared USER_INFO1, USER_INFO2, USER_INFO3 As String
Public Shared Function Init()
Try
Dim sql = String.Format("SELECT * FROM TBDD_MODULES WHERE UPPER(NAME) = UPPER('Record-Organizer')")
Dim KONFIG_DT As DataTable = clsDatabase.Return_Datatable(sql, False)
If KONFIG_DT.Rows.Count = 1 Then
MyServer_UpdatePath = KONFIG_DT.Rows(0).Item("VERSION_UPATE_PATH")
MIN_REQUIRED_VERSION = KONFIG_DT.Rows(0).Item("MIN_REQUIRED_VERSION")
Try
DBVERSION = KONFIG_DT.Rows(0).Item("DB_VERSION")
Catch ex As Exception
DBVERSION = "No DB Version-Config"
End Try
End If
sql = String.Format("Select * FROM TBDD_VERSION_UPDATE WHERE GUID = (Select MAX(GUID) FROM TBDD_VERSION_UPDATE WHERE UPPER(MODULE_NAME) = UPPER('{0}'))", "Record-Organizer")
DT_UPDATE = clsDatabase.Return_Datatable(sql)
If Not IsNothing(DT_UPDATE) Then
If DT_UPDATE.Rows.Count = 1 Then
UPDATE_ID = DT_UPDATE.Rows(0).Item("GUID")
VERSION_SERVER = DT_UPDATE.Rows(0).Item("VERSION_NO")
FORCE_UPDATE = DT_UPDATE.Rows(0).Item("FORCE_UPD")
VERSIONS_FOR_FORCE_UPDATE = DT_UPDATE.Rows(0).Item("VERSION_FORCE_UPD")
ALL_USERS = DT_UPDATE.Rows(0).Item("ALL_USERS")
sql = String.Format("SELECT * FROM TBDD_VERSION_ITEMS WHERE UPDATE_ID = {0} AND [INFO1] IS NOT NULL ORDER BY GUID", UPDATE_ID)
DT_UPDATE_ITEMS = clsDatabase.Return_Datatable(sql)
ClassLogger.Add(String.Format("{0} items need to be updated!", DT_UPDATE_ITEMS.Rows.Count.ToString), False)
Else
ClassLogger.Add(">> No Updates Configured!", False)
End If
End If
Return True
Catch ex As Exception
ClassLogger.Add("Unexpected Error in ClassUpdate - Init: " & ex.Message, True)
Return False
End Try
End Function
Public Shared Function InitInstallPath()
Try
Dim readValue = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\Digital Data\Record Organizer", "Path", Nothing)
If Not IsNothing(readValue) Then
MY_INSTALL_PATH = readValue
Return True
Else
MY_INSTALL_PATH = ""
For Each s In Directory.GetLogicalDrives()
If RecExe_found = False Then
DirSearch(s)
End If
Next
If RecExe_found = False Then
ClassLogger.Add("Could not find the path for RecordOrganizer", True)
Return False
End If
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in InitInstallPath: " & ex.Message, True)
Return False
End Try
End Function
Private Shared Sub DirSearch(ByVal sDir As String)
Dim d As String
Dim f As String
Try
For Each d In Directory.GetDirectories(sDir)
If d.Contains("$Recycle") = False Or d.Contains("System Volume") = False Then
If RecExe_found = False Then
For Each f In Directory.GetFiles(d, "DD-Record-Organizer.exe")
RecExe_found = True
MY_INSTALL_PATH = Path.GetDirectoryName(f)
Exit Sub
Next
End If
If RecExe_found = False Then
DirSearch(d)
End If
End If
Next
Catch excpt As System.Exception
ClassLogger.Add("Unexpected Error in DirSearch: " & excpt.Message, True)
MY_INSTALL_PATH = ""
End Try
End Sub
Public Shared Function InitUser(Optional _User As String = "")
Try
Dim sql = ""
USER_USERNAME = Environment.UserName
sql = String.Format("SELECT * FROM TBDD_USER WHERE (LOWER(USERNAME) = LOWER('{0}'))", USER_USERNAME)
Dim USER_DT As DataTable = clsDatabase.Return_Datatable(sql, True)
If USER_DT.Rows.Count = 0 Then
ClassLogger.Add(" - User '" & USER_USERNAME & "' not listed in Useradministration!", False)
'MsgBox("Achtung: Sie sind nicht in der Userverwaltung hinterlegt." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
'Me.Close()
Dim msg = String.Format("You are not listed in the Useradministration." & vbNewLine & "Please contact the admin.")
MsgBox(msg, MsgBoxStyle.Exclamation)
Return False
Else
USER_GUID = USER_DT.Rows(0).Item("GUID")
USER_LANGUAGE = USER_DT.Rows(0).Item("LANGUAGE")
sql = String.Format("SELECT UPDATE_PATH,TEMPPATH,INFO1,INFO2,INFO3 FROM TBDD_VERSION_USER_UPDATE_PATH WHERE USER_ID = {0} AND UPPER(MODULE_NAME) = UPPER('{1}')", USER_GUID, "Record-Organizer")
DT_USER_DATA = clsDatabase.Return_Datatable(sql)
MyServer_UpdatePath = DT_USER_DATA.Rows(0).Item("UPDATE_PATH")
sql = String.Format("SELECT CASE VERSION_CLIENT WHEN '' THEN '{3}' ELSE VERSION_CLIENT END AS VERSION_CLIENT FROM VWDD_LOGIN_USER_HISTORY WHERE GUID = (select MAX(GUID) from VWDD_LOGIN_USER_HISTORY where USER_ID = {0} AND VERSION_CLIENT <> '' AND UPPER(MACHINE_NAME) = UPPER('{1}') AND UPPER(MODULE) = UPPER('{2}'))", USER_GUID, Environment.MachineName, "Record-Organizer", VERSION_SERVER)
VERSION_USER = clsDatabase.Execute_Scalar(sql)
If IsNothing(VERSION_USER) Then
sql = String.Format("SELECT CASE VERSION_CLIENT WHEN '' THEN '{2}' ELSE VERSION_CLIENT END AS VERSION_CLIENT FROM VWDD_LOGIN_USER_HISTORY WHERE GUID = (select MAX(GUID) from VWDD_LOGIN_USER_HISTORY where USER_ID = {0} AND VERSION_CLIENT <> '' AND UPPER(MODULE) = UPPER('{1}'))", USER_GUID, "Record-Organizer", VERSION_SERVER)
VERSION_USER = clsDatabase.Execute_Scalar(sql)
If IsNothing(VERSION_USER) Then
VERSION_USER = "1.0.0.0"
End If
End If
VERSION_USER = CInt(VERSION_USER.ToString.Replace(".", ""))
VERSION_SERVER = CInt(VERSION_SERVER.ToString.Replace(".", ""))
Return True
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in InitUser_Update_Spec: " & ex.Message, True)
Return False
End Try
End Function
Public Shared Sub RUN_UPDATE()
Dim UPD_VC As Boolean = False
Dim UPD_RM As Boolean = False
Dim KEEP_TEMPPATH As Boolean = False
If DT_USER_DATA.Rows.Count <> 1 Then
Exit Sub
Else
USER_INFO1 = DT_USER_DATA.Rows(0).Item("INFO1")
USER_INFO2 = DT_USER_DATA.Rows(0).Item("INFO2")
USER_INFO3 = DT_USER_DATA.Rows(0).Item("INFO3")
If DT_USER_DATA.Rows(0).Item("TEMPPATH") <> "" Then
FOLDER_TEMP = DT_USER_DATA.Rows(0).Item("TEMPPATH")
Else
For Each Upd_item As DataRow In DT_UPDATE_ITEMS.Rows
If Upd_item.Item("ITEM_INFO") = "VERSION_CHECKER.exe" Then
If Not USER_INFO1.Contains(Upd_item.Item("INFO2")) Then
UPD_VC = True
End If
ElseIf Upd_item.Item("ITEM_INFO") = "RecordOrganizer_RightManager.exe" Then
If Not USER_INFO1.Contains(Upd_item.Item("INFO2")) Then
UPD_RM = True
End If
End If
If Not IsDBNull(Upd_item.Item("INFO3")) Then
FOLDER_TEMP = Upd_item.Item("INFO3")
End If
Next
End If
End If
If UPD_VC = True Or UPD_RM = True Then
UPDATE_NECESSARY = True
End If
If UPDATE_NECESSARY = False Then
Exit Sub
End If
'If FORCE_UPDATE = False Then
' If VERSIONS_FOR_FORCE_UPDATE.Contains(VERSION_USER) Then
' ClassLogger.Add(String.Format("VersionChecker: ForceUpdate for User as Version '{0}' is used!", VERSION_USER), False)
' ClassHelper.InsertEssential_Log(USER_GUID, "USER-ID", String.Format("VersionChecker: ForceUpdate for User as Version '{0}' is used!", VERSION_USER))
' FORCE_UPDATE = True
' End If
'End If
'If FORCE_UPDATE = False Then
' If ALL_USERS = False Then
' sql = String.Format("SELECT COUNT(GUID) FROM TBDD_VERSION_USER_UPDATE WHERE USER_ID = {0} AND UPDATE_ID = {1}", USER_GUID, UPDATE_ID)
' If clsDatabase.Execute_Scalar(sql) = 0 Then
' ClassLogger.Add(String.Format("VersionChecker: User is not part of update-group - UPDATE-ID: {0}", UPDATE_ID), False)
' ClassHelper.InsertEssential_Log(USER_GUID, "USER-ID", String.Format("VersionChecker: User is not part of update-group - UPDATE-ID: {0}", UPDATE_ID))
' Exit Sub
' End If
' End If
Dim msg = "Auf dem Server liegt ein Update für ein ADDI-AddOn bereit!" & vbNewLine & "Wollen Sie das Update nun durchführen? Die Dauer ist abhängig von Ihrer Netzwerkverbindung!"
If USER_LANGUAGE <> "de-DE" Then
msg = "There is a new release available for an ADDI-AddOn!" & vbNewLine & "Would You like to install the update now? This might take some time minute(s)!"
End If
Dim result As MsgBoxResult
result = MessageBox.Show(msg, "Confirmation:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = MsgBoxResult.No Then
UPDATE_CANCELLED = True
Exit Sub
End If
'End If
If FOLDER_TEMP <> String.Empty Then
If Directory.Exists(FOLDER_TEMP) Then
' GetTempFolderGuid()
' If FOLDER_TEMP <> String.Empty Then
Dim error_while_copying = False
For Each Upd_item As DataRow In DT_UPDATE_ITEMS.Rows
ClassLogger.Add(String.Format("...working on item {0}: ", Upd_item.Item("ITEM_INFO")), False)
If Upd_item.Item("ITEM_INFO") = "VERSION_CHECKER.exe" Then
KEEP_TEMPPATH = Upd_item.Item("BIT3")
End If
If error_while_copying = True Then
Exit For
End If
Dim tempfilename = Path.Combine(FOLDER_TEMP, Upd_item.Item("ITEM_INFO"))
If File.Exists(tempfilename) Then
Try
Dim error_while_replacing = False
Dim BackUpOfFileToReplace As String = MY_INSTALL_PATH & "\" & Upd_item.Item("INFO1") & Upd_item.Item("ITEM_INFO") & ".bac"
BackUpOfFileToReplace = BackUpOfFileToReplace.Replace("//", "/")
Dim sourcefile = Path.Combine(FOLDER_TEMP, Upd_item.Item("ITEM_INFO"))
Dim targetfile
If IsDBNull(Upd_item.Item("INFO1")) Then
targetfile = Path.Combine(MY_INSTALL_PATH, Upd_item.Item("ITEM_INFO"))
Else
If Upd_item.Item("INFO1") <> String.Empty Then
targetfile = Path.Combine(MY_INSTALL_PATH, Upd_item.Item("INFO1"), Upd_item.Item("ITEM_INFO"))
Else
targetfile = Path.Combine(MY_INSTALL_PATH, Upd_item.Item("ITEM_INFO"))
End If
End If
targetfile = targetfile.ToString.Replace("//", "/")
ClassLogger.Add(String.Format("...replacing targetfile '{0}': ", targetfile), False)
Try
' Replace the file.
If File.Exists(targetfile) Then
If File_Rename(targetfile, BackUpOfFileToReplace) = True Then
If File.Exists(BackUpOfFileToReplace) Then
If KEEP_TEMPPATH Then
If CopyFile(sourcefile, targetfile) = True Then
File_Delete(BackUpOfFileToReplace)
ClassLogger.Add(String.Format("...targetfile '{0}' was copied! ", targetfile), False)
Dim updinfo
If USER_INFO1 <> "" Then
updinfo = USER_INFO1 & ";" & Upd_item.Item("INFO1") & "V" & Upd_item.Item("INFO2")
Else
updinfo = Upd_item.Item("INFO1") & "V" & Upd_item.Item("INFO2")
End If
Dim _Sql = String.Format("Update TBDD_VERSION_USER_UPDATE_PATH SET INFO1 = '{2}' WHERE USER_ID = {0} AND UPPER(MODULE_NAME) = UPPER('{1}')", USER_GUID, "Record-Organizer", updinfo)
clsDatabase.Execute_non_Query(_Sql)
End If
Else
If MoveFile(sourcefile, targetfile) = True Then
File_Delete(BackUpOfFileToReplace)
ClassLogger.Add(String.Format("...targetfile '{0}' was replaced! ", targetfile), False)
Dim updinfo
If USER_INFO1 <> "" Then
updinfo = USER_INFO1 & ";" & Upd_item.Item("INFO1") & "V" & Upd_item.Item("INFO2")
Else
updinfo = Upd_item.Item("INFO1") & "V" & Upd_item.Item("INFO2")
End If
Dim _Sql = String.Format("Update TBDD_VERSION_USER_UPDATE_PATH SET INFO1 = '{2}' WHERE USER_ID = {0} AND UPPER(MODULE_NAME) = UPPER('{1}')", USER_GUID, "Record-Organizer", updinfo)
clsDatabase.Execute_non_Query(_Sql)
Else
ClassLogger.Add(String.Format("MoveFile was not successfull! BackupFile will be activated!"))
'Verschieben hat nicht geklappt also die Backupdatei wieder umbenennen!
File_Rename(BackUpOfFileToReplace, targetfile)
End If
End If
End If
End If
Else
End If
Catch ex As Exception
ClassLogger.Add(String.Format("Error while copying file {0} to {1}: " & ex.Message, sourcefile, targetfile))
error_while_replacing = True
UPDATE_ERROR = True
End Try
Catch ex As Exception
ClassLogger.Add(String.Format("Unexpected Error in Replace_Files: {0}", ex.Message))
UPDATE_ERROR = True
End Try
End If
Next
Dim upd = String.Format("Update TBDD_VERSION_USER_UPDATE_PATH SET TEMPPATH = '' WHERE USER_ID = {0} AND UPPER(MODULE_NAME) = UPPER('{1}')", USER_GUID, "Record-Organizer")
clsDatabase.Execute_non_Query(upd)
Try
If KEEP_TEMPPATH = False Then
'Delete the tempfolder and all data
System.IO.Directory.Delete(FOLDER_TEMP, True)
Else
ClassLogger.Add(String.Format("TEMP FOLDER SHALL BE KEPT..."), False)
End If
Catch ex As Exception
End Try
'Else
' ClassLogger.Add(String.Format("The temporaryFolder could not be created!"))
'End If
Else
ClassLogger.Add(String.Format("The Updatepath '{0}'is not accessible or does not exist", MyServer_UpdatePath))
End If
Else
ClassLogger.Add(String.Format("NO ACTION: the Updatepath is empty"))
End If
End Sub
Private Shared Function GetTempFolderGuid() As String
Try
Dim folder As String = Path.Combine(Path.GetTempPath, Guid.NewGuid.ToString)
If Not Directory.Exists(folder) Then
Directory.CreateDirectory(folder)
End If
FOLDER_TEMP = folder
Catch ex As Exception
ClassLogger.Add(String.Format("Error while Creating tempfolder: " & ex.Message))
End Try
End Function
Private Shared Function File_Rename(targetfile As String, Renamefilestring As String)
Try
Renamefilestring = Renamefilestring.Replace("\\", "\")
If File.Exists(Renamefilestring) Then
If File_Delete(Renamefilestring) = False Then
Return False
End If
End If
Rename(targetfile, Renamefilestring)
Return True
Catch ex As Exception
ClassLogger.Add(String.Format("ClassUpdate - Unexpected Error in File_Rename: " & "OldPath '{0}'" & "NewPath '{1}'" & "ERROR: {2}", targetfile, Renamefilestring, ex.Message))
UPDATE_ERROR = True
Return False
End Try
End Function
Private Shared Function File_Delete(deletefile As String)
Try
File.Delete(deletefile)
Return True
Catch ex As Exception
ClassLogger.Add(String.Format("Unexpected Error in File_Delete: " & vbNewLine & "deletefile '{0}'" & vbNewLine & "ERROR: {2}", deletefile, ex.Message))
UPDATE_ERROR = True
Return False
End Try
End Function
Private Shared Function MoveFile(sourcefile As String, targetfile As String)
Try
File.Move(sourcefile, targetfile)
Return True
Catch ex As Exception
ClassLogger.Add(String.Format("Unexpected Error in MoveFile: sourcefile '{0}', targetfile '{1}' - ERROR: {2}", sourcefile, targetfile, ex.Message))
UPDATE_ERROR = True
Return False
End Try
End Function
Private Shared Function CopyFile(sourcefile As String, destfile As String)
Try
File.Copy(sourcefile, destfile, True)
Return True
Catch ex As Exception
ClassLogger.Add(String.Format("Unexpected Error in CopyFile: sourcefile '{0}', destfile '{1}' - ERROR: {2}", sourcefile, destfile, ex.Message))
UPDATE_ERROR = True
Return False
End Try
End Function
End Class

View File

@ -0,0 +1,13 @@
Public Class ClassUser
Public Shared Sub LogoutUser()
Try
Dim SQL
SQL = $"DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = {USER_GUID} AND MODULE = 'Record-Organizer'"
ClassDatabase.Execute_non_Query(sql)
Catch ex As Exception
ClassLogger.Add("Error while logging out user: " & ex.Message)
End Try
End Sub
End Class

View File

@ -0,0 +1,391 @@
Imports WINDREAMLib
Imports DD_LIB_Standards
Public Class ClassWDRights
#Region "+++++ Konstanten +++++"
Const REL_Document_AccessRight = "AccessRight"
Const COL_AccessRight_AccessRightID = "dwAccessRightID"
Const COL_AccessRight_AccessRight = "dwAccessRight"
Const REL_AccessRight_UserOrGroup = "AccessRightUserOrGroup"
Const WMAccessRightUndefined = 0
Const WMAccessRightRead = 1
Const WMAccessRightWrite = 2
Const WMAccessRightReadWrite = 3
Const WMAccessRightAdmin = 4
Const WMAccessRightAllRights = 7 ' doc+folder: read, write and admin access
Const WMUserTypeMain = 1
Const WMUserTypeNormal = 4
Const WMUserTypeInactive = 8
Const WMGroupTypeAdmin = 2
Const WMEntityGroups = 13
Const WMEntityUser = 18
Const WMGroupTypeAll = 127
#End Region
#Region "+++++ Variables +++++"
Public Shared AD_DOMAIN As String
Public Shared AD_USER As String
Public Shared AD_USER_PW As String
Public Shared AD_SERVER As String
Public Shared WD_RIGHT_ADMIN As Integer
Public Shared MSG_RESULT = ""
#End Region
Public Shared Function Init()
Try
MSG_RESULT = ""
If LogErrorsOnly = False Then ClassLogger.Add(String.Format(" >> Init ClassWDRights started - " & Now & " ..."), False)
Dim DT_KONFIG As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_SERVICE_RIGHT_CONFIG WHERE GUID = 1")
AD_DOMAIN = DT_KONFIG.Rows(0).Item("AD_DOMAIN")
AD_USER = DT_KONFIG.Rows(0).Item("AD_USER")
WD_RIGHT_ADMIN = DT_KONFIG.Rows(0).Item("WD_RIGHT")
If clsDatabase.DB_PROXY_INITIALIZED = True And ClassProxy.MyLinkedServer <> String.Empty Then
ClassLogger.Add("User configured a proxy: " & ClassProxy.MyLinkedServer, False)
AD_SERVER = ClassProxy.MyLinkedServer
Else
AD_SERVER = DT_KONFIG.Rows(0).Item("AD_SERVER")
End If
Dim PWplainText As String
Dim wrapper As New ClassEncryption("!35452didalog=")
' DecryptData throws if the wrong password is used.
Try
PWplainText = wrapper.DecryptData(DT_KONFIG.Rows(0).Item("AD_USER_PW"))
Catch ex As Exception
ClassLogger.Add("The Userpassword could not be decrypted", False)
PWplainText = ""
End Try
AD_USER_PW = PWplainText
If LogErrorsOnly = False Then ClassLogger.Add(String.Format(" >> ClassWDRights Init'ed - AD_DOMAIN: '{0}', AD_USER: '{1}', AD_SERVER: '{2}'", AD_DOMAIN, AD_USER, AD_SERVER), False)
Return True
Catch ex As Exception
ClassLogger.Add("Unexpected Error in ClassRights Init: " & vbNewLine & ex.Message, True)
Return False
End Try
End Function
'''Renews all rights of the passed doc-file
''' </summary>
''' <returns>Returns Boolean True when successfull</returns>
''' <remarks></remarks>
Public Shared Function Doc_Renew_Rights(doc_id As Integer, docpath As String, deleterights As Boolean) As Boolean
Try
If LogErrorsOnly = False Then ClassLogger.Add(String.Format(" >> Working on rights for file: {0}", docpath), False)
Dim DT_USER_RIGHT As DataTable
Dim DT_GROUP_RIGHT As DataTable
Dim oSession
Dim oWMObject As WINDREAMLib.WMObject
Dim UserGroupRelation
Dim UserOrGroup
Dim oUSer
Try
'Dedizierte Session herstellen
oSession = GetWMSessionAsUser(AD_DOMAIN, AD_SERVER, AD_USER, AD_USER_PW)
Catch ex As Exception
Dim msg = "Error in Doc_Renew_Rights-GetWMSessionAsUser : " & ex.Message
ClassLogger.Add(msg, True)
Return False
End Try
If Not IsNothing(oSession) Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Session created.", False)
Dim sql = String.Format("SELECT * FROM [dbo].[FNPMO_GET_RIGHTS_FOR_DOC] ({0}) where USER_OR_GROUP = 'USER'", doc_id)
DT_USER_RIGHT = clsDatabase.Return_Datatable(sql)
sql = String.Format("SELECT * FROM [dbo].[FNPMO_GET_RIGHTS_FOR_DOC] ({0}) where USER_OR_GROUP = 'GROUP'", doc_id)
DT_GROUP_RIGHT = clsDatabase.Return_Datatable(sql)
If IsNothing(DT_USER_RIGHT) Then
Dim msg = "Error while receiving rights for DocID"
clsLogger.Add(msg, True)
Return False
Else
If LogErrorsOnly = False Then clsLogger.Add(String.Format(" >> Amount of Userrights: {0}", DT_USER_RIGHT.Rows.Count), False)
End If
If LogErrorsOnly = False Then clsLogger.Add(String.Format(" >> Amount of Grouprights: {0}", DT_GROUP_RIGHT.Rows.Count), False)
Try
'Object definieren
oWMObject = oSession.GetWMObjectByPath(0, docpath.Substring(2))
If LogErrorsOnly = False Then ClassLogger.Add(" >> Object created.", False)
Catch ex As Exception
Dim msg = "Error GetWMObjectByPath: (FDSR) " & docpath.Substring(2) & vbNewLine & Err.Description
ClassLogger.Add(msg, True)
Return False
End Try
Dim lret
Try
' Objekt muss zur Rechteänderung gelockt werden
lret = oWMObject.LockRights()
Catch ex As Exception
Dim msg = "Error while locking file" & ex.Message
ClassLogger.Add(msg, True)
Return False
End Try
If LogErrorsOnly = False Then ClassLogger.Add(" >> Object locked.", False)
If CBool(lret) = False Then
Dim msg = "Error in setting lock .LockRights - Err.Number: " & Err.Number & vbCrLf & Err.Description
ClassLogger.Add(msg, True)
Return False
End If
' Rechteträger-Liste holen
Dim AccessRights
AccessRights = oWMObject.GetWMObjectRelationByName(REL_Document_AccessRight)
If LogErrorsOnly = False Then ClassLogger.Add(" >> AccessRights created.", False)
'Bei Fehler in Rechteauswertung
If Err.Number <> 0 Then
Dim msg = "Error in setting REL_Document_AccessRight - Err.Number: " & Err.Number & vbCrLf & Err.Description
ClassLogger.Add(msg, True)
Return False
End If
'############################# Rechte löschen ################################################################################
'#############################################################################################################################
If deleterights = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> rights for document will now be deleted.", False)
'Erst einmal alle anderen Rechte löschen
Dim i As Integer = 1
' und nun jeden Rechteträger verarbeiten
For Each aRightRelation In AccessRights
' Auflistung der Rechteträger-Informationen holen
UserGroupRelation = aRightRelation.GetWMObjectRelationByName(REL_AccessRight_UserOrGroup)
If Err.Number <> 0 Then
Dim msg = "Error in setting REL_AccessRight_UserOrGroup - Err.Number: " & Err.Number & vbCrLf & Err.Description
ClassLogger.Add(msg, True)
Return False
End If
' Zugriff auf das Benutzer/Gruppen-Objekt
UserOrGroup = UserGroupRelation.item(0)
Dim _msg As String
If (UserOrGroup.aWMEntity = WMEntityGroups) Then
_msg = "Right for Group '" & UserOrGroup.aName & "'"""
Else
_msg = "Right for User: '" & UserOrGroup.aName & "'"""
End If
If LogErrorsOnly = False Then ClassLogger.Add(String.Format(" >> {0} will now be deleted.", _msg), False)
If Err.Number <> 0 Then
Dim msg = "Error in setting UserGroupRelation - Err.Number: " & Err.Number & vbCrLf & Err.Description
ClassLogger.Add(msg, True)
Return False
End If
'einem Rechteträger ALLE Rechte zu entziehen
'entfernt ihn gleichzeitig aus der Auflistung der Rechteträger
Try
AccessRights.Delete2(UserOrGroup, WMAccessRightAllRights)
Catch ex As Exception
Dim msg = "Error in AccessRights.Delete2 (Doc_RenewRights) Doc-ID: " & doc_id & " - UserGroup: " & UserOrGroup & " - ErrorMsg: " & ex.Message
ClassLogger.Add(msg, True)
Continue For
End Try
i += 1
_msg = _msg.Replace(" '", "")
If LogErrorsOnly = False Then ClassLogger.Add(String.Format(" >> {0} was deleted.", _msg), False)
Next
If LogErrorsOnly = False Then ClassLogger.Add(" >> All rights for doc were deleted....", False)
End If
Err.Clear()
' Wenn ALLE Rechteträger entfernt werden (FOR EACH),
' dann muss mindestens EIN Rechteträger mit dem Recht zur Rechteänderung
' wieder zugefügt werden!!!!! Dies ist der ADDI-Right User!
'Für jeden User das Recht einzeln hinzufügen
For Each User_Row As DataRow In DT_USER_RIGHT.Rows
Dim fileright 'Recht als Integer
Dim StringUserRight
Try
StringUserRight = AD_DOMAIN & "\" & User_Row.Item("USR_NAME")
fileright = User_Row.Item("USR_RIGHT")
If LogErrorsOnly = False Then ClassLogger.Add(String.Format(" >> Working on right for user-right: {0}-{1}", StringUserRight, fileright), False)
Try
' User holen
oUSer = oSession.GetWMObjectByName(WMEntityUser, StringUserRight)
If LogErrorsOnly = False Then ClassLogger.Add(" >> got oUSer...", False)
Catch ex As Exception
Dim msg = String.Format(">> Could not create windream-Usersession for user '{0}' - check whether user is part of windream-group!", StringUserRight)
ClassLogger.Add(msg, False)
MSG_RESULT &= msg & vbNewLine
Continue For
End Try
If Not IsNothing(oUSer) Then
Try
AccessRights.Insert2(oUSer, fileright) 'WMAccessRightAllRights)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Right was set...", False)
Catch ex As Exception
Dim msg = String.Format(">> Could not set right for user {0} - AccessRights.Insert2: {1}", StringUserRight, ex.Message)
ClassLogger.Add(msg, True)
Continue For
End Try
End If
Catch ex As Exception
Dim _right
Select Case fileright
Case WMAccessRightRead
_right = "READ"
Case WMAccessRightWrite
_right = "WRITE"
Case WMAccessRightAdmin
_right = "ADMIN"
Case WMAccessRightAllRights
_right = "ALL RIGHTS"
Case WMAccessRightReadWrite
_right = "READ WRITE"
End Select
MSG_RESULT &= String.Format("Error while working on RightChange:" & vbNewLine & "Fileright: {0}" & vbNewLine & "User: {1} " & vbNewLine & "File: {2}", _right, StringUserRight, docpath) & vbNewLine
ClassLogger.Add(ex.Message)
End Try
Next
'Für jede Gruppe das Recht einzeln hinzufügen
For Each Group_Row As DataRow In DT_GROUP_RIGHT.Rows
Dim fileright 'Recht als Integer
Dim StringGroupRight
Dim _oGroup
Try
StringGroupRight = AD_DOMAIN & "\" & Group_Row.Item("USR_NAME")
fileright = Group_Row.Item("USR_RIGHT")
If LogErrorsOnly = False Then clsLogger.Add(String.Format(" >> Working on right for group-right: {0}-{1}", StringGroupRight, fileright), False)
Try
' User holen
_oGroup = oSession.GetWMObjectByName(WMEntityGroups, StringGroupRight)
If LogErrorsOnly = False Then clsLogger.Add(" >> got Group...", False)
Catch ex As Exception
Dim msg = String.Format(">> Could not create windream-Usersession for group '{0}' - check whether group exists in windream!", StringGroupRight)
clsLogger.Add(msg, False)
MSG_RESULT &= msg & vbNewLine
Continue For
End Try
If Not IsNothing(_oGroup) Then
Try
AccessRights.Insert2(_oGroup, fileright) 'WMAccessRightAllRights)
If LogErrorsOnly = False Then clsLogger.Add(" >> Right was set...", False)
Catch ex As Exception
Dim msg = String.Format(">> Could not set right for docID: {0} group {1} - AccessRights.Insert2: {2}", doc_id, StringGroupRight, ex.Message)
clsLogger.Add(msg, True)
Continue For
End Try
End If
Catch ex As Exception
Dim _right
Select Case fileright
Case WMAccessRightRead
_right = "READ"
Case WMAccessRightWrite
_right = "WRITE"
Case WMAccessRightAdmin
_right = "ADMIN"
Case WMAccessRightAllRights
_right = "ALL RIGHTS"
Case WMAccessRightReadWrite
_right = "READ WRITE"
End Select
MSG_RESULT &= String.Format("Error while working on RightChange2:" & vbNewLine & "Fileright: {0}" & vbNewLine & "Group: {1} " & vbNewLine & "File: {2}", _right, StringGroupRight, docpath) & vbNewLine
clsLogger.Add(ex.Message)
End Try
Next
Try
'Speichern nicht vergessen
oWMObject.Save()
If LogErrorsOnly = False Then ClassLogger.Add(" >> Doc was saved...", False)
Catch ex As Exception
Dim msg = String.Format("Error at Object2Change.Save - DocID ({0}): {1}", doc_id, ex.Message)
ClassLogger.Add(msg, True)
If oWMObject.aLocked = True Then
oWMObject.unlock()
If LogErrorsOnly = False Then ClassLogger.Add(" >> Doc unlocked after error!", False)
End If
Return False
End Try
'und der Vollständigkeit halber auch ein Unlock
If oWMObject.aLocked = True Then
Try
oWMObject.unlock()
If LogErrorsOnly = False Then ClassLogger.Add(" >> Doc was unlocked...", False)
Catch ex As Exception
Dim msg = "Fehler bei Unlock - Error: " & ex.Message
ClassLogger.Add(msg, True)
Return False
End Try
End If
ClassHelper.InsertEssential_Log(doc_id, "DOC-ID", "Rights for doc successfully renewed - Doc_Renew_Rights")
'jetzt True zurückgeben
Return True
Else
Dim msg = "ERROR : no session could be created (3)!"
ClassLogger.Add(msg, True)
Return False
End If
Catch ex As Exception
ClassLogger.Add(String.Format("Unexpected Error while Doc_Renew_Rightss DocID: {0}", doc_id), True)
Dim msg = "ErrorMessage: " & vbNewLine & ex.Message
ClassLogger.Add(msg, False)
Return False
End Try
End Function
Public Shared Function GetWMSessionAsUser(Domain, ServerName, UserName, Password)
Try
Dim SessionAsUser
Dim aConnect, aUserId, aSession
' Hilfsobjekte erschaffen, um eine Verbindung zum windream Server herzustellen
' mit der gewünschten Benutzer-Identität
aConnect = CreateObject("Windream.WMConnect")
'Bei einer impersonifizierten Session ist zu beachten, dass die ModuleID 9 zu nutzen ist.
'Wird keine Session-ID angegeben, hat die Session die ID 0 (Default).
aConnect.ModuleId = 9
If Err.Number <> 0 Then
Dim msg = "Error in CreateObject (aConnect) - Err.Number: " & Err.Number & vbNewLine & Err.Description
ClassLogger.Add(msg, True)
SessionAsUser = Nothing
Return SessionAsUser
End If
aUserId = CreateObject("WMOTool.WMUserIdentity")
If Err.Number <> 0 Then
Dim msg = "Error in CreateObject('WMOTool.WMUserIdentity') - Err.Number: " & Err.Number & vbNewLine & Err.Description
ClassLogger.Add(msg, True)
SessionAsUser = Nothing
Return SessionAsUser
End If
aUserId.aDomain = Domain
aUserId.aServerName = ServerName
aUserId.aUserName = UserName
aUserId.aPassword = Password
aSession = aConnect.Login(aUserId)
If Err.Number <> 0 Then
Dim msg = "Error in Connect.Login(aUserId) - Err.Number: " & Err.Number & vbNewLine & Err.Description
ClassLogger.Add(msg, True)
SessionAsUser = Nothing
Return SessionAsUser
Else
SessionAsUser = aSession
If aSession.aLoggedin = True Then
Return SessionAsUser
End If
End If
Catch ex As Exception
Dim msg = "Unexpected Error in DDLibraries-GetWMSessionAsUser: " & ex.Message & vbNewLine & _
String.Format("Domain: {0}, ServerName: {1}, UserName: {2}, Password: {3},", Domain, ServerName, UserName, Password)
ClassLogger.Add(msg, True)
Return Nothing
End Try
End Function
End Class

View File

@ -0,0 +1,607 @@
Imports DevExpress.Utils
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraEditors
Imports DevExpress.XtraEditors.Repository
Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraEditors.Controls
Public Class ClassWindreamDocGrid
Private Shared _Helper As ClassHelper
Public Shared SELECTED_DOC_PATH As String
'Public Shared RESULT_OBJECTTYPE As String
Public Shared SELECTED_INWORK As Boolean
Public Shared SELECTED_DOC_ID As Integer
Public Shared SELECTED_DOC_RIGHT As Integer
'Public Shared RESULT_DISPLAYNAME As String
Public Shared RESULT_CONFIG_IDS As Hashtable
Private Shared DATE_COLUMNS As New List(Of String)
Private Shared DATE_COLUMNS_CONFIG As New List(Of String)
Public Shared DT_RESULTFILES As DataTable
Private Shared DT_DROPDOWN_ITEMS As DataTable
Private Shared _dropdownValueChangedHandler As EventHandler
Private Shared _datepickerValueChangedHandler As EventHandler
Private Shared _textValueChangedHandler As EventHandler
Private Shared _checkValueChangedHandler As EventHandler
Private Shared Function Init_Table()
Try
Dim table As New DataTable
table.TableName = "TBSELECTED_FILES"
' Create two columns, ID and Name.
table.Columns.Add("DOC_ID", GetType(Integer))
table.Columns.Add("DOC_PATH", GetType(System.String))
table.Columns.Add("OBJECTTYPE", GetType(System.String))
table.Columns.Add("INWORK", GetType(System.Boolean))
table.Columns.Add("DISPLAYNAME", GetType(System.String))
table.Columns.Add("ACCESS_RIGHT", GetType(Integer))
DT_RESULTFILES = table
Return True
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Initting TableResult Docs: " & ex.Message, True)
DT_RESULTFILES = Nothing
Return False
End Try
End Function
Public Shared Sub GetDocItems(gridView As GridView)
_Helper = New ClassHelper
SELECTED_DOC_ID = 0
If Init_Table() = True Then
Console.WriteLine("gridView.SelectedRowsCount: " & gridView.SelectedRowsCount.ToString)
gridView.EndSelection()
If gridView.SelectedRowsCount >= 1 Then
DT_RESULTFILES.Clear()
For Each row In gridView.GetSelectedRows
Dim newRow As DataRow = DT_RESULTFILES.NewRow()
Try
Dim DOC_ID = gridView.GetRowCellValue(row, "DocID")
SELECTED_DOC_ID = DOC_ID
newRow("DOC_ID") = gridView.GetRowCellValue(row, "DocID")
Catch ex As Exception
newRow("DOC_ID") = 0
SELECTED_DOC_ID = 0
End Try
Try
SELECTED_DOC_RIGHT = gridView.GetRowCellValue(row, "ACCESS_RIGHT")
newRow("ACCESS_RIGHT") = gridView.GetRowCellValue(row, SELECTED_DOC_RIGHT)
Catch ex As Exception
newRow("ACCESS_RIGHT") = 1
End Try
Try
SELECTED_DOC_PATH = _Helper.FORMAT_WM_PATH(gridView.GetRowCellValue(row, "FULLPATH"))
newRow("DOC_PATH") = gridView.GetRowCellValue(row, "FULLPATH")
Catch ex As Exception
newRow("DOC_PATH") = ""
End Try
Try
newRow("OBJECTTYPE") = gridView.GetRowCellValue(row, "OBJECTTYPE")
Catch ex As Exception
newRow("OBJECTTYPE") = ""
End Try
Try
newRow("INWORK") = gridView.GetRowCellValue(row, "in work?")
SELECTED_INWORK = gridView.GetRowCellValue(row, "in work?")
Catch ex As Exception
newRow("INWORK") = False
SELECTED_INWORK = False
End Try
Try
Dim dpn = gridView.GetRowCellValue(row, "Displayname")
If IsDBNull(dpn) Or IsNothing(dpn) Then
dpn = ""
End If
newRow("DISPLAYNAME") = dpn
Catch ex As Exception
newRow("DISPLAYNAME") = ""
End Try
DT_RESULTFILES.Rows.Add(newRow)
DT_RESULTFILES.AcceptChanges()
Next
Else
Dim newRow As DataRow = DT_RESULTFILES.NewRow()
Try
Dim DOC_ID = gridView.GetFocusedRowCellValue(gridView.Columns("DocID"))
SELECTED_DOC_ID = DOC_ID
newRow("DOC_ID") = gridView.GetFocusedRowCellValue(gridView.Columns("DocID"))
Catch ex As Exception
newRow("DOC_ID") = 0
SELECTED_DOC_ID = 0
End Try
Try
SELECTED_DOC_PATH = gridView.GetFocusedRowCellValue(gridView.Columns("FULLPATH"))
If IsNothing(SELECTED_DOC_PATH) Then
SELECTED_DOC_PATH = gridView.GetFocusedRowCellValue(gridView.Columns("FULL_FILENAME"))
newRow("DOC_PATH") = gridView.GetFocusedRowCellValue(gridView.Columns("FULL_FILENAME"))
Else
newRow("DOC_PATH") = gridView.GetFocusedRowCellValue(gridView.Columns("FULLPATH"))
End If
Catch ex As Exception
Try
Catch ex1 As Exception
newRow("DOC_PATH") = ""
End Try
End Try
Try
newRow("OBJECTTYPE") = gridView.GetFocusedRowCellValue(gridView.Columns("OBJECTTYPE"))
Catch ex As Exception
newRow("OBJECTTYPE") = ""
End Try
Try
newRow("INWORK") = gridView.GetFocusedRowCellValue(gridView.Columns("in work?"))
SELECTED_INWORK = gridView.GetFocusedRowCellValue(gridView.Columns("in work?"))
Catch ex As Exception
newRow("INWORK") = False
SELECTED_INWORK = False
End Try
Try
Dim dpn = gridView.GetFocusedRowCellValue(gridView.Columns("Displayname"))
If IsDBNull(dpn) Or IsNothing(dpn) Then
dpn = ""
End If
newRow("DISPLAYNAME") = dpn
Catch ex As Exception
newRow("DISPLAYNAME") = ""
End Try
DT_RESULTFILES.Rows.Add(newRow)
DT_RESULTFILES.AcceptChanges()
End If
End If
End Sub
Public Shared Sub FillColumns(gridView As GridView,
DT_RESULT As DataTable, DT_WINDREAM_RESULTLIST As DataTable, DT_DOCRESULT_DROPDOWN_ITEMS As DataTable,
DropdownValueChangedHandler As EventHandler, DatepickerValueChangedHandler As EventHandler, TextValueChangedHandler As EventHandler, CheckValueChangedHandler As EventHandler,
SearchType As String, RECORD_ID As Integer)
' Handler speichern
_dropdownValueChangedHandler = DropdownValueChangedHandler
_datepickerValueChangedHandler = DatepickerValueChangedHandler
_textValueChangedHandler = TextValueChangedHandler
_checkValueChangedHandler = CheckValueChangedHandler
'Dropdown Tabelle speichern
DT_DROPDOWN_ITEMS = DT_DOCRESULT_DROPDOWN_ITEMS
' Tabelle vor dem verändern klonen
Dim clonedTable As DataTable = DT_RESULT.Clone()
RESULT_CONFIG_IDS = New Hashtable()
For Each row As DataRow In DT_WINDREAM_RESULTLIST.Rows
Dim isConfig As Boolean = row.Item("CONFIG_COLUMNS")
Dim guid As Integer = row.Item("GUID")
Dim columnTitle As String = row.Item("HEADER_CAPTION")
Dim type As Integer = row.Item("TYPE_ID")
If type = 4 And isConfig = False Then
DATE_COLUMNS.Add(columnTitle)
ElseIf type = 4 And isConfig = True Then
DATE_COLUMNS_CONFIG.Add(columnTitle)
End If
If isConfig = True Then
RESULT_CONFIG_IDS.Add(columnTitle, guid)
End If
Next
' Tabelle zurückspielen und zuweisen
Try
clonedTable.Load(DT_RESULT.CreateDataReader())
DT_RESULT = clonedTable
' Neues Dataset für Master- und Detail-Tabelle erstellen
Dim ds As New DataSet()
Dim DT_DETAILS_SQL
Select Case CURRENT_SEARCH_TYPE
Case "NODE_DOWN"
DT_DETAILS_SQL = String.Format("SELECT T.[GUID],T.[DocID],T.[CONFIG_ID],T1.HEADER_CAPTION,T.[VALUE],T1.[LANGUAGE], T1.COLUMN_VIEW,T1.EDITABLE,T1.TYPE_ID,T1.VISIBLE,T.CHANGED_WHEN,T.CHANGED_WHO " &
"FROM TBPMO_DOC_VALUES T INNER JOIN TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP ON T.RECORD_ID = TTEMP.RECORD_ID RIGHT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 ON T.CONFIG_ID = T1.GUID WHERE T1.ENTITY_ID = {0} AND LANGUAGE = '{1}' AND T1.CONFIG_COLUMNS = 1", CURRENT_ENTITY_ID, USER_LANGUAGE)
Case Else
DT_DETAILS_SQL = String.Format("SELECT T.[GUID],T.[DocID],T.[CONFIG_ID],T1.HEADER_CAPTION,T.[VALUE],T1.[LANGUAGE], T1.COLUMN_VIEW,T1.EDITABLE,T1.TYPE_ID,T1.VISIBLE,T.CHANGED_WHEN,T.CHANGED_WHO " &
"FROM TBPMO_DOC_VALUES T RIGHT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 ON T.CONFIG_ID = T1.GUID WHERE T1.ENTITY_ID = {0} AND LANGUAGE = '{1}' AND T1.CONFIG_COLUMNS = 1 AND T.RECORD_ID = {2}", CURRENT_ENTITY_ID, USER_LANGUAGE, RECORD_ID)
End Select
'"FROM TBPMO_DOC_VALUES T INNER JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 ON T.CONFIG_ID = T1.GUID WHERE T1.ENTITY_ID = {0} AND T1.LANGUAGE = '{1}' AND T.RECORD_ID = {2} ORDER BY T.DocID, T1.SEQUENCE", CURRENT_ENTITY_ID, USER_LANGUAGE, RECORD_ID)
Dim DT_DETAILS As DataTable = ClassDatabase.Return_Datatable(DT_DETAILS_SQL, True)
Try
' Werte für Konfigurierte Spalten aus TBPMO_DOC_VALUES auslesen und Zellenweise einfügen
For Each row As DataRow In DT_RESULT.Rows
For Each col As DataColumn In DT_RESULT.Columns
Dim colName As String = col.ColumnName
Dim docId As Integer = row.Item("DocID")
Dim configId As Integer = RESULT_CONFIG_IDS.Item(col.ColumnName)
If configId <> 0 Then
Dim value As String = ""
Try
value = ClassDatabase.Execute_Scalar(String.Format("SELECT VALUE FROM TBPMO_DOC_VALUES WHERE CONFIG_ID = {0} AND DocID = {1} AND RECORD_ID = {2}", configId, docId, RECORD_ID))
Catch ex As Exception
ClassLogger.Add(String.Format(">> Attention: Could not get Value from TBPMO_DOC_VALUES for ConfigId[{0}], DocId[{1}]: ", configId, docId) & ex.Message, False)
End Try
row.Item(colName) = value
End If
Next
Next
Catch ex As Exception
ClassLogger.Add(">> Attention: Could not load values from TBPMO_DOC_VALUES: " & ex.Message, False)
End Try
If LogErrorsOnly = False Then ClassLogger.Add(" >> Values loaded...", False)
Try
' Tabellen zum DataSet hinzufügen
ds.Tables.Add(DT_RESULT)
ds.Tables.Add(DT_DETAILS)
If LogErrorsOnly = False Then ClassLogger.Add(" >> tables added to ds.Tables...", False)
Catch ex As Exception
ClassLogger.Add(">> Attention: Could not Add tables to ds.Tables: " & ex.Message, False)
End Try
Try
Dim resultTable As DataTable = ds.Tables(0)
Dim detailsTable As DataTable = ds.Tables(1)
' Relation `docIdDetails` erstellen
Dim parentColumn As DataColumn = resultTable.Columns("docId")
Dim childColumn As DataColumn = detailsTable.Columns("docId")
' Unique Constraint für DT_RESULT auf Spalte `docId` erstellen
Dim uniqueConstraint As UniqueConstraint = New UniqueConstraint(parentColumn)
resultTable.Constraints.Add(uniqueConstraint)
' Parameter `createConstraints` auf false setzen, um erstellung eines unsinnigen
' `foreignKeyConstraints` zu verhindern
ds.Relations.Add("docIdDetails", parentColumn, childColumn, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> relationdocIdDetails created...", False)
Catch ex As Exception
ClassLogger.Add(">> Could not set master-detail Relation DocSearch: " & ex.Message, False)
End Try
Dim gridControl As GridControl = gridView.GridControl
' Datasource auf Master-Tabelle setzen
'gridView.GridControl.DataSource = DT_RESULT
gridControl.DataSource = ds.Tables(0)
gridControl.ForceInitialize()
' Detail View anlegen und der Relation `docIdDetails` zuweisen
Dim grvwDetail As New GridView(gridControl)
'grvwDetail.OptionsBehavior.Editable = False
grvwDetail.OptionsView.ShowGroupPanel = False
grvwDetail.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Style3D
grvwDetail.OptionsView.EnableAppearanceEvenRow = True
grvwDetail.Appearance.EvenRow.BackColor = Color.Orange
grvwDetail.Appearance.HeaderPanel.BackColor = Color.Orange
grvwDetail.Appearance.HeaderPanel.Options.UseBackColor = True
gridControl.LevelTree.Nodes.Add("docIdDetails", grvwDetail)
Catch ex As Exception
MsgBox("Error in FillColumns: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
ClassLogger.Add(">> Attention: Could not load converted datatable DocSearch: " & ex.Message, False)
End Try
AddHandler gridView.MasterRowExpanded, AddressOf gridView_MasterRowExpanded
AddHandler gridView.CustomColumnDisplayText, AddressOf gridView_CustomColumnDisplayText
For Each row As DataRow In DT_WINDREAM_RESULTLIST.Rows
Dim col As GridColumn = gridView.Columns(row.Item("HEADER_CAPTION"))
Dim type As Integer = row.Item("TYPE_ID")
Dim isConfig As Boolean = row.Item("CONFIG_COLUMNS")
If Not IsNothing(col) And type = 4 And isConfig Then
col.DisplayFormat.FormatType = FormatType.DateTime
col.DisplayFormat.FormatString = CURRENT_DATE_FORMAT & " HH:MM:ss"
End If
Next
gridView.Columns.Item("ICON").MaxWidth = 24
gridView.Columns.Item("ICON").MinWidth = 24
gridView.Columns.Item("FULLPATH").Visible = False
gridView.Columns.Item("OBJECTTYPE").Visible = False
If Not System.IO.File.Exists(LAYOUT_DOC_GRIDVIEW) Then
gridView.Columns.Item("DocID").Visible = False
End If
Dim created, changed As String
If USER_LANGUAGE <> "de-DE" Then
changed = "Changed"
created = "Created"
Else
changed = "Geändert"
created = "Erstellt"
End If
Dim createdColumn = gridView.Columns(created)
If Not IsNothing(createdColumn) Then
createdColumn.DisplayFormat.FormatType = FormatType.DateTime
createdColumn.DisplayFormat.FormatString = CURRENT_DATE_FORMAT & " HH:MM:ss"
End If
Dim changedColumn = gridView.Columns(changed)
If Not IsNothing(changedColumn) Then
changedColumn.DisplayFormat.FormatType = FormatType.DateTime
changedColumn.DisplayFormat.FormatString = CURRENT_DATE_FORMAT & " HH:MM:ss"
End If
If GridDocResult_BestFitColumns Then
gridView.OptionsView.BestFitMaxRowCount = -1
gridView.BestFitColumns(True)
End If
' Alle Spalten aus ReadOnly setzen, danach werden alle passenden auf nicht ReadOnly gesetzt
For Each column As GridColumn In gridView.Columns
column.OptionsColumn.AllowEdit = False
Next
End Sub
Public Shared Sub detailView_CustomRowCellEdit(grvw As GridView, e As CustomRowCellEditEventArgs)
Try
If (e.Column.Name = "colVALUE") Then
Dim rowView As DataRowView = grvw.GetRow(e.RowHandle)
Dim configId As Integer = rowView.Item("CONFIG_ID")
Dim title = rowView.Item("HEADER_CAPTION")
Dim editable As Boolean = rowView.Item("EDITABLE")
Dim typeId As Integer = rowView.Item("TYPE_ID")
If typeId = 1 And editable Then
Dim textedit As New RepositoryItemTextEdit()
AddHandler textedit.Leave, _textValueChangedHandler
e.RepositoryItem = textedit
End If
If typeId = 2 Then
Dim checkEdit As New RepositoryItemCheckEdit()
checkEdit.ValueChecked = "True"
checkEdit.ValueUnchecked = "False"
checkEdit.GlyphAlignment = HorzAlignment.Near
checkEdit.Caption = String.Empty
AddHandler checkEdit.CheckedChanged, _checkValueChangedHandler
e.RepositoryItem = checkEdit
End If
If typeId = 4 Then
Dim dateedit As New RepositoryItemDateEdit()
dateedit.DisplayFormat.FormatType = FormatType.DateTime
dateedit.DisplayFormat.FormatString = CURRENT_DATE_FORMAT
dateedit.EditFormat.FormatType = FormatType.DateTime
dateedit.EditFormat.FormatString = CURRENT_DATE_FORMAT
dateedit.EditMask = CURRENT_DATE_FORMAT
AddHandler dateedit.FormatEditValue, Sub(sender As Object, _e As ConvertEditValueEventArgs)
_e.Handled = True
End Sub
AddHandler dateedit.CustomDisplayText, Sub(sender As Object, _e As Controls.CustomDisplayTextEventArgs)
Dim parsedDate As DateTime
Dim stringDate As String = _e.Value.ToString
If stringDate.Trim() = String.Empty Then
_e.DisplayText = ""
Else
If Not DateTime.TryParse(stringDate, parsedDate) Then
parsedDate = DateTime.ParseExact(stringDate, CURRENT_DATE_FORMAT, Globalization.DateTimeFormatInfo.InvariantInfo)
End If
_e.DisplayText = parsedDate.ToString(CURRENT_DATE_FORMAT)
End If
End Sub
AddHandler dateedit.EditValueChanged, _datepickerValueChangedHandler
e.RepositoryItem = dateedit
End If
If typeId = 3 Then
Dim dropdown As New RepositoryItemComboBox()
Dim matchingRows() As DataRow = DT_DROPDOWN_ITEMS.Select(String.Format("CONFIG_ID = {0}", configId), "SEQUENCE")
For Each matchingRow As DataRow In matchingRows
Dim item As New WindreamDocGridComboboxItem()
item.ConfigID = matchingRow.Item("CONFIG_ID")
item.Value = matchingRow.Item("VALUE")
dropdown.Items.Add(item)
Next
AddHandler dropdown.SelectedValueChanged, _dropdownValueChangedHandler
e.RepositoryItem = dropdown
End If
ElseIf (e.Column.Name <> "colVALUE") Then
' Erlaube Editieren nur für VALUE Spalte
e.Column.OptionsColumn.AllowEdit = False
End If
Catch ex As Exception
ClassLogger.Add("Error in detailView_CustomRowCellEdit: " & ex.Message, False)
End Try
End Sub
Private Shared Sub gridView_CustomColumnDisplayText(sender As Object, e As CustomColumnDisplayTextEventArgs)
Try
Dim view As ColumnView = sender
Dim parsedDate As DateTime
If DATE_COLUMNS.Contains(e.Column.FieldName) And e.ListSourceRowIndex <> DevExpress.XtraGrid.GridControl.InvalidRowHandle Then
If e.Value.ToString() = String.Empty Then
e.DisplayText = ""
Exit Sub
End If
If Not DateTime.TryParse(e.Value, parsedDate) Then
parsedDate = DateTime.ParseExact(e.Value, CURRENT_DATE_FORMAT & " HH:MM:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo)
End If
e.DisplayText = parsedDate.ToString(CURRENT_DATE_FORMAT & " HH:MM:ss")
ElseIf DATE_COLUMNS_CONFIG.Contains(e.Column.FieldName) And e.ListSourceRowIndex <> DevExpress.XtraGrid.GridControl.InvalidRowHandle Then
If e.Value.ToString() = String.Empty Then
e.DisplayText = ""
Exit Sub
End If
If Not DateTime.TryParse(e.Value, parsedDate) Then
parsedDate = DateTime.ParseExact(e.Value, CURRENT_DATE_FORMAT, System.Globalization.DateTimeFormatInfo.InvariantInfo)
End If
e.DisplayText = parsedDate.ToString(CURRENT_DATE_FORMAT)
End If
Catch ex As Exception
ClassLogger.Add("Unexpected error in gridView_CustomColumnDisplayText: " & ex.Message, False, False)
MsgBox("Unexpected error in gridView_CustomColumnDisplayText: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Shared Sub gridView_MasterRowExpanded(sender As GridView, e As DevExpress.XtraGrid.Views.Grid.CustomMasterRowEventArgs)
Try
ClassWindreamDocGrid.GetDocItems(sender)
Dim GW As GridView = sender
If SELECTED_DOC_ID = 0 Then
MsgBox("Sorry no document was selected! Please try again!", MsgBoxStyle.Exclamation)
Exit Sub
End If
Dim detailView As GridView = sender.GetDetailView(e.RowHandle, e.RelationIndex)
With detailView.Columns
'Spalten ausblenden
.Item("GUID").Visible = False
.Item("DocID").Visible = False
.Item("CONFIG_ID").Visible = False
.Item("LANGUAGE").Visible = False
.Item("COLUMN_VIEW").Visible = False
.Item("EDITABLE").Visible = False
.Item("TYPE_ID").Visible = False
.Item("VISIBLE").Visible = False
'Spalten formatieren
.Item("CHANGED_WHEN").DisplayFormat.FormatType = FormatType.DateTime
.Item("CHANGED_WHEN").DisplayFormat.FormatString = CURRENT_DATE_FORMAT & " HH:MM:ss"
If USER_LANGUAGE = "de-DE" Then
.Item("HEADER_CAPTION").Caption = "Beschreibung"
.Item("VALUE").Caption = "Wert"
.Item("CHANGED_WHEN").Caption = "Geändert Wann"
.Item("CHANGED_WHO").Caption = "Geändert Wer"
Else
.Item("HEADER_CAPTION").Caption = "Description"
.Item("VALUE").Caption = "Value"
.Item("CHANGED_WHEN").Caption = "Changed when"
.Item("CHANGED_WHO").Caption = "changed Who"
End If
End With
If Not IsNothing(GW.GridControl.ContextMenuStrip.Name) Then
If GW.GridControl.ContextMenuStrip.Name = "cmsResultFilesBasic" Then
detailView.OptionsBehavior.Editable = False
Else
detailView.OptionsBehavior.Editable = True
End If
End If
AddHandler detailView.CustomRowCellEdit, AddressOf detailView_CustomRowCellEdit
Catch ex As Exception
ClassLogger.Add("Unexpected error in gridView_MasterRowExpanded: " & ex.Message, False, False)
MsgBox("Unexpected error in gridView_MasterRowExpanded: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Class WindreamDocGridComboboxItem
Implements IConvertible
Public ConfigID As Integer
Public Value As String
Public Overrides Function ToString() As String
Return Me.Value
End Function
Public Function ToString1(provider As IFormatProvider) As String Implements IConvertible.ToString
Return Me.Value
End Function
Public Function GetTypeCode() As TypeCode Implements IConvertible.GetTypeCode
Throw New NotImplementedException
End Function
Public Function ToBoolean(provider As IFormatProvider) As Boolean Implements IConvertible.ToBoolean
Throw New NotImplementedException
End Function
Public Function ToByte(provider As IFormatProvider) As Byte Implements IConvertible.ToByte
Throw New NotImplementedException
End Function
Public Function ToChar(provider As IFormatProvider) As Char Implements IConvertible.ToChar
Throw New NotImplementedException
End Function
Public Function ToDateTime(provider As IFormatProvider) As Date Implements IConvertible.ToDateTime
Throw New NotImplementedException
End Function
Public Function ToDecimal(provider As IFormatProvider) As Decimal Implements IConvertible.ToDecimal
Throw New NotImplementedException
End Function
Public Function ToDouble(provider As IFormatProvider) As Double Implements IConvertible.ToDouble
Throw New NotImplementedException
End Function
Public Function ToInt16(provider As IFormatProvider) As Short Implements IConvertible.ToInt16
Throw New NotImplementedException
End Function
Public Function ToInt32(provider As IFormatProvider) As Integer Implements IConvertible.ToInt32
Throw New NotImplementedException
End Function
Public Function ToInt64(provider As IFormatProvider) As Long Implements IConvertible.ToInt64
Throw New NotImplementedException
End Function
Public Function ToSByte(provider As IFormatProvider) As SByte Implements IConvertible.ToSByte
Throw New NotImplementedException
End Function
Public Function ToSingle(provider As IFormatProvider) As Single Implements IConvertible.ToSingle
Throw New NotImplementedException
End Function
Public Function ToType(conversionType As Type, provider As IFormatProvider) As Object Implements IConvertible.ToType
Throw New NotImplementedException
End Function
Public Function ToUInt16(provider As IFormatProvider) As UShort Implements IConvertible.ToUInt16
Throw New NotImplementedException
End Function
Public Function ToUInt32(provider As IFormatProvider) As UInteger Implements IConvertible.ToUInt32
Throw New NotImplementedException
End Function
Public Function ToUInt64(provider As IFormatProvider) As ULong Implements IConvertible.ToUInt64
Throw New NotImplementedException
End Function
End Class
End Class

View File

@ -0,0 +1,11 @@
Public Class ClassWorkflow
Public Shared Sub Refresh_Workflows_Entity()
Dim sql = String.Format("SELECT WF_TASK_ID, WF_ID, dbo.FNPMO_GETOBJECTCAPTION('{0}', 'TASK_TITLE' + CONVERT(VARCHAR(5), WF_ID), 1) AS WF_TITLE, RECORD_ID, STATE_ID, " & _
"dbo.FNPMO_GETOBJECTCAPTION('{0}', 'WF_STATE_TITLE' + CONVERT(VARCHAR(5), STATE_ID), 1) AS STATE_TITLE, FORM_VIEW_ID, ENTITY_ID, " & _
"dbo.FNPMO_GETOBJECTCAPTION('{0}', 'FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), 1) AS 'ENTITY_TITLE', COMMENT, DUE_DATE, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN, TASK_DATE, FINAL, COLOR, " & _
"'{1}' AS USERNAME, dbo.FNPMO_GET_ENTITY_COLUMN_CONTENT(RECORD_ID) AS RECORD_DESCRIPTION, DESCRIPTION, RECORD_DESCRIPTION AS Expr1, FINISHED, MANUALLY, " & _
"CREATE_ON_REC_CREATE, CREATE_ON_FOLL_UP FROM VWPMO_WF_ACTIVE AS T", USER_LANGUAGE, USER_USERNAME)
CURRENT_VWPMO_WF_ACTIVE = ClassDatabase.Return_Datatable(sql, True)
End Sub
End Class

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@

Partial Public Class DD_DMSDataSet
End Class
Partial Public Class DD_DMSDataSet
End Class

View File

@ -0,0 +1,396 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings>
<TableUISetting Name="TBPMO_FORM">
<ColumnUISettings>
<ColumnUISetting Name="LEVEL">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ListBox" Type="System.Windows.Forms.ListBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBPMO_RECORD">
<ColumnUISettings>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBPMO_WORKFLOW">
<ColumnUISettings>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBDD_DOKUMENTART">
<ColumnUISettings>
<ColumnUISetting Name="ERSTELLTWANN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="GEAENDERTWANN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="OBJEKTTYP">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBDD_INDEX_AUTOM">
<ColumnUISettings>
<ColumnUISetting Name="INDEXNAME">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="VALUE">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBDD_USER">
<ColumnUISettings>
<ColumnUISetting Name="LOG_IN_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="LOG_OUT_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="LANGUAGE">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="DATE_FORMAT">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBDD_USER_GROUPS">
<ColumnUISettings>
<ColumnUISetting Name="NAME">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBPMO_FORM_CONSTRUCTOR">
<ColumnUISettings>
<ColumnUISetting Name="MENU_IMG">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="PictureBox" Type="System.Windows.Forms.PictureBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBPMO_WD_OBJECTTYPE">
<ColumnUISettings>
<ColumnUISetting Name="OBJECT_TYPE">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBPMO_FOLLOW_UP_EMAIL">
<ColumnUISettings>
<ColumnUISetting Name="FOLLOW_UP_SEQUENCE">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="DEPENDENT_DATE_CTRL_ID">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="DEPENDENT_DONE_CTRL_ID">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="PARENT_ID">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="TIME_UNITY">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="TIME_DIST">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBPMO_RECORD_LOG_CONFIG">
<ColumnUISettings>
<ColumnUISetting Name="CONTROL_ID">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="FORM_ID">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBDD_EMAIL_ACCOUNT">
<ColumnUISettings>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBDD_CONNECTION">
<ColumnUISettings>
<ColumnUISetting Name="SQL_PROVIDER">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBPMO_TEMPLATE">
<ColumnUISettings>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBDD_CLIENT">
<ColumnUISettings>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBPMO_WD_IMPORT_PROFILE">
<ColumnUISettings>
<ColumnUISetting Name="NEW_OBJECTTYPE">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CONNECTION_ID">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="ENTITY_ID">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="OLD_OBJECTTYPE">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="IDX_FILE_WORKED">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBPMO_WD_IMPORT_PROFILE_IDX">
<ColumnUISettings>
<ColumnUISetting Name="STRING1">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="STRING2">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="VWPMO_WF_ACTIVE">
<ColumnUISettings>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBPMO_STRUCTURE_NODES_CONFIGURATION">
<ColumnUISettings>
<ColumnUISetting Name="ENTITY_ID">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="TYPE_NODE">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="NumericUpDown" Type="System.Windows.Forms.NumericUpDown" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
</TableUISettings>
</DataSetUISetting>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,387 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="266" ViewPortY="16" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:TBPMO_FORM" ZOrder="33" X="389" Y="366" Height="286" Width="229" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:VWPMO_CONTROL_SCREEN" ZOrder="16" X="78" Y="352" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBPMO_FORM_VIEW" ZOrder="10" X="493" Y="68" Height="324" Width="265" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBPMO_RECORD" ZOrder="55" X="875" Y="408" Height="172" Width="242" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:VWPMO_DOKUMENTTYPES" ZOrder="15" X="556" Y="357" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:TBPMO_WD_FVIEW_DT_INDEX" ZOrder="71" X="819" Y="147" Height="229" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:TBPMO_WORKFLOW_TASK" ZOrder="54" X="603" Y="718" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:TBPMO_WORKFLOW_TASK_STATE" ZOrder="28" X="950" Y="736" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:VWPMO_GUI_ENTITY" ZOrder="51" X="395" Y="443" Height="134" Width="207" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:TBPMO_WORKFLOW" ZOrder="29" X="192" Y="678" Height="210" Width="266" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:VWPMO_WF_OVERVIEW_AUTHORITY" ZOrder="53" X="877" Y="44" Height="210" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:TBDD_DOKUMENTART" ZOrder="2" X="1349" Y="450" Height="344" Width="278" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBDD_EINGANGSARTEN" ZOrder="70" X="1701" Y="652" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBDD_INDEX_AUTOM" ZOrder="46" X="1687" Y="332" Height="282" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="192" />
<Shape ID="DesignTable:TBPMO_WD_FORMVIEW_DOKTYPES" ZOrder="69" X="427" Y="-11" Height="287" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:TBPMO_KONFIGURATION" ZOrder="65" X="1644" Y="247" Height="168" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="78" />
<Shape ID="DesignTable:TBDD_USER" ZOrder="17" X="1632" Y="12" Height="243" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="59" />
<Shape ID="DesignTable:TBPMO_FORM_TYPE" ZOrder="64" X="1357" Y="80" Height="191" Width="263" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:TBDD_USER_GROUPS" ZOrder="24" X="842" Y="-46" Height="168" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="78" />
<Shape ID="DesignTable:VWPMO_USERS_GROUPS" ZOrder="62" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBDD_GROUPS_USER" ZOrder="35" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBWH_DOKART_MODULE" ZOrder="61" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBPMO_FORM_CONSTRUCTOR" ZOrder="7" X="1185" Y="-27" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:TBPMO_WD_OBJECTTYPE" ZOrder="9" X="-2" Y="1" Height="229" Width="293" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:TBPMO_FOLLOW_UP_EMAIL" ZOrder="4" X="903" Y="388" Height="204" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="136" />
<Shape ID="DesignTable:TBPMO_FOLLUPEMAIL_USER" ZOrder="58" X="59" Y="77" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBPMO_RECORD_LOG_CONFIG" ZOrder="52" X="1128" Y="408" Height="300" Width="235" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="232" />
<Shape ID="DesignTable:VWPMO_RECORD_CHANGES" ZOrder="56" X="1673" Y="790" Height="173" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:TBDD_EMAIL_ACCOUNT" ZOrder="6" X="844" Y="43" Height="267" Width="285" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:TBDD_CONNECTION" ZOrder="50" X="462" Y="673" Height="149" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="59" />
<Shape ID="DesignTable:TBPMO_FORM_CONSTRUCTOR_DETAIL" ZOrder="1" X="1246" Y="352" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:VWDDINDEX_AUTOM" ZOrder="47" X="1300" Y="812" Height="305" Width="272" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBPMO_TEMPLATE" ZOrder="45" X="2444" Y="43" Height="229" Width="255" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:TBPMO_TEMPLATE_ENTITY" ZOrder="44" X="2068" Y="300" Height="191" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:TBPMO_TEMPLATE_PATTERN" ZOrder="41" X="2348" Y="521" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:TBTEMP_QUICKDISPLAY" ZOrder="39" X="2117" Y="51" Height="115" Width="210" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:TBPMO_LANGUAGE_OBJECT" ZOrder="12" X="1161" Y="308" Height="267" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:TBDD_CLIENT" ZOrder="36" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBPMO_CONSTRUCTOR_USER_SQL" ZOrder="30" X="258" Y="41" Height="280" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="212" />
<Shape ID="DesignTable:TBPMO_WD_IMPORT_PROFILE" ZOrder="34" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBPMO_WD_IMPORT_PROFILE_IDX" ZOrder="32" X="1895" Y="934" Height="267" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:VWPMO_WF_ACTIVE" ZOrder="8" X="1910" Y="509" Height="357" Width="378" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="270" />
<Shape ID="DesignTable:TBPMO_RIGHT_GROUP" ZOrder="27" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBPMO_WD_NAMECONVENTION_FORMAT" ZOrder="23" X="0" Y="0" Height="90" Width="247" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBPMO_STRUCTURE_NODES_CONFIGURATION" ZOrder="5" X="110" Y="24" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBWH_ENTITY" ZOrder="22" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBPMO_WORKFLOW_TASK_HISTORY" ZOrder="21" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:VWPMO_RIGHTS_2B_WORKED" ZOrder="18" X="2579" Y="410" Height="229" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:TBPMO_RIGHT_USER" ZOrder="14" X="23" Y="353" Height="305" Width="267" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBPMO_RECORD_VARIANT" ZOrder="3" X="638" Y="1079" Height="306" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="226" />
<Shape ID="DesignTable:TBPMO_APPOINTMENTS" ZOrder="11" X="1807" Y="62" Height="305" Width="290" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
</Shapes>
<Connectors>
<Connector ID="DesignRelation:FK_TBPMO_FORM_VIEW_FORM_ID" ZOrder="72" LineWidth="11">
<RoutePoints>
<Point>
<X>437</X>
<Y>366</Y>
</Point>
<Point>
<X>437</X>
<Y>340</Y>
</Point>
<Point>
<X>493</X>
<Y>340</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBDD_DOKUMENTART_EINGID" ZOrder="68" LineWidth="11">
<RoutePoints>
<Point>
<X>1701</X>
<Y>724</Y>
</Point>
<Point>
<X>1627</X>
<Y>724</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBDD_INDEX_AUTOM_DOCID" ZOrder="67" LineWidth="11">
<RoutePoints>
<Point>
<X>1627</X>
<Y>568</Y>
</Point>
<Point>
<X>1687</X>
<Y>568</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBDD_INDEX_AUTOM_DOCID1" ZOrder="66" LineWidth="11">
<RoutePoints>
<Point>
<X>710</X>
<Y>276</Y>
</Point>
<Point>
<X>710</X>
<Y>548</Y>
</Point>
<Point>
<X>1687</X>
<Y>548</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_FORM_FORM_TYPE_ID" ZOrder="63" LineWidth="11">
<RoutePoints>
<Point>
<X>1374</X>
<Y>271</Y>
</Point>
<Point>
<X>1374</X>
<Y>383</Y>
</Point>
<Point>
<X>618</X>
<Y>383</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBDD_GROUPS_USER_GROUP_ID" ZOrder="60" LineWidth="11">
<RoutePoints>
<Point>
<X>842</X>
<Y>53</Y>
</Point>
<Point>
<X>158</X>
<Y>53</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBDD_GROUPS_USER_USER_ID" ZOrder="59" LineWidth="11">
<RoutePoints>
<Point>
<X>107</X>
<Y>-5</Y>
</Point>
<Point>
<X>107</X>
<Y>-30</Y>
</Point>
<Point>
<X>107</X>
<Y>-22</Y>
</Point>
<Point>
<X>107</X>
<Y>0</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_FOLLUPEMAIL_USER_FOLLUP_ID" ZOrder="57" LineWidth="11">
<RoutePoints>
<Point>
<X>1632</X>
<Y>115</Y>
</Point>
<Point>
<X>217</X>
<Y>115</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_FORM_CONSTRUCTOR_DETAIL_CONSTRUCT_ID" ZOrder="49" LineWidth="11">
<RoutePoints>
<Point>
<X>1358</X>
<Y>221</Y>
</Point>
<Point>
<X>1358</X>
<Y>352</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_FORM_CONSTRUCTOR_DETAIL_FORMID" ZOrder="48" LineWidth="11">
<RoutePoints>
<Point>
<X>601</X>
<Y>652</Y>
</Point>
<Point>
<X>601</X>
<Y>660</Y>
</Point>
<Point>
<X>1246</X>
<Y>660</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_TEMPLATE_ENTITY_ENTITY_ID" ZOrder="43" LineWidth="11">
<RoutePoints>
<Point>
<X>618</X>
<Y>428</Y>
</Point>
<Point>
<X>2068</X>
<Y>428</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_TEMPLATE_ENTITY_TEMPLATE_ID" ZOrder="42" LineWidth="11">
<RoutePoints>
<Point>
<X>2461</X>
<Y>272</Y>
</Point>
<Point>
<X>2461</X>
<Y>317</Y>
</Point>
<Point>
<X>2368</X>
<Y>317</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_TEMPLATE_PATTERN_TEMPLATE_ENT_ID" ZOrder="40" LineWidth="11">
<RoutePoints>
<Point>
<X>2358</X>
<Y>491</Y>
</Point>
<Point>
<X>2358</X>
<Y>521</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_FOLLOW_UP_EMAIL_DATE_CTRL_ID" ZOrder="38" LineWidth="11">
<RoutePoints>
<Point>
<X>2134</X>
<Y>166</Y>
</Point>
<Point>
<X>2134</X>
<Y>406</Y>
</Point>
<Point>
<X>1061</X>
<Y>406</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_FOLLOW_UP_EMAIL_DONE_CTRL_ID" ZOrder="37" LineWidth="11">
<RoutePoints>
<Point>
<X>2142</X>
<Y>166</Y>
</Point>
<Point>
<X>2142</X>
<Y>414</Y>
</Point>
<Point>
<X>1061</X>
<Y>414</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_WD_IMPORT_PROFILE_IDX_1" ZOrder="31" LineWidth="11">
<RoutePoints>
<Point>
<X>141</X>
<Y>90</Y>
</Point>
<Point>
<X>141</X>
<Y>951</Y>
</Point>
<Point>
<X>1895</X>
<Y>951</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_RIGHT_GROUP_ENTITY_ID" ZOrder="26" LineWidth="11">
<RoutePoints>
<Point>
<X>22</X>
<Y>0</Y>
</Point>
<Point>
<X>22</X>
<Y>-30</Y>
</Point>
<Point>
<X>22</X>
<Y>-30</Y>
</Point>
<Point>
<X>22</X>
<Y>0</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_RIGHT_GROUP_GROUP_ID" ZOrder="25" LineWidth="11">
<RoutePoints>
<Point>
<X>14</X>
<Y>0</Y>
</Point>
<Point>
<X>14</X>
<Y>-30</Y>
</Point>
<Point>
<X>14</X>
<Y>-30</Y>
</Point>
<Point>
<X>14</X>
<Y>0</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_STRUCTURE_NODES_CONFIGURATION_ENTITY_ID" ZOrder="20" LineWidth="11">
<RoutePoints>
<Point>
<X>389</X>
<Y>391</Y>
</Point>
<Point>
<X>251</X>
<Y>391</Y>
</Point>
<Point>
<X>251</X>
<Y>348</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_FORM_VIEW_FORM_ID1" ZOrder="19" LineWidth="11">
<RoutePoints>
<Point>
<X>158</X>
<Y>74</Y>
</Point>
<Point>
<X>196</X>
<Y>74</Y>
</Point>
<Point>
<X>196</X>
<Y>74</Y>
</Point>
<Point>
<X>158</X>
<Y>74</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_RECORD_VARIANT_RECORD_ID" ZOrder="13" LineWidth="11">
<RoutePoints>
<Point>
<X>961</X>
<Y>580</Y>
</Point>
<Point>
<X>961</X>
<Y>1096</Y>
</Point>
<Point>
<X>938</X>
<Y>1096</Y>
</Point>
</RoutePoints>
</Connector>
</Connectors>
</DiagramLayout>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings />
</DataSetUISetting>

View File

@ -0,0 +1,314 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DD_DMSDataSetCalendar" targetNamespace="http://tempuri.org/DD_DMSDataSetCalendar.xsd" xmlns:mstns="http://tempuri.org/DD_DMSDataSetCalendar.xsd" xmlns="http://tempuri.org/DD_DMSDataSetCalendar.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections>
<Connection AppSettingsObjectName="MySettings" AppSettingsPropertyName="DD_DMSConnectionString" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="DD_DMSConnectionString (MySettings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.DD_Record_Organizer.My.MySettings.GlobalReference.Default.DD_DMSConnectionString" Provider="System.Data.SqlClient" />
</Connections>
<Tables>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="TBPMO_APPOINTMENTSTableAdapter" GeneratorDataComponentClassName="TBPMO_APPOINTMENTSTableAdapter" Name="TBPMO_APPOINTMENTS" UserDataComponentName="TBPMO_APPOINTMENTSTableAdapter">
<MainSource>
<DbSource ConnectionRef="DD_DMSConnectionString (MySettings)" DbObjectName="DD_DMS.dbo.TBPMO_APPOINTMENTS" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
<DeleteCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>DELETE FROM [TBPMO_APPOINTMENTS] WHERE (([UniqueID] = @Original_UniqueID) AND ((@IsNull_Type = 1 AND [Type] IS NULL) OR ([Type] = @Original_Type)) AND ((@IsNull_StartDate = 1 AND [StartDate] IS NULL) OR ([StartDate] = @Original_StartDate)) AND ((@IsNull_EndDate = 1 AND [EndDate] IS NULL) OR ([EndDate] = @Original_EndDate)) AND ((@IsNull_AllDay = 1 AND [AllDay] IS NULL) OR ([AllDay] = @Original_AllDay)) AND ((@IsNull_Subject = 1 AND [Subject] IS NULL) OR ([Subject] = @Original_Subject)) AND ((@IsNull_Location = 1 AND [Location] IS NULL) OR ([Location] = @Original_Location)) AND ((@IsNull_Status = 1 AND [Status] IS NULL) OR ([Status] = @Original_Status)) AND ((@IsNull_Label = 1 AND [Label] IS NULL) OR ([Label] = @Original_Label)) AND ((@IsNull_ResourceID = 1 AND [ResourceID] IS NULL) OR ([ResourceID] = @Original_ResourceID)))</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_UniqueID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="UniqueID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_Type" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Type" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_Type" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Type" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_StartDate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="StartDate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_StartDate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="StartDate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_EndDate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="EndDate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_EndDate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="EndDate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_AllDay" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="AllDay" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_AllDay" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="AllDay" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_Subject" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Subject" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_Subject" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="Subject" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_Location" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Location" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_Location" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="Location" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_Status" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Status" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_Status" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Status" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_Label" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Label" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_Label" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Label" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_ResourceID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ResourceID" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_ResourceID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ResourceID" SourceColumnNullMapping="false" SourceVersion="Original" />
</Parameters>
</DbCommand>
</DeleteCommand>
<InsertCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>INSERT INTO [TBPMO_APPOINTMENTS] ([Type], [StartDate], [EndDate], [AllDay], [Subject], [Location], [Description], [Status], [Label], [ResourceID], [ResourceIDs], [ReminderInfo], [RecurrenceInfo], [CustomField1], [CustomField2]) VALUES (@Type, @StartDate, @EndDate, @AllDay, @Subject, @Location, @Description, @Status, @Label, @ResourceID, @ResourceIDs, @ReminderInfo, @RecurrenceInfo, @CustomField1, @CustomField2);
SELECT UniqueID, Type, StartDate, EndDate, AllDay, Subject, Location, Description, Status, Label, ResourceID, ResourceIDs, ReminderInfo, RecurrenceInfo, CustomField1, CustomField2 FROM TBPMO_APPOINTMENTS WHERE (UniqueID = SCOPE_IDENTITY())</CommandText>
<Parameters>
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Type" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Type" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@StartDate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="StartDate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@EndDate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="EndDate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@AllDay" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="AllDay" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Subject" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="Subject" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Location" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="Location" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Description" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="Description" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Status" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Status" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Label" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Label" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@ResourceID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ResourceID" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@ResourceIDs" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ResourceIDs" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@ReminderInfo" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ReminderInfo" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@RecurrenceInfo" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="RecurrenceInfo" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@CustomField1" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="CustomField1" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@CustomField2" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="CustomField2" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</InsertCommand>
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="true">
<CommandText>SELECT UniqueID, Type, StartDate, EndDate, AllDay, Subject, Location, Description, Status, Label, ResourceID, ResourceIDs, ReminderInfo, RecurrenceInfo, CustomField1, CustomField2
FROM TBPMO_APPOINTMENTS</CommandText>
<Parameters />
</DbCommand>
</SelectCommand>
<UpdateCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>UPDATE [TBPMO_APPOINTMENTS] SET [Type] = @Type, [StartDate] = @StartDate, [EndDate] = @EndDate, [AllDay] = @AllDay, [Subject] = @Subject, [Location] = @Location, [Description] = @Description, [Status] = @Status, [Label] = @Label, [ResourceID] = @ResourceID, [ResourceIDs] = @ResourceIDs, [ReminderInfo] = @ReminderInfo, [RecurrenceInfo] = @RecurrenceInfo, [CustomField1] = @CustomField1, [CustomField2] = @CustomField2 WHERE (([UniqueID] = @Original_UniqueID) AND ((@IsNull_Type = 1 AND [Type] IS NULL) OR ([Type] = @Original_Type)) AND ((@IsNull_StartDate = 1 AND [StartDate] IS NULL) OR ([StartDate] = @Original_StartDate)) AND ((@IsNull_EndDate = 1 AND [EndDate] IS NULL) OR ([EndDate] = @Original_EndDate)) AND ((@IsNull_AllDay = 1 AND [AllDay] IS NULL) OR ([AllDay] = @Original_AllDay)) AND ((@IsNull_Subject = 1 AND [Subject] IS NULL) OR ([Subject] = @Original_Subject)) AND ((@IsNull_Location = 1 AND [Location] IS NULL) OR ([Location] = @Original_Location)) AND ((@IsNull_Status = 1 AND [Status] IS NULL) OR ([Status] = @Original_Status)) AND ((@IsNull_Label = 1 AND [Label] IS NULL) OR ([Label] = @Original_Label)) AND ((@IsNull_ResourceID = 1 AND [ResourceID] IS NULL) OR ([ResourceID] = @Original_ResourceID)));
SELECT UniqueID, Type, StartDate, EndDate, AllDay, Subject, Location, Description, Status, Label, ResourceID, ResourceIDs, ReminderInfo, RecurrenceInfo, CustomField1, CustomField2 FROM TBPMO_APPOINTMENTS WHERE (UniqueID = @UniqueID)</CommandText>
<Parameters>
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Type" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Type" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@StartDate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="StartDate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@EndDate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="EndDate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@AllDay" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="AllDay" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Subject" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="Subject" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Location" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="Location" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Description" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="Description" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Status" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Status" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Label" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Label" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@ResourceID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ResourceID" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@ResourceIDs" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ResourceIDs" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@ReminderInfo" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ReminderInfo" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@RecurrenceInfo" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="RecurrenceInfo" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@CustomField1" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="CustomField1" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@CustomField2" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="CustomField2" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_UniqueID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="UniqueID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_Type" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Type" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_Type" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Type" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_StartDate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="StartDate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_StartDate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="StartDate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_EndDate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="EndDate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_EndDate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="EndDate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_AllDay" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="AllDay" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_AllDay" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="AllDay" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_Subject" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Subject" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_Subject" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="Subject" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_Location" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Location" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_Location" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="Location" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_Status" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Status" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_Status" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Status" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_Label" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Label" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_Label" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Label" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_ResourceID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ResourceID" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_ResourceID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ResourceID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="UniqueID" ColumnName="UniqueID" DataSourceName="DD_DMS.dbo.TBPMO_APPOINTMENTS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@UniqueID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="UniqueID" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</UpdateCommand>
</DbSource>
</MainSource>
<Mappings>
<Mapping SourceColumn="UniqueID" DataSetColumn="UniqueID" />
<Mapping SourceColumn="Type" DataSetColumn="Type" />
<Mapping SourceColumn="StartDate" DataSetColumn="StartDate" />
<Mapping SourceColumn="EndDate" DataSetColumn="EndDate" />
<Mapping SourceColumn="AllDay" DataSetColumn="AllDay" />
<Mapping SourceColumn="Subject" DataSetColumn="Subject" />
<Mapping SourceColumn="Location" DataSetColumn="Location" />
<Mapping SourceColumn="Description" DataSetColumn="Description" />
<Mapping SourceColumn="Status" DataSetColumn="Status" />
<Mapping SourceColumn="Label" DataSetColumn="Label" />
<Mapping SourceColumn="ResourceID" DataSetColumn="ResourceID" />
<Mapping SourceColumn="ResourceIDs" DataSetColumn="ResourceIDs" />
<Mapping SourceColumn="ReminderInfo" DataSetColumn="ReminderInfo" />
<Mapping SourceColumn="RecurrenceInfo" DataSetColumn="RecurrenceInfo" />
<Mapping SourceColumn="CustomField1" DataSetColumn="CustomField1" />
<Mapping SourceColumn="CustomField2" DataSetColumn="CustomField2" />
</Mappings>
<Sources />
</TableAdapter>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="TBPMO_RESOURCESTableAdapter" GeneratorDataComponentClassName="TBPMO_RESOURCESTableAdapter" Name="TBPMO_RESOURCES" UserDataComponentName="TBPMO_RESOURCESTableAdapter">
<MainSource>
<DbSource ConnectionRef="DD_DMSConnectionString (MySettings)" DbObjectName="DD_DMS.dbo.TBPMO_RESOURCES" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
<DeleteCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>DELETE FROM [dbo].[TBPMO_RESOURCES] WHERE (([UniqueID] = @Original_UniqueID) AND ([ResourceID] = @Original_ResourceID) AND ((@IsNull_ResourceName = 1 AND [ResourceName] IS NULL) OR ([ResourceName] = @Original_ResourceName)) AND ((@IsNull_Color = 1 AND [Color] IS NULL) OR ([Color] = @Original_Color)))</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_UniqueID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="UniqueID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_ResourceID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ResourceID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_ResourceName" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ResourceName" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_ResourceName" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ResourceName" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_Color" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Color" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_Color" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Color" SourceColumnNullMapping="false" SourceVersion="Original" />
</Parameters>
</DbCommand>
</DeleteCommand>
<InsertCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>INSERT INTO [dbo].[TBPMO_RESOURCES] ([ResourceID], [ResourceName], [Color], [Image], [CustomField1]) VALUES (@ResourceID, @ResourceName, @Color, @Image, @CustomField1);
SELECT UniqueID, ResourceID, ResourceName, Color, Image, CustomField1 FROM TBPMO_RESOURCES WHERE (UniqueID = SCOPE_IDENTITY())</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@ResourceID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ResourceID" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@ResourceName" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ResourceName" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Color" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Color" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Binary" Direction="Input" ParameterName="@Image" Precision="0" ProviderType="Image" Scale="0" Size="0" SourceColumn="Image" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@CustomField1" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="CustomField1" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</InsertCommand>
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>SELECT UniqueID, ResourceID, ResourceName, Color, Image, CustomField1 FROM dbo.TBPMO_RESOURCES</CommandText>
<Parameters />
</DbCommand>
</SelectCommand>
<UpdateCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>UPDATE [dbo].[TBPMO_RESOURCES] SET [ResourceID] = @ResourceID, [ResourceName] = @ResourceName, [Color] = @Color, [Image] = @Image, [CustomField1] = @CustomField1 WHERE (([UniqueID] = @Original_UniqueID) AND ([ResourceID] = @Original_ResourceID) AND ((@IsNull_ResourceName = 1 AND [ResourceName] IS NULL) OR ([ResourceName] = @Original_ResourceName)) AND ((@IsNull_Color = 1 AND [Color] IS NULL) OR ([Color] = @Original_Color)));
SELECT UniqueID, ResourceID, ResourceName, Color, Image, CustomField1 FROM TBPMO_RESOURCES WHERE (UniqueID = @UniqueID)</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@ResourceID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ResourceID" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@ResourceName" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ResourceName" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Color" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Color" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Binary" Direction="Input" ParameterName="@Image" Precision="0" ProviderType="Image" Scale="0" Size="0" SourceColumn="Image" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@CustomField1" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="CustomField1" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_UniqueID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="UniqueID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_ResourceID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ResourceID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_ResourceName" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ResourceName" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_ResourceName" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ResourceName" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_Color" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Color" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_Color" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="Color" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="UniqueID" ColumnName="UniqueID" DataSourceName="DD_DMS.dbo.TBPMO_RESOURCES" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@UniqueID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="UniqueID" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</UpdateCommand>
</DbSource>
</MainSource>
<Mappings>
<Mapping SourceColumn="UniqueID" DataSetColumn="UniqueID" />
<Mapping SourceColumn="ResourceID" DataSetColumn="ResourceID" />
<Mapping SourceColumn="ResourceName" DataSetColumn="ResourceName" />
<Mapping SourceColumn="Color" DataSetColumn="Color" />
<Mapping SourceColumn="Image" DataSetColumn="Image" />
<Mapping SourceColumn="CustomField1" DataSetColumn="CustomField1" />
</Mappings>
<Sources />
</TableAdapter>
</Tables>
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="DD_DMSDataSetCalendar" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="True" msprop:Generator_DataSetName="DD_DMSDataSetCalendar" msprop:Generator_UserDSName="DD_DMSDataSetCalendar">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="TBPMO_APPOINTMENTS" msprop:Generator_TableClassName="TBPMO_APPOINTMENTSDataTable" msprop:Generator_TableVarName="tableTBPMO_APPOINTMENTS" msprop:Generator_TablePropName="TBPMO_APPOINTMENTS" msprop:Generator_RowDeletingName="TBPMO_APPOINTMENTSRowDeleting" msprop:Generator_RowChangingName="TBPMO_APPOINTMENTSRowChanging" msprop:Generator_RowEvHandlerName="TBPMO_APPOINTMENTSRowChangeEventHandler" msprop:Generator_RowDeletedName="TBPMO_APPOINTMENTSRowDeleted" msprop:Generator_UserTableName="TBPMO_APPOINTMENTS" msprop:Generator_RowChangedName="TBPMO_APPOINTMENTSRowChanged" msprop:Generator_RowEvArgName="TBPMO_APPOINTMENTSRowChangeEvent" msprop:Generator_RowClassName="TBPMO_APPOINTMENTSRow">
<xs:complexType>
<xs:sequence>
<xs:element name="UniqueID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnUniqueID" msprop:Generator_ColumnPropNameInRow="UniqueID" msprop:Generator_ColumnPropNameInTable="UniqueIDColumn" msprop:Generator_UserColumnName="UniqueID" type="xs:int" />
<xs:element name="Type" msprop:Generator_ColumnVarNameInTable="columnType" msprop:Generator_ColumnPropNameInRow="Type" msprop:Generator_ColumnPropNameInTable="TypeColumn" msprop:Generator_UserColumnName="Type" type="xs:int" minOccurs="0" />
<xs:element name="StartDate" msprop:Generator_ColumnVarNameInTable="columnStartDate" msprop:Generator_ColumnPropNameInRow="StartDate" msprop:Generator_ColumnPropNameInTable="StartDateColumn" msprop:Generator_UserColumnName="StartDate" type="xs:dateTime" minOccurs="0" />
<xs:element name="EndDate" msprop:Generator_ColumnVarNameInTable="columnEndDate" msprop:Generator_ColumnPropNameInRow="EndDate" msprop:Generator_ColumnPropNameInTable="EndDateColumn" msprop:Generator_UserColumnName="EndDate" type="xs:dateTime" minOccurs="0" />
<xs:element name="AllDay" msprop:Generator_ColumnVarNameInTable="columnAllDay" msprop:Generator_ColumnPropNameInRow="AllDay" msprop:Generator_ColumnPropNameInTable="AllDayColumn" msprop:Generator_UserColumnName="AllDay" type="xs:boolean" minOccurs="0" />
<xs:element name="Subject" msprop:Generator_ColumnVarNameInTable="columnSubject" msprop:Generator_ColumnPropNameInRow="Subject" msprop:Generator_ColumnPropNameInTable="SubjectColumn" msprop:Generator_UserColumnName="Subject" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="150" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Location" msprop:Generator_ColumnVarNameInTable="columnLocation" msprop:Generator_ColumnPropNameInRow="Location" msprop:Generator_ColumnPropNameInTable="LocationColumn" msprop:Generator_UserColumnName="Location" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" msprop:Generator_UserColumnName="Description" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Status" msprop:Generator_ColumnVarNameInTable="columnStatus" msprop:Generator_ColumnPropNameInRow="Status" msprop:Generator_ColumnPropNameInTable="StatusColumn" msprop:Generator_UserColumnName="Status" type="xs:int" minOccurs="0" />
<xs:element name="Label" msprop:Generator_ColumnVarNameInTable="columnLabel" msprop:Generator_ColumnPropNameInRow="Label" msprop:Generator_ColumnPropNameInTable="LabelColumn" msprop:Generator_UserColumnName="Label" type="xs:int" minOccurs="0" />
<xs:element name="ResourceID" msprop:Generator_ColumnVarNameInTable="columnResourceID" msprop:Generator_ColumnPropNameInRow="ResourceID" msprop:Generator_ColumnPropNameInTable="ResourceIDColumn" msprop:Generator_UserColumnName="ResourceID" type="xs:int" minOccurs="0" />
<xs:element name="ResourceIDs" msprop:Generator_ColumnVarNameInTable="columnResourceIDs" msprop:Generator_ColumnPropNameInRow="ResourceIDs" msprop:Generator_ColumnPropNameInTable="ResourceIDsColumn" msprop:Generator_UserColumnName="ResourceIDs" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ReminderInfo" msprop:Generator_ColumnVarNameInTable="columnReminderInfo" msprop:Generator_ColumnPropNameInRow="ReminderInfo" msprop:Generator_ColumnPropNameInTable="ReminderInfoColumn" msprop:Generator_UserColumnName="ReminderInfo" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="RecurrenceInfo" msprop:Generator_ColumnVarNameInTable="columnRecurrenceInfo" msprop:Generator_ColumnPropNameInRow="RecurrenceInfo" msprop:Generator_ColumnPropNameInTable="RecurrenceInfoColumn" msprop:Generator_UserColumnName="RecurrenceInfo" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CustomField1" msprop:Generator_ColumnVarNameInTable="columnCustomField1" msprop:Generator_ColumnPropNameInRow="CustomField1" msprop:Generator_ColumnPropNameInTable="CustomField1Column" msprop:Generator_UserColumnName="CustomField1" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CustomField2" msprop:Generator_ColumnVarNameInTable="columnCustomField2" msprop:Generator_ColumnPropNameInRow="CustomField2" msprop:Generator_ColumnPropNameInTable="CustomField2Column" msprop:Generator_UserColumnName="CustomField2" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TBPMO_RESOURCES" msprop:Generator_TableClassName="TBPMO_RESOURCESDataTable" msprop:Generator_TableVarName="tableTBPMO_RESOURCES" msprop:Generator_TablePropName="TBPMO_RESOURCES" msprop:Generator_RowDeletingName="TBPMO_RESOURCESRowDeleting" msprop:Generator_RowChangingName="TBPMO_RESOURCESRowChanging" msprop:Generator_RowEvHandlerName="TBPMO_RESOURCESRowChangeEventHandler" msprop:Generator_RowDeletedName="TBPMO_RESOURCESRowDeleted" msprop:Generator_UserTableName="TBPMO_RESOURCES" msprop:Generator_RowChangedName="TBPMO_RESOURCESRowChanged" msprop:Generator_RowEvArgName="TBPMO_RESOURCESRowChangeEvent" msprop:Generator_RowClassName="TBPMO_RESOURCESRow">
<xs:complexType>
<xs:sequence>
<xs:element name="UniqueID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnUniqueID" msprop:Generator_ColumnPropNameInRow="UniqueID" msprop:Generator_ColumnPropNameInTable="UniqueIDColumn" msprop:Generator_UserColumnName="UniqueID" type="xs:int" />
<xs:element name="ResourceID" msprop:Generator_ColumnVarNameInTable="columnResourceID" msprop:Generator_ColumnPropNameInRow="ResourceID" msprop:Generator_ColumnPropNameInTable="ResourceIDColumn" msprop:Generator_UserColumnName="ResourceID" type="xs:int" />
<xs:element name="ResourceName" msprop:Generator_ColumnVarNameInTable="columnResourceName" msprop:Generator_ColumnPropNameInRow="ResourceName" msprop:Generator_ColumnPropNameInTable="ResourceNameColumn" msprop:Generator_UserColumnName="ResourceName" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Color" msprop:Generator_ColumnVarNameInTable="columnColor" msprop:Generator_ColumnPropNameInRow="Color" msprop:Generator_ColumnPropNameInTable="ColorColumn" msprop:Generator_UserColumnName="Color" type="xs:int" minOccurs="0" />
<xs:element name="Image" msprop:Generator_ColumnVarNameInTable="columnImage" msprop:Generator_ColumnPropNameInRow="Image" msprop:Generator_ColumnPropNameInTable="ImageColumn" msprop:Generator_UserColumnName="Image" type="xs:base64Binary" minOccurs="0" />
<xs:element name="CustomField1" msprop:Generator_ColumnVarNameInTable="columnCustomField1" msprop:Generator_ColumnPropNameInRow="CustomField1" msprop:Generator_ColumnPropNameInTable="CustomField1Column" msprop:Generator_UserColumnName="CustomField1" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:TBPMO_APPOINTMENTS" />
<xs:field xpath="mstns:UniqueID" />
</xs:unique>
<xs:unique name="TBPMO_RESOURCES_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:TBPMO_RESOURCES" />
<xs:field xpath="mstns:UniqueID" />
</xs:unique>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="0" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:TBPMO_APPOINTMENTS" ZOrder="2" X="70" Y="70" Height="305" Width="290" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBPMO_RESOURCES" ZOrder="1" X="430" Y="70" Height="191" Width="263" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
</Shapes>
<Connectors />
</DiagramLayout>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings />
</DataSetUISetting>

View File

@ -0,0 +1,301 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DD_DMSDataSetMenuDesigner" targetNamespace="http://tempuri.org/DD_DMSDataSetMenuDesigner.xsd" xmlns:mstns="http://tempuri.org/DD_DMSDataSetMenuDesigner.xsd" xmlns="http://tempuri.org/DD_DMSDataSetMenuDesigner.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections>
<Connection AppSettingsObjectName="MySettings" AppSettingsPropertyName="DD_DMSConnectionString" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="DD_DMSConnectionString (MySettings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.DD_Record_Organizer.My.MySettings.GlobalReference.Default.DD_DMSConnectionString" Provider="System.Data.SqlClient" />
</Connections>
<Tables>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="TBPMO_MENU_FORMTableAdapter" GeneratorDataComponentClassName="TBPMO_MENU_FORMTableAdapter" Name="TBPMO_MENU_FORM" UserDataComponentName="TBPMO_MENU_FORMTableAdapter">
<MainSource>
<DbSource ConnectionRef="DD_DMSConnectionString (MySettings)" DbObjectName="DD_ECM.dbo.TBPMO_MENU_FORM" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
<DeleteCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>DELETE FROM [dbo].[TBPMO_MENU_FORM] WHERE (([GUID] = @Original_GUID) AND ([MENU_ENTRY] = @Original_MENU_ENTRY) AND ((@IsNull_ICON_PATH = 1 AND [ICON_PATH] IS NULL) OR ([ICON_PATH] = @Original_ICON_PATH)) AND ([SEQUENCE] = @Original_SEQUENCE) AND ([ADDED_WHO] = @Original_ADDED_WHO) AND ([ADDED_WHEN] = @Original_ADDED_WHEN) AND ((@IsNull_CHANGED_WHO = 1 AND [CHANGED_WHO] IS NULL) OR ([CHANGED_WHO] = @Original_CHANGED_WHO)) AND ((@IsNull_CHANGED_WHEN = 1 AND [CHANGED_WHEN] IS NULL) OR ([CHANGED_WHEN] = @Original_CHANGED_WHEN)))</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_MENU_ENTRY" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="MENU_ENTRY" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_ICON_PATH" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ICON_PATH" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_ICON_PATH" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ICON_PATH" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_SEQUENCE" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="SEQUENCE" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_ADDED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_CHANGED_WHO" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_CHANGED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_CHANGED_WHEN" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Original" />
</Parameters>
</DbCommand>
</DeleteCommand>
<InsertCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>INSERT INTO [dbo].[TBPMO_MENU_FORM] ([MENU_ENTRY], [ICON_PATH], [SEQUENCE], [ADDED_WHO], [ADDED_WHEN], [CHANGED_WHO], [CHANGED_WHEN]) VALUES (@MENU_ENTRY, @ICON_PATH, @SEQUENCE, @ADDED_WHO, @ADDED_WHEN, @CHANGED_WHO, @CHANGED_WHEN);
SELECT GUID, MENU_ENTRY, ICON_PATH, SEQUENCE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN FROM TBPMO_MENU_FORM WHERE (GUID = SCOPE_IDENTITY())</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@MENU_ENTRY" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="MENU_ENTRY" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@ICON_PATH" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ICON_PATH" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@SEQUENCE" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="SEQUENCE" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@ADDED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@CHANGED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</InsertCommand>
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>SELECT GUID, MENU_ENTRY, ICON_PATH, SEQUENCE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN FROM dbo.TBPMO_MENU_FORM</CommandText>
<Parameters />
</DbCommand>
</SelectCommand>
<UpdateCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>UPDATE [dbo].[TBPMO_MENU_FORM] SET [MENU_ENTRY] = @MENU_ENTRY, [ICON_PATH] = @ICON_PATH, [SEQUENCE] = @SEQUENCE, [ADDED_WHO] = @ADDED_WHO, [ADDED_WHEN] = @ADDED_WHEN, [CHANGED_WHO] = @CHANGED_WHO, [CHANGED_WHEN] = @CHANGED_WHEN WHERE (([GUID] = @Original_GUID) AND ([MENU_ENTRY] = @Original_MENU_ENTRY) AND ((@IsNull_ICON_PATH = 1 AND [ICON_PATH] IS NULL) OR ([ICON_PATH] = @Original_ICON_PATH)) AND ([SEQUENCE] = @Original_SEQUENCE) AND ([ADDED_WHO] = @Original_ADDED_WHO) AND ([ADDED_WHEN] = @Original_ADDED_WHEN) AND ((@IsNull_CHANGED_WHO = 1 AND [CHANGED_WHO] IS NULL) OR ([CHANGED_WHO] = @Original_CHANGED_WHO)) AND ((@IsNull_CHANGED_WHEN = 1 AND [CHANGED_WHEN] IS NULL) OR ([CHANGED_WHEN] = @Original_CHANGED_WHEN)));
SELECT GUID, MENU_ENTRY, ICON_PATH, SEQUENCE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN FROM TBPMO_MENU_FORM WHERE (GUID = @GUID)</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@MENU_ENTRY" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="MENU_ENTRY" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@ICON_PATH" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ICON_PATH" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@SEQUENCE" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="SEQUENCE" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@ADDED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@CHANGED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_MENU_ENTRY" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="MENU_ENTRY" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_ICON_PATH" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ICON_PATH" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_ICON_PATH" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ICON_PATH" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_SEQUENCE" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="SEQUENCE" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_ADDED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_CHANGED_WHO" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_CHANGED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_CHANGED_WHEN" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBPMO_MENU_FORM" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</UpdateCommand>
</DbSource>
</MainSource>
<Mappings>
<Mapping SourceColumn="GUID" DataSetColumn="GUID" />
<Mapping SourceColumn="MENU_ENTRY" DataSetColumn="MENU_ENTRY" />
<Mapping SourceColumn="ICON_PATH" DataSetColumn="ICON_PATH" />
<Mapping SourceColumn="SEQUENCE" DataSetColumn="SEQUENCE" />
<Mapping SourceColumn="ADDED_WHO" DataSetColumn="ADDED_WHO" />
<Mapping SourceColumn="ADDED_WHEN" DataSetColumn="ADDED_WHEN" />
<Mapping SourceColumn="CHANGED_WHO" DataSetColumn="CHANGED_WHO" />
<Mapping SourceColumn="CHANGED_WHEN" DataSetColumn="CHANGED_WHEN" />
</Mappings>
<Sources />
</TableAdapter>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="TBPMO_MENU_FORM_ENTRIESTableAdapter" GeneratorDataComponentClassName="TBPMO_MENU_FORM_ENTRIESTableAdapter" Name="TBPMO_MENU_FORM_ENTRIES" UserDataComponentName="TBPMO_MENU_FORM_ENTRIESTableAdapter">
<MainSource>
<DbSource ConnectionRef="DD_DMSConnectionString (MySettings)" DbObjectName="DD_ECM.dbo.TBPMO_MENU_FORM_ENTRIES" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
<DeleteCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>DELETE FROM [dbo].[TBPMO_MENU_FORM_ENTRIES] WHERE (([GUID] = @Original_GUID) AND ([MENU_FORM_ID] = @Original_MENU_FORM_ID) AND ([FORM_ID] = @Original_FORM_ID) AND ((@IsNull_ICON_PATH = 1 AND [ICON_PATH] IS NULL) OR ([ICON_PATH] = @Original_ICON_PATH)) AND ([MENU_ENTRY] = @Original_MENU_ENTRY) AND ([SEQUENCE] = @Original_SEQUENCE) AND ([ADDED_WHO] = @Original_ADDED_WHO) AND ([ADDED_WHEN] = @Original_ADDED_WHEN) AND ((@IsNull_CHANGED_WHO = 1 AND [CHANGED_WHO] IS NULL) OR ([CHANGED_WHO] = @Original_CHANGED_WHO)) AND ((@IsNull_CHANGED_WHEN = 1 AND [CHANGED_WHEN] IS NULL) OR ([CHANGED_WHEN] = @Original_CHANGED_WHEN)))</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_MENU_FORM_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="MENU_FORM_ID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_FORM_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="FORM_ID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_ICON_PATH" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ICON_PATH" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_ICON_PATH" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ICON_PATH" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_MENU_ENTRY" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="MENU_ENTRY" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_SEQUENCE" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="SEQUENCE" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_ADDED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_CHANGED_WHO" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_CHANGED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_CHANGED_WHEN" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Original" />
</Parameters>
</DbCommand>
</DeleteCommand>
<InsertCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>INSERT INTO [dbo].[TBPMO_MENU_FORM_ENTRIES] ([MENU_FORM_ID], [FORM_ID], [ICON_PATH], [MENU_ENTRY], [SEQUENCE], [ADDED_WHO], [ADDED_WHEN], [CHANGED_WHO], [CHANGED_WHEN]) VALUES (@MENU_FORM_ID, @FORM_ID, @ICON_PATH, @MENU_ENTRY, @SEQUENCE, @ADDED_WHO, @ADDED_WHEN, @CHANGED_WHO, @CHANGED_WHEN);
SELECT GUID, MENU_FORM_ID, FORM_ID, ICON_PATH, MENU_ENTRY, SEQUENCE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN FROM TBPMO_MENU_FORM_ENTRIES WHERE (GUID = SCOPE_IDENTITY())</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@MENU_FORM_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="MENU_FORM_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@FORM_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="FORM_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@ICON_PATH" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ICON_PATH" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@MENU_ENTRY" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="MENU_ENTRY" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@SEQUENCE" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="SEQUENCE" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@ADDED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@CHANGED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</InsertCommand>
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>SELECT GUID, MENU_FORM_ID, FORM_ID, ICON_PATH, MENU_ENTRY, SEQUENCE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN FROM dbo.TBPMO_MENU_FORM_ENTRIES</CommandText>
<Parameters />
</DbCommand>
</SelectCommand>
<UpdateCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>UPDATE [dbo].[TBPMO_MENU_FORM_ENTRIES] SET [MENU_FORM_ID] = @MENU_FORM_ID, [FORM_ID] = @FORM_ID, [ICON_PATH] = @ICON_PATH, [MENU_ENTRY] = @MENU_ENTRY, [SEQUENCE] = @SEQUENCE, [ADDED_WHO] = @ADDED_WHO, [ADDED_WHEN] = @ADDED_WHEN, [CHANGED_WHO] = @CHANGED_WHO, [CHANGED_WHEN] = @CHANGED_WHEN WHERE (([GUID] = @Original_GUID) AND ([MENU_FORM_ID] = @Original_MENU_FORM_ID) AND ([FORM_ID] = @Original_FORM_ID) AND ((@IsNull_ICON_PATH = 1 AND [ICON_PATH] IS NULL) OR ([ICON_PATH] = @Original_ICON_PATH)) AND ([MENU_ENTRY] = @Original_MENU_ENTRY) AND ([SEQUENCE] = @Original_SEQUENCE) AND ([ADDED_WHO] = @Original_ADDED_WHO) AND ([ADDED_WHEN] = @Original_ADDED_WHEN) AND ((@IsNull_CHANGED_WHO = 1 AND [CHANGED_WHO] IS NULL) OR ([CHANGED_WHO] = @Original_CHANGED_WHO)) AND ((@IsNull_CHANGED_WHEN = 1 AND [CHANGED_WHEN] IS NULL) OR ([CHANGED_WHEN] = @Original_CHANGED_WHEN)));
SELECT GUID, MENU_FORM_ID, FORM_ID, ICON_PATH, MENU_ENTRY, SEQUENCE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN FROM TBPMO_MENU_FORM_ENTRIES WHERE (GUID = @GUID)</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@MENU_FORM_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="MENU_FORM_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@FORM_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="FORM_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@ICON_PATH" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ICON_PATH" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@MENU_ENTRY" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="MENU_ENTRY" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@SEQUENCE" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="SEQUENCE" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@ADDED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@CHANGED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_MENU_FORM_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="MENU_FORM_ID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_FORM_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="FORM_ID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_ICON_PATH" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ICON_PATH" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_ICON_PATH" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ICON_PATH" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_MENU_ENTRY" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="MENU_ENTRY" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_SEQUENCE" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="SEQUENCE" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_ADDED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_CHANGED_WHO" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_CHANGED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_CHANGED_WHEN" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBPMO_MENU_FORM_ENTRIES" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</UpdateCommand>
</DbSource>
</MainSource>
<Mappings>
<Mapping SourceColumn="GUID" DataSetColumn="GUID" />
<Mapping SourceColumn="MENU_FORM_ID" DataSetColumn="MENU_FORM_ID" />
<Mapping SourceColumn="FORM_ID" DataSetColumn="FORM_ID" />
<Mapping SourceColumn="ICON_PATH" DataSetColumn="ICON_PATH" />
<Mapping SourceColumn="MENU_ENTRY" DataSetColumn="MENU_ENTRY" />
<Mapping SourceColumn="SEQUENCE" DataSetColumn="SEQUENCE" />
<Mapping SourceColumn="ADDED_WHO" DataSetColumn="ADDED_WHO" />
<Mapping SourceColumn="ADDED_WHEN" DataSetColumn="ADDED_WHEN" />
<Mapping SourceColumn="CHANGED_WHO" DataSetColumn="CHANGED_WHO" />
<Mapping SourceColumn="CHANGED_WHEN" DataSetColumn="CHANGED_WHEN" />
</Mappings>
<Sources>
<DbSource ConnectionRef="DD_DMSConnectionString (MySettings)" DbObjectName="DD_ECM.dbo.TBPMO_MENU_FORM_ENTRIES" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="FillBy" GenerateMethods="Fill" GenerateShortCommands="true" GeneratorSourceName="FillBy" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy" UserSourceName="FillBy">
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>SELECT GUID, MENU_FORM_ID, FORM_ID, ICON_PATH, MENU_ENTRY, SEQUENCE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN
FROM TBPMO_MENU_FORM_ENTRIES
WHERE (MENU_FORM_ID = @MENU_FORM_ID)</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="MENU_FORM_ID" ColumnName="MENU_FORM_ID" DataSourceName="DD_ECM.dbo.TBPMO_MENU_FORM_ENTRIES" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@MENU_FORM_ID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="MENU_FORM_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</SelectCommand>
</DbSource>
</Sources>
</TableAdapter>
</Tables>
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="DD_DMSDataSetMenuDesigner" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="True" msprop:Generator_DataSetName="DD_DMSDataSetMenuDesigner" msprop:Generator_UserDSName="DD_DMSDataSetMenuDesigner">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="TBPMO_MENU_FORM" msprop:Generator_TableClassName="TBPMO_MENU_FORMDataTable" msprop:Generator_TableVarName="tableTBPMO_MENU_FORM" msprop:Generator_RowChangedName="TBPMO_MENU_FORMRowChanged" msprop:Generator_TablePropName="TBPMO_MENU_FORM" msprop:Generator_RowDeletingName="TBPMO_MENU_FORMRowDeleting" msprop:Generator_RowChangingName="TBPMO_MENU_FORMRowChanging" msprop:Generator_RowEvHandlerName="TBPMO_MENU_FORMRowChangeEventHandler" msprop:Generator_RowDeletedName="TBPMO_MENU_FORMRowDeleted" msprop:Generator_RowClassName="TBPMO_MENU_FORMRow" msprop:Generator_UserTableName="TBPMO_MENU_FORM" msprop:Generator_RowEvArgName="TBPMO_MENU_FORMRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_UserColumnName="GUID" type="xs:int" />
<xs:element name="MENU_ENTRY" msprop:Generator_ColumnVarNameInTable="columnMENU_ENTRY" msprop:Generator_ColumnPropNameInRow="MENU_ENTRY" msprop:Generator_ColumnPropNameInTable="MENU_ENTRYColumn" msprop:Generator_UserColumnName="MENU_ENTRY">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ICON_PATH" msprop:Generator_ColumnVarNameInTable="columnICON_PATH" msprop:Generator_ColumnPropNameInRow="ICON_PATH" msprop:Generator_ColumnPropNameInTable="ICON_PATHColumn" msprop:Generator_UserColumnName="ICON_PATH" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1000" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SEQUENCE" msprop:Generator_ColumnVarNameInTable="columnSEQUENCE" msprop:Generator_ColumnPropNameInRow="SEQUENCE" msprop:Generator_ColumnPropNameInTable="SEQUENCEColumn" msprop:Generator_UserColumnName="SEQUENCE" type="xs:int" />
<xs:element name="ADDED_WHO" msprop:Generator_ColumnVarNameInTable="columnADDED_WHO" msprop:Generator_ColumnPropNameInRow="ADDED_WHO" msprop:Generator_ColumnPropNameInTable="ADDED_WHOColumn" msprop:Generator_UserColumnName="ADDED_WHO">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADDED_WHEN" msprop:Generator_ColumnVarNameInTable="columnADDED_WHEN" msprop:Generator_ColumnPropNameInRow="ADDED_WHEN" msprop:Generator_ColumnPropNameInTable="ADDED_WHENColumn" msprop:Generator_UserColumnName="ADDED_WHEN" type="xs:dateTime" />
<xs:element name="CHANGED_WHO" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHO" msprop:Generator_ColumnPropNameInRow="CHANGED_WHO" msprop:Generator_ColumnPropNameInTable="CHANGED_WHOColumn" msprop:Generator_UserColumnName="CHANGED_WHO" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CHANGED_WHEN" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHEN" msprop:Generator_ColumnPropNameInRow="CHANGED_WHEN" msprop:Generator_ColumnPropNameInTable="CHANGED_WHENColumn" msprop:Generator_UserColumnName="CHANGED_WHEN" type="xs:dateTime" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TBPMO_MENU_FORM_ENTRIES" msprop:Generator_TableClassName="TBPMO_MENU_FORM_ENTRIESDataTable" msprop:Generator_TableVarName="tableTBPMO_MENU_FORM_ENTRIES" msprop:Generator_RowChangedName="TBPMO_MENU_FORM_ENTRIESRowChanged" msprop:Generator_TablePropName="TBPMO_MENU_FORM_ENTRIES" msprop:Generator_RowDeletingName="TBPMO_MENU_FORM_ENTRIESRowDeleting" msprop:Generator_RowChangingName="TBPMO_MENU_FORM_ENTRIESRowChanging" msprop:Generator_RowEvHandlerName="TBPMO_MENU_FORM_ENTRIESRowChangeEventHandler" msprop:Generator_RowDeletedName="TBPMO_MENU_FORM_ENTRIESRowDeleted" msprop:Generator_RowClassName="TBPMO_MENU_FORM_ENTRIESRow" msprop:Generator_UserTableName="TBPMO_MENU_FORM_ENTRIES" msprop:Generator_RowEvArgName="TBPMO_MENU_FORM_ENTRIESRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_UserColumnName="GUID" type="xs:int" />
<xs:element name="MENU_FORM_ID" msprop:Generator_ColumnVarNameInTable="columnMENU_FORM_ID" msprop:Generator_ColumnPropNameInRow="MENU_FORM_ID" msprop:Generator_ColumnPropNameInTable="MENU_FORM_IDColumn" msprop:Generator_UserColumnName="MENU_FORM_ID" type="xs:int" />
<xs:element name="FORM_ID" msprop:Generator_ColumnVarNameInTable="columnFORM_ID" msprop:Generator_ColumnPropNameInRow="FORM_ID" msprop:Generator_ColumnPropNameInTable="FORM_IDColumn" msprop:Generator_UserColumnName="FORM_ID" type="xs:int" />
<xs:element name="ICON_PATH" msprop:Generator_ColumnVarNameInTable="columnICON_PATH" msprop:Generator_ColumnPropNameInRow="ICON_PATH" msprop:Generator_ColumnPropNameInTable="ICON_PATHColumn" msprop:Generator_UserColumnName="ICON_PATH" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1000" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MENU_ENTRY" msprop:Generator_ColumnVarNameInTable="columnMENU_ENTRY" msprop:Generator_ColumnPropNameInRow="MENU_ENTRY" msprop:Generator_ColumnPropNameInTable="MENU_ENTRYColumn" msprop:Generator_UserColumnName="MENU_ENTRY">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SEQUENCE" msprop:Generator_ColumnVarNameInTable="columnSEQUENCE" msprop:Generator_ColumnPropNameInRow="SEQUENCE" msprop:Generator_ColumnPropNameInTable="SEQUENCEColumn" msprop:Generator_UserColumnName="SEQUENCE" type="xs:int" />
<xs:element name="ADDED_WHO" msprop:Generator_ColumnVarNameInTable="columnADDED_WHO" msprop:Generator_ColumnPropNameInRow="ADDED_WHO" msprop:Generator_ColumnPropNameInTable="ADDED_WHOColumn" msprop:Generator_UserColumnName="ADDED_WHO">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADDED_WHEN" msprop:Generator_ColumnVarNameInTable="columnADDED_WHEN" msprop:Generator_ColumnPropNameInRow="ADDED_WHEN" msprop:Generator_ColumnPropNameInTable="ADDED_WHENColumn" msprop:Generator_UserColumnName="ADDED_WHEN" type="xs:dateTime" />
<xs:element name="CHANGED_WHO" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHO" msprop:Generator_ColumnPropNameInRow="CHANGED_WHO" msprop:Generator_ColumnPropNameInTable="CHANGED_WHOColumn" msprop:Generator_UserColumnName="CHANGED_WHO" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CHANGED_WHEN" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHEN" msprop:Generator_ColumnPropNameInRow="CHANGED_WHEN" msprop:Generator_ColumnPropNameInTable="CHANGED_WHENColumn" msprop:Generator_UserColumnName="CHANGED_WHEN" type="xs:dateTime" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:TBPMO_MENU_FORM" />
<xs:field xpath="mstns:GUID" />
</xs:unique>
<xs:unique name="TBPMO_MENU_FORM_ENTRIES_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:TBPMO_MENU_FORM_ENTRIES" />
<xs:field xpath="mstns:GUID" />
</xs:unique>
</xs:element>
<xs:annotation>
<xs:appinfo>
<msdata:Relationship name="FK_TBPMO_MENU_FORM_ENTRIES_MENU_FORM_ID" msdata:parent="TBPMO_MENU_FORM" msdata:child="TBPMO_MENU_FORM_ENTRIES" msdata:parentkey="GUID" msdata:childkey="MENU_FORM_ID" msprop:Generator_UserChildTable="TBPMO_MENU_FORM_ENTRIES" msprop:Generator_ChildPropName="GetTBPMO_MENU_FORM_ENTRIESRows" msprop:Generator_UserRelationName="FK_TBPMO_MENU_FORM_ENTRIES_MENU_FORM_ID" msprop:Generator_RelationVarName="relationFK_TBPMO_MENU_FORM_ENTRIES_MENU_FORM_ID" msprop:Generator_UserParentTable="TBPMO_MENU_FORM" msprop:Generator_ParentPropName="TBPMO_MENU_FORMRow" />
</xs:appinfo>
</xs:annotation>
</xs:schema>

View File

@ -0,0 +1 @@


File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
Partial Class DD_ECMAdmin
Partial Class TBPMO_DOCSEARCH_RESULTLIST_CONFIGDataTable
Private Sub TBPMO_DOCSEARCH_RESULTLIST_CONFIGDataTable_TBPMO_DOCSEARCH_RESULTLIST_CONFIGRowChanging(sender As Object, e As TBPMO_DOCSEARCH_RESULTLIST_CONFIGRowChangeEvent) Handles Me.TBPMO_DOCSEARCH_RESULTLIST_CONFIGRowChanging
End Sub
End Class
End Class

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings>
<TableUISetting Name="TBPMO_FORM_CONSTRUCTOR_DETAIL">
<ColumnUISettings>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="COLUMN_NAME1">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBPMO_SAP_FUBA">
<ColumnUISettings>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBPMO_DOCSEARCH_RESULTLIST_CONFIG">
<ColumnUISettings>
<ColumnUISetting Name="TYPE_ID">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
</TableUISettings>
</DataSetUISetting>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-19" ViewPortY="-47" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:TBPMO_FORM_CONSTRUCTOR" ZOrder="5" X="-9" Y="140" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:TBPMO_FORM_CONSTRUCTOR_DETAIL" ZOrder="20" X="386" Y="39" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBDD_CONNECTION" ZOrder="18" X="867" Y="324" Height="305" Width="264" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:VWTEMPQUICKVIEW" ZOrder="16" X="1497" Y="511" Height="172" Width="267" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:TBWH_ENTITIES" ZOrder="15" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBWH_USER_GROUPS" ZOrder="14" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBPMO_SAP_FUBA" ZOrder="12" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:USER_RIGHTS" ZOrder="2" X="567" Y="383" Height="305" Width="210" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBPMO_DOCSEARCH_RESULTLIST_CONFIG" ZOrder="9" X="1048" Y="-5" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:VWDD_LOGIN_USER_HISTORY" ZOrder="8" X="1173" Y="480" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:TBPMO_DOCSEARCH_RESULTLIST_CONFIG_TYPE_ID" ZOrder="7" X="1424" Y="2" Height="115" Width="418" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:TBPMO_LOG_ESSENTIALS" ZOrder="6" X="310" Y="616" Height="210" Width="293" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:TBPMO_DOCRESULT_DROPDOWN_ITEMS" ZOrder="4" X="722" Y="13" Height="267" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:TBDD_GROUPS" ZOrder="1" X="241" Y="533" Height="286" Width="233" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:DT_VORSCHAU" ZOrder="17" X="1342" Y="401" Height="48" Width="154" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="44" />
<Shape ID="DesignTable:TBAD_Users" ZOrder="13" X="365" Y="384" Height="144" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:TBWH_Users1" ZOrder="11" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBWH_Users2" ZOrder="10" X="794" Y="145" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" />
</Shapes>
<Connectors>
<Connector ID="DesignRelation:FK_TBPMO_FORM_CONSTRUCTOR_DETAIL_CONSTRUCT_ID" ZOrder="19" LineWidth="11">
<RoutePoints>
<Point>
<X>291</X>
<Y>177</Y>
</Point>
<Point>
<X>386</X>
<Y>177</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBPMO_DOCRESULT_DROPDOWN_ITEMSCONFIG_ID" ZOrder="3" LineWidth="11">
<RoutePoints>
<Point>
<X>1048</X>
<Y>146</Y>
</Point>
<Point>
<X>1022</X>
<Y>146</Y>
</Point>
</RoutePoints>
</Connector>
</Connectors>
</DiagramLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,584 @@
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Views.Grid
Module ModuleHelperMethods
Public Enum EnumFormatOptions
[String] = 0
Currency = 1
[Decimal] = 2
End Enum
Public Enum EnumDateTimePickerDefaultValueOptions
CurrentDate = 0
Empty = 1
End Enum
Public Function NotNull(Of T)(ByVal value As T, ByVal defaultValue As T) As T
If IsNothing(value) OrElse String.IsNullOrEmpty(value.ToString) OrElse IsDBNull(value) Then
Return defaultValue
Else
Return value
End If
End Function
Public Function NotNullInt(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
' Wandelt einen Boolean Wert in einen Int um
Return IIf(bool, 1, 0)
End Function
Public Function IntToBool(int As Integer) As Boolean
If int = 0 Then
Return False
ElseIf int = 1 Then
Return True
Else
Throw New Exception("IntToBool expects an Integer value that is either 0 or 1")
End If
End Function
Public Function ColorToInt(color As Color) As Integer
Return System.Drawing.ColorTranslator.ToWin32(color)
End Function
Public Function IntToColor(int As Integer) As Color
Return System.Drawing.ColorTranslator.FromWin32(int)
End Function
Public Function StrToBool(str As Object) As Boolean
Dim result As Boolean = False
str = TryCast(str, String)
Try
result = Convert.ToBoolean(str)
Catch ex As Exception
result = False
End Try
Return result
End Function
Public Function ByteArrayToBitmap(bytearray() As Byte) As Bitmap
Return New Bitmap(New System.IO.MemoryStream(bytearray))
End Function
Public Function StringToByteArray(ByVal hex As String) As Byte()
Dim NumberChars As Integer = hex.Length
Dim bytes(NumberChars / 2) As Byte
For i As Integer = 0 To NumberChars - 1 Step 2
bytes(i / 2) = Convert.ToByte(hex.Substring(i, 2), 16)
Next
Return bytes
End Function
Public Function BitmapToByteArray(bitmap As Bitmap) As Byte()
Dim bytearray As Byte()
Using stream As New System.IO.MemoryStream
bitmap.Save(stream, bitmap.RawFormat)
bytearray = stream.ToArray()
End Using
Return bytearray
End Function
Public Function IsGroupBox(c As Control)
Return c.GetType().Name = "GroupBox"
End Function
Public Function ParentIsGroupBox(c As Control)
Return c.Parent.GetType().Name = "GroupBox"
End Function
''' <summary>
''' Checks if a property exists on an object
''' </summary>
''' <param name="obj">The Object to check</param>
''' <param name="prop">The Property to check for</param>
''' <returns>True, if prop exists</returns>
Public Function propExists(ByVal obj As Object, ByVal prop As String) As Boolean
Dim type As Type = obj.GetType
Return type.GetProperty(prop) IsNot Nothing
End Function
Public Function propExistsWithType(ByVal obj As Object, ByVal prop As String, returnType As System.Type)
Dim type As Type = obj.GetType
Return type.GetProperty(prop, returnType) IsNot Nothing
End Function
''' <summary>
''' Gets a ControlID from Control Name
''' </summary>
''' <param name="name">Control Name</param>
''' <param name="formid">Current Form ID</param>
''' <returns>Control ID</returns>
Public Function GetControlID_for_Name(name As String, formid As Integer) As Integer
Try
Dim SQL = "SELECT GUID FROM TBPMO_CONTROL WHERE FORM_ID = " & formid & " and NAME = '" & name & "'"
Dim ID As Integer = ClassDatabase.Execute_Scalar(SQL)
If ID > 0 Then
Return ID
Else
Return -1
End If
Catch ex As Exception
MsgBox("Error in GetControlID_for_Name:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Function
Public Function GetControlID_for_RecordID(name As String, recID As Integer) As Integer
Try
Dim SQL = "SELECT CONTROL_ID FROM VWPMO_VALUES WHERE RECORD_ID = " & recID & " and CONTROL_NAME = '" & name & "'"
Dim ID As Integer = ClassDatabase.Execute_Scalar(SQL, True)
If ID > 0 Then
Return ID
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> es konnte keine ID für name geholt werden: " & SQL, False)
Return -1
End If
Catch ex As Exception
MsgBox("Error in GetControlID:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Function
''' <summary>
''' Gets a Control Name from ControlID
''' </summary>
''' <param name="Id">ControlID</param>
''' <param name="formid">Current Form ID</param>
''' <returns>Control Name</returns>
Public Function Get_Name_for_ControlID(Id As Integer, formid As Integer) As String
Try
Dim SQL = "SELECT NAME FROM TBPMO_CONTROL WHERE FORM_ID = " & formid & " AND GUID = " & Id
Dim Name = ClassDatabase.Execute_Scalar(SQL)
Return Name
Catch ex As Exception
MsgBox("Error in GetName_for_ControlID:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Sub OpenFormCalendar()
Dim frm As New frmCalendar
frm = frmCalendar.Instance()
If My.Settings.User_Calendar_isChild = True Then
frm.MdiParent = MAIN_FORM
End If
frm.Show()
End Sub
Public Sub OpenViewsUser()
Dim frm As New frmViewsUser
frm = frmViewsUser
frm.MdiParent = MAIN_FORM
frm.Show()
End Sub
Public Sub OpenSearchAllOVer()
Dim frm As New frmGlobalSearch
frm = frmGlobalSearch
frm.MdiParent = MAIN_FORM
frm.Show()
End Sub
Public Sub OpenStatisticsADDI()
Dim frm As New frmStatistiscsADDI
frm = frmStatistiscsADDI
frm.MdiParent = MAIN_FORM
frm.Show()
End Sub
Public Sub Close_Maximized_Forms()
For i = System.Windows.Forms.Application.OpenForms.Count - 1 To 1 Step -1
Dim form As Form = System.Windows.Forms.Application.OpenForms(i)
form.WindowState = FormWindowState.Normal
Next i
End Sub
Public Sub OpenFormOverview()
Close_Maximized_Forms()
Dim frm As New frmEntities
frm = frmEntities.Instance()
frm.MdiParent = MAIN_FORM
frm.Show()
End Sub
Public Sub OpenFormLevelDesigner()
For i = System.Windows.Forms.Application.OpenForms.Count - 1 To 1 Step -1
Dim form As Form = System.Windows.Forms.Application.OpenForms(i)
form.WindowState = FormWindowState.Normal
Next i
Dim frm As New frmLevel_Designer
frm = frmLevel_Designer.Instance
frm.MdiParent = MAIN_FORM
frm.Show()
'Dim frm2 As New frmTool_ControlDesigner
'frm2 = frmTool_ControlDesigner.Instance
'If My.Settings.User_DesignPanels_areChild = True Then
' frm2.MdiParent = MAIN_FORM
'End If
'frm2.Show()
'Dim frm3 As New frmTool_ControlProperties
'frm3 = frmTool_ControlProperties.Instance
'If My.Settings.User_DesignPanels_areChild = True Then
' frm3.MdiParent = MAIN_FORM
'End If
'frm3.Show()
End Sub
Public Sub OpenRecordView(recordId)
Try
JUMP_RECORD_ID = recordId
Dim frm As New frmRecordView()
'frm.MdiParent = MAIN_FORM
frm.Show()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Sub OpenFormConstructor(id As Integer, Optional recordId As Integer = -1)
Try
If CURRENT_OPEN_CONSTRUCTOR_FORMS.Contains(id) Then
Dim frm1 As New frmConstructor_Main
frm1.Tag = id
Dim frmCollection = System.Windows.Forms.Application.OpenForms
For i As Int16 = 0I To frmCollection.Count - 1I
If frmCollection.Item(i).Tag = id Then
frmCollection.Item(i).Activate()
frmCollection.Item(i).BringToFront()
If frmCollection.Item(i).WindowState = FormWindowState.Minimized Then
frmCollection.Item(i).WindowState = FormWindowState.Normal
End If
Exit Sub
End If
Next i
Exit Sub
End If
CURRENT_CONSTRUCTOR_ID = id
CURRENT_OPEN_CONSTRUCTOR_FORMS.Add(id)
Dim frm As New frmConstructor_Main()
frm.Tag = id
' frm = frmForm_Constructor.Instance()
Dim activeChild As Form = MAIN_FORM.ActiveMdiChild
If activeChild IsNot Nothing Then
activeChild.WindowState = FormWindowState.Normal
End If
If recordId <> -1 Then
' Wenn JUMP_RECORD_ID gesetzt wurde, wird zu diesem Record gesprungen
JUMP_RECORD_ID = recordId
End If
frm.MdiParent = MAIN_FORM
frm.Show()
Catch ex As Exception
ClassLogger.Add("Error in OpenFormConstructor: " & ex.Message)
MsgBox("Error in OpenFormConstructor: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Sub OpenTaskmanagement()
Dim frm As New frmTask_Management
frm = frmTask_Management.Instance()
frm.MdiParent = MAIN_FORM
Dim activeChild As Form = MAIN_FORM.ActiveMdiChild
If activeChild IsNot Nothing Then
activeChild.WindowState = FormWindowState.Normal
End If
frm.Show()
End Sub
Public Sub OpenDokumentartt()
Dim frm As New frmWM_DoctypeConfig
frm = frmWM_DoctypeConfig.Instance()
frm.MdiParent = MAIN_FORM
Dim activeChild As Form = MAIN_FORM.ActiveMdiChild
If activeChild IsNot Nothing Then
activeChild.WindowState = FormWindowState.Normal
End If
frm.Show()
End Sub
Public Sub OpenMenuDesigner()
Dim frm As New frmMenuDesigner
frm.MdiParent = MAIN_FORM
Dim activeChild As Form = MAIN_FORM.ActiveMdiChild
If activeChild IsNot Nothing Then
activeChild.WindowState = FormWindowState.Normal
End If
frm.Show()
End Sub
Public Sub OpenUserKonfig()
Dim frm As New frmUserKonfig
frm = frmUserKonfig.Instance()
frm.MdiParent = MAIN_FORM
Dim activeChild As Form = MAIN_FORM.ActiveMdiChild
If activeChild IsNot Nothing Then
activeChild.WindowState = FormWindowState.Normal
End If
frm.Show()
End Sub
Public Sub OpenImageManager()
Dim frm As New frmQuickStart_Images
'frm = frmImageManager.Instance()
frm.MdiParent = MAIN_FORM
Dim activeChild As Form = MAIN_FORM.ActiveMdiChild
If activeChild IsNot Nothing Then
activeChild.WindowState = FormWindowState.Normal
End If
frm.Show()
End Sub
Public Sub OpenObjecttypeConfig()
Dim frm As New frmWM_ObjecttypeConfig
frm = frmWM_ObjecttypeConfig.Instance()
frm.MdiParent = MAIN_FORM
Dim activeChild As Form = MAIN_FORM.ActiveMdiChild
If activeChild IsNot Nothing Then
activeChild.WindowState = FormWindowState.Normal
End If
frm.Show()
End Sub
Public Sub OpenRightsmanager()
'Dim path As String = ClassDatabase.Execute_Scalar("SELECT PATH_ADDONS FROm TBPMO_KONFIGURATION WHERE GUID = 1")
Try
Dim ProductionPath As String = System.IO.Path.Combine(MY_ADDON_PATH, "RightManager", "RecordOrganizer_RightManager.exe")
Dim DevelPath As String = System.IO.Path.Combine(MY_ADDON_PATH, "RecordOrganizer_RightManager\bin\Debug", "RecordOrganizer_RightManager.exe")
Dim startInfo As New ProcessStartInfo()
startInfo.Arguments = """" & MyConnectionString & """"
If System.IO.File.Exists(ProductionPath) Then
startInfo.FileName = ProductionPath
Else
startInfo.FileName = DevelPath
End If
Process.Start(startInfo)
Catch ex As Exception
MsgBox("Could not find Right manager: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Sub OpenWindream_Files()
Dim frm As New frmWM_Import_Doc_Record
frm.MdiParent = MAIN_FORM
Dim activeChild As Form = MAIN_FORM.ActiveMdiChild
If activeChild IsNot Nothing Then
activeChild.WindowState = FormWindowState.Normal
End If
frm.Show()
End Sub
Public Sub OpenWiedervorlage()
Dim frm As New frmFollowUp
frm.MdiParent = MAIN_FORM
Dim activeChild As Form = MAIN_FORM.ActiveMdiChild
If activeChild IsNot Nothing Then
activeChild.WindowState = FormWindowState.Normal
End If
frm.Show()
End Sub
Public Sub OpenLogRecord()
Dim frm As New frmLogRecord
frm = frmLogRecord.Instance()
frm.MdiParent = MAIN_FORM
Dim activeChild As Form = MAIN_FORM.ActiveMdiChild
If activeChild IsNot Nothing Then
activeChild.WindowState = FormWindowState.Normal
End If
frm.Show()
End Sub
Public Sub OpenTemplatemanagement()
Dim frm As New frmTemplates
frm.MdiParent = MAIN_FORM
Dim activeChild As Form = MAIN_FORM.ActiveMdiChild
If activeChild IsNot Nothing Then
activeChild.WindowState = FormWindowState.Normal
End If
frm.Show()
End Sub
Public Sub OpenFormCockpit()
Close_Maximized_Forms()
Dim frm As New frmCockpit
frm = frmCockpit.Instance()
frm.MdiParent = MAIN_FORM
frm.Show()
End Sub
Public Function ShortGUID() As String
Return Guid.NewGuid().ToString().GetHashCode().ToString("x")
End Function
Public Function Get_Grid_Sql(ConstructorId As Integer, FormId As Integer, ConstructorDetailID As Integer, ByRef GRID_TYPE As frmConstructor_Main.GridType, UserGuid As Integer, QUICK_VIEW_SQL As String,
IS_SINGLE_RECORD As Boolean, FORM_TYPE As Integer, ByRef VIEW_ID As Integer, ByRef GridControlMain As GridControl, ByRef grvwGrid As GridView, Optional ByRef IS_GEOData As Boolean = False)
Try
Dim ViewName As String = "VWPMO_ENTITY_TABLE" & FormId.ToString
CURRENT_VIEWNAME = ViewName
Dim EntitySQL As String
If GRID_TYPE = frmConstructor_Main.GridType.Grid Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> GridType = Grid", False)
EntitySQL = "SELECT T.* FROM " & ViewName & " T"
If IS_GEOData = True Then
EntitySQL &= " LEFT OUTER JOIN TBPMO_RECORD_GEODATA T1 ON T.[Record-ID] = T1.RECORD_ID"
EntitySQL = EntitySQL.Replace("T.*", "T.*, T1.LATITUDE,T1.LONGITUDE,T1.LOCATION")
End If
Else 'Tiles und Carousel bekommen Quick View
EntitySQL = QUICK_VIEW_SQL
If EntitySQL = String.Empty Then
EntitySQL = "SELECT T.* FROM VWPMO_ENTITY_TABLE" & FormId.ToString & " T"
If IS_SINGLE_RECORD = True Or FORM_TYPE = 5 Then
Else
GRID_TYPE = frmConstructor_Main.GridType.Grid
GridControlMain.MainView = grvwGrid
VIEW_ID = 3
End If
' GridControlMain.MainView = grvwGrid
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> Quick-View is configured", False)
End If
End If
Try
Dim sql = String.Format("SELECT COUNT(*) FROM TBPMO_CONSTRUCTOR_USER_SQL WHERE USER_ID = {0} AND CONSTR_DET_ID = {1} AND SQL_COMMAND IS NOT NULL AND SQL_COMMAND <> ''", USER_GUID, ConstructorDetailID)
Dim exists = ClassDatabase.Execute_Scalar(sql)
If exists = 1 Then
sql = String.Format("SELECT SQL_COMMAND FROM TBPMO_CONSTRUCTOR_USER_SQL WHERE USER_ID = {0} AND CONSTR_DET_ID = {1}", USER_GUID, ConstructorDetailID)
Dim result = ClassDatabase.Execute_Scalar(sql)
If Not IsNothing(result) Then
' result = result.ToUpper.Replace("@RECORDID", RECORD_ID)
result = result.ToUpper.Replace("@USER_ID", UserGuid)
EntitySQL = EntitySQL & " " & result.ToString
CURRENT_ENTITYSQL_WHERE = result
Else
CURRENT_ENTITYSQL_WHERE = ""
End If
Else
CURRENT_ENTITYSQL_WHERE = ""
End If
Catch ex As Exception
ClassLogger.Add("Error in Get Entity SQL for User: " & vbNewLine & ex.Message, True)
MsgBox("Error in Get Entity SQL for User: " & vbNewLine & ex.Message)
End Try
Return EntitySQL
Catch ex As Exception
ClassLogger.Add("Error in Get_Grid_Sql: " & vbNewLine & ex.Message, True)
MsgBox("Error in Get_Grid_Sql: " & vbNewLine & ex.Message)
Return Nothing
End Try
End Function
Public Class SW
Public label As String
Public stopwatch As Stopwatch
Public Sub New(label As String)
Me.label = label
stopwatch = New Stopwatch()
stopwatch.Start()
End Sub
Public Function Done() As Long
If LogErrorsOnly = True Then Return 0
stopwatch.Stop()
Dim ts As TimeSpan = stopwatch.Elapsed
Dim timespan_ = String.Format("{0:00}:{1:00}.{2:00}", ts.Minutes, ts.Seconds, ts.Milliseconds / 10)
If ts.Minutes > 0 Then
timespan_ = String.Format("{0:00}:{1:00}.{2:00}", ts.Minutes, ts.Seconds, ts.Milliseconds / 10)
ElseIf ts.Seconds > 0 And (ts.Minutes > 0) = False Then
timespan_ = String.Format("{0:00}.{1:00} seconds", ts.Seconds, ts.Milliseconds / 10)
ElseIf (ts.Seconds > 0) = False And ts.Milliseconds > 0 Then
timespan_ = String.Format("{0:00}.{1:00} seconds", ts.Seconds, ts.Milliseconds / 10)
End If
If timespan_ <> "00:00.00" Then
Dim message = String.Format("{0} || {1}", timespan_, label)
Console.WriteLine(message)
If LogErrorsOnly = False Then ClassLogger.Add(message, False)
End If
Return stopwatch.ElapsedMilliseconds
End Function
End Class
Public Class PerfomanceHelper
<Runtime.InteropServices.DllImport("user32.dll")> _
Public Shared Function SendMessage(hWnd As IntPtr, msg As Int32, wParam As Boolean, lParam As Int32) As Integer
End Function
Private Const WM_SETREDRAW As Int32 = &HB
''' <summary>
''' Verhindert Draw-Events. Am Ende sollte ResumeDraw `aufgerufen` werden.
''' </summary>
''' <param name="c"></param>
''' <remarks></remarks>
Public Shared Sub SuspendDraw(c As Control)
SendMessage(c.Handle, WM_SETREDRAW, False, 0)
End Sub
''' <summary>
''' Lässt die Draw-Events wieder zu. Davor sollte `SuspendDraw` aufgerufen werden
''' </summary>
''' <param name="c"></param>
''' <remarks></remarks>
Public Shared Sub ResumeDraw(c As Control)
SendMessage(c.Handle, WM_SETREDRAW, True, 0)
c.Refresh()
End Sub
End Class
End Module

View File

@ -0,0 +1,447 @@
Imports System.IO
Imports System.Xml
Imports DD_LIB_Standards
Imports DevExpress.LookAndFeel
Module ModuleMySettings
Public PATH_FileExclusions As String = Path.Combine(Application.UserAppDataPath(), "FileExclusions.xml")
Dim ConfigPath As String = Path.Combine(Application.UserAppDataPath(), "UserConfig.xml")
Public MyConnectionString As String = ""
Public MyFormsDesign As String = ""
Public LogErrorsOnly As Boolean = True
Public Sett_TaskOverviewKeepInFront As Boolean = True
Public Task_Popup_minutes As Integer = 2
Public Sett_ConstructorStart As Integer
Public MY_ADDON_PATH As String
Public MY_WIKISTRING As String
Public WD_GROUP1 As String
Public WD_UNICODE As Boolean = False
Public GridDocResult_BestFitColumns As Boolean = True
Public SQL_FULLTEXT As String
'Public WD_ShowEnitityDocs As Boolean = True
Public WD_ShowDocs As Boolean = False
Public WD_IndexDeleteDocs As Boolean = False
Public CURRENT_FILE As String = ""
Public vWLaufwerk As String = "W"
Public vVERSION_DELIMITER As String = "~"
Public vFILE_DELIMITER As String = "_"
Public AUTO_LOGOUT_USER As Integer
Public DBVERSION As String
Public USER_IS_ADMIN = False
Public USERS_LOGGED_IN = 0
Public USER_USERNAME As String
Public USER_PERSONIFIED_TEST As Boolean = False
Public USER_GUID = 0
Public USERID_FK_INT_ECM = 0
Public USER_LANGUAGE As String = "de-DE"
Public USER_DATE_FORMAT As String
Public USER_GENERAL_VIEWER As String
Public USER_WAN As Boolean = False
Public DT_CLIENT_USER As DataTable
Public CLIENT_SELECTED As Integer = 99
'Public USER_CLIENTS_COMMA_SEPERATED As String
Public FWSCAN_started As Boolean = False
Dim rowresult As String = ""
Public Function LoadFileExclusion()
Dim rowresult As String = ""
Try
'if file doesn't exist, create the file with its default xml table
If Not File.Exists(PATH_FileExclusions) Then
DTEXCLUDE_FILES = CreateExclusionTable()
DTEXCLUDE_FILES.WriteXml(PATH_FileExclusions)
End If
DTEXCLUDE_FILES = GetTablefromXML(PATH_FileExclusions)
'For Each Row As DataRow In DT.Rows
' rowresult &= Row.Item("FILE_CONTAIN")
' Select Case Row.Item("FILE_CONTAIN")
' End Select
'Next
Return True
Catch ex As Exception
MsgBox("Error in LoadFileExclusion" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
Return True
End Function
Private Function CreateExclusionTable() As DataTable
Try
' Create sample Customers table, in order
' to demonstrate the behavior of the DataTableReader.
Dim table As New DataTable
table.TableName = "TBEXCLUSION"
' Create two columns, ID and Name.
table.Columns.Add("FILE_CONTAIN", GetType(System.String))
Dim newRow As DataRow = table.NewRow()
newRow("FILE_CONTAIN") = "Thumbs"
table.Rows.Add(newRow)
Dim newRow1 As DataRow = table.NewRow()
newRow1("FILE_CONTAIN") = "\~$"
table.Rows.Add(newRow1)
Dim newRow2 As DataRow = table.NewRow()
newRow2("FILE_CONTAIN") = ".db"
table.Rows.Add(newRow2)
Dim newRow3 As DataRow = table.NewRow()
newRow3("FILE_CONTAIN") = "desktop.ini"
table.Rows.Add(newRow3)
table.AcceptChanges()
Return table
Catch ex As Exception
MsgBox("Error in CreateExclusionTable" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Public Function MySettings_Load()
Try
Dim DT As DataTable
'if file doesn't exist, create the file with its default xml table
If Not File.Exists(ConfigPath) Then
ClassLogger.Add(">> ConfigFile was created in: " & ConfigPath, False)
DT = CreateConfigTable()
DT.WriteXml(ConfigPath)
ClassLogger.Add(">> Defaultvalues were saved.", False)
End If
DT = GetTablefromXML(ConfigPath)
If DT Is Nothing Then
MsgBox("Configuration could not be loaded!! Check LogFile!", MsgBoxStyle.Critical)
Return False
End If
For Each Row As DataRow In DT.Rows
rowresult &= Row.Item("ConfigName")
Select Case Row.Item("ConfigName")
Case "MyConnectionString"
Dim connstring As String
'Den ConnectonString mit verschlüsseltem PW laden
Dim csb As New SqlClient.SqlConnectionStringBuilder
csb.ConnectionString = Row.Item("Value")
If Not csb.ConnectionString = "" Then
If csb.ConnectionString.Contains("Password=") Then
'sa-
'Jetzt das Passwort entschlüsseln
Dim PWplainText As String
Dim wrapper As New ClassEncryption("!35452didalog=")
' DecryptData throws if the wrong password is used.
Try
PWplainText = wrapper.DecryptData(csb.Password)
connstring = Row.Item("Value").ToString.Replace(csb.Password, PWplainText)
Catch ex As Exception
ClassLogger.Add("- the Password '" & csb.Password & "' could not be decrypted", False)
connstring = ""
End Try
Else
'Windows-Auth
connstring = Row.Item("Value").ToString
End If
MyConnectionString = connstring
Else
MyConnectionString = ""
End If
Case "MyProxyConnectionString"
Dim connstring As String
'Den ConnectonString mit verschlüsseltem PW laden
Dim csb As New SqlClient.SqlConnectionStringBuilder
csb.ConnectionString = Row.Item("Value")
If Not csb.ConnectionString = "" Then
If csb.ConnectionString.Contains("Password=") Then
'sa-
'Jetzt das Passwort entschlüsseln
Dim PWplainText As String
Dim wrapper As New ClassEncryption("!35452didalog=")
' DecryptData throws if the wrong password is used.
Try
PWplainText = wrapper.DecryptData(csb.Password)
connstring = Row.Item("Value").ToString.Replace(csb.Password, PWplainText)
Catch ex As Exception
ClassLogger.Add("- the Password '" & csb.Password & "' could not be decrypted", False)
connstring = ""
End Try
Else
'Windows-Auth
connstring = Row.Item("Value").ToString
End If
ClassProxy.MyPROXYConnectionString = connstring
Else
ClassProxy.MyPROXYConnectionString = ""
End If
Case "MyLinkedServer"
ClassProxy.MyLinkedServer = Row.Item("Value")
Case "LogErrorsOnly"
LogErrorsOnly = CBool(Row.Item("Value"))
clsCURRENT.LOG_ERRORS_ONLY = LogErrorsOnly
Case "Sett_TaskOverviewKeepInFront"
Sett_TaskOverviewKeepInFront = CBool(Row.Item("Value"))
Case "WD_IndexDeleteDocs"
WD_IndexDeleteDocs = CBool(Row.Item("Value"))
Case "WD_ShowDocs"
WD_ShowDocs = CBool(Row.Item("Value"))
Case "Sett_ConstructorStart"
Sett_ConstructorStart = CInt(Row.Item("Value"))
Case "FWSCAN_started"
FWSCAN_started = CBool(Row.Item("Value"))
Case "Task_Popup_minutes"
If Row.Item("Value") = String.Empty Then
Task_Popup_minutes = 2
Else
Task_Popup_minutes = CInt(Row.Item("Value"))
End If
Case "PATH_ADDON"
If Row.Item("Value") = String.Empty Then
MY_ADDON_PATH = ""
Else
MY_ADDON_PATH = Row.Item("Value")
End If
Case "MyFormsDesign"
If Row.Item("Value") <> String.Empty Then
MyFormsDesign = Row.Item("Value")
End If
Case "GridDocResult_BestFitColumns"
GridDocResult_BestFitColumns = CBool(Row.Item("Value"))
End Select
Next
'update 1.1
If rowresult.Contains("WD_ShowDocs") = False Then
Dim newRow As DataRow = DT.NewRow()
newRow("ConfigName") = "WD_ShowDocs"
newRow("Value") = "False"
DT.Rows.Add(newRow)
DT.WriteXml(ConfigPath)
End If
If rowresult.Contains("Sett_ConstructorStart") = False Then
Dim newRow As DataRow = DT.NewRow()
newRow("ConfigName") = "Sett_ConstructorStart"
newRow("Value") = "0"
DT.Rows.Add(newRow)
DT.WriteXml(ConfigPath)
End If
If rowresult.Contains("FWSCAN_started") = False Then
Dim newRow As DataRow = DT.NewRow()
newRow("ConfigName") = "FWSCAN_started"
newRow("Value") = "False"
DT.Rows.Add(newRow)
DT.WriteXml(ConfigPath)
End If
If rowresult.Contains("Task_Popup_minutes") = False Then
Dim newRow As DataRow = DT.NewRow()
newRow("ConfigName") = "Task_Popup_minutes"
newRow("Value") = "2"
DT.Rows.Add(newRow)
DT.WriteXml(ConfigPath)
End If
If rowresult.Contains("PATH_ADDON") = False Then
Dim newRow As DataRow = DT.NewRow()
newRow("ConfigName") = "PATH_ADDON"
newRow("Value") = ""
DT.Rows.Add(newRow)
DT.WriteXml(ConfigPath)
End If
If rowresult.Contains("MyProxyConnectionString") = False Then
Dim newRow As DataRow = DT.NewRow()
newRow("ConfigName") = "MyProxyConnectionString"
newRow("Value") = ""
DT.Rows.Add(newRow)
DT.WriteXml(ConfigPath)
End If
If rowresult.Contains("MyLinkedServer") = False Then
Dim newRow As DataRow = DT.NewRow()
newRow("ConfigName") = "MyLinkedServer"
newRow("Value") = ""
DT.Rows.Add(newRow)
DT.WriteXml(ConfigPath)
End If
If rowresult.Contains("MyFormsDesign") = False Then
Dim newRow As DataRow = DT.NewRow()
newRow("ConfigName") = "MyFormsDesign"
newRow("Value") = ""
DT.Rows.Add(newRow)
DT.WriteXml(ConfigPath)
End If
If rowresult.Contains("GridDocResult_BestFitColumns") = False Then
Dim newRow As DataRow = DT.NewRow()
newRow("ConfigName") = "GridDocResult_BestFitColumns"
newRow("Value") = "True"
DT.Rows.Add(newRow)
DT.WriteXml(ConfigPath)
End If
Catch ex As Exception
MsgBox("Error in LoadMyConfig" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
ClassLogger.Add("Error in LoadMyConfig: " & ex.Message, True)
Return False
End Try
Return True
End Function
Private Function GetTablefromXML(path As String)
Try
Dim DS As New DataSet
DS.ReadXml(path)
Return DS.Tables(0)
Catch ex As Exception
MsgBox("Error in GetTablefromXML" & vbNewLine & ex.Message & vbNewLine & "ConfigPath: " & vbNewLine & path, MsgBoxStyle.Critical)
ClassLogger.Add("Error in GetTablefromXML: " & ex.Message, True)
ClassLogger.Add(">> ConfigPath: " & ConfigPath, False)
Return Nothing
End Try
End Function
Private Function CreateConfigTable() As DataTable
Try
' Create sample Customers table, in order
' to demonstrate the behavior of the DataTableReader.
Dim table As New DataTable
table.TableName = "MyConfig"
' Create two columns, ID and Name.
Dim idColumn As DataColumn = table.Columns.Add("ID", _
GetType(System.Int32))
idColumn.AutoIncrement = True
idColumn.AutoIncrementSeed = 0
idColumn.AutoIncrementStep = 1
table.Columns.Add("ConfigName", GetType(System.String))
table.Columns.Add("Value", GetType(System.String))
'Set the ID column as the primary key column.
table.PrimaryKey = New DataColumn() {idColumn}
Dim newRow As DataRow = table.NewRow()
newRow("ConfigName") = "MyConnectionString"
newRow("Value") = ""
table.Rows.Add(newRow)
Dim newRow1 As DataRow = table.NewRow()
newRow1("ConfigName") = "LogErrorsOnly"
newRow1("Value") = "True"
table.Rows.Add(newRow1)
Dim newRow2 As DataRow = table.NewRow()
newRow2("ConfigName") = "Sett_TaskOverviewKeepInFront"
newRow2("Value") = "True"
table.Rows.Add(newRow2)
Dim newRow3 As DataRow = table.NewRow()
newRow3("ConfigName") = "Sett_LoadWD_Docs"
newRow3("Value") = "True"
table.Rows.Add(newRow3)
Dim newRow7 As DataRow = table.NewRow()
newRow7("ConfigName") = "WD_IndexDeleteDocs"
newRow7("Value") = "False"
table.Rows.Add(newRow7)
Dim newRow8 As DataRow = table.NewRow()
newRow8("ConfigName") = "WD_ShowDocs"
newRow8("Value") = "False"
table.Rows.Add(newRow8)
Dim newRow9 As DataRow = table.NewRow()
newRow9("ConfigName") = "Sett_ConstructorStart"
newRow9("Value") = "0"
table.Rows.Add(newRow9)
Dim newRow10 As DataRow = table.NewRow()
newRow10("ConfigName") = "FWSCAN_started"
newRow10("Value") = "False"
table.Rows.Add(newRow10)
Dim newRow11 As DataRow = table.NewRow()
newRow11("ConfigName") = "Task_Popup_minutes"
newRow11("Value") = "2"
table.Rows.Add(newRow11)
Dim newRow12 As DataRow = table.NewRow()
newRow12("ConfigName") = "WAN_ENVIRONMENT"
newRow12("Value") = "False"
table.Rows.Add(newRow12)
Dim newRow13 As DataRow = table.NewRow()
newRow13("ConfigName") = "PATH_ADDON"
newRow13("Value") = ""
Dim newRow14 As DataRow = table.NewRow()
newRow14("ConfigName") = "MyProxyConnectionString"
newRow14("Value") = ""
table.Rows.Add(newRow14)
Dim newRow15 As DataRow = table.NewRow()
newRow15("ConfigName") = "MyLinkedServer"
newRow15("Value") = ""
table.Rows.Add(newRow15)
Dim newRow16 As DataRow = table.NewRow()
newRow16("ConfigName") = "MyFormsDesign"
newRow16("Value") = ""
Dim newRow17 As DataRow = table.NewRow()
newRow17("ConfigName") = "GridDocResult_BestFitColumns"
newRow17("Value") = "True"
table.AcceptChanges()
ClassLogger.Add(">> CreateConfigTable su...", False)
Return table
Catch ex As Exception
MsgBox("Error in CreateConfigTable" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Public Function SaveMySettingsValue(name As String, value As String, type As String)
Try
Dim DT As DataTable
If type = "ConfigMain" Then
DT = GetTablefromXML(ConfigPath)
End If
If type = "ExcludeFilter" Then
DT = GetTablefromXML(PATH_FileExclusions)
End If
If Not DT Is Nothing Then
For Each Row As DataRow In DT.Rows
If Row.Item("ConfigName") = name Then
Row.Item("Value") = value
End If
Next
DT.AcceptChanges()
DT.WriteXml(ConfigPath)
Else
MsgBox("Setting could not be saved! Check logfile.", MsgBoxStyle.Critical)
End If
Catch ex As Exception
MsgBox("Error in SaveConfigValue" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
Return True
End Function
Public Function Settings_LoadBasicConfig()
Try
Dim sql As String = "select * from tbdd_Modules where UPPER(NAME) = UPPER('Record-Organizer')"
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, False)
If DT.Rows.Count = 1 Then
vWLaufwerk = DT.Rows(0).Item("STRING1")
vVERSION_DELIMITER = DT.Rows(0).Item("VERSION_DELIMITER")
vFILE_DELIMITER = DT.Rows(0).Item("FILE_DELIMITER")
AUTO_LOGOUT_USER = DT.Rows(0).Item("AUTO_LOGOUT_USER")
Try
DBVERSION = DT.Rows(0).Item("DB_VERSION")
Catch ex As Exception
DBVERSION = "No DB Version-Config"
End Try
Else
Return False
End If
Catch ex As Exception
MsgBox("Error in Settings_LoadBasicConfig" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
Return True
End Function
End Module

View File

@ -0,0 +1,188 @@
Module ModuleRuntimeVariables
Public ESC_Hidden As Boolean = False
Public MIN_REQUIRED_VERSION As String
Public MAIN_FORM As frmMain = Nothing
Public ERROR_INIT = "NONE"
' Diese Werte müssen später zur Laufzeit geladen werden
Public CURRENT_PARENT_ENTITY_ID As Integer
Public CURRENT_PARENT_RECORD_ID As Integer
Public CURRENT_ACT_LEVEL As Integer
Public DT_RIGHTS_USER As DataTable
Public DT_RIGHTS_GROUP As DataTable
Public SQL_RECORD_AND_FILE_READ_ONLY As String = ""
Public RIGHT_RECORD_AND_FILE_READ_ONLY As Boolean = False
Public SQL_DOC_READ_ONLY As String = ""
Public RIGHT_READ_ONLY_DOC As Boolean = False
Public RIGHT_EDIT_R As Boolean = True
Public RIGHT_ADD_R As Boolean = True
Public RIGHT_DELETE_R As Boolean = False
Public RIGHT_ADD_DOC As Boolean = True
Public RIGHT_VIEW_DOC As Boolean = True
Public RIGHT_DELETE_DOC As Boolean = False
Public CURRENT_ENTITYSTRING As String = ""
Public CURRENT_ENTITYSQL As String
Public CURRENT_DT_ENTITY_RECORDS As DataTable
Public CURRENT_VIEWNAME As String = ""
Public CURRENT_ENTITY_REDUNDANT_ID As Integer
'Public CURRENT_ENTITYSQL As String
Public CURRENT_SCREEN_ID As Integer = 1
Public CURRENT_CONTROL_ID As Integer
Public CURRENT_RECORD_ID As Integer
Public CURRENT_CHANGE_STEP As Integer = 0
Public CURRENT_TASK_ID As Integer
Public CURRENT_DOKARTID As Integer
Public CURRENT_DOKARTSTRING As String
Public CURRENT_OPEN_CONSTRUCTOR_FORMS As New List(Of Integer)
Public CURRENT_CONSTRUCTOR_ID As Integer = 1
Public CURRENT_CONSTRUCTOR_DETAIL_ID As Integer
Public CURRENT_FILEID As Integer
Public CURRENT_FILENAME As String
Public CURRENT_OFFICE_FILE_CHANGED As Boolean = False
Public CURRENT_NEWFILENAME As String
Public CURRENT_CONTROL_DOCTYPE_MATCH As String = ""
Public CURRENT_NOTIFICATION_MSG As String
Public CURRENT_ENTITY_ID As Integer
Public CURRENT_FORMVIEW_ID As Integer
Public CURRENT_REDUNDANT_FORM_ID As Integer
Public CURRENT_REDUNDANT_FORMVIEW_ID As Integer
'Public CURRENT_MASTER_FORM_ID As Integer
Public CURRENT_FILEIN_WD As String
Public CURRENT_DOC_ID
Public CURRENT_NAVIGATION_TYPE As String = "DEFAULT"
Public CURRENT_SELECTED_NODE As TreeNode
Public NEW_RECORD_ID As Integer
Public LOGPATH As String
Public INTEGER1 As Integer
Public STRING1 As String
Public BOOLEAN1 As Boolean = False
Public JUMP_STATE As Integer
Public JUMP_RECORD_ID As Integer
Public TEMP_FILES As List(Of String) = New List(Of String)
Public FILE_FORMATS_CHANGE_DURING_EDIT As List(Of String) = New List(Of String)
Public LICENSE_EXPIRED As Boolean = False
Public LICENSE_COUNT As Integer = 0
Public LICENSE_DOSSIER_COUNT As Integer = 0
Public LICENSE_SAP_Connect As Boolean = False
Public LICENSE_PROXY As Boolean = False
Public LICENSE_SITE As Boolean = False
Public LICENSE_DATE As Date
Public DT_LICENSE_ADDONS As DataTable
Public CONNECTION_CHANGED As Boolean = False
Public CURRENT_SCAN_FOLDERWATCH As String
Public CURRENT_SCAN_FOLDERWATCH_SD As Boolean = False
Public DTEXCLUDE_FILES As DataTable
Public LANGUAGE_CHANGED As Boolean = False
'DATATABLES
Public CURRENT_TBPMO_CONN_SWITCH As DataTable
Public CURRENT_TBPMO_CONTROL As DataTable
Public CURRENT_SCAN_TABLE As DataTable
Public CURRENT_TASKS_GENERAL As DataTable
Public CURRENT_RESULTLIST_CONFIG As DataTable
Public CURRENT_VARIABLE_CONTROLS As DataTable
Public CURRENT_TBPMO_FORM_VIEW As DataTable
Public CURRENT_TBPMO_DOCRESULT_DROPDOWN_ITEMS As DataTable
Public CURRENT_TBPMO_RIGHT_USER As DataTable
Public CURRENT_RECORD_ENABLED As Boolean = False
Public ENTITY_RELOAD_AFT_CONTROL_LOAD As Boolean = False
Public CURRENT_COL_COUNT As Integer = 0
Public CURRENT_CONTROL_VALUES As DataTable
Public CURRENT_SQL_AUTO_VALUES_DT As DataTable
Public CURRENT_ENTITYSQL_WHERE As String
Public CURRENT_TBPMO_INDEX_MAN As DataTable
Public CURRENT_DT_TBPMO_ENTITY_RIGHT_CONTROLS As DataTable
Public CURRENT_DT_DOC_ENTITY_SEARCH As DataTable
Public NODE_CONFIGURABLE_NODES_DT As DataTable
Public CURRENT_DOC_RESULTS As DataTable
Public CURRENT_DOC_DROPDOWN As DataTable
Public CURRENT_PARENT_DT As DataTable
Public DT_VWPMO_CONTROL_SCREEN As DataTable
Public CURRENT_VWPMO_WF_ACTIVE As DataTable
Public CURRENT_TBPMO_FILES_USER As DataTable
Public CURRENT_SEARCH_TYPE As String = "RECORD"
Public CURRENT_FULLTEXT_PATTERN As String
Public CURRENT_DT_SELECTED_FILES As DataTable
Public MASS_RECORD_IDs2CHANGE As ArrayList
Public MASS_COLUMN_LIST As ArrayList
Public SUCCESSFULL As Boolean = False
Public CURRENT_LAST_SQL As String
Public CURRENT_DATE_FORMAT As String
Public NEW_FILES_ADDED As Boolean = False
Public CURRENT_VARIABLE_FOLDER As String
Public CURRENT_VARIABLE_FOLDER_OVERRIDE As Boolean = False
Public CURRENT_DOCVIEW_PATH As String
Public CURRENT_DOCVIEW
Public CURRENT_NODE_CONFIGURABLE_ID As Integer
Public CURRENT_NODE_IMAGE
Public CURRENT_CHECK_SUBFOLDER As Boolean = False
Public CURRENT_SUBFOLDER As String = ""
Public RECORD_CHANGED As Boolean = False
Public CURRENT_COMBOBOX_SELECTED_INDEX As Integer = 0
Public CURRENT_COMBOBOX_SELECTED_TEXT As String = ""
Public CURRENT_TEXTBOX_SELECTED_TEXT As String = ""
Public RIGHT_CONTROL_CHANGED As Boolean = False
Public MSG_RIGHTMODULE_DE = "Achtung: " & vbNewLine & "Sie haben Änderungen an Rechte-relevanten Eingaben vorgenommen!" & vbNewLine & _
"Alle Rechte der zu diesem Datensatz gespeicherten Dateien werden nach Speichern serverseitig und im Hintergrund überprüft!" & vbNewLine & _
"Dies kann je nach Anzahl der Dateien bis zu 10 Minuten dauern!" & vbNewLine & "Wollen Sie fortfahren?"
Public MSG_RIGHTMODULE_EN_US = "Attention:" & "You applied changes to right-relevant data!" & vbNewLine & _
"All rights of files belonging to this record will be checked and changed after Saving!" & vbNewLine & _
"This might take up to 10 Minutes (related to the amount of files)!" & vbNewLine & "Would You like to continue?"
'File Adding User FAU
Public FAU_AD_DOMAIN As String
Public FAU_AD_USER As String
Public FAU_AD_USER_PW As String
Public FAU_AD_SERVER As String
Public MSG_TYPE As String
Public MSG_TITLE As String
Public MSG_LABLE1 As String
Public MSG_ERROR1 As String
Public MSG_LABLE2 As String
Public MSG_ERROR2 As String
Public INSERT_IN_ACTION As Boolean = False
Public CURRENT_CONTROL_VALUE_COUNT As Integer = 1
Public LAYOUT_DOC_GRIDVIEW As String
Public CURRENT_DOCSEARCH_SQL As String
Public CURRENT_DOCSEARCH_CAPTION As String
End Module

View File

@ -0,0 +1,38 @@
'------------------------------------------------------------------------------
' <auto-generated>
' Dieser Code wurde von einem Tool generiert.
' Laufzeitversion:4.0.30319.42000
'
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
' der Code erneut generiert wird.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
'HINWEIS: Diese Datei wird automatisch generiert und darf nicht direkt bearbeitet werden. Wenn Sie Änderungen vornehmen möchten
' oder in dieser Datei Buildfehler auftreten, wechseln Sie zum Projekt-Designer.
' (Wechseln Sie dazu zu den Projekteigenschaften, oder doppelklicken Sie auf den Knoten "Mein Projekt" im
' Projektmappen-Explorer). Nehmen Sie auf der Registerkarte "Anwendung" entsprechende Änderungen vor.
'
Partial Friend Class MyApplication
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Public Sub New()
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
Me.IsSingleInstance = true
Me.EnableVisualStyles = true
Me.SaveMySettingsOnExit = true
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
End Sub
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.DD_Record_Organizer.frmMain
End Sub
End Class
End Namespace

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>true</MySubMain>
<MainForm>frmMain</MainForm>
<SingleInstance>true</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@ -0,0 +1,39 @@
Imports System.Resources
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
' Allgemeine Informationen über eine Assembly werden über die folgenden
' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
' die mit einer Assembly verknüpft sind.
' Die Werte der Assemblyattribute überprüfen
<Assembly: AssemblyTitle("Digital Data - ADDI")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("Digital Data")>
<Assembly: AssemblyProduct("ADDI - Akte der Dinge")>
<Assembly: AssemblyCopyright("Copyright @")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
<Assembly: Guid("4a884e2e-cdd0-4fc8-8094-8cea863ce625")>
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
'
' Hauptversion
' Nebenversion
' Buildnummer
' Revision
'
' Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.5.0.4")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
<Assembly: NeutralResourcesLanguageAttribute("")>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,721 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="dxf" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dxf.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_table" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_table.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="handdrawn_user-admin" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\handdrawn_user-admin.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="UserInterfaceEditor_5845_32x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\UserInterfaceEditor_5845_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="email_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\email_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Carousel_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Carousel_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DD_Icons-ADDI" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DD_Icons-ADDI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="brainpool" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\brainpool.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_add_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_add_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="PropertyGridEditorPart_6041" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\PropertyGridEditorPart_6041.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_left" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_link" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_link.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="user_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\user_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lbl" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lbl.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_connect" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_connect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="save1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Files_7954" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Files_7954.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="asset_pie-series-chart_on_12X12" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\asset_pie-series-chart_on_12X12.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Men3" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Men3.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="4(four)rows_9716" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\4(four)rows_9716.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Arrow_RedoRetry_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Arrow_RedoRetry_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="add" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_Cancel_16xLG1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_Cancel_16xLG1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_Open_32xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_Open_32xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="f6" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\f6.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="windream-Logo-transparent1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\windream-Logo-transparent1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="text" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\text.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="userAccounts" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\userAccounts.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="key_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\key_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mail" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\mail.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="user_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\user_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="GroupBox_680" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\GroupBox_680.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bell_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bell_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="checkbox_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\checkbox_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="CheckBox_669" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\CheckBox_669.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="112_RefreshArrow_Blue_24x24_72" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\112_RefreshArrow_Blue_24x24_72.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="module_32xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\module_32xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_Next_16xLG_color" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_Next_16xLG_color.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Men2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Men2.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_Down_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_Down_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="eye" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\eye.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="error" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\error.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="table_add" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\table_add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="save_16xLG1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save_16xLG1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Copy_6524" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Copy_6524.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="TextBox_708" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TextBox_708.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="table" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\table.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_error" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_error.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="page_excel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\page_excel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="dtp" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dtp.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="text1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\text1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="FilteredObject_13400_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\FilteredObject_13400_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="InsertColumn_5626" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\InsertColumn_5626.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="application_view_tile" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application_view_tile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="application_view_detail" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application_view_detail.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="_1480524473_1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\1480524473_1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="magifier_zoom_out" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\magifier_zoom_out.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="brick_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\brick_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="calendar_32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\calendar_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="dtp1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dtp1.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="f5" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\f5.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Einstellungen6" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Einstellungen6.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Filter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Filter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="flag_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\flag_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ComboBox_672" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ComboBox_672.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ImageListControl_683" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ImageListControl_683.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Monitor_Screen_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Monitor_Screen_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="save" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="windream_Logo_transparent_klein" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\windream-Logo-transparent_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="page_copy" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\page_copy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="base_globe_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\base_globe_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_refresh" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lightbulb" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lightbulb.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AddExistingItem_62691" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AddExistingItem_62691.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_Forward_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_Forward_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Arrow_RedoRetry_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Arrow_RedoRetry_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Permission_12796" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Permission_12796.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="005_Task_32x42_72" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\005_Task_32x42_72.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="module_32xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\module_32xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Property_501" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Property_501.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_Cancel_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_Cancel_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Works Finished (nonXP)" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Works Finished (nonXP).ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="shield_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\shield_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="TableView_nameonly_263" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TableView_nameonly_263.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Men1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Men1.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="WMI_Task_21x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\WMI_Task_21x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Link" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Link.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="RightFileOnly" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\RightFileOnly.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Close_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Close_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="calendar_add" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\calendar_add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="key_go1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\key_go1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lock_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lock_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_go1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_go1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="sql" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\sql.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="doc_excel_csv" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\doc_excel_csv.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_lightning" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_lightning.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ListBox_686_24" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ListBox_686_24.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_right" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Label_684" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Label_684.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DateOrTimePicker_675" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DateOrTimePicker_675.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bug_edit" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bug_edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="page_white_office1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\page_white_office1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_gear" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_gear.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Einstellungen3" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Einstellungen3.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="page_white_office" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\page_white_office.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AddMark_10580" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AddMark_10580.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="RemoveLink_9938" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\RemoveLink_9938.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cmb" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cmb.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Einstellungen5" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Einstellungen5.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ico6078" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ico6078.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ico858" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ico858.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="view_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\view_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="xls" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\xls.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Task_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Task_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Error_red_21x20" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Error_red_21x20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_key" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_key.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AddTable_5632" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AddTable_5632.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="windream-Logo-transparent" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\windream-Logo-transparent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="1532_Flag_Blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\1532_Flag_Blue.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="xml" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\xml.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Men6" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Men6.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="f2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\f2.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="save_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="refresh_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\refresh_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="RadioButton_701" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\RadioButton_701.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="doc" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\doc.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cancel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cancel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="handdrawn_arrow_right_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\handdrawn_arrow_right_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Excel_25ixel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Excel_25ixel.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="dwg" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dwg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="benutzer3" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\benutzer3.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_Open_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_Open_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bmp" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bmp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="user_suit" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\user_suit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="WebUserControl(ascx)_11270_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\WebUserControl(ascx)_11270_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Home_5699_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Home_5699_32.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="table_refresh" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\table_refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="color_wheel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\color_wheel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="brick" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\brick.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="txt" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\txt.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_add_16xSM" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_add_16xSM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="email_edit" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\email_edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Connection_Manager" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Connection_Manager.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bricks" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bricks.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="asset_pie-series-chart_on_24X24" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\asset_pie-series-chart_on_24X24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_refresh" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="zip" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zip.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="module_32xSM" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\module_32xSM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AddExistingItem_6269" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AddExistingItem_6269.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cancel1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cancel1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="calendar" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\calendar.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_Open_32xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_Open_32xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="page_red" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\page_red.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bell_delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bell_delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="f3" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\f3.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="note_delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\note_delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_add_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_add_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_add" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Table_748" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Table_748.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="add1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\add1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bug_edit1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bug_edit1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Men4" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Men4.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lock" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lock.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="keinbild" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\keinbild.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="UserInterfaceEditor_5845" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\UserInterfaceEditor_5845.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="changechartlegendalignment_32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\changechartlegendalignment_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Login_6031_32x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Login_6031_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="f1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\f1.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_save" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="_blank" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\_blank.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="search_glyph" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\search_glyph.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="page_refresh" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\page_refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="error1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\error.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Checkbox" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Checkbox.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="table_relationship" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\table_relationship.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Configuredatasetwithwizard_8450" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Configuredatasetwithwizard_8450.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="pdf" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\pdf.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_switch" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_switch.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="application_form" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application_form.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="grid_Data_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\grid_Data_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="application_view_detail1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application_view_detail1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AddressEnvelope_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AddressEnvelope_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="FileSystemEditor_5852" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\FileSystemEditor_5852.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="138_PushPin_32x42_72" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\138_PushPin_32x42_721.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Men5" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Men5.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_edit" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ppt" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ppt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="EditLabel_13239" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\EditLabel_13239.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="eps" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\eps.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="HomeHS" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\HomeHS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_Down_16xLG1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_Down_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="112_RefreshArrow_Blue_24x24_721" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\112_RefreshArrow_Blue_24x24_721.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Reports-collapsed_12995_32x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Reports-collapsed_12995_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="NetworkPipes_32xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\NetworkPipes_32xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@ -0,0 +1,286 @@
'------------------------------------------------------------------------------
' <auto-generated>
' Dieser Code wurde von einem Tool generiert.
' Laufzeitversion:4.0.30319.42000
'
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
' der Code erneut generiert wird.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.7.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "Automatische My.Settings-Speicherfunktion"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
#End If
#End Region
Public Shared ReadOnly Property [Default]() As MySettings
Get
#If _MyType = "WindowsForms" Then
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
#End If
Return defaultInstance
End Get
End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.SpecialSettingAttribute(Global.System.Configuration.SpecialSetting.ConnectionString), _
Global.System.Configuration.DefaultSettingValueAttribute("Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Secu"& _
"rity Info=True;User ID=sa;Password=ddd")> _
Public ReadOnly Property DD_DMSConnectionString() As String
Get
Return CType(Me("DD_DMSConnectionString"),String)
End Get
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("*.db"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property WD_ENTITYIMP_EXCLUDE() As String
Get
Return CType(Me("WD_ENTITYIMP_EXCLUDE"),String)
End Get
Set
Me("WD_ENTITYIMP_EXCLUDE") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("*.*"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property WD_ENTITYIMP_FILTER() As String
Get
Return CType(Me("WD_ENTITYIMP_FILTER"),String)
End Get
Set
Me("WD_ENTITYIMP_FILTER") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute(""), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property WD_ENTITYIMP_IMPPATH() As String
Get
Return CType(Me("WD_ENTITYIMP_IMPPATH"),String)
End Get
Set
Me("WD_ENTITYIMP_IMPPATH") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute(""), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property WD_ENTITYIMP_TARGETPATH() As String
Get
Return CType(Me("WD_ENTITYIMP_TARGETPATH"),String)
End Get
Set
Me("WD_ENTITYIMP_TARGETPATH") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute(""), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property WD_ENTITYIMP_SAFETYPATH() As String
Get
Return CType(Me("WD_ENTITYIMP_SAFETYPATH"),String)
End Get
Set
Me("WD_ENTITYIMP_SAFETYPATH") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute(""), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property WD_ENTITYIMP_OBJECTTYPE() As String
Get
Return CType(Me("WD_ENTITYIMP_OBJECTTYPE"),String)
End Get
Set
Me("WD_ENTITYIMP_OBJECTTYPE") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute(""), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property WD_INDEXDOKART_SAVE() As String
Get
Return CType(Me("WD_INDEXDOKART_SAVE"),String)
End Get
Set
Me("WD_INDEXDOKART_SAVE") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("True"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property User_Calendar_isChild() As Boolean
Get
Return CType(Me("User_Calendar_isChild"),Boolean)
End Get
Set
Me("User_Calendar_isChild") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("True"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property User_DesignPanels_areChild() As Boolean
Get
Return CType(Me("User_DesignPanels_areChild"),Boolean)
End Get
Set
Me("User_DesignPanels_areChild") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("665"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property Constructor_DetailsSplitter() As Integer
Get
Return CType(Me("Constructor_DetailsSplitter"),Integer)
End Get
Set
Me("Constructor_DetailsSplitter") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property User_InBoxScan_NotinFront() As Boolean
Get
Return CType(Me("User_InBoxScan_NotinFront"),Boolean)
End Get
Set
Me("User_InBoxScan_NotinFront") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute(""), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property TBPMO_RIGHT_GROUPDataGridView() As String
Get
Return CType(Me("TBPMO_RIGHT_GROUPDataGridView"),String)
End Get
Set
Me("TBPMO_RIGHT_GROUPDataGridView") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("332"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property frmRecordViewSplitter() As Integer
Get
Return CType(Me("frmRecordViewSplitter"),Integer)
End Get
Set
Me("frmRecordViewSplitter") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("")> _
Public Property TBPMO_RIGHT_USERDataGridView() As String
Get
Return CType(Me("TBPMO_RIGHT_USERDataGridView"),String)
End Get
Set
Me("TBPMO_RIGHT_USERDataGridView") = value
End Set
End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("sDigital Data - windream-Benutzer")> _
Public ReadOnly Property windreamGruppe() As String
Get
Return CType(Me("windreamGruppe"),String)
End Get
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("Dokument-ID")> _
Public Property UserDocIDIndexname() As String
Get
Return CType(Me("UserDocIDIndexname"),String)
End Get
Set
Me("UserDocIDIndexname") = value
End Set
End Property
End Class
End Namespace
Namespace My
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.DD_Record_Organizer.My.MySettings
Get
Return Global.DD_Record_Organizer.My.MySettings.Default
End Get
End Property
End Module
End Namespace

View File

@ -0,0 +1,62 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
<Profiles />
<Settings>
<Setting Name="DD_DMSConnectionString" Type="(Connection string)" Scope="Application">
<DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
&lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
&lt;ConnectionString&gt;Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=ddd&lt;/ConnectionString&gt;
&lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
&lt;/SerializableConnectionString&gt;</DesignTimeValue>
<Value Profile="(Default)">Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=ddd</Value>
</Setting>
<Setting Name="WD_ENTITYIMP_EXCLUDE" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)">*.db</Value>
</Setting>
<Setting Name="WD_ENTITYIMP_FILTER" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)">*.*</Value>
</Setting>
<Setting Name="WD_ENTITYIMP_IMPPATH" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="WD_ENTITYIMP_TARGETPATH" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="WD_ENTITYIMP_SAFETYPATH" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="WD_ENTITYIMP_OBJECTTYPE" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="WD_INDEXDOKART_SAVE" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="User_Calendar_isChild" Roaming="true" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="User_DesignPanels_areChild" Roaming="true" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="Constructor_DetailsSplitter" Roaming="true" Type="System.Int32" Scope="User">
<Value Profile="(Default)">665</Value>
</Setting>
<Setting Name="User_InBoxScan_NotinFront" Roaming="true" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="TBPMO_RIGHT_GROUPDataGridView" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="frmRecordViewSplitter" Roaming="true" Type="System.Int32" Scope="User">
<Value Profile="(Default)">332</Value>
</Setting>
<Setting Name="TBPMO_RIGHT_USERDataGridView" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="windreamGruppe" Type="System.String" Scope="Application">
<Value Profile="(Default)">sDigital Data - windream-Benutzer</Value>
</Setting>
<Setting Name="UserDocIDIndexname" Type="System.String" Scope="User">
<Value Profile="(Default)">Dokument-ID</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC-Manifestoptionen
Wenn Sie die Zugangsebene für das Windows-Benutzerkonto ändern möchten, ersetzen Sie den
requestedExecutionLevel-Knoten durch eines der folgenden Elemente.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
Durch Angeben des requestedExecutionLevel-Knotens wird die Datei- und Registrierungsvirtualisierung deaktiviert.
Wenn Sie Datei- und Registrierungsvirtualisierung für Abwärts-
kompatibilität verwenden möchten, löschen Sie den requestedExecutionLevel-Knoten.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Eine Liste aller Windows-Versionen, mit denen die Anwendung kompatibel ist.
Windows wählt automatisch die am stärksten kompatible Umgebung aus.-->
<!-- Wenn die Anwendung mit Windows Vista kompatibel ist, heben Sie die Auskommentierung des folgenden supportedOS-Knotens auf-->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>-->
<!-- Wenn die Anwendung mit Windows 7 kompatibel ist, heben Sie die Kommentierung des folgenden supportedOS-Knotens auf.-->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
<!-- Wenn die Anwendung mit Windows 8 kompatibel ist, heben Sie die Auskommentierung des folgenden supportedOS-Knotens auf-->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>-->
<!-- Wenn die Anwendung mit Windows 8.1 kompatibel ist, die Kommentierung des folgenden supportedOS-Knotens aufheben.-->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>-->
</application>
</compatibility>
<!-- Designs für allgemeine Windows-Steuerelemente und -Dialogfelder (Windows XP und höher) aktivieren -->
<!-- <dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>-->
</asmv1:assembly>

View File

@ -0,0 +1,6 @@
DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraScheduler.SchedulerControl, DevExpress.XtraScheduler.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Navigation.TileNavPane, DevExpress.XtraBars.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v15.2.UI, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Some files were not shown because too many files have changed in this diff Show More