Imports System.Windows.Forms Imports DigitalData.Controls.LookupGrid Imports DigitalData.Modules.Logging Namespace Modules ''' ''' Patterns for control values on a panel ''' Public Class Controls Inherits BaseModule Implements IModule Public Const CTRL_VALUE_PANEL = "CTRL_VALUE_PANEL" Public Property PatternIdentifier As String = "CTRL" Implements IModule.PatternIdentifier Public Property IsComplex As Boolean = True Implements IModule.IsComplex Public Sub New(pLogConfig As LogConfig) MyBase.New(pLogConfig) End Sub Public Function Replace(pInput As String, pPanel As Panel) As String Dim oControls As List(Of Control) = pPanel.Controls.Cast(Of Control).ToList() Return Replace(pInput, oControls) End Function Public Function Replace(pInput As String, pControls As List(Of Control)) As String Dim oResult = pInput Dim oCounter = 0 While ContainsPattern(oResult, PatternIdentifier) Try Dim oControlName As String = GetNextPattern(oResult, PatternIdentifier).Value Dim oControl As Control = pControls. Where(Function(control) control.Name = oControlName). FirstOrDefault() If oControl IsNot Nothing Then Dim oReplaceValue As String Select Case oControl.GetType Case GetType(TextBox) oReplaceValue = oControl.Text Case GetType(DevExpress.XtraEditors.TextEdit) Dim oTextEdit As DevExpress.XtraEditors.TextEdit = oControl oReplaceValue = oTextEdit.EditValue Case GetType(DevExpress.XtraEditors.DateEdit) Dim oDateEdit As DevExpress.XtraEditors.DateEdit = oControl oReplaceValue = oDateEdit.EditValue Case GetType(DevExpress.XtraEditors.LookUpEdit) Dim oLookupEdit As DevExpress.XtraEditors.LookUpEdit = oControl oReplaceValue = oLookupEdit.EditValue Case GetType(LookupControl3) Dim oLookupControl3 As LookupControl3 = oControl If oLookupControl3.Properties.SelectedValues.Count = 1 Then oReplaceValue = oLookupControl3.Properties.SelectedValues.Item(0) Else oReplaceValue = "0" End If Case GetType(ComboBox) oReplaceValue = oControl.Text Case GetType(DevExpress.XtraEditors.ComboBoxEdit) Dim oCombobox As DevExpress.XtraEditors.ComboBoxEdit = oControl oReplaceValue = oCombobox.EditValue Case GetType(CheckBox) Dim oCheckBox As CheckBox = oControl oReplaceValue = oCheckBox.Checked Case GetType(DevExpress.XtraEditors.CheckEdit) Dim oCheckEdit As DevExpress.XtraEditors.CheckEdit = oControl oReplaceValue = oCheckEdit.Checked Case Else oReplaceValue = "0" End Select oResult = ReplacePattern(oResult, PatternIdentifier, oReplaceValue) End If Catch ex As Exception Logger.Error(ex) Finally IncrementCounterOrThrow(oCounter) End Try End While Return oResult End Function End Class End Namespace