MS Search
This commit is contained in:
parent
1638fdc173
commit
73944f1545
@ -84,6 +84,7 @@ Public Class ClassControlCreator
|
|||||||
oSourceSQL = oSourceSQL.Replace("@USER_LANGUAGE", 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("@pUSER_ID", My.Application.User.UserId)
|
||||||
oSourceSQL = oSourceSQL.Replace("@RESULT_TITLE", pAttributeRow.Item("ATTRIBUTE_TITLE").ToString)
|
oSourceSQL = oSourceSQL.Replace("@RESULT_TITLE", pAttributeRow.Item("ATTRIBUTE_TITLE").ToString)
|
||||||
|
'oSourceSQL = oSourceSQL & " ORDER BY T.TERM_VALUE"
|
||||||
Dim oDTSource As DataTable
|
Dim oDTSource As DataTable
|
||||||
'If pAttributeRow.Item("DEPENDING_ATTRIBUTE1") = 0 Then
|
'If pAttributeRow.Item("DEPENDING_ATTRIBUTE1") = 0 Then
|
||||||
If Utils.NotNull(oSourceSQL, String.Empty) <> String.Empty Then
|
If Utils.NotNull(oSourceSQL, String.Empty) <> String.Empty Then
|
||||||
@ -95,6 +96,8 @@ Public Class ClassControlCreator
|
|||||||
Dim oMaxValue As String = ""
|
Dim oMaxValue As String = ""
|
||||||
|
|
||||||
If Not IsNothing(oDTSource) Then
|
If Not IsNothing(oDTSource) Then
|
||||||
|
oDTSource.DefaultView.Sort = pAttributeRow.Item("ATTRIBUTE_TITLE").ToString '"ColumnName ASC"
|
||||||
|
oDTSource = oDTSource.DefaultView.ToTable
|
||||||
oMinValue = oDTSource.Rows(0).Item(0)
|
oMinValue = oDTSource.Rows(0).Item(0)
|
||||||
oMaxValue = oDTSource.Rows(oDTSource.Rows.Count - 1).Item(0)
|
oMaxValue = oDTSource.Rows(oDTSource.Rows.Count - 1).Item(0)
|
||||||
End If
|
End If
|
||||||
@ -181,7 +184,7 @@ Public Class ClassControlCreator
|
|||||||
'oMyNewGridControl.Size = New Size(CInt(pAttributeRow.Item("WIDTH")), CInt(pAttributeRow.Item("HEIGHT")))
|
'oMyNewGridControl.Size = New Size(CInt(pAttributeRow.Item("WIDTH")), CInt(pAttributeRow.Item("HEIGHT")))
|
||||||
|
|
||||||
oView = CType(oMyNewGridControl.MainView, GridView)
|
oView = CType(oMyNewGridControl.MainView, GridView)
|
||||||
oView.Appearance.EvenRow.BackColor = Color.PaleTurquoise
|
oView.Appearance.EvenRow.BackColor = Color.FromArgb(255, 214, 49)
|
||||||
oView.OptionsBehavior.Editable = False
|
oView.OptionsBehavior.Editable = False
|
||||||
oView.OptionsBehavior.ReadOnly = True
|
oView.OptionsBehavior.ReadOnly = True
|
||||||
oView.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.False
|
oView.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.False
|
||||||
|
|||||||
@ -36,8 +36,12 @@ Public Class frmSearchStart
|
|||||||
Private DatatableAttributeLinks As DataTable
|
Private DatatableAttributeLinks As DataTable
|
||||||
Private DatatableSearchProfiles As DataTable
|
Private DatatableSearchProfiles As DataTable
|
||||||
|
|
||||||
|
Private DatatableStartSearchResult As DataTable
|
||||||
|
Private DatatableSearchResultSoFar As DataTable
|
||||||
|
|
||||||
Private LastSearchForm As frmDocumentResultList
|
Private LastSearchForm As frmDocumentResultList
|
||||||
Private ChangedDateControls As List(Of String)
|
Private ChangedDateControls As List(Of String)
|
||||||
|
Private clsControls As ClassControlCreator
|
||||||
|
|
||||||
Private StopWatch As Watch
|
Private StopWatch As Watch
|
||||||
|
|
||||||
@ -155,7 +159,7 @@ Public Class frmSearchStart
|
|||||||
|
|
||||||
Dim oControlCount As Integer = 1
|
Dim oControlCount As Integer = 1
|
||||||
Dim oControlRow As Integer = 0
|
Dim oControlRow As Integer = 0
|
||||||
Dim oControls As New ClassControlCreator(SelectedTab, Me)
|
clsControls = New ClassControlCreator(SelectedTab, Me)
|
||||||
|
|
||||||
Dim YActControlHeight As Integer = 0
|
Dim YActControlHeight As Integer = 0
|
||||||
Dim XActControlWidth As Integer = 0
|
Dim XActControlWidth As Integer = 0
|
||||||
@ -230,7 +234,7 @@ Public Class frmSearchStart
|
|||||||
|
|
||||||
Dim oMyControl As Control = Nothing
|
Dim oMyControl As Control = Nothing
|
||||||
If oAttributeType = ATTR_TYPE_STRING Or oAttributeType = ATTR_TYPE_INTEGER Then
|
If oAttributeType = ATTR_TYPE_STRING Or oAttributeType = ATTR_TYPE_INTEGER Then
|
||||||
oMyControl = oControls.CreateExistingGridControl(oAttributeRow, oXPosition, oYPositionControl)
|
oMyControl = clsControls.CreateExistingGridControl(oAttributeRow, oXPosition, oYPositionControl)
|
||||||
Dim oGrid As GridControl = CType(oMyControl, GridControl)
|
Dim oGrid As GridControl = CType(oMyControl, GridControl)
|
||||||
|
|
||||||
Dim oDataSource As DataTable = CType(oGrid.DataSource, DataTable)
|
Dim oDataSource As DataTable = CType(oGrid.DataSource, DataTable)
|
||||||
@ -245,17 +249,23 @@ Public Class frmSearchStart
|
|||||||
'Prüfen ob für dieses Grid eine Abhängigkeit definiert ist?
|
'Prüfen ob für dieses Grid eine Abhängigkeit definiert ist?
|
||||||
For Each oROW As DataRow In DatatableAttributeLinks.Rows
|
For Each oROW As DataRow In DatatableAttributeLinks.Rows
|
||||||
If CInt(oROW.Item("LINKED_ATTR_ID")) = oAttriID Then
|
If CInt(oROW.Item("LINKED_ATTR_ID")) = oAttriID Then
|
||||||
AddHandler oView.FocusedRowChanged, AddressOf FocusedRowChanged
|
If CBool(oAttributeRow.Item("MULTISELECT")) = True Then
|
||||||
|
AddHandler oView.SelectionChanged, AddressOf SelectionChanged
|
||||||
|
Else
|
||||||
|
AddHandler oView.FocusedRowChanged, AddressOf FocusedRowChanged
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
ElseIf oAttributeType = ATTR_TYPE_DATE Then
|
ElseIf oAttributeType = ATTR_TYPE_DATE Then
|
||||||
oMyControl = oControls.CreateExistingDatepicker(oAttributeRow, oXPosition, oYPositionControl)
|
oMyControl = clsControls.CreateExistingDatepicker(oAttributeRow, oXPosition, oYPositionControl)
|
||||||
Dim myDTP As DateEdit = CType(oMyControl, DateEdit)
|
Dim myDTP As DateEdit = CType(oMyControl, DateEdit)
|
||||||
AddHandler myDTP.DisableCalendarDate, AddressOf DisableCalendarDate
|
AddHandler myDTP.DisableCalendarDate, AddressOf DisableCalendarDate
|
||||||
AddHandler myDTP.DateTimeChanged, AddressOf CalendarChanged 'CalendarChanged
|
AddHandler myDTP.DateTimeChanged, AddressOf CalendarChanged 'CalendarChanged
|
||||||
ElseIf oAttributeType = ATTR_TYPE_BOOLEAN Then
|
ElseIf oAttributeType = ATTR_TYPE_BOOLEAN Then
|
||||||
oMyControl = oControls.CreateExistingCheckbox(oAttributeRow, oXPosition, oYPositionControl)
|
oMyControl = clsControls.CreateExistingCheckbox(oAttributeRow, oXPosition, oYPositionControl)
|
||||||
Dim myCheckBox As CheckBox = CType(oMyControl, CheckBox)
|
Dim myCheckBox As CheckBox = CType(oMyControl, CheckBox)
|
||||||
AddHandler myCheckBox.CheckedChanged, AddressOf CheckBox_CheckedChanged
|
AddHandler myCheckBox.CheckedChanged, AddressOf CheckBox_CheckedChanged
|
||||||
End If
|
End If
|
||||||
@ -269,7 +279,7 @@ Public Class frmSearchStart
|
|||||||
SelectedTab.Controls.Add(oMyControl)
|
SelectedTab.Controls.Add(oMyControl)
|
||||||
|
|
||||||
If oAttributeType = ATTR_TYPE_STRING Or oAttributeType = ATTR_TYPE_INTEGER Then
|
If oAttributeType = ATTR_TYPE_STRING Or oAttributeType = ATTR_TYPE_INTEGER Then
|
||||||
oControls.DeselectGridControl(oMyControl)
|
clsControls.DeselectGridControl(oMyControl)
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -278,6 +288,14 @@ Public Class frmSearchStart
|
|||||||
oWatch4.Stop()
|
oWatch4.Stop()
|
||||||
oWatch3.Stop()
|
oWatch3.Stop()
|
||||||
Next
|
Next
|
||||||
|
|
||||||
|
oSQL = $"SELECT [dbo].[FNIDB_SEARCH_GET_FILTER_SQL] ({SEARCH_ID},{My.Application.User.UserId},'{My.Application.User.Language}')"
|
||||||
|
Dim oREsult = My.DatabaseIDB.GetScalarValue(oSQL)
|
||||||
|
If Not IsNothing(oREsult) Then
|
||||||
|
DatatableStartSearchResult = My.DatabaseIDB.GetDatatable(oREsult)
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Logger.Warn("Unexpected error in Load_Search_Attributes - Error: " & ex.Message)
|
Logger.Warn("Unexpected error in Load_Search_Attributes - Error: " & ex.Message)
|
||||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Load_Search_Attributes:")
|
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Load_Search_Attributes:")
|
||||||
@ -285,6 +303,35 @@ Public Class frmSearchStart
|
|||||||
DataLoaded = True
|
DataLoaded = True
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Function FilterbyAttribute(Attribute2Filter As String, pFilter As String, TermColumn As String) As DataTable
|
||||||
|
Try
|
||||||
|
Dim oDV As DataView = New DataView(DatatableStartSearchResult, pFilter, "", DataViewRowState.OriginalRows)
|
||||||
|
Dim oDT As DataTable = oDV.ToTable(True, TermColumn)
|
||||||
|
Return oDT
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex.Message)
|
||||||
|
Return Nothing
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
Private Function RenewResultSoFar(pFilter As String) As DataTable
|
||||||
|
Try
|
||||||
|
Dim oDT2Filter As DataTable
|
||||||
|
' If DatatableSearchResultSoFar Is Nothing Then
|
||||||
|
oDT2Filter = DatatableStartSearchResult.Copy()
|
||||||
|
' Else
|
||||||
|
'oDT2Filter = DatatableSearchResultSoFar
|
||||||
|
' End If
|
||||||
|
Dim oDV As DataView = New DataView(oDT2Filter, pFilter, "", DataViewRowState.OriginalRows)
|
||||||
|
Dim oDT As DataTable = oDV.ToTable(True)
|
||||||
|
DatatableSearchResultSoFar = oDT
|
||||||
|
Display_InfoItem("FindResusult so far: " & DatatableSearchResultSoFar.Rows.Count.ToString, Color.Yellow)
|
||||||
|
Return DatatableSearchResultSoFar
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex.Message)
|
||||||
|
Return Nothing
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
Sub addLabel(pAttrName As String, pXPos As Integer, ylbl As Integer)
|
Sub addLabel(pAttrName As String, pXPos As Integer, ylbl As Integer)
|
||||||
Dim lbl As New Label With {
|
Dim lbl As New Label With {
|
||||||
.Name = "lbl" & pAttrName,
|
.Name = "lbl" & pAttrName,
|
||||||
@ -310,9 +357,20 @@ Public Class frmSearchStart
|
|||||||
Private Sub ClearSelectedControls()
|
Private Sub ClearSelectedControls()
|
||||||
ChangedDateControls = Nothing
|
ChangedDateControls = Nothing
|
||||||
End Sub
|
End Sub
|
||||||
|
Private Sub ClearAllRestrictedData()
|
||||||
|
Dim osql = $"DELETE FROM TBIDB_SEARCH_RESTRICTIONS_INPUT WHERE SEARCH_ID = {SEARCH_ID} and USR_ID = {My.Application.User.UserId}"
|
||||||
|
My.DatabaseIDB.ExecuteNonQuery(osql)
|
||||||
|
osql = $"DELETE FROM TBIDB_SEARCH_RESTRICTIONS_OBJECTS WHERE SEARCH_ID = {SEARCH_ID} AND USR_ID = {My.Application.User.UserId}"
|
||||||
|
My.DatabaseIDB.ExecuteNonQuery(osql)
|
||||||
|
End Sub
|
||||||
|
Private Sub ClearRestrictedDataAttr(pAttrID As Integer)
|
||||||
|
Dim osql = $"DELETE FROM TBIDB_SEARCH_RESTRICTIONS_INPUT WHERE SEARCH_ID = {SEARCH_ID} and USR_ID = {My.Application.User.UserId} AND RESTR_ATTR_ID = {pAttrID}"
|
||||||
|
My.DatabaseIDB.ExecuteNonQuery(osql)
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub RenewSearchAttributes()
|
Private Sub RenewSearchAttributes()
|
||||||
ClearSearchCriteria()
|
ClearSearchCriteria()
|
||||||
|
ClearAllRestrictedData()
|
||||||
|
|
||||||
For Each oControl As Control In SelectedTab.Controls
|
For Each oControl As Control In SelectedTab.Controls
|
||||||
Dim octrlType = oControl.GetType.ToString
|
Dim octrlType = oControl.GetType.ToString
|
||||||
@ -385,76 +443,295 @@ Public Class frmSearchStart
|
|||||||
End Select
|
End Select
|
||||||
Next
|
Next
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub Link2ControlActivated(pAttributeID)
|
Private Sub Relation2ControlActivated(pToAttributeID As Integer, pAttribute2Filter As String, pFilter As String, pTermColumn As String)
|
||||||
|
Try
|
||||||
|
|
||||||
|
For Each oControl As Control In SelectedTab.Controls
|
||||||
|
Dim octrlType = oControl.GetType.ToString
|
||||||
|
Dim oAttrID As Integer
|
||||||
|
Dim oAttrTitle As String
|
||||||
|
If octrlType = "System.Windows.Forms.Label" Then
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeID
|
||||||
|
oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle
|
||||||
|
Select Case oControl.GetType.FullName
|
||||||
|
Case GetType(GridControl).FullName
|
||||||
|
Dim oMyGridControl As GridControl = CType(oControl, GridControl)
|
||||||
|
Dim oMyGridView As GridView = CType(oMyGridControl.MainView, GridView)
|
||||||
|
|
||||||
|
If pToAttributeID = oAttrID Then
|
||||||
|
|
||||||
|
Dim oDTSource As DataTable = FilterbyAttribute(pAttribute2Filter, pFilter, pTermColumn)
|
||||||
|
|
||||||
|
If Not IsNothing(oDTSource) Then
|
||||||
|
oDTSource.DefaultView.Sort = oAttrTitle '"ColumnName ASC"
|
||||||
|
oDTSource = oDTSource.DefaultView.ToTable
|
||||||
|
oMyGridControl.DataSource = oDTSource
|
||||||
|
oMyGridView.PopulateColumns()
|
||||||
|
oMyGridView.FocusInvalidRow()
|
||||||
|
End If
|
||||||
|
|
||||||
|
'MsgBox("Attribute" & oAttrTitle & " is linked" & vbNewLine & oinString)
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
For Each oControl As Control In SelectedTab.Controls
|
|
||||||
Dim octrlType = oControl.GetType.ToString
|
|
||||||
|
|
||||||
|
|
||||||
|
Case GetType(DateEdit).FullName
|
||||||
|
' MsgBox("Date")
|
||||||
|
Dim oDateEdit As DateEdit = CType(oControl, DateEdit)
|
||||||
|
|
||||||
|
If pToAttributeID = oAttrID Then
|
||||||
|
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
|
||||||
|
Case GetType(CheckBox).FullName
|
||||||
|
Dim myCheckBox As CheckBox = CType(oControl, CheckBox)
|
||||||
|
|
||||||
|
|
||||||
|
Case Else
|
||||||
|
'MsgBox(oControl.GetType.ToString)
|
||||||
|
End Select
|
||||||
|
Next
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
Private Function ReplacePatterns(pInput As String, pAttrTitle As String) As String
|
||||||
|
Try
|
||||||
|
Dim oReturn = pInput
|
||||||
|
oReturn = oReturn.Replace("@USER_LANGUAGE", My.Application.User.Language)
|
||||||
|
oReturn = oReturn.Replace("@pUSER_ID", My.Application.User.UserId)
|
||||||
|
oReturn = oReturn.Replace("@RESULT_TITLE", pAttrTitle)
|
||||||
|
Return oReturn
|
||||||
|
Catch ex As Exception
|
||||||
|
Return pInput
|
||||||
|
Logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Sub RenewDatasourceControl(pToAttributeID As Integer, pSourceSQL As String)
|
||||||
|
Try
|
||||||
|
For Each oControl As Control In SelectedTab.Controls
|
||||||
|
Dim octrlType = oControl.GetType.ToString
|
||||||
|
Dim oAttrID As Integer
|
||||||
|
Dim oAttrTitle As String
|
||||||
|
If octrlType = "System.Windows.Forms.Label" Then
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeID
|
||||||
|
oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle
|
||||||
|
If pToAttributeID = oAttrID Then
|
||||||
|
Dim oSourceSQL As String = ReplacePatterns(pSourceSQL, oAttrTitle)
|
||||||
|
Dim oDTSource As DataTable = My.DatabaseIDB.GetDatatable(oSourceSQL)
|
||||||
|
If Not IsNothing(oDTSource) Then
|
||||||
|
oDTSource.DefaultView.Sort = oAttrTitle '"ColumnName ASC"
|
||||||
|
oDTSource = oDTSource.DefaultView.ToTable
|
||||||
|
Select Case oControl.GetType.FullName
|
||||||
|
Case GetType(GridControl).FullName
|
||||||
|
Dim oMyGridControl As GridControl = CType(oControl, GridControl)
|
||||||
|
Dim oMyGridView As GridView = CType(oMyGridControl.MainView, GridView)
|
||||||
|
oMyGridControl.DataSource = oDTSource
|
||||||
|
oMyGridView.PopulateColumns()
|
||||||
|
oMyGridView.FocusInvalidRow()
|
||||||
|
Case GetType(DateEdit).FullName
|
||||||
|
' MsgBox("Date")
|
||||||
|
Dim oDateEdit As DateEdit = CType(oControl, DateEdit)
|
||||||
|
|
||||||
|
Case GetType(CheckBox).FullName
|
||||||
|
Dim myCheckBox As CheckBox = CType(oControl, CheckBox)
|
||||||
|
|
||||||
|
|
||||||
|
Case Else
|
||||||
|
'MsgBox(oControl.GetType.ToString)
|
||||||
|
End Select
|
||||||
|
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
Private Sub Link2ControlActivated(pFromAttributeID As Integer, pToAttributeID As Integer, pListSelected As List(Of String), pSourceSQL As String)
|
||||||
|
Try
|
||||||
|
For Each oControl As Control In SelectedTab.Controls
|
||||||
|
Dim octrlType = oControl.GetType.ToString
|
||||||
|
Dim oAttrID As Integer
|
||||||
|
Dim oAttrTitle As String
|
||||||
|
If octrlType = "System.Windows.Forms.Label" Then
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeID
|
||||||
|
oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle
|
||||||
|
Select Case oControl.GetType.FullName
|
||||||
|
Case GetType(GridControl).FullName
|
||||||
|
Dim oMyGridControl As GridControl = CType(oControl, GridControl)
|
||||||
|
Dim oMyGridView As GridView = CType(oMyGridControl.MainView, GridView)
|
||||||
|
|
||||||
|
If pToAttributeID = oAttrID Then
|
||||||
|
ClearRestrictedDataAttr(pToAttributeID)
|
||||||
|
Dim i As Integer = 0
|
||||||
|
Dim oinString As String = " in ("
|
||||||
|
For Each oOBJ_ID As String In pListSelected
|
||||||
|
Dim oinsert As String = $"INSERT INTO [dbo].[TBIDB_SEARCH_RESTRICTIONS_INPUT] ([SEARCH_ID],[RESTR_ATTR_ID],[SOURCE_ATTR_ID] ,[TERM],[USR_ID]) VALUES ({SEARCH_ID},{pToAttributeID},{pFromAttributeID},'{oOBJ_ID}',{My.Application.User.UserId})"
|
||||||
|
My.DatabaseIDB.ExecuteNonQuery(oinsert)
|
||||||
|
If i = 0 Then
|
||||||
|
oinString += "'" + oOBJ_ID.ToString + "'"
|
||||||
|
Else
|
||||||
|
oinString = oinString + ",'" + oOBJ_ID.ToString + "'"
|
||||||
|
End If
|
||||||
|
i += 1
|
||||||
|
Next
|
||||||
|
oinString += ")"
|
||||||
|
Dim oSourceSQL As String = pSourceSQL
|
||||||
|
oSourceSQL = oSourceSQL.Replace("@USER_LANGUAGE", My.Application.User.Language)
|
||||||
|
oSourceSQL = oSourceSQL.Replace("@pUSER_ID", My.Application.User.UserId)
|
||||||
|
oSourceSQL = oSourceSQL.Replace("@RESULT_TITLE", oAttrTitle)
|
||||||
|
oSourceSQL &= $" Inner Join TBIDB_SEARCH_RESTRICTIONS_OBJECTS T1 ON T.IDB_OBJECT_ID = T1.IDB_OBJ_ID " &
|
||||||
|
$"WHERE RESTR_ATTR_ID = {pToAttributeID} And SEARCH_ID = {SEARCH_ID} And USR_ID = {My.Application.User.UserId} "
|
||||||
|
'oSourceSQL &= " ORDER BY T.TERM_VALUE"
|
||||||
|
Dim oDTSource As DataTable
|
||||||
|
|
||||||
|
If Utils.NotNull(oSourceSQL, String.Empty) <> String.Empty Then
|
||||||
|
oDTSource = My.DatabaseIDB.GetDatatable(oSourceSQL)
|
||||||
|
If Not IsNothing(oDTSource) Then
|
||||||
|
oDTSource.DefaultView.Sort = oAttrTitle '"ColumnName ASC"
|
||||||
|
oDTSource = oDTSource.DefaultView.ToTable
|
||||||
|
oMyGridControl.DataSource = oDTSource
|
||||||
|
oMyGridView.PopulateColumns()
|
||||||
|
oMyGridView.FocusInvalidRow()
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
End If
|
||||||
|
'MsgBox("Attribute" & oAttrTitle & " is linked" & vbNewLine & oinString)
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Case GetType(DateEdit).FullName
|
||||||
|
' MsgBox("Date")
|
||||||
|
Dim oDateEdit As DateEdit = CType(oControl, DateEdit)
|
||||||
|
|
||||||
|
If pToAttributeID = oAttrID Then
|
||||||
|
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
|
||||||
|
Case GetType(CheckBox).FullName
|
||||||
|
Dim myCheckBox As CheckBox = CType(oControl, CheckBox)
|
||||||
|
|
||||||
|
|
||||||
|
Case Else
|
||||||
|
'MsgBox(oControl.GetType.ToString)
|
||||||
|
End Select
|
||||||
|
Next
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
Private Sub SelectionChanged(sender As Object, e As DevExpress.Data.SelectionChangedEventArgs)
|
||||||
|
Try
|
||||||
|
If DataLoaded = False Then Exit Sub
|
||||||
|
|
||||||
|
Dim oMyGridView As GridView = DirectCast(sender, GridView)
|
||||||
|
Dim oMyGridControl As GridControl = oMyGridView.GridControl
|
||||||
Dim oAttrID As Integer
|
Dim oAttrID As Integer
|
||||||
Dim oAttrTitle As String
|
Dim oAttrTitle As String
|
||||||
Select Case oControl.GetType.FullName
|
oAttrID = DirectCast(oMyGridControl.Tag, ClassControlCreator.ControlMetadata).AttributeID
|
||||||
Case GetType(GridControl).FullName
|
oAttrTitle = DirectCast(oMyGridControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle
|
||||||
Dim oMyGridControl As GridControl = CType(oControl, GridControl)
|
Dim oSelectedRows As Integer() = oMyGridView.GetSelectedRows()
|
||||||
Dim oMyGridView As GridView = CType(oMyGridControl.MainView, GridView)
|
If oSelectedRows.Count = 0 Then
|
||||||
oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeID
|
ClearRestrictedDataAttr(oAttrID)
|
||||||
oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle
|
For Each orow As DataRow In DatatableAttributeLinks.Rows
|
||||||
If pAttributeID = oAttrID Then
|
If CInt(orow.Item("LINKED_ATTR_ID")) = oAttrID Then
|
||||||
MsgBox("Attribute" & oAttrTitle & " is linked")
|
' Nun die Controls durchlaufen
|
||||||
Continue For
|
RenewDatasourceControl(CInt(orow.Item("DEP_ATTR_ID")), orow.Item("DEP_SOURCE_SQL").ToString)
|
||||||
End If
|
End If
|
||||||
|
Next
|
||||||
Case GetType(DateEdit).FullName
|
Exit Sub
|
||||||
' MsgBox("Date")
|
|
||||||
Dim oDateEdit As DateEdit = CType(oControl, DateEdit)
|
|
||||||
oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeID
|
|
||||||
oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle
|
|
||||||
If pAttributeID = oAttrID Then
|
|
||||||
|
|
||||||
Continue For
|
|
||||||
End If
|
|
||||||
|
|
||||||
Case GetType(CheckBox).FullName
|
|
||||||
Dim myCheckBox As CheckBox = CType(oControl, CheckBox)
|
|
||||||
oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeID
|
|
||||||
oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle
|
|
||||||
|
|
||||||
Case Else
|
|
||||||
'MsgBox(oControl.GetType.ToString)
|
|
||||||
End Select
|
|
||||||
Next
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Private Sub FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs)
|
|
||||||
If DataLoaded = False Then Exit Sub
|
|
||||||
|
|
||||||
Dim oMyGridView As GridView = DirectCast(sender, GridView)
|
|
||||||
Dim oMyGridControl As GridControl = oMyGridView.GridControl
|
|
||||||
|
|
||||||
Dim oSelectedRows As Integer() = oMyGridView.GetSelectedRows()
|
|
||||||
If oSelectedRows.Count = 0 Then
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
Dim oAttrID As Integer
|
|
||||||
Dim oAttrTitle As String
|
|
||||||
oAttrID = DirectCast(oMyGridControl.Tag, ClassControlCreator.ControlMetadata).AttributeID
|
|
||||||
oAttrTitle = DirectCast(oMyGridControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle
|
|
||||||
For Each orow As DataRow In DatatableAttributeLinks.Rows
|
|
||||||
If CInt(orow.Item("LINKED_ATTR_ID")) = oAttrID Then
|
|
||||||
' Nun die Controls durchlaufen
|
|
||||||
Link2ControlActivated(CInt(orow.Item("DEP_ATTR_ID")))
|
|
||||||
End If
|
End If
|
||||||
Next
|
Dim oList As New List(Of String)
|
||||||
|
For Each oRowHandle As Integer In oSelectedRows
|
||||||
|
Dim oSelectedItem As String = oMyGridView.GetRowCellValue(oRowHandle, oMyGridView.Columns(0).FieldName)
|
||||||
|
oList.Add("'" + oSelectedItem + "'")
|
||||||
|
Next
|
||||||
|
Dim oFilter As String = oAttrTitle + " in (" + String.Join(",", oList) + ")"
|
||||||
|
RenewResultSoFar(oFilter)
|
||||||
|
|
||||||
|
For Each orow As DataRow In DatatableAttributeLinks.Rows
|
||||||
|
If CInt(orow.Item("LINKED_ATTR_ID")) = oAttrID Then
|
||||||
|
' Nun die Controls durchlaufen
|
||||||
|
|
||||||
|
Relation2ControlActivated(CInt(orow.Item("DEP_ATTR_ID")), oAttrTitle, oFilter, orow.Item("DEP_ATTRIBUTE_TITLE").ToString)
|
||||||
|
'Link2ControlActivated(oAttrID, CInt(orow.Item("DEP_ATTR_ID")), oList, orow.Item("DEP_SOURCE_SQL"))
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
Private Sub FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs)
|
||||||
|
Try
|
||||||
|
If DataLoaded = False Then Exit Sub
|
||||||
|
|
||||||
|
Dim oMyGridView As GridView = DirectCast(sender, GridView)
|
||||||
|
Dim oMyGridControl As GridControl = oMyGridView.GridControl
|
||||||
|
|
||||||
|
Dim oSelectedRows As Integer() = oMyGridView.GetSelectedRows()
|
||||||
|
If oSelectedRows.Count = 0 Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
Dim oList As New List(Of String)
|
||||||
|
For Each oRowHandle As Integer In oSelectedRows
|
||||||
|
Dim oSelectedItem As String = oMyGridView.GetRowCellValue(oRowHandle, oMyGridView.Columns(0).FieldName)
|
||||||
|
oList.Add(oSelectedItem)
|
||||||
|
Next
|
||||||
|
Dim oAttrID As Integer
|
||||||
|
Dim oAttrTitle As String
|
||||||
|
oAttrID = DirectCast(oMyGridControl.Tag, ClassControlCreator.ControlMetadata).AttributeID
|
||||||
|
oAttrTitle = DirectCast(oMyGridControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle
|
||||||
|
Dim oFilter As String = oAttrTitle + " = (" + String.Join(",", oList) + ")"
|
||||||
|
RenewResultSoFar(oFilter)
|
||||||
|
For Each orow As DataRow In DatatableAttributeLinks.Rows
|
||||||
|
If CInt(orow.Item("LINKED_ATTR_ID")) = oAttrID Then
|
||||||
|
' Nun die Controls durchlaufen
|
||||||
|
|
||||||
|
Relation2ControlActivated(CInt(orow.Item("DEP_ATTR_ID")), oAttrTitle, oFilter, orow.Item("DEP_ATTRIBUTE_TITLE").ToString)
|
||||||
|
' Link2ControlActivated(oAttrID, CInt(orow.Item("DEP_ATTR_ID")), oList, orow.Item("DEP_SOURCE_SQL"))
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub CheckBox_CheckedChanged(sender As Object, e As EventArgs)
|
Private Sub CheckBox_CheckedChanged(sender As Object, e As EventArgs)
|
||||||
If DataLoaded = False Then Exit Sub
|
Try
|
||||||
Dim oCurrentCB As CheckBox = DirectCast(sender, CheckBox)
|
If DataLoaded = False Then Exit Sub
|
||||||
Dim oChecked = oCurrentCB.Checked
|
Dim oCurrentCB As CheckBox = DirectCast(sender, CheckBox)
|
||||||
Dim oAttrID = DirectCast(oCurrentCB.Tag, ClassControlCreator.ControlMetadata).AttributeID
|
Dim oChecked = oCurrentCB.Checked
|
||||||
Dim oAttrTitle = DirectCast(oCurrentCB.Tag, ClassControlCreator.ControlMetadata).AttributeTitle
|
Dim oAttrID = DirectCast(oCurrentCB.Tag, ClassControlCreator.ControlMetadata).AttributeID
|
||||||
'RenewSearchAttributes()
|
Dim oAttrTitle = DirectCast(oCurrentCB.Tag, ClassControlCreator.ControlMetadata).AttributeTitle
|
||||||
' AddSearchAttribute(oAttrID, oAttrTitle, oChecked.ToString)
|
'RenewSearchAttributes()
|
||||||
|
' AddSearchAttribute(oAttrID, oAttrTitle, oChecked.ToString)
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub frmSearchStart_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
Private Sub frmSearchStart_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
||||||
DataLoaded = True
|
DataLoaded = True
|
||||||
@ -507,6 +784,7 @@ Public Class frmSearchStart
|
|||||||
Try
|
Try
|
||||||
ClearSearchCriteria()
|
ClearSearchCriteria()
|
||||||
ClearSelectedControls()
|
ClearSelectedControls()
|
||||||
|
ClearAllRestrictedData()
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
MsgBox("Unexpected Error in Clearing Search Items: " & ex.Message, MsgBoxStyle.Critical)
|
MsgBox("Unexpected Error in Clearing Search Items: " & ex.Message, MsgBoxStyle.Critical)
|
||||||
End Try
|
End Try
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user