First Pass of new control loader add BaseClass that provides Logger

This commit is contained in:
Jonathan Jenne 2019-03-22 16:26:15 +01:00
parent 0f4c04dde7
commit 968435c3f7
18 changed files with 379 additions and 94 deletions

View File

@ -0,0 +1,13 @@
Imports DigitalData.Modules.Logging
Public Class BaseClass
Protected LogConfig As LogConfig
Protected Logger As Logger
Public Sub New(LogConfig As LogConfig)
Dim oClassName = Me.GetType().Name
Me.LogConfig = LogConfig
Me.Logger = LogConfig.GetLogger(oClassName)
End Sub
End Class

View File

@ -0,0 +1,57 @@
Imports DevExpress.XtraEditors
Imports DevExpress.XtraLayout
Imports DigitalData.Controls.LookupGrid
Imports DigitalData.Modules.Logging
Public Class ClassControlLoader
Inherits BaseClass
Public Sub New(LogConfig As LogConfig)
MyBase.New(LogConfig)
End Sub
Public Sub LoadControls(Datatable As DataTable, LayoutControlGroup As LayoutControlGroup)
For Each oRow As DataRow In Datatable.Rows
Dim oCaption As String = oRow.Item("COLNAME")
Dim oControlType As String = oRow.Item("CTRLTYPE")
Dim oControlId As String = oRow.Item("RECORD_ID").ToString
Dim oEditor As BaseEdit = CreateLayoutControl(oControlType, oControlId)
If oEditor Is Nothing Then
Continue For
End If
LayoutControlGroup.AddItem(oCaption, oEditor)
Next
LayoutControlGroup.AddItem(New EmptySpaceItem())
End Sub
Public Function CreateLayoutControl(Type As String, Name As String)
Dim oEditor As BaseEdit = Nothing
Logger.Debug("Create new Control of type {0} with name {1}", Type, Name)
Select Case Type
Case ClassConstants.CONTROL_TEXTEDIT
Dim oTextEdit As New TextEdit() With {.Name = Name}
oEditor = oTextEdit
Case ClassConstants.CONTROL_MEMOEDIT
Dim oMemoEdit As New MemoEdit() With {.Name = Name}
oEditor = oMemoEdit
Case ClassConstants.CONTROL_DATEEDIT
Dim oDateEdit As New DateEdit() With {.Name = Name}
oEditor = oDateEdit
Case ClassConstants.CONTROL_CHECKEDIT
Dim oCheckEdit As New CheckEdit() With {.Name = Name}
oEditor = oCheckEdit
Case ClassConstants.CONTROL_COMBOEDIT
Dim oComboEdit As New LookupControl2() With {.Name = Name}
oEditor = oComboEdit
Case Else
oEditor = Nothing
End Select
Return oEditor
End Function
End Class

View File

@ -4,8 +4,7 @@ Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.EDMIFileOps.EDMIServiceReference
Public Class ClassService
Private ReadOnly _LogConfig As LogConfig
Private ReadOnly _Logger As Logger
Inherits BaseClass
Public Enum ConnectionTestResult
Successful
@ -15,8 +14,7 @@ Public Class ClassService
End Enum
Public Sub New(LogConfig As LogConfig)
_LogConfig = LogConfig
_Logger = _LogConfig.GetLogger()
MyBase.New(LogConfig)
End Sub
Public Function TestConnection() As ConnectionTestResult
@ -33,10 +31,10 @@ Public Class ClassService
Return ConnectionTestResult.Successful
Catch ex As EndpointNotFoundException
_Logger.Error(ex)
Logger.Error(ex)
Return ConnectionTestResult.NotFound
Catch ex As Exception
_Logger.Error(ex)
Logger.Error(ex)
Return ConnectionTestResult.Unknown
End Try
End Function
@ -56,13 +54,13 @@ Public Class ClassService
Return ConnectionTestResult.Successful
Catch ex As EndpointNotFoundException
_Logger.Error(ex)
Logger.Error(ex)
Return ConnectionTestResult.NotFound
Catch ex As UriFormatException
_Logger.Error(ex)
Logger.Error(ex)
Return ConnectionTestResult.EmptyURI
Catch ex As Exception
_Logger.Error(ex)
Logger.Error(ex)
Return ConnectionTestResult.Unknown
End Try
End Function)

