MS DateEdit

This commit is contained in:
SchreiberM 2020-11-11 17:43:52 +01:00
parent b32f7553d2
commit fef9c99feb
11 changed files with 143 additions and 81 deletions

View File

@ -203,8 +203,9 @@ Public Class ClassControlCreator
oView.OptionsSelection.MultiSelectMode = GridMultiSelectMode.CheckBoxRowSelect
oView.OptionsSelection.CheckBoxSelectorColumnWidth = 20
oMyNewGridControl.Size = New Size(CInt(pAttributeRow.Item("WIDTH") + 50), CInt(pAttributeRow.Item("HEIGHT")))
End If
End If
'oView.Columns("TERM_ID").Visible = False
' Add and configure navigator to delete rows
oMyNewGridControl.UseEmbeddedNavigator = True
With oMyNewGridControl.EmbeddedNavigator.Buttons

View File

@ -2041,6 +2041,6 @@
</value>
</data>
<metadata name="TimerCheckActiveForms.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>863, 17</value>
<value>17, 56</value>
</metadata>
</root>

View File

@ -255,4 +255,11 @@ Public Class frmFlowForm
FormLoaded_Visible("frmSearchStart")
If Me.Visible = False Then Exit Sub
End Sub
Private Sub NotifyIcon_DoubleClick(sender As Object, e As EventArgs) Handles NotifyIcon.DoubleClick
If Me.Visible = False Then
Me.Visible = True
TimerCheckActiveForms.Enabled = False
End If
End Sub
End Class

View File

