MS: Anpassungen Depending Controls CMB2CMB Datasource
This commit is contained in:
parent
5d6dc32e22
commit
1a9254630f
@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.9.3.9")>
|
<Assembly: AssemblyVersion("1.9.4.0")>
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||||
|
|||||||
@ -50,6 +50,8 @@ Public Class frmValidator
|
|||||||
Dim viewer_string As String
|
Dim viewer_string As String
|
||||||
Dim pdfxchange As Boolean = False
|
Dim pdfxchange As Boolean = False
|
||||||
Dim sumatra As Boolean = False
|
Dim sumatra As Boolean = False
|
||||||
|
Private _dependingControl_in_action As Boolean = False
|
||||||
|
|
||||||
<DllImport("user32.dll", CharSet:=CharSet.Ansi, SetLastError:=True, ExactSpelling:=True)>
|
<DllImport("user32.dll", CharSet:=CharSet.Ansi, SetLastError:=True, ExactSpelling:=True)>
|
||||||
Public Shared Function SetForegroundWindow(ByVal hwnd As IntPtr) As <MarshalAs(UnmanagedType.Bool)> Boolean
|
Public Shared Function SetForegroundWindow(ByVal hwnd As IntPtr) As <MarshalAs(UnmanagedType.Bool)> Boolean
|
||||||
End Function
|
End Function
|
||||||
@ -1098,27 +1100,9 @@ Public Class frmValidator
|
|||||||
End Try
|
End Try
|
||||||
|
|
||||||
Next
|
Next
|
||||||
|
_dependingControl_in_action = True
|
||||||
|
Depending_Control_Set_Result(displayboxname, sql_Statement, ROW.Item(1))
|
||||||
|
_dependingControl_in_action = False
|
||||||
Dim resultDT As DataTable = ClassDatabase.Return_Datatable_CS(sql_Statement, ROW.Item(1))
|
|
||||||
If resultDT.Rows.Count >= 1 Then
|
|
||||||
'Nur dediziert einen Wert zurückerhalten
|
|
||||||
For Each row1 As DataRow In resultDT.Rows
|
|
||||||
Dim result = row1.Item(0)
|
|
||||||
If Not IsNothing(result) Then
|
|
||||||
pnldesigner.Controls(displayboxname).Text = result.ToString
|
|
||||||
Exit For
|
|
||||||
Else
|
|
||||||
pnldesigner.Controls(displayboxname).Text = "RESULT = NOTHING"
|
|
||||||
Exit For
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
Else
|
|
||||||
pnldesigner.Controls(displayboxname).Text = "NO RESULT"
|
|
||||||
End If
|
|
||||||
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
ClassLogger.Add("Unexpected Error in Display SQL result for control: " & ROW.Item(0).ToString & " - ERROR: " & ex.Message)
|
ClassLogger.Add("Unexpected Error in Display SQL result for control: " & ROW.Item(0).ToString & " - ERROR: " & ex.Message)
|
||||||
@ -1200,6 +1184,10 @@ Public Class frmValidator
|
|||||||
Dim sql = String.Format("select NAME,CONNECTION_ID,SQL_UEBERPRUEFUNG FROM TBPM_PROFILE_CONTROLS WHERE PROFIL_ID = {0} AND SQL_UEBERPRUEFUNG LIKE '%{1}%'", CURRENT_ProfilGUID, cmb.Name)
|
Dim sql = String.Format("select NAME,CONNECTION_ID,SQL_UEBERPRUEFUNG FROM TBPM_PROFILE_CONTROLS WHERE PROFIL_ID = {0} AND SQL_UEBERPRUEFUNG LIKE '%{1}%'", CURRENT_ProfilGUID, cmb.Name)
|
||||||
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql)
|
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql)
|
||||||
If Not IsNothing(DT) And DT.Rows.Count > 0 Then
|
If Not IsNothing(DT) And DT.Rows.Count > 0 Then
|
||||||
|
If _dependingControl_in_action = True Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
For Each ROW As DataRow In DT.Rows
|
For Each ROW As DataRow In DT.Rows
|
||||||
Try
|
Try
|
||||||
Dim displayboxname = ROW.Item(0).ToString
|
Dim displayboxname = ROW.Item(0).ToString
|
||||||
@ -1227,39 +1215,17 @@ Public Class frmValidator
|
|||||||
input_value = cmb1.Text
|
input_value = cmb1.Text
|
||||||
End If
|
End If
|
||||||
sql_Statement = sql_Statement.ToString.Replace(element.Value, input_value)
|
sql_Statement = sql_Statement.ToString.Replace(element.Value, input_value)
|
||||||
If LogErrorsOnly = False Then ClassLogger.Add(">>> sql_Statement: " & sql_Statement)
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
ClassLogger.Add("Unexpected Error in Checking control values for Variable SQL Result ComboBox - ERROR: " & ex.Message)
|
ClassLogger.Add("Unexpected Error in Checking control values for Variable SQL Result ComboBox - ERROR: " & ex.Message)
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
Next
|
Next
|
||||||
|
If LogErrorsOnly = False Then ClassLogger.Add(">>> sql_Statement after replacement: " & sql_Statement)
|
||||||
|
|
||||||
Dim resultDT As DataTable = ClassDatabase.Return_Datatable_CS(sql_Statement, ROW.Item(1))
|
_dependingControl_in_action = True
|
||||||
If resultDT.Rows.Count = 1 Then
|
Depending_Control_Set_Result(displayboxname, sql_Statement, ROW.Item(1))
|
||||||
'Nur dediziert einen Wert zurückerhalten
|
_dependingControl_in_action = False
|
||||||
For Each row1 As DataRow In resultDT.Rows
|
|
||||||
Dim result = row1.Item(0)
|
|
||||||
If Not IsNothing(result) Then
|
|
||||||
pnldesigner.Controls(displayboxname).Text = result.ToString
|
|
||||||
Exit For
|
|
||||||
Else
|
|
||||||
pnldesigner.Controls(displayboxname).Text = "RESULT = NOTHING"
|
|
||||||
Exit For
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
ElseIf resultDT.Rows.Count > 1 Then
|
|
||||||
'Ist das Control ein Control was mehrfachwerte enthalten kann
|
|
||||||
If displayboxname.StartsWith(ClassControlCreator.PREFIX_COMBOBOX) Then
|
|
||||||
|
|
||||||
Else
|
|
||||||
MsgBox("Result contains more than one rows!", MsgBoxStyle.Information)
|
|
||||||
|
|
||||||
End If
|
|
||||||
' wenn ja: dann datasource an control anpassen
|
|
||||||
Else
|
|
||||||
pnldesigner.Controls(displayboxname).Text = "NO RESULT"
|
|
||||||
End If
|
|
||||||
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
@ -1275,6 +1241,36 @@ Public Class frmValidator
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
Private Sub Depending_Control_Set_Result(displayboxname As String, sqlCommand As String, sqlConnection As String)
|
||||||
|
Try
|
||||||
|
Dim resultDT As DataTable = ClassDatabase.Return_Datatable_CS(sqlCommand, sqlConnection)
|
||||||
|
If Not IsNothing(resultDT) Then
|
||||||
|
'Ist das Control ein Control was mehrfachwerte enthalten kann
|
||||||
|
If displayboxname.StartsWith(ClassControlCreator.PREFIX_COMBOBOX) Or displayboxname.StartsWith(ClassControlCreator.PREFIX_DATAGRIDVIEW) Or displayboxname.StartsWith(ClassControlCreator.PREFIX_TABLE) Then
|
||||||
|
If displayboxname.StartsWith(ClassControlCreator.PREFIX_COMBOBOX) Then
|
||||||
|
Dim cmbpanel As ComboBox = pnldesigner.Controls(displayboxname)
|
||||||
|
cmbpanel.DataSource = Nothing
|
||||||
|
cmbpanel.DataSource = resultDT
|
||||||
|
cmbpanel.DisplayMember = resultDT.Columns(0).ColumnName
|
||||||
|
cmbpanel.ValueMember = resultDT.Columns(0).ColumnName
|
||||||
|
|
||||||
|
ElseIf displayboxname.StartsWith(ClassControlCreator.PREFIX_DATAGRIDVIEW) Or displayboxname.StartsWith(ClassControlCreator.PREFIX_TABLE) Then
|
||||||
|
'not implemented
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
If resultDT.Rows.Count = 1 Then
|
||||||
|
pnldesigner.Controls(displayboxname).Text = resultDT.Rows(0).Item(0).ToString
|
||||||
|
Else
|
||||||
|
pnldesigner.Controls(displayboxname).Text = "RESULT = NOTHING or MORE THAN 1 ROW"
|
||||||
|
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
ClassLogger.Add("Unexpected Error in Depending_Control_Set_Result - ERROR: " & ex.Message)
|
||||||
|
MsgBox("Unexpected error: " & ex.Message, MsgBoxStyle.Critical)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
Public Sub OnDTPValueChanged(sender As System.Object, e As System.EventArgs)
|
Public Sub OnDTPValueChanged(sender As System.Object, e As System.EventArgs)
|
||||||
Dim dtp As DateTimePicker = sender
|
Dim dtp As DateTimePicker = sender
|
||||||
If _Indexe_Loaded = True Then
|
If _Indexe_Loaded = True Then
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user