View File

@ -5,6 +5,8 @@ Imports DigitalData.Modules.EDMIFileOps.EDMIServiceReference
Imports DigitalData.Modules.Logging
Public Class ClassTimer
Inherits BaseClass
Private _Callback As TimerCallback
Private _LogConfig As LogConfig
Private _Logger As Logger
@ -15,10 +17,9 @@ Public Class ClassTimer
Public Delegate Sub OnlineChangedEventHandler(sender As Object, Online As Boolean)
Public Sub New(LogConfig As LogConfig, SynchronizingObject As frmMain, HeartbeatInterval As Integer)
Try
_LogConfig = LogConfig
_Logger = LogConfig.GetLogger()
MyBase.New(LogConfig)
Try
_Channel = My.ChannelFactory.CreateChannel()
_Channel.Open()
@ -29,13 +30,13 @@ Public Class ClassTimer
AddHandler _Timer.Elapsed, AddressOf Callback
Catch ex As Exception
_Logger.Error(ex)
Logger.Error(ex)
End Try
End Sub
Public Async Sub Callback(sender As Object, e As ElapsedEventArgs)
Try
_Logger.Debug("Checking if Service is up...")
Logger.Debug("Checking if Service is up...")
If _Channel.State = ServiceModel.CommunicationState.Faulted Then
_Channel = My.ChannelFactory.CreateChannel()
@ -44,12 +45,11 @@ Public Class ClassTimer
' Connect to service and send hearbeat request
Dim oResult = Await _Channel.HeartbeatAsync()
_Logger.Debug("Service is online")
Logger.Debug("Service is online")
SetOnlineState(True)
Catch ex As Exception
_Logger.Debug("Service is offline!")
Logger.Debug("Service is offline!")
SetOnlineState(False)
Finally

View File

@ -127,9 +127,12 @@
</ItemGroup>
<ItemGroup>
<Compile Include="ApplicationEvents.vb" />
<Compile Include="ClassCommonCommands.vb" />
<Compile Include="Base\BaseClass.vb" />
<Compile Include="Common\ClassCommonCommands.vb" />
<Compile Include="Common\ClassCommonViews.vb" />
<Compile Include="ClassConfig.vb" />
<Compile Include="ClassConstants.vb" />
<Compile Include="ClassControlLoader.vb" />
<Compile Include="ClassControlPatcher.vb" />
<Compile Include="ClassDragDrop.vb" />
<Compile Include="ClassErrorHandler.vb" />
@ -139,6 +142,7 @@
<Compile Include="ClassTimer.vb" />
<Compile Include="ClassUIConfig.vb" />
<Compile Include="ClassUtils.vb" />
<Compile Include="Common\ClassCommon.vb" />
<Compile Include="ControlDefaults\GridControlDefaults.vb" />
<Compile Include="ControlDefaults\TreeListDefaults.vb" />
<Compile Include="FormEntityDesigner\frmFormDesigner.Designer.vb">
@ -147,6 +151,12 @@
<Compile Include="FormEntityDesigner\frmFormDesigner.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormWorkflow\frmWorkflowStep.Designer.vb">
<DependentUpon>frmWorkflowStep.vb</DependentUpon>
</Compile>
<Compile Include="FormWorkflow\frmWorkflowStep.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmSearch.Designer.vb">
<DependentUpon>frmSearch.vb</DependentUpon>
</Compile>
@ -206,10 +216,10 @@
<Compile Include="FormEntityDesigner\frmEntityDesigner.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormDefaults\BaseForm.vb">
<Compile Include="Base\BaseForm.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormDefaults\BaseRibbonForm.vb">
<Compile Include="Base\BaseRibbonForm.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="_TEST\frmFileTest.Designer.vb">
@ -311,6 +321,9 @@
<EmbeddedResource Include="FormEntityDesigner\frmFormDesigner.resx">
<DependentUpon>frmFormDesigner.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormWorkflow\frmWorkflowStep.resx">
<DependentUpon>frmWorkflowStep.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmSearch.resx">
<DependentUpon>frmSearch.vb</DependentUpon>
</EmbeddedResource>
@ -467,5 +480,9 @@
<ItemGroup>
<None Include="Resources\ComboBox.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\CheckBox.png" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

