Panel aufgeräumt + Ribbon Control Pageheader

This commit is contained in:
OlgunR
2025-06-27 13:05:23 +02:00
parent f256220201
commit 5ac9b9b6fc
3 changed files with 298 additions and 115 deletions

View File

@@ -1,17 +1,18 @@
Imports System.IO
Imports System.Text.RegularExpressions
Imports System.Text
Imports System.Security.AccessControl
Imports System.Text
Imports System.Text.RegularExpressions
Imports DevExpress.XtraEditors
Imports DevExpress.XtraEditors.Controls
Imports DevExpress.XtraSpreadsheet.TileLayout
Imports DigitalData.Controls.LookupGrid
Imports DigitalData.GUIs.Common
Imports DigitalData.GUIs.GlobalIndexer
Imports DigitalData.Modules.Base
'Imports System.Security.Principal
Imports DigitalData.Modules.Logging
Imports DigitalData.Controls.LookupGrid
Imports DigitalData.GUIs.GlobalIndexer
Imports DevExpress.XtraEditors.Controls
Imports Limilabs.Mail
Imports DevExpress.XtraEditors
Imports DigitalData.GUIs.Common
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Windream
Imports Limilabs.Mail
'Imports DevExpress.DataAccess.Native.Json
'Imports GdPicture.Internal.MSOfficeBinary.translator.Spreadsheet.XlsFileFormat.Records
@@ -167,6 +168,32 @@ Public Class frmIndex
pnlIndex.Controls.Add(lbl)
End Sub
Private Sub AddLabelAndControl(labelText As String,
ctrl As Control,
indexName As String)
'--- Label vorbereiten ------------------------------------
Dim lbl As New Label With {
.Name = $"lbl_{indexName}",
.Text = labelText,
.AutoSize = True,
.Anchor = AnchorStyles.Left,
.Margin = New Padding(4, 4, 4, 4) 'äußerer Abstand
}
'--- Control vorbereiten ----------------------------------
ctrl.Anchor = AnchorStyles.Left Or AnchorStyles.Right
ctrl.Margin = New Padding(4, 4, 8, 4) 'äußerer Abstand rechts etwas größer
ctrl.Width = 260 'falls AutoSize=False
'--- Zeile dynamisch anlegen ------------------------------
tlpIndex.RowCount += 1
tlpIndex.RowStyles.Add(New RowStyle(SizeType.AutoSize))
tlpIndex.Controls.Add(lbl, 0, tlpIndex.RowCount - 1) 'Spalte 0 = Label
tlpIndex.Controls.Add(ctrl, 1, tlpIndex.RowCount - 1) 'Spalte 1 = Control
End Sub
Function Indexwert_checkValueDB(indexname As String, wert As String)
Try
Dim DR As DataRow
@@ -1968,29 +1995,147 @@ Public Class frmIndex
End Try
End Function
'Private Sub LoadIndexe_Man()
' Try
' Dim oScreen As New DigitalData.Modules.Windows.Screen()
' Dim oDpiscale = oScreen.GetScreenScaling(Me)
' Dim oControlCount As Integer = 1
' Dim oLabelPosition As Integer = 11 * oDpiscale
' Dim oControlPosition As Integer = 33 * oDpiscale
' _Logger.Info("Loading Indicies for Screen Scaling Factor [{0}]", oDpiscale)
' Dim oControls As New ControlCreator(LOGCONFIG, pnlIndex, Me) With {
' .OnControlChanged = AddressOf PrepareDependingControl,
' .OnLookupData = AddressOf GetLookupData
' }
' 'Dim oControls As New ClassControls(pnlIndex, Me)
' If DT_INDEXEMAN.Rows.Count = 0 Then
' ' ShowError("Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & cmbDokumentart.Text & " definiert")
' '_Logger.Info(" - Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & cmbDokumentart.Text & " definiert")
' ShowError("Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & ComboboxDoctype.Text & " definiert")
' _Logger.Info(" - Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & ComboboxDoctype.Text & " definiert")
' End If
' For Each oRow As DataRow In DT_INDEXEMAN.Rows
' Dim oDataType = oRow.Item("DATATYPE")
' Dim MultiSelect As Boolean = oRow.Item("MULTISELECT")
' Dim AddNewItems As Boolean = oRow.Item("VKT_ADD_ITEM")
' Dim PreventDuplicates As Boolean = oRow.Item("VKT_PREVENT_MULTIPLE_VALUES")
' Dim oControlName As String = oRow.Item("NAME")
' Dim oConnectionId = oRow.ItemEx("CONNECTION_ID", 0)
' Dim oSQLSuggestion = oRow.Item("SUGGESTION")
' Dim oSQLResult = oRow.Item("SQL_RESULT")
' LOGGER.Debug("IndexName: {0}", oControlName)
' LOGGER.Debug("SQL: {0}", oSQLResult)
' If oDataType <> ClassConstants.INDEX_TYPE_BOOLEAN Then
' addLabel(oControlName, oRow.Item("COMMENT").ToString, oLabelPosition, oControlCount)
' End If
' Dim DefaultValue = Check_HistoryValues(oControlName, oRow.Item("DOKUMENTART"))
' If DefaultValue Is Nothing Then
' DefaultValue = GetPlaceholderValue(oRow.Item("DEFAULT_VALUE"), CURRENT_WORKFILE, USER_SHORTNAME)
' End If
' Select Case oDataType
' Case ClassConstants.INDEX_TYPE_BOOLEAN
' Dim chk As CheckEdit = oControls.AddCheckBox(oControlName, oControlPosition, DefaultValue, oRow.Item("COMMENT").ToString)
' If Not IsNothing(chk) Then
' pnlIndex.Controls.Add(chk)
' End If
' Case ClassConstants.INDEX_TYPE_INTEGER
' If (oSQLSuggestion = True And oSQLResult.ToString.Length > 0) Or MultiSelect = True Then
' Dim oControl = oControls.AddLookupControl(oControlName, oControlPosition, MultiSelect, oDataType, oSQLResult, oConnectionId, DefaultValue, AddNewItems, PreventDuplicates)
' If Not IsNothing(oControl) Then
' pnlIndex.Controls.Add(oControl)
' End If
' Else
' 'nur eine Textbox
' Dim oControl = oControls.AddTextBox(oControlName, oControlPosition, DefaultValue, oDataType)
' If Not IsNothing(oControl) Then
' pnlIndex.Controls.Add(oControl)
' End If
' End If
' Case ClassConstants.INDEX_TYPE_VARCHAR
' If (oSQLSuggestion = True And oSQLResult.ToString.Length > 0) Or MultiSelect = True Then
' Dim oControl = oControls.AddLookupControl(oControlName, oControlPosition, MultiSelect, oDataType, oSQLResult, oConnectionId, DefaultValue, AddNewItems, PreventDuplicates)
' If Not IsNothing(oControl) Then
' pnlIndex.Controls.Add(oControl)
' End If
' Else
' If oControlName.ToString.ToLower = "dateiname" Then
' Dim oControl = oControls.AddTextBox(oControlName, oControlPosition, System.IO.Path.GetFileNameWithoutExtension(CURRENT_WORKFILE), oDataType)
' If Not IsNothing(oControl) Then
' pnlIndex.Controls.Add(oControl)
' End If
' Else
' Dim VORBELGUNG As String = DefaultValue
' Dim oControl = oControls.AddTextBox(oControlName, oControlPosition, VORBELGUNG, oDataType)
' If Not IsNothing(oControl) Then
' pnlIndex.Controls.Add(oControl)
' End If
' End If
' End If
' Case "DATE"
' Dim oPicker = oControls.AddDateTimePicker(oControlName, oControlPosition, DefaultValue)
' pnlIndex.Controls.Add(oPicker)
' Case Else
' If USER_LANGUAGE = LANG_DE Then
' MsgBox("Bitte überprüfen Sie den Datentyp des hinterlegten Indexwertes!", MsgBoxStyle.Critical, "Achtung:")
' Else
' MsgBox("Please check Datatype of Indexvalue!", MsgBoxStyle.Critical, "Warning:")
' End If
' _Logger.Warn(" - Datentyp nicht hinterlegt - LoadIndexe_Man")
' End Select
' oControlCount += 1
' oLabelPosition += 50 * oDpiscale
' oControlPosition += 50 * oDpiscale
' 'make y as height in fom
' Next
' Dim oPanelHeight = oControlPosition - 30
' If pnlIndex.Height < oPanelHeight Then
' If (Me.Height - 315) < oPanelHeight Then
' Me.Height = (Me.Height - 315) + oPanelHeight
' End If
' pnlIndex.Height = oPanelHeight
' End If
' SendKeys.Send("{TAB}")
' Catch ex As Exception
' ShowErrorMessage(ex, "LoadIndexe_Man")
' End Try
'End Sub
Private Sub LoadIndexe_Man()
Try
Dim oScreen As New DigitalData.Modules.Windows.Screen()
Dim oDpiscale = oScreen.GetScreenScaling(Me)
Dim oControlCount As Integer = 1
Dim oLabelPosition As Integer = 11 * oDpiscale
Dim oControlPosition As Integer = 33 * oDpiscale
Dim oRowTop As Integer = 20 * oDpiscale
Dim oLabelLeft As Integer = 10
Dim oControlLeft As Integer = 160
Dim oControlWidth As Integer = 300
Dim oZeilenhoehe As Integer = 30 * oDpiscale
_Logger.Info("Loading Indicies for Screen Scaling Factor [{0}]", oDpiscale)
Dim oControls As New ControlCreator(LOGCONFIG, pnlIndex, Me) With {
.OnControlChanged = AddressOf PrepareDependingControl,
.OnLookupData = AddressOf GetLookupData
}
'Dim oControls As New ClassControls(pnlIndex, Me)
.OnControlChanged = AddressOf PrepareDependingControl,
.OnLookupData = AddressOf GetLookupData
}
If DT_INDEXEMAN.Rows.Count = 0 Then
' ShowError("Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & cmbDokumentart.Text & " definiert")
'_Logger.Info(" - Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & cmbDokumentart.Text & " definiert")
ShowError("Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & ComboboxDoctype.Text & " definiert")
_Logger.Info(" - Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & ComboboxDoctype.Text & " definiert")
End If
@@ -2008,75 +2153,65 @@ Public Class frmIndex
LOGGER.Debug("IndexName: {0}", oControlName)
LOGGER.Debug("SQL: {0}", oSQLResult)
If oDataType <> ClassConstants.INDEX_TYPE_BOOLEAN Then
addLabel(oControlName, oRow.Item("COMMENT").ToString, oLabelPosition, oControlCount)
End If
Dim DefaultValue = Check_HistoryValues(oControlName, oRow.Item("DOKUMENTART"))
If DefaultValue Is Nothing Then
DefaultValue = GetPlaceholderValue(oRow.Item("DEFAULT_VALUE"), CURRENT_WORKFILE, USER_SHORTNAME)
End If
Dim ctrl As Control = Nothing
' Label nur anzeigen, wenn nicht BOOLEAN
If oDataType <> ClassConstants.INDEX_TYPE_BOOLEAN Then
Dim lbl As New Label()
lbl.Text = oRow.Item("COMMENT").ToString()
lbl.Left = oLabelLeft
lbl.Top = oRowTop
lbl.Width = oControlLeft - oLabelLeft - 10
lbl.Height = 20
lbl.TextAlign = ContentAlignment.MiddleRight
pnlIndex.Controls.Add(lbl)
End If
' Control erzeugen und platzieren
Select Case oDataType
Case ClassConstants.INDEX_TYPE_BOOLEAN
Dim chk As CheckEdit = oControls.AddCheckBox(oControlName, oControlPosition, DefaultValue, oRow.Item("COMMENT").ToString)
If Not IsNothing(chk) Then
Dim chk As CheckEdit = oControls.AddCheckBox(oControlName, oRowTop, DefaultValue, oRow.Item("COMMENT").ToString)
If chk IsNot Nothing Then
chk.Left = oControlLeft
chk.Top = oRowTop
chk.Width = oControlWidth
chk.Margin = New Padding(0, 4, 0, 4)
pnlIndex.Controls.Add(chk)
End If
Case ClassConstants.INDEX_TYPE_INTEGER
If (oSQLSuggestion = True And oSQLResult.ToString.Length > 0) Or MultiSelect = True Then
Dim oControl = oControls.AddLookupControl(oControlName, oControlPosition, MultiSelect, oDataType, oSQLResult, oConnectionId, DefaultValue, AddNewItems, PreventDuplicates)
If Not IsNothing(oControl) Then
pnlIndex.Controls.Add(oControl)
End If
Case ClassConstants.INDEX_TYPE_INTEGER, ClassConstants.INDEX_TYPE_VARCHAR
If (oSQLSuggestion = True AndAlso oSQLResult.ToString.Length > 0) OrElse MultiSelect = True Then
ctrl = oControls.AddLookupControl(oControlName, oRowTop, MultiSelect, oDataType, oSQLResult, oConnectionId, DefaultValue, AddNewItems, PreventDuplicates)
Else
'nur eine Textbox
Dim oControl = oControls.AddTextBox(oControlName, oControlPosition, DefaultValue, oDataType)
If Not IsNothing(oControl) Then
pnlIndex.Controls.Add(oControl)
End If
End If
Case ClassConstants.INDEX_TYPE_VARCHAR
If (oSQLSuggestion = True And oSQLResult.ToString.Length > 0) Or MultiSelect = True Then
Dim oControl = oControls.AddLookupControl(oControlName, oControlPosition, MultiSelect, oDataType, oSQLResult, oConnectionId, DefaultValue, AddNewItems, PreventDuplicates)
If Not IsNothing(oControl) Then
pnlIndex.Controls.Add(oControl)
End If
Else
If oControlName.ToString.ToLower = "dateiname" Then
Dim oControl = oControls.AddTextBox(oControlName, oControlPosition, System.IO.Path.GetFileNameWithoutExtension(CURRENT_WORKFILE), oDataType)
If Not IsNothing(oControl) Then
pnlIndex.Controls.Add(oControl)
End If
If oControlName.ToLower() = "dateiname" Then
ctrl = oControls.AddTextBox(oControlName, oRowTop, System.IO.Path.GetFileNameWithoutExtension(CURRENT_WORKFILE), oDataType)
Else
Dim VORBELGUNG As String = DefaultValue
Dim oControl = oControls.AddTextBox(oControlName, oControlPosition, VORBELGUNG, oDataType)
If Not IsNothing(oControl) Then
pnlIndex.Controls.Add(oControl)
End If
ctrl = oControls.AddTextBox(oControlName, oRowTop, DefaultValue, oDataType)
End If
End If
Case "DATE"
Dim oPicker = oControls.AddDateTimePicker(oControlName, oControlPosition, DefaultValue)
pnlIndex.Controls.Add(oPicker)
ctrl = oControls.AddDateTimePicker(oControlName, oRowTop, DefaultValue)
Case Else
If USER_LANGUAGE = LANG_DE Then
MsgBox("Bitte überprüfen Sie den Datentyp des hinterlegten Indexwertes!", MsgBoxStyle.Critical, "Achtung:")
Else
MsgBox("Please check Datatype of Indexvalue!", MsgBoxStyle.Critical, "Warning:")
End If
MsgBox("Bitte überprüfen Sie den Datentyp des hinterlegten Indexwertes!", MsgBoxStyle.Critical, "Achtung:")
_Logger.Warn(" - Datentyp nicht hinterlegt - LoadIndexe_Man")
End Select
oControlCount += 1
oLabelPosition += 50 * oDpiscale
oControlPosition += 50 * oDpiscale
'make y as height in fom
Next
Dim oPanelHeight = oControlPosition - 30
If ctrl IsNot Nothing Then
ctrl.Left = oControlLeft
ctrl.Top = oRowTop
ctrl.Width = oControlWidth
pnlIndex.Controls.Add(ctrl)
End If
oRowTop += oZeilenhoehe
Next
' Panel- und Formhöhe anpassen, wenn nötig
Dim oPanelHeight = oRowTop + 10
If pnlIndex.Height < oPanelHeight Then
If (Me.Height - 315) < oPanelHeight Then
Me.Height = (Me.Height - 315) + oPanelHeight
@@ -2085,6 +2220,7 @@ Public Class frmIndex
End If
SendKeys.Send("{TAB}")
Catch ex As Exception
ShowErrorMessage(ex, "LoadIndexe_Man")
End Try