Monorepo/GUIs.ZooFlow/Administration/frmSQLDesigner_old.vb
2022-05-11 13:49:34 +02:00

217 lines
8.8 KiB
VB.net

Imports DevExpress.XtraEditors
Imports DevExpress.XtraEditors.Repository
Imports DigitalData.Modules.Database
Public Class frmSQLDesigner_old
Dim CurrentPosition As Integer = 0
Dim CurrentPlaceholders As New Placeholders()
Dim CurrentTableType As String
Dim AtPlaceholderPattern As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}" '"\[%[0-9A-Za-z_-]{1,}\]"
Public Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Public Class Placeholders
Public Property RecordId As Integer
Public Property ParentRecordId As Integer
Public Property FormId As Integer
End Class
Public Property SQLCommand() As String
Get
Return SQL_COMMANDTextBox.Text
End Get
Set(value As String)
SQL_COMMANDTextBox.Text = value
End Set
End Property
Public Property ConnectionID
Public AutoAttributID
Public Property DesignType As String
Private IndicesMan As New List(Of Indice_Man)()
Public Class Indice_Man
Public Property ID() As Integer
Public Property Indice_name() As String
End Class
Private Sub frmSQLDesigner_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim oSQL
bsiInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
If DesignType = "GI_ATTRIBUTE_MAN" Then
EnDisable_Man_Attribute(False)
Else
EnDisable_Man_Attribute(True)
oSQL = "Select * From TBDD_INDEX_MAN WHERE ACTIVE = 1"
Dim oDT = My.DatabaseECM.GetDatatable(oSQL)
cmbAttributeMan.DataSource = oDT
cmbAttributeMan.DisplayMember = oDT.Columns("WD_INDEX").ColumnName
oSQL = $"Select * From TBDD_INDEX_AUTOM WHERE ACTIVE = 1 AND GUID <> {AutoAttributID}"
Dim oDTAA = My.DatabaseECM.GetDatatable(oSQL)
cmbAttributeAuto.DataSource = oDTAA
cmbAttributeAuto.DisplayMember = oDTAA.Columns("INDEXNAME").ColumnName
EnDisable_Auto_Attribute(True)
End If
If DesignType = "SQL_OVERVIEW" Then
cmbConnection.Enabled = False
'btnShowConnections.Enabled = False
Else
cmbConnection.Enabled = True
oSQL = "SELECT GUID, Bezeichnung FROM TBDD_CONNECTION WHERE AKTIV = 1"
Dim oDT As DataTable = My.DatabaseECM.GetDatatable(oSQL)
cmbConnection.DataSource = oDT
cmbConnection.DisplayMember = oDT.Columns("Bezeichnung").ColumnName
cmbConnection.ValueMember = oDT.Columns("GUID").ColumnName
IndicesMan.Add(New Indice_Man() With {.ID = 1, .Indice_name = "Manually"})
'bind the lookup editor to the list
Dim oLU As RepositoryItemLookUpEdit = RepositoryItemLookUpEdit3
oLU.DataSource = oDT
oLU.DisplayMember = oDT.Columns("Bezeichnung").ColumnName
oLU.ValueMember = oDT.Columns("GUID").ColumnName
' Enable the "best-fit" functionality mode in which columns have proportional widths and the popup window is resized to fit all the columns.
oLU.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup
' Specify the dropdown height.
oLU.DropDownRows = oDT.Rows.Count
' Enable the automatic completion feature. In this mode, when the dropdown is closed,
' the text in the edit box is automatically completed if it matches a DisplayMember field value of one of dropdown rows.
oLU.SearchMode = DevExpress.XtraEditors.Controls.SearchMode.AutoComplete
' Specify the column against which an incremental search is performed in SearchMode.AutoComplete and SearchMode.OnlyInPopup modes
oLU.AutoSearchColumnIndex = 1
If Not IsNothing(ConnectionID) Then
If IsNumeric(ConnectionID) Then
cmbConnection.SelectedValue = ConnectionID
End If
End If
'btnShowConnections.Enabled = True
End If
End Sub
Private Sub SQL_COMMANDTextBox_TextChanged(sender As Object, e As EventArgs) Handles SQL_COMMANDTextBox.TextChanged, SQL_COMMANDTextBox.Click
CurrentPosition = SQL_COMMANDTextBox.SelectionStart
If SQL_COMMANDTextBox.Text.Trim().Count = 0 Then
dgvPlaceholders.Enabled = False
Else
dgvPlaceholders.Enabled = True
End If
CheckForPlaceholders()
End Sub
Sub EnDisable_Man_Attribute(bool As Boolean)
lblAttributeMan.Visible = bool
cmbAttributeMan.Visible = bool
btnAddAttributeMan.Visible = bool
End Sub
Sub EnDisable_Auto_Attribute(bool As Boolean)
lblAttributeAuto.Visible = bool
cmbAttributeAuto.Visible = bool
btnAddAttributeAuto.Visible = bool
End Sub
Private Sub CheckForPlaceholders()
Dim text As String = SQL_COMMANDTextBox.Text
dgvPlaceholders.Rows.Clear()
Dim patterns As List(Of clsPatterns.Pattern) = clsPatterns.GetAllPatterns(text)
For Each pattern In patterns
dgvPlaceholders.Rows.Add({pattern.ToString, ""})
Next
'Dim count As Integer = 0
'Dim text As String = Me.Value
'Dim atPlaceholderRegex = New Regex(AtPlaceholderPattern, RegexOptions.IgnoreCase)
'Dim matches As MatchCollection = atPlaceholderRegex.Matches(text)
'dgvPlaceholders.Rows.Clear()
'For Each match As Match In matches
' dgvPlaceholders.Rows.Add({match.Value, ""})
'Next
End Sub
Private Sub InsertAtSelection(str As String)
Dim altePosition As Integer = SQL_COMMANDTextBox.SelectionStart()
SQL_COMMANDTextBox.Text = SQL_COMMANDTextBox.Text.Insert(altePosition, str)
SQL_COMMANDTextBox.SelectionStart = altePosition + str.Length
End Sub
Private Sub btnAddAttributeMan_Click(sender As Object, e As EventArgs) Handles btnAddAttributeMan.Click
If cmbAttributeMan.SelectedIndex <> -1 Then
Dim value As String = clsPatterns.WrapPatternValue(clsPatterns.PATTERN_ATTR_MAN, cmbAttributeMan.Text)
InsertAtSelection(value)
End If
End Sub
Private Sub btnAddStatic_Click(sender As Object, e As EventArgs) Handles btnAddStatic.Click
If cmbStatic.SelectedIndex <> -1 Then
Dim value As String = clsPatterns.WrapPatternValue(clsPatterns.PATTERN_INT, cmbStatic.Text)
InsertAtSelection(value)
End If
End Sub
Private Sub btnAddUser_Click(sender As Object, e As EventArgs) Handles btnAddUser.Click
If cmbUser.SelectedIndex <> -1 Then
Dim value As String = clsPatterns.WrapPatternValue(clsPatterns.PATTERN_USER, cmbUser.Text)
InsertAtSelection(value)
End If
End Sub
Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick
Try
Dim query As String = SQL_COMMANDTextBox.Text
For Each row As DataGridViewRow In dgvPlaceholders.Rows
Dim placeholder As String = row.Cells(0).Value
Dim replacement As String = row.Cells(1).Value
' Wenn Ersetzung ausgefüllt wurde, Platzhalter damit ersetzen
If Not String.IsNullOrEmpty(replacement) Then
Dim pattern As New clsPatterns.Pattern(placeholder)
query = clsPatterns.ReplacePattern(query, pattern.Type, replacement)
Else
MsgBox("Bitte geben Sie für den Platzhalter " & placeholder & " einen Wert an!", MsgBoxStyle.Exclamation, "Fehlende Platzhalter Ersetzung")
Exit Sub
End If
Next
'MsgBox(cmbConnection.SelectedValue)
Dim oconString = My.DatabaseECM.Get_ConnectionStringforID(cmbConnection.SelectedValue)
'MsgBox(oconString)
Dim decryptedConString = MSSQLServer.DecryptConnectionString(oconString)
'MsgBox(decryptedConString)
Dim oDT = My.DatabaseECM.GetDatatableWithConnection(query, decryptedConString)
If oDT IsNot Nothing Then
GridControl1.DataSource = Nothing
GridControl1.DataSource = oDT
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
SQLCommand = SQL_COMMANDTextBox.Text
ConnectionID = cmbConnection.SelectedValue
Me.Close()
End Sub
Private Sub Label2_Click(sender As Object, e As EventArgs) Handles Label2.Click
End Sub
End Class