View File

@ -31,6 +31,7 @@ Partial Class frmFormDesigner
Me.ToolboxItemMemoedit = New DevExpress.XtraToolbox.ToolboxItem()
Me.ToolboxItemDatepicker = New DevExpress.XtraToolbox.ToolboxItem()
Me.ToolboxItemCombobox = New DevExpress.XtraToolbox.ToolboxItem()
Me.ToolboxItemCheckbox = New DevExpress.XtraToolbox.ToolboxItem()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.XtraTabControl1 = New DevExpress.XtraTab.XtraTabControl()
Me.XtraTabPageControls = New DevExpress.XtraTab.XtraTabPage()
@ -105,7 +106,6 @@ Partial Class frmFormDesigner
Me.ToolboxControlMain.Name = "ToolboxControlMain"
Me.ToolboxControlMain.OptionsMinimizing.AllowMinimizing = False
Me.ToolboxControlMain.OptionsView.ShowMenuButton = False
Me.ToolboxControlMain.OptionsView.ShowToolboxCaption = True
Me.ToolboxControlMain.SelectedGroup = Me.ToolboxGroupMain
Me.ToolboxControlMain.SelectedGroupIndex = 0
Me.ToolboxControlMain.Size = New System.Drawing.Size(232, 337)
@ -120,6 +120,7 @@ Partial Class frmFormDesigner
Me.ToolboxGroupMain.Items.Add(Me.ToolboxItemMemoedit)
Me.ToolboxGroupMain.Items.Add(Me.ToolboxItemDatepicker)
Me.ToolboxGroupMain.Items.Add(Me.ToolboxItemCombobox)
Me.ToolboxGroupMain.Items.Add(Me.ToolboxItemCheckbox)
Me.ToolboxGroupMain.Name = "ToolboxGroupMain"
'
'ToolboxItemTextbox
@ -154,6 +155,14 @@ Partial Class frmFormDesigner
Me.ToolboxItemCombobox.Name = "ToolboxItemCombobox"
Me.ToolboxItemCombobox.Tag = "Combobox"
'
'ToolboxItemCheckbox
'
Me.ToolboxItemCheckbox.BeginGroupCaption = Nothing
Me.ToolboxItemCheckbox.Caption = "Checkbox"
Me.ToolboxItemCheckbox.ImageOptions.Image = Global.DigitalData.GUIs.ClientSuite.My.Resources.Resources.CheckBox
Me.ToolboxItemCheckbox.Name = "ToolboxItemCheckbox"
Me.ToolboxItemCheckbox.Tag = "Checkbox"
'
'RibbonPageGroup1
'
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
@ -162,6 +171,7 @@ Partial Class frmFormDesigner
'XtraTabControl1
'
Me.XtraTabControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.XtraTabControl1.HeaderLocation = DevExpress.XtraTab.TabHeaderLocation.Bottom
Me.XtraTabControl1.Location = New System.Drawing.Point(0, 0)
Me.XtraTabControl1.Name = "XtraTabControl1"
Me.XtraTabControl1.SelectedTabPage = Me.XtraTabPageControls
@ -250,4 +260,5 @@ Partial Class frmFormDesigner
Friend WithEvents PropertyGridControl1 As DevExpress.XtraVerticalGrid.PropertyGridControl
Friend WithEvents SplitContainerMain As DevExpress.XtraEditors.SplitContainerControl
Friend WithEvents ToolboxItemCombobox As DevExpress.XtraToolbox.ToolboxItem
Friend WithEvents ToolboxItemCheckbox As DevExpress.XtraToolbox.ToolboxItem
End Class