@ -74,9 +74,6 @@ Partial Class frmSearchStart
Me.KlammerEntfernenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.GridViewSearchTerms = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.SplitContainerControlSearch = New DevExpress.XtraEditors.SplitContainerControl()
Me.ContextMenuStripMultiselect = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.MehrfachauswahlAktivierenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.MehrfachauswahlInaktivierenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RepositoryItemRadioGroup1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RepositoryItemComboBox1, System.ComponentModel.ISupportInitialize).BeginInit()
@ -95,7 +92,6 @@ Partial Class frmSearchStart
CType(Me.GridViewSearchTerms, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControlSearch, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControlSearch.SuspendLayout()
Me.ContextMenuStripMultiselect.SuspendLayout()
Me.SuspendLayout()
'
'SplashScreenManager
@ -352,55 +348,55 @@ Partial Class frmSearchStart
'XtraTabPage2
'
Me.XtraTabPage2.Name = "XtraTabPage2"
Me.XtraTabPage2.Size = New System.Drawing.Size(748, 287)
Me.XtraTabPage2.Size = New System.Drawing.Size(748, 340)
Me.XtraTabPage2.Text = "Search#2"
'
'XtraTabPage3
'
Me.XtraTabPage3.Name = "XtraTabPage3"
Me.XtraTabPage3.Size = New System.Drawing.Size(748, 287)
Me.XtraTabPage3.Size = New System.Drawing.Size(748, 340)
Me.XtraTabPage3.Text = "Search#3"
'
'XtraTabPage4
'
Me.XtraTabPage4.Name = "XtraTabPage4"
Me.XtraTabPage4.Size = New System.Drawing.Size(748, 287)
Me.XtraTabPage4.Size = New System.Drawing.Size(748, 340)
Me.XtraTabPage4.Text = "Search#4"
'
'XtraTabPage5
'
Me.XtraTabPage5.Name = "XtraTabPage5"
Me.XtraTabPage5.Size = New System.Drawing.Size(748, 287)
Me.XtraTabPage5.Size = New System.Drawing.Size(748, 340)
Me.XtraTabPage5.Text = "Search#5"
'
'XtraTabPage6
'
Me.XtraTabPage6.Name = "XtraTabPage6"
Me.XtraTabPage6.Size = New System.Drawing.Size(748, 287)
Me.XtraTabPage6.Size = New System.Drawing.Size(748, 340)
Me.XtraTabPage6.Text = "Search#6"
'
'XtraTabPage7
'
Me.XtraTabPage7.Name = "XtraTabPage7"
Me.XtraTabPage7.Size = New System.Drawing.Size(748, 287)
Me.XtraTabPage7.Size = New System.Drawing.Size(748, 340)
Me.XtraTabPage7.Text = "Search#7"
'
'XtraTabPage8
'
Me.XtraTabPage8.Name = "XtraTabPage8"
Me.XtraTabPage8.Size = New System.Drawing.Size(748, 287)
Me.XtraTabPage8.Size = New System.Drawing.Size(748, 340)
Me.XtraTabPage8.Text = "Search#8"
'
'XtraTabPage9
'
Me.XtraTabPage9.Name = "XtraTabPage9"
Me.XtraTabPage9.Size = New System.Drawing.Size(748, 287)
Me.XtraTabPage9.Size = New System.Drawing.Size(748, 340)
Me.XtraTabPage9.Text = "Search#9"
'
'XtraTabPage10
'
Me.XtraTabPage10.Name = "XtraTabPage10"
Me.XtraTabPage10.Size = New System.Drawing.Size(748, 287)
Me.XtraTabPage10.Size = New System.Drawing.Size(748, 340)
Me.XtraTabPage10.Text = "Search#10"
'
'GridControlSerchTerms
@ -474,26 +470,6 @@ Partial Class frmSearchStart
Me.SplitContainerControlSearch.SplitterPosition = 310
Me.SplitContainerControlSearch.TabIndex = 16
'
'ContextMenuStripMultiselect
'
Me.ContextMenuStripMultiselect.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MehrfachauswahlAktivierenToolStripMenuItem, Me.MehrfachauswahlInaktivierenToolStripMenuItem})
Me.ContextMenuStripMultiselect.Name = "ContextMenuStrip1"
Me.ContextMenuStripMultiselect.Size = New System.Drawing.Size(233, 48)
'
'MehrfachauswahlAktivierenToolStripMenuItem
'
Me.MehrfachauswahlAktivierenToolStripMenuItem.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.Checked_outforEdit_13297
Me.MehrfachauswahlAktivierenToolStripMenuItem.Name = "MehrfachauswahlAktivierenToolStripMenuItem"
Me.MehrfachauswahlAktivierenToolStripMenuItem.Size = New System.Drawing.Size(232, 22)
Me.MehrfachauswahlAktivierenToolStripMenuItem.Text = "Mehrfachauswahl aktivieren"
'
'MehrfachauswahlInaktivierenToolStripMenuItem
'
Me.MehrfachauswahlInaktivierenToolStripMenuItem.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.Checked_outforEdit_Color_13297
Me.MehrfachauswahlInaktivierenToolStripMenuItem.Name = "MehrfachauswahlInaktivierenToolStripMenuItem"
Me.MehrfachauswahlInaktivierenToolStripMenuItem.Size = New System.Drawing.Size(232, 22)
Me.MehrfachauswahlInaktivierenToolStripMenuItem.Text = "Mehrfachauswahl inaktivieren"
'
'frmSearchStart
'
Me.AllowFormGlass = DevExpress.Utils.DefaultBoolean.[True]
@ -532,7 +508,6 @@ Partial Class frmSearchStart
CType(Me.GridViewSearchTerms, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.SplitContainerControlSearch, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControlSearch.ResumeLayout(False)
Me.ContextMenuStripMultiselect.ResumeLayout(False)
Me.ResumeLayout(False)
Me.PerformLayout
@ -569,10 +544,7 @@ End Sub
Friend WithEvents BarEditItem2 As DevExpress.XtraBars.BarEditItem
Friend WithEvents RepositoryItemComboBox1 As DevExpress.XtraEditors.Repository.RepositoryItemComboBox
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents ContextMenuStripMultiselect As ContextMenuStrip
Friend WithEvents MehrfachauswahlAktivierenToolStripMenuItem As ToolStripMenuItem
Friend WithEvents BarStaticItemInfo As DevExpress.XtraBars.BarStaticItem
Friend WithEvents MehrfachauswahlInaktivierenToolStripMenuItem As ToolStripMenuItem
Friend WithEvents ContextMenuStripSearchTerms As ContextMenuStrip
Friend WithEvents tsmOperator As ToolStripMenuItem
Friend WithEvents BracketLeftToolStripMenuItem As ToolStripMenuItem

View File

@ -212,9 +212,6 @@
<metadata name="ContextMenuStripSearchTerms.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>189, 17</value>
</metadata>
<metadata name="ContextMenuStripMultiselect.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>409, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>174</value>
</metadata>

View File

@ -26,6 +26,9 @@ Public Class frmSearchStart
Private oDTAttributes As DataTable
Private SEARCH_COUNT As Integer = 0
Private _Environment As Environment
Private ChangedDateControls As List(Of String)
Public Sub New(ByVal pDTSearchProfiles As DataTable, Optional ByVal pRunSearch As Boolean = False)
' Dieser Aufruf ist für den Designer erforderlich.
@ -257,7 +260,7 @@ Public Class frmSearchStart
If oAttriTYPE = "VARCHAR" Or oAttriTYPE = "BIG INTEGER" Then
oMyControl = oControls.CreateExistingGridControl(oAttributeRow, oXPosition, oYPositionControl)
Dim myDGV As GridControl = CType(oMyControl, GridControl)
myDGV.ContextMenuStrip = ContextMenuStripMultiselect
Dim omyDTSource As DataTable = CType(myDGV.DataSource, DataTable)
If Not IsNothing(omyDTSource) Then
If omyDTSource.Rows.Count = 1 Then
@ -281,7 +284,7 @@ Public Class frmSearchStart
oMyControl = oControls.CreateExistingDatepicker(oAttributeRow, oXPosition, oYPositionControl)
Dim myDTP As DateEdit = CType(oMyControl, DateEdit)
AddHandler myDTP.DisableCalendarDate, AddressOf DisableCalendarDate
AddHandler myDTP.EditValueChanged, AddressOf CalendarChanged
AddHandler myDTP.DateTimeChanged, AddressOf CalendarChanged 'CalendarChanged
ElseIf oAttriTYPE = "BIT" Then
oMyControl = oControls.CreateExistingCheckbox(oAttributeRow, oXPosition, oYPositionControl)
Dim myCheckBox As CheckBox = CType(oMyControl, CheckBox)
@ -337,6 +340,12 @@ Public Class frmSearchStart
Private Sub ClearSearchCriteria()
Dim oSQL = $"DELETE FROM TBIDB_USER_SEARCH_CRITERIA WHERE SEARCH_PROFIL_ID = {PSEARCH_ID} AND USERID = {My.Application.User.UserId}"
My.DatabaseIDB.ExecuteNonQuery(oSQL)
End Sub
Private Sub ClearSelectedControls()
ChangedDateControls = Nothing
End Sub
Private Sub RenewSearchAttributes()
@ -344,7 +353,8 @@ Public Class frmSearchStart
For Each oControl As Control In TabSelected.Controls
Dim octrlType = oControl.GetType.ToString
Dim oAttrID As Integer
Dim oAttrTitle As String
Select Case oControl.GetType.ToString
Case "DevExpress.XtraGrid.GridControl"
Dim oMyGridControl As GridControl = CType(oControl, GridControl)
@ -354,8 +364,8 @@ Public Class frmSearchStart
Continue For
End If
Dim oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttrID
Dim oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttrTitle
oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttrID
oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttrTitle
For Each oRowHandle As Integer In oSelectedRows
Dim oResult = oMyGridView.GetRowCellValue(oRowHandle, oMyGridView.Columns(0).FieldName)
Dim oInsert = $"EXEC PRIDB_NEW_USER_SEARCH_CRITERIA {PSEARCH_ID.ToString},{My.Application.User.UserId.ToString},{oAttrID.ToString},'{oResult}','{My.Application.User.UserName}'"
@ -363,7 +373,52 @@ Public Class frmSearchStart
Next
Case "DevExpress.XtraEditors.DateEdit"
' MsgBox("Date")
Dim myDTP As DateEdit = CType(oControl, DateEdit)
If ChangedDateControls Is Nothing Then
Continue For
End If
If ChangedDateControls.Count = 0 Then
Continue For
End If
For Each oName As String In ChangedDateControls
If myDTP.Name = oName Then
If Not IsNothing(myDTP.EditValue) Then
oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttrID
oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttrTitle
Dim oldValue As Date
Dim validDate As Boolean = False
Dim oDateValue As DateTime = myDTP.EditValue
Try
validDate = Date.TryParse(myDTP.OldEditValue, oldValue)
Catch ex As Exception
oldValue = Date.MinValue
End Try
If Not validDate Then
oldValue = Date.MinValue
End If
If oldValue = myDTP.EditValue Then
Exit Sub
End If
Dim dateString = oDateValue.ToString("yyyy-MM-dd") 'hh:mm:ss.fff
Dim omydate = myDTP.EditValue.ToString
Dim oInsert = $"EXEC PRIDB_NEW_USER_SEARCH_CRITERIA {PSEARCH_ID.ToString},{My.Application.User.UserId.ToString},{oAttrID.ToString},'{omydate}','{My.Application.User.UserName}'"
My.DatabaseIDB.ExecuteNonQuery(oInsert)
End If
End If
Next
Case "System.Windows.Forms.CheckBox"
Dim myCheckBox As CheckBox = CType(oControl, CheckBox)
If myCheckBox.CheckState <> CheckState.Indeterminate Then
oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttrID
oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttrTitle
Dim oInsert = $"EXEC PRIDB_NEW_USER_SEARCH_CRITERIA {PSEARCH_ID.ToString},{My.Application.User.UserId.ToString},{oAttrID.ToString},'{myCheckBox.Checked.ToString}','{My.Application.User.UserName}'"
My.DatabaseIDB.ExecuteNonQuery(oInsert)
End If
Case Else
'MsgBox(oControl.GetType.ToString)
End Select
Next
End Sub
@ -381,22 +436,7 @@ Public Class frmSearchStart
Dim oAttrTitle = DirectCast(oCurrentControl.Tag, ClassControlCreator.ControlMetadata).AttrTitle
RenewSearchAttributes()
AddSearchAttribute(oAttrID, oAttrTitle, oResult)
'For Each oAttributeRow1 As DataRow In oDTAttributes.Rows
' If CInt(oAttributeRow1.Item("DEPENDING_ATTRIBUTE1")) = oAttrID Then
' Logger.Debug($"Another Attribute [{oAttrID}]is depending to this [{oAttrID}] one..")
' Dim oSourceSQL As String = oAttributeRow1.Item("SOURCE_SQL").ToString
' oSourceSQL = oSourceSQL.Replace("@DEPENDING_IDB_OBJECT", My.Application.User.Language)
' oSourceSQL = oSourceSQL.Replace("@USER_LANGUAGE", My.Application.User.Language)
' oSourceSQL = oSourceSQL.Replace("@pUSER_ID", My.Application.User.UserId)
' oSourceSQL = oSourceSQL.Replace("@RESULT_TITLE", oAttributeRow1.Item("ATTRIBUTE_TITLE").ToString)
' Dim oDTSource As DataTable
' oDTSource = My.Database_IDB.GetDatatable(oSourceSQL)
' End If
'Next
' Return oResult
'Else : Return Nothing
End If
End Sub
@ -406,6 +446,7 @@ Public Class frmSearchStart
Dim oChecked = oCurrentCB.Checked
Dim oAttrID = DirectCast(oCurrentCB.Tag, ClassControlCreator.ControlMetadata).AttrID
Dim oAttrTitle = DirectCast(oCurrentCB.Tag, ClassControlCreator.ControlMetadata).AttrTitle
RenewSearchAttributes()
AddSearchAttribute(oAttrID, oAttrTitle, oChecked.ToString)
End Sub
Private Sub frmSearchStart_Shown(sender As Object, e As EventArgs) Handles Me.Shown
@ -427,13 +468,60 @@ Public Class frmSearchStart
'End If
End Sub
Private Sub CalendarChanged(sender As Object, e As EventArgs)
If DataLoaded = False Then Exit Sub
Dim myDTP As DateEdit = CType(sender, DateEdit)
If Not IsNothing(myDTP.EditValue) Then
Dim omydate = myDTP.EditValue.ToString
Dim oList As New List(Of String)
oList.Add(myDTP.Name)
If Not IsNothing(ChangedDateControls) Then
Dim oFound As Boolean = False
For Each oName As String In ChangedDateControls
If myDTP.Name = oName Then
oFound = True
Exit For
End If
Next
If oFound = False Then
ChangedDateControls.Add(myDTP.Name)
End If
Else
ChangedDateControls = oList
End If
RenewSearchAttributes()
'Dim oInsert = $"EXEC PRIDB_NEW_USER_SEARCH_CRITERIA {PSEARCH_ID.ToString},{My.Application.User.UserId.ToString},{oAttrID.ToString},'{omydate}','{My.Application.User.UserName}'"
'My.DatabaseIDB.ExecuteNonQuery(oInsert)
End If
End Sub
Private Sub OnDateSelectedValueChanged(sender As Object, e As EventArgs)
Try
Dim myDTP As DateEdit = CType(sender, DateEdit)
Dim value As DateTime = myDTP.EditValue
Dim oldValue As Date
Dim validDate As Boolean = False
Try
validDate = Date.TryParse(myDTP.OldEditValue, oldValue)
Catch ex As Exception
oldValue = Date.MinValue
End Try
If Not validDate Then
oldValue = Date.MinValue
End If
If oldValue = myDTP.EditValue Then
Exit Sub
End If
Dim dateString = value.ToString("yyyy-MM-dd") 'hh:mm:ss.fff
Catch ex As Exception
Logger.Error(ex)
End Try
End Sub
Public Function IsValidDate(pCheckDT As DataTable, pDate2Check As Date) As Boolean
Dim oIsValid As Boolean = False
For Each oDateRow As DataRow In pCheckDT.Rows
@ -462,7 +550,7 @@ Public Class frmSearchStart
'Clear_token()
ClearSearchCriteria()
DTSearchTerms.Clear()
ClearSelectedControls()
Catch ex As Exception
MsgBox("Unexpected Error in Clearing Search Items: " & ex.Message, MsgBoxStyle.Critical)
End Try
@ -567,7 +655,7 @@ Public Class frmSearchStart
BarStaticItemInfo.ItemAppearance.Normal.BackColor = pColor
End Sub
Private Sub MehrfachauswahlAktivierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MehrfachauswahlAktivierenToolStripMenuItem.Click
Private Sub MehrfachauswahlAktivierenToolStripMenuItem_Click(sender As Object, e As EventArgs)
If DataLoaded = False Then Exit Sub
Dim oCurrentControl As GridControl = DirectCast(CURR_CTRL_OBJ, GridControl)
Dim oAttrID = DirectCast(oCurrentControl.Tag, ClassControlCreator.ControlMetadata).AttrID
@ -581,12 +669,9 @@ Public Class frmSearchStart
Next
End Sub
Private Sub ContextMenuStripMultiselect_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ContextMenuStripMultiselect.Opening
DataLoaded = False
CURR_CTRL_OBJ = ContextMenuStripMultiselect.SourceControl
End Sub
Private Sub MehrfachauswahlInaktivierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MehrfachauswahlInaktivierenToolStripMenuItem.Click
Private Sub MehrfachauswahlInaktivierenToolStripMenuItem_Click(sender As Object, e As EventArgs)
If DataLoaded = False Then Exit Sub
Dim oCurrentControl As GridControl = DirectCast(CURR_CTRL_OBJ, GridControl)
Dim oAttrID = DirectCast(oCurrentControl.Tag, ClassControlCreator.ControlMetadata).AttrID
@ -600,14 +685,6 @@ Public Class frmSearchStart
Next
End Sub
Private Sub ContextMenuStripMultiselect_Closed(sender As Object, e As ToolStripDropDownClosedEventArgs) Handles ContextMenuStripMultiselect.Closed
DataLoaded = True
End Sub
Private Sub ContextMenuStripMultiselect_Closing(sender As Object, e As ToolStripDropDownClosingEventArgs) Handles ContextMenuStripMultiselect.Closing
DataLoaded = True
End Sub
Private Sub GridViewSearchTerms_RowDeleted(sender As Object, e As DevExpress.Data.RowDeletedEventArgs) Handles GridViewSearchTerms.RowDeleted
If DataLoaded = False Then Exit Sub
Dim oCurrentView As GridView = DirectCast(sender, GridView)

View File

@ -12,7 +12,9 @@
Public Class ConnectionStringTestAttribute
Inherits Attribute
End Class
Public Class ConnectionStringAppServer
Inherits Attribute
End Class
''' <summary>
''' Global setting. Will not be saved to userconfig.
''' </summary>

View File

@ -28,6 +28,7 @@ Public Class ConfigManager(Of T)
Private ReadOnly _ExcludedAttributes = New List(Of Type) From {
GetType(ConnectionStringAttribute),
GetType(ConnectionStringAppServer),
GetType(ConnectionStringTestAttribute),
GetType(GlobalSettingAttribute)
}

View File

@ -7,6 +7,8 @@ Public Class ConfigSample
<ConnectionStringTest>
Public Property ConnectionStringTest As String
<ConnectionStringAppServer>
Public Property ConnectionStringAppServer As String
<GlobalSetting>
Public Property GlobalSetting As Integer

View File

@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("0.0.7.2")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
<Assembly: AssemblyVersion("1.0.8.0")>
<Assembly: AssemblyFileVersion("1.0.8.0")>

View File

@ -111,7 +111,10 @@ Namespace SyncUsers
' Delete users that are assigned to the group but no longer exist in active directory
Dim oUserIdString = String.Join(",", oSyncedUserIds)
Dim oSQL As String = $"DELETE FROM TBDD_GROUPS_USER WHERE USER_ID NOT IN (${oUserIdString}) AND GROUP_ID = {oGroupId}"
If oSyncedUserIds.Count = 0 Then
oUserIdString = 0
End If
Dim oSQL As String = $"DELETE FROM TBDD_GROUPS_USER WHERE USER_ID NOT IN ({oUserIdString}) AND GROUP_ID = {oGroupId}"
Dim oDeletedRelations = _mssql.GetScalarValue(oSQL)
If oCreatedUsers.Count > 0 Then
_logger.Info("Created [{0}] new users", oCreatedUsers.Count)