View File

@ -7,6 +7,9 @@ Imports DevExpress.XtraLayout.HitInfo
Imports DigitalData.Controls.LookupGrid
Public Class frmFormDesigner
Private _FormId As Int64
Private _ControlLoader As ClassControlLoader
#Region "Drag Helper"
Private _DragItem As BaseLayoutItem
Private _Window As DragFrameWindow
@ -42,7 +45,7 @@ Public Class frmFormDesigner
Dim oHitInfo As BaseLayoutItemHitInfo = LayoutControlMain.CalcHitInfo(oPosition)
Dim oLayoutControl As LayoutControlItem = DirectCast(_DragItem, LayoutControlItem)
Dim oControlName As String = oLayoutControl.Tag & ClassUtils.ShortGUID()
Dim oControl As Control = GetControl(oLayoutControl.Tag, oControlName)
Dim oControl As Control = _ControlLoader.CreateLayoutControl(oLayoutControl.Tag, oControlName)
If oLayoutControl IsNot Nothing Then
HideDragHelper()
@ -84,7 +87,7 @@ Public Class frmFormDesigner
End Sub
#End Region
Private _FormId As Int64
Public Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
@ -100,69 +103,18 @@ Public Class frmFormDesigner
_FormId = FormId
End Sub
Private Sub frmFormDesigner_Load(sender As Object, e As EventArgs) Handles MyBase.Load
My.Channel.CreateDatabaseRequest("Load Controls", True)
Private Async Sub frmFormDesigner_Load(sender As Object, e As EventArgs) Handles MyBase.Load
_ControlLoader = New ClassControlLoader(My.LogConfig)
Dim oSQL As String = $"SELECT * FROM VWICM_FORMCONTROL WHERE FORMID = {_FormId}"
Dim oResult = My.Channel.ReturnDatatable(oSQL)
Dim oTable = oResult.Table
Dim oTable = Await My.Common.Views.VWICM_FORM_CONTROL(_FormId)
If Not oResult.OK Then
ShowErrorMessage(New ApplicationException(oResult.ErrorMessage))
End If
My.Channel.CloseDatabaseRequest()
LoadControls(oTable)
_ControlLoader.LoadControls(oTable, LayoutControlGroupMain)
End Sub
Private Function GetControl(Type As String, Name As String)
Dim oEditor As BaseEdit = Nothing
Select Case Type
Case ClassConstants.CONTROL_TEXTEDIT
Dim oTextEdit As New TextEdit() With {.Name = Name}
oEditor = oTextEdit
Case ClassConstants.CONTROL_MEMOEDIT
Dim oMemoEdit As New MemoEdit() With {.Name = Name}
oEditor = oMemoEdit
Case ClassConstants.CONTROL_DATEEDIT
Dim oDateEdit As New DateEdit() With {.Name = Name}
oEditor = oDateEdit
Case ClassConstants.CONTROL_CHECKEDIT
Dim oCheckEdit As New CheckEdit() With {.Name = Name}
oEditor = oCheckEdit
Case ClassConstants.CONTROL_COMBOEDIT
Dim oComboEdit As New LookupControl2() With {.Name = Name}
oEditor = oComboEdit
Case Else
oEditor = Nothing
End Select
Return oEditor
End Function
Private Function CreateLayoutControlItem(Id As String) As LayoutControlItem
Return New LayoutControlItem() With {.Tag = Id}
End Function
Private Sub LoadControls(Datatable As DataTable)
For Each oRow As DataRow In Datatable.Rows
Dim oCaption As String = oRow.Item("COLNAME")
Dim oControlType As String = oRow.Item("CTRLTYPE")
Dim oControlId As String = oRow.Item("RECORD_ID").ToString
Dim oEditor As BaseEdit = GetControl(oControlType, oControlId)
If oEditor Is Nothing Then
Continue For
End If
LayoutControlGroupMain.AddItem(oCaption, oEditor)
Next
LayoutControlGroupMain.AddItem(New EmptySpaceItem())
End Sub
Private Sub LayoutControlMain_ItemSelectionChanged(sender As Object, e As EventArgs) Handles LayoutControlMain.ItemSelectionChanged
' TODO: Load Property Grid for selected item
End Sub

View File

@ -2,7 +2,6 @@
Public Class frmUserManager
Private _Logger As Logger
Private _CommonCommands As ClassCommonCommands
Private _UserTable As DataTable
Private _GroupTable As DataTable
@ -18,7 +17,6 @@ Public Class frmUserManager
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
_Logger = My.LogConfig.GetLogger()
_CommonCommands = New ClassCommonCommands(My.LogConfig)
End Sub
Private Async Sub frmUserManager_Load(sender As Object, e As EventArgs) Handles MyBase.Load
@ -98,25 +96,25 @@ Public Class frmUserManager
End Function
Private Async Sub HandleUserAddedToGroup(GroupId As Integer, UserId As Integer, RelationRecordId As Integer)
Dim oRecordId = Await _CommonCommands.FNICM_RADM_NEW_USER2GROUP(UserId, GroupId)
Dim oRecordId = Await My.Common.Commands.FNICM_RADM_NEW_USER2GROUP(UserId, GroupId)
Await UpdateDataAsync()
End Sub
Private Async Sub HandleUserRemovedFromGroup(GroupId As Integer, UserId As Integer, RelationRecordId As Integer)
Dim oResult = Await _CommonCommands.FNICM_DELETE_RECORD_FINALLY(RelationRecordId)
Dim oResult = Await My.Common.Commands.FNICM_DELETE_RECORD_FINALLY(RelationRecordId)
Await UpdateDataAsync()
End Sub
Private Async Sub HandleGroupAddedToGroup(ParentGroupId As Integer, GroupId As Integer, RelationRecordId As Integer)
Dim oRecordId = Await _CommonCommands.FNICM_RADM_NEW_GROUP2GROUP(GroupId, ParentGroupId)
Dim oRecordId = Await My.Common.Commands.FNICM_RADM_NEW_GROUP2GROUP(GroupId, ParentGroupId)
Await UpdateDataAsync()
End Sub
Private Async Sub HandleGroupRemovedFromGroup(ParentGroupId As Integer, GroupId As Integer, RelationRecordId As Integer)
Dim oResult = Await _CommonCommands.FNICM_DELETE_RECORD_FINALLY(RelationRecordId)
Dim oResult = Await My.Common.Commands.FNICM_DELETE_RECORD_FINALLY(RelationRecordId)
Await UpdateDataAsync()
End Sub

View File

@ -0,0 +1,108 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmWorkflowStep
Inherits DevExpress.XtraBars.Ribbon.RibbonForm
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl()
Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup()
CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'RibbonControl
'
Me.RibbonControl.ExpandCollapseItem.Id = 0
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem})
Me.RibbonControl.Location = New System.Drawing.Point(0, 0)
Me.RibbonControl.MaxItemId = 1
Me.RibbonControl.Name = "RibbonControl"
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.RibbonControl.Size = New System.Drawing.Size(991, 146)
Me.RibbonControl.StatusBar = Me.RibbonStatusBar
'
'RibbonPage1
'
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1})
Me.RibbonPage1.Name = "RibbonPage1"
Me.RibbonPage1.Text = "RibbonPage1"
'
'RibbonPageGroup1
'
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
Me.RibbonPageGroup1.Text = "RibbonPageGroup1"
'
'RibbonStatusBar
'
Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 494)
Me.RibbonStatusBar.Name = "RibbonStatusBar"
Me.RibbonStatusBar.Ribbon = Me.RibbonControl
Me.RibbonStatusBar.Size = New System.Drawing.Size(991, 21)
'
'LayoutControl1
'
Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.LayoutControl1.Location = New System.Drawing.Point(0, 146)
Me.LayoutControl1.Name = "LayoutControl1"
Me.LayoutControl1.Root = Me.LayoutControlGroup1
Me.LayoutControl1.Size = New System.Drawing.Size(991, 348)
Me.LayoutControl1.TabIndex = 2
Me.LayoutControl1.Text = "LayoutControl1"
'
'LayoutControlGroup1
'
Me.LayoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
Me.LayoutControlGroup1.GroupBordersVisible = False
Me.LayoutControlGroup1.Name = "LayoutControlGroup1"
Me.LayoutControlGroup1.Size = New System.Drawing.Size(991, 348)
Me.LayoutControlGroup1.TextVisible = False
'
'frmWorkflowStep
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(991, 515)
Me.Controls.Add(Me.LayoutControl1)
Me.Controls.Add(Me.RibbonStatusBar)
Me.Controls.Add(Me.RibbonControl)
Me.Name = "frmWorkflowStep"
Me.Ribbon = Me.RibbonControl
Me.StatusBar = Me.RibbonStatusBar
Me.Text = "frmWorkflowStep"
CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents RibbonControl As DevExpress.XtraBars.Ribbon.RibbonControl
Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar
Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl
Friend WithEvents LayoutControlGroup1 As DevExpress.XtraLayout.LayoutControlGroup
End Class

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,3 @@
Public Class frmWorkflowStep
End Class

View File

@ -12,7 +12,7 @@ Imports System.Runtime.InteropServices
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("Digital Data")>
<Assembly: AssemblyProduct("EDMI ClientSuite")>
<Assembly: AssemblyCopyright("Copyright © 2018")>
<Assembly: AssemblyCopyright("Copyright © 2019")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>

View File

@ -60,6 +60,16 @@ Namespace My.Resources
End Set
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property CheckBox() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("CheckBox", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>

View File

@ -127,10 +127,13 @@
<data name="DatePicker" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DatePicker.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="user_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\user_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ComboBox" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ComboBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="user_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\user_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="CheckBox" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\CheckBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

View File

@ -1,8 +1,6 @@
Imports DevExpress.XtraGrid
Public Class frmDocTest
Private _CommonCommands As ClassCommonCommands
Private Sub DocTest_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
Dim oControlPatcher = New ClassControlPatcher(Of GridControl)(Me)
@ -10,8 +8,6 @@ Public Class frmDocTest
ProcessContainer(AddressOf GridControlDefaults.DefaultGridSettings).
ProcessContainer(AddressOf GridControlDefaults.ReadOnlyGridSettings)
_CommonCommands = New ClassCommonCommands(My.LogConfig)
Dim oSQL = "SELECT * FROM VWICM_DOC_METADATA_DE"
My.Channel.CreateDatabaseRequest("Load Doc Values", True)
@ -26,7 +22,6 @@ Public Class frmDocTest
Dim oDatatable As DataTable = oResult.Table
txtDoctype.DataBindings.Add(New Binding("Text", oDatatable, "DOCTYPE"))
txtDocId.DataBindings.Add(New Binding("Text", oDatatable, "DOC_ID"))
@ -40,7 +35,7 @@ Public Class frmDocTest
Dim oDocId As Int64 = Int64.Parse(txtDocId.Text)
Dim oValue As String = txtDoctype.Text
Dim oSyskey As String = "001-DOCTYPE"
Dim oResult = Await _CommonCommands.FNICM_NEW_DOC_VALUE(oDocId, oSyskey, My.Application.User.Language, oValue)
Dim oResult = Await My.Common.Commands.FNICM_NEW_DOC_VALUE(oDocId, oSyskey, My.Application.User.Language, oValue)
If Not oResult.OK Then
MsgBox(oResult.ErrorMessage)