ZooFlow: PropertyDialog, ContextMenu, Async Queries in Database

This commit is contained in:
Jonathan Jenne 2020-10-29 16:05:10 +01:00
parent aaafb99275
commit 7750fdf6a5
18 changed files with 433 additions and 114 deletions

View File

@ -104,6 +104,7 @@
<Compile Include="DataResultList\frmDataResultList.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="DocumentPropertyMenu\DocumentPropertyMenu.vb" />
<Compile Include="DocumentResultList\DocumentResultConfig.vb" />
<Compile Include="DocumentResultList\DocumentResultParams.vb" />
<Compile Include="DocumentResultList\frmDocumentResultList.Designer.vb">
@ -134,6 +135,7 @@
<Compile Include="ObjectPropertyDialog\frmObjectPropertyDialog.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="ObjectPropertyDialog\PropertyControls.vb" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="DataResultList\frmDataResultList.resx">
@ -165,6 +167,10 @@
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Controls.LookupGrid\LookupControl.vbproj">
<Project>{3DCD6D1A-C830-4241-B7E4-27430E7EA483}</Project>
<Name>LookupControl</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.Config\Config.vbproj">
<Project>{44982f9b-6116-44e2-85d0-f39650b1ef99}</Project>
<Name>Config</Name>

View File

@ -0,0 +1,69 @@
Imports System.Windows.Forms
Imports DevExpress.Utils.Menu
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.ZooFlow
Public Class DocumentPropertyMenu
Private ReadOnly _Logger As Logger
Private ReadOnly _LogConfig As LogConfig
Private ReadOnly _Environment As Environment
Private ReadOnly _FilePath As String
Private ReadOnly _ObjectId As Long
Public Sub New(LogConfig As LogConfig, Environment As Environment, FilePath As String, Optional ObjectId As Long = 0)
_LogConfig = LogConfig
_Logger = LogConfig.GetLogger()
_Environment = Environment
_FilePath = FilePath
_ObjectId = ObjectId
End Sub
Public Function GetMenuItems() As List(Of DXMenuItem)
Dim oOpenFile = New DXMenuItem("Datei öffnen", AddressOf OpenFile_Click)
Dim oOpenFolder = New DXMenuItem("Ordner öffnen", AddressOf OpenFolder_Click)
Dim oCopyPath = New DXMenuItem("Pfad kopieren", AddressOf CopyPath_Click)
Dim oProperties = New DXMenuItem("Eigenschaften", AddressOf Properties_Click)
Return New List(Of DXMenuItem) From {
oOpenFile,
oOpenFolder,
oCopyPath,
oProperties
}
End Function
Public Sub Properties_Click(sender As Object, e As EventArgs)
If _ObjectId = 0 Then
Exit Sub
End If
Dim oPropertyDialog As New frmObjectPropertyDialog(_LogConfig, _Environment, _ObjectId)
oPropertyDialog.Show()
End Sub
Public Sub CopyPath_Click(sender As Object, e As EventArgs)
If IO.File.Exists(_FilePath) Then
Clipboard.SetText(_FilePath)
Else
MessageBox.Show($"Datei {_FilePath} existiert nicht oder wurde verschoben!", "Dateipfad kopieren", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
Public Sub OpenFile_Click(sender As Object, e As EventArgs)
If IO.File.Exists(_FilePath) Then
Process.Start(_FilePath)
Else
MessageBox.Show($"Datei {_FilePath} existiert nicht oder wurde verschoben!", "Datei öffnen", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
Public Sub OpenFolder_Click(sender As Object, e As EventArgs)
If IO.File.Exists(_FilePath) Then
Dim oDirectory = IO.Path.GetDirectoryName(_FilePath)
Process.Start(oDirectory)
Else
MessageBox.Show($"Datei {_FilePath} existiert nicht oder wurde verschoben!", "Ordner öffnen", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
End Class

View File

@ -31,6 +31,7 @@ Partial Class frmDocumentResultList
Me.BarStaticItem1 = New DevExpress.XtraBars.BarStaticItem()
Me.labelResultCount = New DevExpress.XtraBars.BarStaticItem()
Me.BarButtonItem4 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
@ -43,6 +44,7 @@ Partial Class frmDocumentResultList
Me.DateiÖffnenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.OrdnerÖffnenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.PfadInZwischenablageKopierenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.EigenschaftenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.GridView1 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridView()
Me.GridBand1 = New DevExpress.XtraGrid.Views.BandedGrid.GridBand()
Me.SplitContainerControl2 = New DevExpress.XtraEditors.SplitContainerControl()
@ -55,7 +57,6 @@ Partial Class frmDocumentResultList
Me.SplitContainerControl3 = New DevExpress.XtraEditors.SplitContainerControl()
Me.DocumentViewer1 = New DigitalData.Controls.DocumentViewer.DocumentViewer()
Me.XtraSaveFileDialog = New DevExpress.XtraEditors.XtraSaveFileDialog(Me.components)
Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem()
CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl1.SuspendLayout()
@ -75,7 +76,7 @@ Partial Class frmDocumentResultList
'RibbonControl
'
Me.RibbonControl.ExpandCollapseItem.Id = 0
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.SwitchMainContainerHorizontal, Me.SwitchDetailContainerHorizontal, Me.BarButtonItemExportGrid1, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3, Me.BarStaticItem1, Me.labelResultCount, Me.BarButtonItem4, Me.RibbonControl.SearchEditItem, Me.BarButtonItem5})
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.SwitchMainContainerHorizontal, Me.SwitchDetailContainerHorizontal, Me.BarButtonItemExportGrid1, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3, Me.BarStaticItem1, Me.labelResultCount, Me.BarButtonItem4, Me.BarButtonItem5})
Me.RibbonControl.Location = New System.Drawing.Point(0, 0)
Me.RibbonControl.MaxItemId = 11
Me.RibbonControl.Name = "RibbonControl"
@ -102,8 +103,7 @@ Partial Class frmDocumentResultList
'
Me.BarButtonItemExportGrid1.Caption = "Als XLSX exportieren"
Me.BarButtonItemExportGrid1.Id = 3
Me.BarButtonItemExportGrid1.ImageOptions.Image = CType(resources.GetObject("BarButtonItemExportGrid1.ImageOptions.Image"), System.Drawing.Image)
Me.BarButtonItemExportGrid1.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItemExportGrid1.ImageOptions.LargeImage"), System.Drawing.Image)
Me.BarButtonItemExportGrid1.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItemExportGrid1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonItemExportGrid1.Name = "BarButtonItemExportGrid1"
'
'BarButtonItem1
@ -151,6 +151,13 @@ Partial Class frmDocumentResultList
Me.BarButtonItem4.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem4.ImageOptions.LargeImage"), System.Drawing.Image)
Me.BarButtonItem4.Name = "BarButtonItem4"
'
'BarButtonItem5
'
Me.BarButtonItem5.Caption = "Layout zurücksetzen"
Me.BarButtonItem5.Id = 10
Me.BarButtonItem5.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem5.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonItem5.Name = "BarButtonItem5"
'
'RibbonPage1
'
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup4, Me.RibbonPageGroup3, Me.RibbonPageGroup1, Me.RibbonPageGroup2})
@ -211,7 +218,6 @@ Partial Class frmDocumentResultList
'
'GridControl1
'
Me.GridControl1.ContextMenuStrip = Me.ContextMenuGrid
Me.GridControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.GridControl1.Location = New System.Drawing.Point(0, 0)
Me.GridControl1.MainView = Me.GridView1
@ -223,9 +229,9 @@ Partial Class frmDocumentResultList
'
'ContextMenuGrid
'
Me.ContextMenuGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiÖffnenToolStripMenuItem, Me.OrdnerÖffnenToolStripMenuItem, Me.PfadInZwischenablageKopierenToolStripMenuItem})
Me.ContextMenuGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiÖffnenToolStripMenuItem, Me.OrdnerÖffnenToolStripMenuItem, Me.PfadInZwischenablageKopierenToolStripMenuItem, Me.EigenschaftenToolStripMenuItem})
Me.ContextMenuGrid.Name = "ContextMenuGrid"
Me.ContextMenuGrid.Size = New System.Drawing.Size(200, 70)
Me.ContextMenuGrid.Size = New System.Drawing.Size(200, 92)
'
'DateiÖffnenToolStripMenuItem
'
@ -248,6 +254,12 @@ Partial Class frmDocumentResultList
Me.PfadInZwischenablageKopierenToolStripMenuItem.Size = New System.Drawing.Size(199, 22)
Me.PfadInZwischenablageKopierenToolStripMenuItem.Text = "Pfad in Zwischenablage"
'
'EigenschaftenToolStripMenuItem
'
Me.EigenschaftenToolStripMenuItem.Name = "EigenschaftenToolStripMenuItem"
Me.EigenschaftenToolStripMenuItem.Size = New System.Drawing.Size(199, 22)
Me.EigenschaftenToolStripMenuItem.Text = "Eigenschaften"
'
'GridView1
'
Me.GridView1.Bands.AddRange(New DevExpress.XtraGrid.Views.BandedGrid.GridBand() {Me.GridBand1})
@ -372,13 +384,6 @@ Partial Class frmDocumentResultList
'
Me.XtraSaveFileDialog.FileName = "XtraSaveFileDialog1"
'
'BarButtonItem5
'
Me.BarButtonItem5.Caption = "Layout zurücksetzen"
Me.BarButtonItem5.Id = 10
Me.BarButtonItem5.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem5.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonItem5.Name = "BarButtonItem5"
'
'frmDocumentResultList
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@ -447,4 +452,5 @@ Partial Class frmDocumentResultList
Friend WithEvents BarButtonItem4 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents BarButtonItem5 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents EigenschaftenToolStripMenuItem As Windows.Forms.ToolStripMenuItem
End Class

View File

@ -117,28 +117,73 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="DevExpress.Data.v19.2" name="DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="BarButtonItemExportGrid1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAHYNAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5H
cmVlbntmaWxsOiMwMzlDMjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgkuc3Qwe29wYWNpdHk6MC4z
O30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTgsNGgxOHY2aDJWM2MwLTAuNS0wLjUtMS0xLTFIN0M2LjUs
Miw2LDIuNSw2LDN2N2gyVjR6IiBjbGFzcz0iQmxhY2siIC8+DQogIDxwYXRoIGQ9Ik0yNiwyNkg4di04
SDZ2OWMwLDAuNSwwLjUsMSwxLDFoMjBjMC41LDAsMS0wLjUsMS0xdi05aC0yVjI2eiIgY2xhc3M9IkJs
YWNrIiAvPg0KICA8cGF0aCBkPSJNMzEsOEgzQzIuNCw4LDIsOC40LDIsOXYxMGMwLDAuNiwwLjQsMSwx
LDFoMjhjMC42LDAsMS0wLjQsMS0xVjlDMzIsOC40LDMxLjYsOCwzMSw4eiBNOS4xLDE4bC0xLjMtMi41
ICBjLTAuMS0wLjEtMC4xLTAuMy0wLjItMC41aDBjMCwwLjEtMC4xLDAuMy0wLjIsMC41TDYuMSwxOEg0
bDIuNS0zLjlsLTIuMi0zLjloMi4xbDEuMSwyLjNjMC4xLDAuMiwwLjIsMC40LDAuMiwwLjdoMCAgYzAt
MC4yLDAuMS0wLjQsMC4yLTAuN2wxLjItMi4zaDEuOWwtMi4zLDMuOGwyLjQsMy45SDkuMXogTTE2Ljcs
MThoLTQuNnYtNy43aDEuN3Y2LjNoMi45VjE4eiBNMjIuNCwxNi45Yy0wLjIsMC4zLTAuNCwwLjUtMC43
LDAuNyAgcy0wLjYsMC4zLTEsMC40Yy0wLjQsMC4xLTAuOCwwLjEtMS4yLDAuMWMtMC40LDAtMC44LDAt
MS4yLTAuMWMtMC40LTAuMS0wLjctMC4yLTEtMC4zVjE2YzAuMywwLjMsMC42LDAuNSwxLDAuNnMwLjcs
MC4yLDEuMSwwLjIgIGMwLjIsMCwwLjQsMCwwLjYtMC4xczAuMy0wLjEsMC40LTAuMmMwLjEtMC4xLDAu
Mi0wLjIsMC4yLTAuMmMwLjEtMC4xLDAuMS0wLjIsMC4xLTAuM2MwLTAuMiwwLTAuMy0wLjEtMC40ICBj
LTAuMS0wLjEtMC4yLTAuMi0wLjQtMC4zUzIwLDE1LjEsMTkuOCwxNXMtMC40LTAuMi0wLjctMC4zYy0w
LjYtMC4zLTEuMS0wLjYtMS4zLTAuOWMtMC4zLTAuNC0wLjQtMC44LTAuNC0xLjMgIGMwLTAuNCwwLjEt
MC43LDAuMi0xYzAuMi0wLjMsMC40LTAuNSwwLjctMC43YzAuMy0wLjIsMC42LTAuMywxLTAuNHMwLjgt
MC4xLDEuMi0wLjFjMC40LDAsMC44LDAsMS4xLDAuMWMwLjMsMCwwLjYsMC4xLDAuOSwwLjIgIHYxLjZj
LTAuMS0wLjEtMC4zLTAuMi0wLjQtMC4ycy0wLjMtMC4xLTAuNS0wLjJjLTAuMiwwLTAuMy0wLjEtMC41
LTAuMXMtMC4zLDAtMC41LDBjLTAuMiwwLTAuNCwwLTAuNSwwLjFjLTAuMiwwLTAuMywwLjEtMC40LDAu
MiAgYy0wLjEsMC4xLTAuMiwwLjEtMC4zLDAuMmMtMC4xLDAuMS0wLjEsMC4yLTAuMSwwLjNjMCwwLjEs
MCwwLjIsMC4xLDAuM2MwLjEsMC4xLDAuMiwwLjIsMC4zLDAuM2MwLjEsMC4xLDAuMywwLjIsMC41LDAu
MyAgczAuNCwwLjIsMC42LDAuM2MwLjMsMC4xLDAuNiwwLjMsMC44LDAuNGMwLjIsMC4xLDAuNSwwLjMs
MC42LDAuNWMwLjIsMC4yLDAuMywwLjQsMC40LDAuNnMwLjEsMC41LDAuMSwwLjggIEMyMi42LDE2LjMs
MjIuNSwxNi42LDIyLjQsMTYuOXogTTI4LjEsMThsLTEuMy0yLjVjLTAuMS0wLjEtMC4xLTAuMy0wLjIt
MC41aDBjMCwwLjEtMC4xLDAuMy0wLjIsMC41TDI1LjEsMThIMjNsMi41LTMuOWwtMi4yLTMuOSAgaDIu
MWwxLjEsMi4zYzAuMSwwLjIsMC4yLDAuNCwwLjIsMC43aDBjMC0wLjIsMC4xLTAuNCwwLjItMC43bDEu
Mi0yLjNoMS45bC0yLjMsMy44bDIuNCwzLjlIMjguMXoiIGNsYXNzPSJHcmVlbiIgLz4NCiAgPGcgY2xh
c3M9InN0MCI+DQogICAgPHBhdGggZD0iTTMxLDhIM0MyLjQsOCwyLDguNCwyLDl2MTBjMCwwLjYsMC40
LDEsMSwxaDI4YzAuNiwwLDEtMC40LDEtMVY5QzMyLDguNCwzMS42LDgsMzEsOHogTTkuMSwxOGwtMS4z
LTIuNSAgIGMtMC4xLTAuMS0wLjEtMC4zLTAuMi0wLjVoMGMwLDAuMS0wLjEsMC4zLTAuMiwwLjVMNi4x
LDE4SDRsMi41LTMuOWwtMi4yLTMuOWgyLjFsMS4xLDIuM2MwLjEsMC4yLDAuMiwwLjQsMC4yLDAuN2gw
ICAgYzAtMC4yLDAuMS0wLjQsMC4yLTAuN2wxLjItMi4zaDEuOWwtMi4zLDMuOGwyLjQsMy45SDkuMXog
TTE2LjcsMThoLTQuNnYtNy43aDEuN3Y2LjNoMi45VjE4eiBNMjIuNCwxNi45ICAgYy0wLjIsMC4zLTAu
NCwwLjUtMC43LDAuN3MtMC42LDAuMy0xLDAuNGMtMC40LDAuMS0wLjgsMC4xLTEuMiwwLjFjLTAuNCww
LTAuOCwwLTEuMi0wLjFjLTAuNC0wLjEtMC43LTAuMi0xLTAuM1YxNiAgIGMwLjMsMC4zLDAuNiwwLjUs
MSwwLjZzMC43LDAuMiwxLjEsMC4yYzAuMiwwLDAuNCwwLDAuNi0wLjFzMC4zLTAuMSwwLjQtMC4yYzAu
MS0wLjEsMC4yLTAuMiwwLjItMC4yYzAuMS0wLjEsMC4xLTAuMiwwLjEtMC4zICAgYzAtMC4yLDAtMC4z
LTAuMS0wLjRjLTAuMS0wLjEtMC4yLTAuMi0wLjQtMC4zUzIwLDE1LjEsMTkuOCwxNXMtMC40LTAuMi0w
LjctMC4zYy0wLjYtMC4zLTEuMS0wLjYtMS4zLTAuOSAgIGMtMC4zLTAuNC0wLjQtMC44LTAuNC0xLjNj
MC0wLjQsMC4xLTAuNywwLjItMWMwLjItMC4zLDAuNC0wLjUsMC43LTAuN2MwLjMtMC4yLDAuNi0wLjMs
MS0wLjRzMC44LTAuMSwxLjItMC4xICAgYzAuNCwwLDAuOCwwLDEuMSwwLjFjMC4zLDAsMC42LDAuMSww
LjksMC4ydjEuNmMtMC4xLTAuMS0wLjMtMC4yLTAuNC0wLjJzLTAuMy0wLjEtMC41LTAuMmMtMC4yLDAt
MC4zLTAuMS0wLjUtMC4xcy0wLjMsMC0wLjUsMCAgIGMtMC4yLDAtMC40LDAtMC41LDAuMWMtMC4yLDAt
MC4zLDAuMS0wLjQsMC4yYy0wLjEsMC4xLTAuMiwwLjEtMC4zLDAuMmMtMC4xLDAuMS0wLjEsMC4yLTAu
MSwwLjNjMCwwLjEsMCwwLjIsMC4xLDAuMyAgIGMwLjEsMC4xLDAuMiwwLjIsMC4zLDAuM2MwLjEsMC4x
LDAuMywwLjIsMC41LDAuM3MwLjQsMC4yLDAuNiwwLjNjMC4zLDAuMSwwLjYsMC4zLDAuOCwwLjRjMC4y
LDAuMSwwLjUsMC4zLDAuNiwwLjUgICBjMC4yLDAuMiwwLjMsMC40LDAuNCwwLjZzMC4xLDAuNSwwLjEs
MC44QzIyLjYsMTYuMywyMi41LDE2LjYsMjIuNCwxNi45eiBNMjguMSwxOGwtMS4zLTIuNWMtMC4xLTAu
MS0wLjEtMC4zLTAuMi0wLjVoMCAgIGMwLDAuMS0wLjEsMC4zLTAuMiwwLjVMMjUuMSwxOEgyM2wyLjUt
My45bC0yLjItMy45aDIuMWwxLjEsMi4zYzAuMSwwLjIsMC4yLDAuNCwwLjIsMC43aDBjMC0wLjIsMC4x
LTAuNCwwLjItMC43bDEuMi0yLjNoMS45ICAgbC0yLjMsMy44bDIuNCwzLjlIMjguMXoiIGNsYXNzPSJC
bHVlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="BarButtonItemExportGrid1.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAfdEVYdFRpdGxlAEV4cG9ydDtYc2x0O0V4cG9ydFRv
WHNsdDsT1nubAAAAd0lEQVQ4T91S2wmAMAzs1E6QHRzBHVzBTweKXMpJDBUN8cuDI6/LtZQ2VTWKiGbI
vYvBW/zVAJ0kusG0zFqhGQCjCK77ZjUw0pwGFPphzFl7rRmwgUgRF+Is1o83INkDvPb2DQCf80TARzOo
sP4PmHzylTPse9oOhn1G54TA0vAAAAAASUVORK5CYII=
</value>
</data>
<data name="BarButtonItemExportGrid1.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAfdEVYdFRpdGxlAEV4cG9ydDtYc2x0O0V4cG9ydFRv
WHNsdDsT1nubAAABNUlEQVRYR+WQPQ7CMAyFOV+PwgE4QdcOiIGpMxNiZGJAYuIOnZA4BAzhPYRRcJ02
paH8PemTa9dpPhg5596KORwSczgk5nBIzCHJ89x15AAywLM1rDuIOSQ4hBIf7hdFcS7LMkOrv/XQ+5jD
G51CgaqqTIlWgcli7vrAyD9mSVAAezX4LrkAoyWiBBirkuV+e+2Z0K4vwNwkTpSIFpCLpGfVz9LrXS3A
iATeZdhrFpAPsrJnWK131i4FGjhir1mAkQ9Lz+ojM0bvNoUS2GsX0JXxn/1fbO2GEiXQh7Z8hYD1Mlla
BWbjVQ0eShnrDozTCaymO15yhZFnHzXfoE0ngDN3Qr1Ub/4nAqE58jqBUNTeawRiQX5QICbe7ocLxMLg
TFqBJ/gMgS6kFlgD86IA67vA+3CjC4yA0LudSp2BAAAAAElFTkSuQmCC
</value>
</data>
<data name="BarButtonItem1.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
@ -228,7 +273,6 @@
9R2NAy0xdbc3UVqAub8fp91RTf0DZ0rWioS6adsAAAAASUVORK5CYII=
</value>
</data>
<assembly alias="DevExpress.Data.v19.2" name="DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="BarButtonItem5.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z

View File

@ -463,6 +463,20 @@ Public Class frmDocumentResultList
End Try
End Sub
Private Sub OpenProperties()
Try
Dim oRow = GetActiveRow()
If oRow IsNot Nothing Then
Dim oObjectId = oRow.Item(COLUMN_DOCID)
Dim oPropertyDialog As New frmObjectPropertyDialog(_LogConfig, _Environment, oObjectId)
oPropertyDialog.Show()
End If
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub
Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick
OpenFile()
End Sub
@ -479,6 +493,10 @@ Public Class frmDocumentResultList
OpenFile()
End Sub
Private Sub EigenschaftenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EigenschaftenToolStripMenuItem.Click
OpenProperties()
End Sub
Private Sub OrdnerÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OrdnerÖffnenToolStripMenuItem.Click
OpenFolderPath()
End Sub
@ -523,5 +541,21 @@ Public Class frmDocumentResultList
OpenFile()
End Sub
Private Sub GridView_PopupMenuShowing(sender As Object, e As PopupMenuShowingEventArgs) Handles GridView1.PopupMenuShowing, GridView2.PopupMenuShowing, GridView3.PopupMenuShowing
Dim oView As GridView = sender
If e.MenuType = DevExpress.XtraGrid.Views.Grid.GridMenuType.Row Then
Dim oRowHandle = e.HitInfo.RowHandle
Dim oRow As DataRow = oView.GetDataRow(oRowHandle)
Dim oFilepath As String = oRow.Item(COLUMN_FILEPATH)
Dim oObjectId As Long = oRow.Item(COLUMN_DOCID)
Dim oMenu As New DocumentPropertyMenu(_LogConfig, _Environment, oFilepath, oObjectId)
e.Menu.Items.Clear()
For Each oItem In oMenu.GetMenuItems()
e.Menu.Items.Add(oItem)
Next
End If
End Sub
End Class

View File

@ -1,3 +1,4 @@
DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@ -0,0 +1,68 @@
Imports DevExpress.XtraEditors
Imports DevExpress.XtraLayout
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.ZooFlow
Imports DigitalData.Modules.Database
Imports DigitalData.Controls.LookupGrid
Public Class PropertyControls
Private _LogConfig As LogConfig
Private _Logger As Logger
Private _Db As MSSQLServer
Public Sub New(LogConfig As LogConfig, Database As MSSQLServer)
_LogConfig = LogConfig
_Logger = LogConfig.GetLogger()
_Db = Database
End Sub
Public Function GetControlForAttribute(Attribute As Attribute) As BaseEdit
Select Case Attribute.TypeName
Case "BIT"
Dim oCheckboxEdit As New CheckEdit With {
.Name = Attribute.ID,
.Text = Attribute.Title
}
Return oCheckboxEdit
Case "DATE"
Dim oDateEdit As New DateEdit With {
.Name = Attribute.ID
}
Return oDateEdit
Case "BIG INTEGER"
Dim oTextEdit As New TextEdit With {
.Name = Attribute.ID
}
Return oTextEdit
Case "DECIMAL"
Dim oTextEdit As New TextEdit With {
.Name = Attribute.ID
}
Return oTextEdit
Case "FLOAT"
Dim oTextEdit As New TextEdit With {
.Name = Attribute.ID
}
Return oTextEdit
Case "VECTOR STRING"
Dim oLookupEdit As New LookupControl2 With {
.Name = Attribute.ID,
.MultiSelect = True,
.[ReadOnly] = True
}
Return oLookupEdit
Case Else
Dim oTextEdit As New TextEdit With {
.Name = Attribute.ID
}
Return oTextEdit
End Select
End Function
End Class

View File

@ -23,7 +23,9 @@ Partial Class frmObjectPropertyDialog
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmObjectPropertyDialog))
Me.RepositoryItemComboBox1 = New DevExpress.XtraEditors.Repository.RepositoryItemComboBox()
Me.TabFormControl1 = New DevExpress.XtraBars.TabFormControl()
Me.cmbBusinessEntity = New DevExpress.XtraBars.BarEditItem()
Me.TabPageProperties = New DevExpress.XtraBars.TabFormPage()
Me.TabFormContentContainer1 = New DevExpress.XtraBars.TabFormContentContainer()
Me.LayoutControlProperties = New DevExpress.XtraLayout.LayoutControl()
@ -32,36 +34,50 @@ Partial Class frmObjectPropertyDialog
Me.TabFormContentContainer2 = New DevExpress.XtraBars.TabFormContentContainer()
Me.TabPageLifecycle = New DevExpress.XtraBars.TabFormPage()
Me.TabFormContentContainer3 = New DevExpress.XtraBars.TabFormContentContainer()
Me.PanelControl1 = New DevExpress.XtraEditors.PanelControl()
Me.Button3 = New System.Windows.Forms.Button()
Me.Button2 = New System.Windows.Forms.Button()
Me.Button1 = New System.Windows.Forms.Button()
Me.BarStaticItem1 = New DevExpress.XtraBars.BarStaticItem()
CType(Me.RepositoryItemComboBox1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TabFormControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.TabFormContentContainer1.SuspendLayout()
CType(Me.LayoutControlProperties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.PanelControl1.SuspendLayout()
Me.SuspendLayout()
'
'RepositoryItemComboBox1
'
Me.RepositoryItemComboBox1.AutoHeight = False
Me.RepositoryItemComboBox1.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.RepositoryItemComboBox1.Name = "RepositoryItemComboBox1"
'
'TabFormControl1
'
Me.TabFormControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.cmbBusinessEntity, Me.BarStaticItem1})
Me.TabFormControl1.Location = New System.Drawing.Point(0, 0)
Me.TabFormControl1.Name = "TabFormControl1"
Me.TabFormControl1.Pages.Add(Me.TabPageProperties)
Me.TabFormControl1.Pages.Add(Me.TabPageMetadata)
Me.TabFormControl1.Pages.Add(Me.TabPageLifecycle)
Me.TabFormControl1.SelectedPage = Me.TabPageProperties
Me.TabFormControl1.ShowAddPageButton = False
Me.TabFormControl1.ShowTabCloseButtons = False
Me.TabFormControl1.Size = New System.Drawing.Size(572, 71)
Me.TabFormControl1.TabForm = Me
Me.TabFormControl1.TabIndex = 0
Me.TabFormControl1.TabRightItemLinks.Add(Me.BarStaticItem1)
Me.TabFormControl1.TabRightItemLinks.Add(Me.cmbBusinessEntity)
Me.TabFormControl1.TabStop = False
'
'cmbBusinessEntity
'
Me.cmbBusinessEntity.Caption = "cmbBusinessEntity"
Me.cmbBusinessEntity.Edit = Me.RepositoryItemComboBox1
Me.cmbBusinessEntity.EditWidth = 100
Me.cmbBusinessEntity.Id = 6
Me.cmbBusinessEntity.Name = "cmbBusinessEntity"
'
'TabPageProperties
'
Me.TabPageProperties.ContentContainer = Me.TabFormContentContainer1
Me.TabPageProperties.Name = "TabPageProperties"
Me.TabPageProperties.ShowCloseButton = DevExpress.Utils.DefaultBoolean.[False]
Me.TabPageProperties.Text = "Eigenschaften"
'
'TabFormContentContainer1
@ -75,10 +91,11 @@ Partial Class frmObjectPropertyDialog
'
'LayoutControlProperties
'
Me.LayoutControlProperties.Location = New System.Drawing.Point(108, 80)
Me.LayoutControlProperties.Dock = System.Windows.Forms.DockStyle.Fill
Me.LayoutControlProperties.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlProperties.Name = "LayoutControlProperties"
Me.LayoutControlProperties.Root = Me.Root
Me.LayoutControlProperties.Size = New System.Drawing.Size(180, 120)
Me.LayoutControlProperties.Size = New System.Drawing.Size(572, 534)
Me.LayoutControlProperties.TabIndex = 0
Me.LayoutControlProperties.Text = "LayoutControl1"
'
@ -87,14 +104,13 @@ Partial Class frmObjectPropertyDialog
Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
Me.Root.GroupBordersVisible = False
Me.Root.Name = "Root"
Me.Root.Size = New System.Drawing.Size(180, 120)
Me.Root.Size = New System.Drawing.Size(572, 534)
Me.Root.TextVisible = False
'
'TabPageMetadata
'
Me.TabPageMetadata.ContentContainer = Me.TabFormContentContainer2
Me.TabPageMetadata.Name = "TabPageMetadata"
Me.TabPageMetadata.ShowCloseButton = DevExpress.Utils.DefaultBoolean.[False]
Me.TabPageMetadata.Text = "Metadaten"
'
'TabFormContentContainer2
@ -109,7 +125,6 @@ Partial Class frmObjectPropertyDialog
'
Me.TabPageLifecycle.ContentContainer = Me.TabFormContentContainer3
Me.TabPageLifecycle.Name = "TabPageLifecycle"
Me.TabPageLifecycle.ShowCloseButton = DevExpress.Utils.DefaultBoolean.[False]
Me.TabPageLifecycle.Text = "Lebenszyklus"
'
'TabFormContentContainer3
@ -120,62 +135,28 @@ Partial Class frmObjectPropertyDialog
Me.TabFormContentContainer3.Size = New System.Drawing.Size(572, 534)
Me.TabFormContentContainer3.TabIndex = 3
'
'PanelControl1
'BarStaticItem1
'
Me.PanelControl1.Controls.Add(Me.Button3)
Me.PanelControl1.Controls.Add(Me.Button2)
Me.PanelControl1.Controls.Add(Me.Button1)
Me.PanelControl1.Dock = System.Windows.Forms.DockStyle.Bottom
Me.PanelControl1.Location = New System.Drawing.Point(0, 554)
Me.PanelControl1.Name = "PanelControl1"
Me.PanelControl1.Size = New System.Drawing.Size(572, 51)
Me.PanelControl1.TabIndex = 1
'
'Button3
'
Me.Button3.Location = New System.Drawing.Point(230, 6)
Me.Button3.Name = "Button3"
Me.Button3.Size = New System.Drawing.Size(106, 33)
Me.Button3.TabIndex = 0
Me.Button3.Text = "OK"
Me.Button3.UseVisualStyleBackColor = True
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(342, 6)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(106, 33)
Me.Button2.TabIndex = 0
Me.Button2.Text = "Abbrechen"
Me.Button2.UseVisualStyleBackColor = True
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(454, 6)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(106, 33)
Me.Button1.TabIndex = 0
Me.Button1.Text = "Übernehmen"
Me.Button1.UseVisualStyleBackColor = True
Me.BarStaticItem1.Caption = "Entity:"
Me.BarStaticItem1.Id = 0
Me.BarStaticItem1.Name = "BarStaticItem1"
'
'frmObjectPropertyDialog
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(572, 605)
Me.Controls.Add(Me.PanelControl1)
Me.Controls.Add(Me.TabFormContentContainer1)
Me.Controls.Add(Me.TabFormControl1)
Me.IconOptions.SvgImage = CType(resources.GetObject("frmObjectPropertyDialog.IconOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.Name = "frmObjectPropertyDialog"
Me.TabFormControl = Me.TabFormControl1
Me.Text = "Objekt-Eigenschaften"
CType(Me.RepositoryItemComboBox1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TabFormControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.TabFormContentContainer1.ResumeLayout(False)
CType(Me.LayoutControlProperties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.PanelControl1.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
@ -189,8 +170,7 @@ Partial Class frmObjectPropertyDialog
Friend WithEvents TabFormContentContainer3 As DevExpress.XtraBars.TabFormContentContainer
Friend WithEvents LayoutControlProperties As DevExpress.XtraLayout.LayoutControl
Friend WithEvents Root As DevExpress.XtraLayout.LayoutControlGroup
Friend WithEvents PanelControl1 As DevExpress.XtraEditors.PanelControl
Friend WithEvents Button2 As Windows.Forms.Button
Friend WithEvents Button1 As Windows.Forms.Button
Friend WithEvents Button3 As Windows.Forms.Button
Friend WithEvents cmbBusinessEntity As DevExpress.XtraBars.BarEditItem
Friend WithEvents RepositoryItemComboBox1 As DevExpress.XtraEditors.Repository.RepositoryItemComboBox
Friend WithEvents BarStaticItem1 As DevExpress.XtraBars.BarStaticItem
End Class

View File

@ -1,4 +1,9 @@
Imports DigitalData.Modules.Logging
Imports System.Windows.Forms
Imports DevExpress.XtraEditors
Imports DevExpress.XtraEditors.Repository
Imports DevExpress.XtraLayout
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.ZooFlow
Public Class frmObjectPropertyDialog
@ -6,6 +11,8 @@ Public Class frmObjectPropertyDialog
Private _Logger As Logger
Private _Environment As Environment
Private _ObjectId As Int64
Private _Db As MSSQLServer
Private _Controls As PropertyControls
Public Sub New(LogConfig As LogConfig, Environment As Environment, ObjectId As Long)
' Dieser Aufruf ist für den Designer erforderlich.
@ -16,9 +23,96 @@ Public Class frmObjectPropertyDialog
_Logger = LogConfig.GetLogger()
_Environment = Environment
_ObjectId = ObjectId
_Db = _Environment.DatabaseIDB
_Controls = New PropertyControls(_LogConfig, _Db)
End Sub
Private Sub frmObjectPropertyDialog_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Private Async Sub frmObjectPropertyDialog_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
Dim EntityIds = Await GetBusinessEntitiesForObjectId(_ObjectId)
Dim oCombobox As RepositoryItemComboBox = DirectCast(cmbBusinessEntity.Edit, RepositoryItemComboBox)
oCombobox.Items.AddRange(EntityIds)
If EntityIds.Count = 1 Then
cmbBusinessEntity.EditValue = EntityIds.First()
End If
Catch ex As ApplicationException
_Logger.Error(ex)
MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
Catch ex As Exception
_Logger.Error(ex)
MessageBox.Show("Unhandled exception occurred please check the log", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
End Sub
Private Async Function GetAttributesForBusinessEntity(EntityId As Long) As Task(Of List(Of Attribute))
Dim oSQL = $"SELECT * FROM VWIDB_BE_ATTRIBUTE WHERE BE_ID = {EntityId}"
Dim oDatatable = Await _Db.GetDatatableAsync(oSQL)
If oDatatable.Rows.Count = 0 Then
Throw New ApplicationException($"BusinessEntity {EntityId} does not have any attributes!")
Else
Dim oAttributes As New List(Of Attribute)
For Each oRow As DataRow In oDatatable.Rows
oAttributes.Add(New Attribute() With {
.ID = oRow.Item("ATTR_ID"),
.Title = oRow.Item("ATTR_TITLE"),
.TypeID = oRow.Item("TYPE_ID"),
.TypeName = oRow.Item("TYPE_NAME")
})
Next
Return oAttributes
End If
End Function
Private Async Function GetBusinessEntitiesForObjectId(ObjectId) As Task(Of List(Of Long))
Dim oSQL = $"SELECT BE_ID FROM TBIDB_OBJECT_BE WHERE IDB_OBJ_ID = {ObjectId}"
Dim oDatatable = Await _Db.GetDatatableAsync(oSQL)
If oDatatable.Rows.Count = 0 Then
Throw New ApplicationException($"ObjectId {ObjectId} is not assigned to any business entity!")
Else
Dim oEntities As New List(Of Long)
For Each oRow In oDatatable.Rows
oEntities.Add(oRow.item("BE_ID"))
Next
Return oEntities
End If
End Function
Private Async Function GetAttributeValue(AttributeName As String, ObjectId As Long, Optional LanguageCode As String = "de-DE", Optional IsForeign As Boolean = False) As Task(Of Object)
Dim oIsForeign = IIf(IsForeign, 1, 0)
Dim oSQL = $"SELECT TERM_VALUE FROM [dbo].[FNIDB_PM_GET_VARIABLE_VALUE] ({ObjectId}, '{AttributeName}', '{LanguageCode}', {oIsForeign})"
Dim oTermValue = Await _Db.GetScalarValueAsync(oSQL)
Return oTermValue
End Function
Private Async Sub cmbBusinessEntity_EditValueChanged(sender As Object, e As EventArgs) Handles cmbBusinessEntity.EditValueChanged
Dim oEntityId As Long
If Long.TryParse(cmbBusinessEntity.EditValue, oEntityId) = False Then
Exit Sub
End If
Dim oAttributes = Await GetAttributesForBusinessEntity(oEntityId)
For Each oAttribute As Attribute In oAttributes
Dim oControl = _Controls.GetControlForAttribute(oAttribute)
Dim oItem As LayoutControlItem = Root.AddItem()
oItem.Text = oAttribute.Title
oItem.Name = oAttribute.Title
oItem.Control = oControl
Next
For Each oItem As LayoutControlItem In Root.Items
Dim oValue = Await GetAttributeValue(oItem.Name, _ObjectId)
Dim oEdit = DirectCast(oItem.Control, BaseEdit)
oEdit.EditValue = oValue
Next
End Sub
End Class

View File

@ -97,7 +97,7 @@ Public Class ClassControlCreator
oSourceSQL = oSourceSQL.Replace("@RESULT_TITLE", pAttributeRow.Item("ATTRIBUTE_TITLE").ToString)
Dim oDTSource As DataTable
'If pAttributeRow.Item("DEPENDING_ATTRIBUTE1") = 0 Then
oDTSource = My.Database_IDB.GetDatatable(oSourceSQL)
oDTSource = My.DatabaseIDB.GetDatatable(oSourceSQL)
'End If
Dim oMinValue As String = ""

View File

@ -131,8 +131,8 @@ Public Class ClassInit
End If
Dim oConString = My.Database.GetConnectionString(oDatatable.Rows(0).Item("SERVER"), oDatatable.Rows(0).Item("DATENBANK"), oDatatable.Rows(0).Item("USERNAME"), oDatatable.Rows(0).Item("PASSWORD"))
My.Database_IDB = New MSSQLServer(My.LogConfig, oConString)
If My.Database_IDB.DBInitialized = False Then
My.DatabaseIDB = New MSSQLServer(My.LogConfig, oConString)
If My.DatabaseIDB.DBInitialized = False Then
_Logger.Warn("Could not initialize IDB-Database!")
Throw New InitException("Could not initialize IDB-Database!")
End If

View File

@ -30,7 +30,7 @@ Namespace My
Property MainForm As frmAdministrationZooFlow
Property SearchForm As frmSearchStart
Property Database As MSSQLServer
Property Database_IDB As MSSQLServer
Property DatabaseIDB As MSSQLServer
Property Queries As New ClassQueries
End Module

View File

@ -1,10 +1,10 @@
Imports DevExpress.LookAndFeel
Imports DevExpress.XtraSplashScreen
Imports DevExpress.XtraSplashScreen
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Messaging
Public Class frmFlowForm
' Constants
Private Const OPACITY_INITIAL = 0
Private Const OPACITY_HIDDEN = 0.65
Private Const OPACITY_SHOWN = 0.85
@ -28,7 +28,7 @@ Public Class frmFlowForm
InitializeComponent()
' === Hide form initially ===
Opacity = 0
Opacity = OPACITY_INITIAL
End Sub
@ -78,7 +78,7 @@ Public Class frmFlowForm
' TODO: Clean up
Dim oSQL = $"SELECT * FROM [dbo].[FNIDB_GET_SEARCH_PROFILES] ({My.Application.User.UserId},'{My.Application.User.Language}')"
Dim oDatatable As DataTable = My.Database_IDB.GetDatatable(oSQL)
Dim oDatatable As DataTable = My.DatabaseIDB.GetDatatable(oSQL)
PictureBoxSearch.Visible = False
If Not IsNothing(oDatatable) OrElse oDatatable.Rows.Count > 0 Then
@ -87,7 +87,7 @@ Public Class frmFlowForm
PictureBoxSearch.Visible = True
End If
My.DTAttributes = My.Database_IDB.GetDatatable("SELECT * FROM TBIDB_ATTRIBUTE")
My.DTAttributes = My.DatabaseIDB.GetDatatable("SELECT * FROM TBIDB_ATTRIBUTE")
End Sub
@ -138,7 +138,6 @@ Public Class frmFlowForm
End If
End Sub
Public Sub OnEvent(Params As Object)
Logger.Debug("OnEvent called!")
End Sub

View File

@ -156,7 +156,7 @@ Public Class frmSearchStart
Try
DataLoaded = False
Dim oSQL = $"SELECT * FROM VWIDB_SEARCH_PROFILE_ATTRIBUTES WHERE SEARCH_PROFIL_ID = {PSEARCH_ID} ORDER BY [SEQUENCE]"
Dim oDT As DataTable = My.Database_IDB.GetDatatable(oSQL)
Dim oDT As DataTable = My.DatabaseIDB.GetDatatable(oSQL)
oDTAttributes = Nothing
oDTAttributes = oDT.Clone()
oDT.Select("", "SEQUENCE").CopyToDataTable(oDTAttributes, LoadOption.PreserveChanges)
@ -694,12 +694,13 @@ Public Class frmSearchStart
.User = My.Application.User,
.Modules = My.Application.Modules,
.Database = My.Database,
.DatabaseIDB = My.DatabaseIDB,
.Settings = My.Application.Settings
}
Dim oDTSearchResult As DataTable = My.Database_IDB.GetDatatable(oSEARCH_SQL)
Dim oDTSearchResult As DataTable = My.DatabaseIDB.GetDatatable(oSEARCH_SQL)
If oDTSearchResult.Rows.Count > 0 Then
Dim oShortGuid = Guid.NewGuid()
Dim oWindowGuid = $"{PSEARCH_ID.ToString}-{My.User.Name}" '{String.Join("-", oShortGuid.ToString)}"
Dim oWindowGuid = $"{PSEARCH_ID.ToString}-{My.User.Name}"
Dim oParams = New DocumentResultParams() With {
.WindowGuid = oWindowGuid,
.Results = New List(Of DocumentResult) From {
@ -711,9 +712,6 @@ Public Class frmSearchStart
}
Dim oForm As New frmDocumentResultList(My.LogConfig, oEnvironment, oParams)
' AddHandler oForm.FormClosed, AddressOf ProfileResultForm_Closed
' OpenForms.Add(oForm)
oForm.Show()
Else
Display_InfoItem("No results for this searchcombination!", Color.OrangeRed)

View File

@ -131,6 +131,12 @@ Public Class MSSQLServer
Return GetDatatable(SqlCommand, _Timeout)
End Function
Public Async Function GetDatatableAsync(SqlCommand As String) As Task(Of DataTable)
Return Await Task.Run(Function()
Return GetDatatable(SqlCommand, _Timeout)
End Function)
End Function
Public Function GetDatatableWithConnection(SqlCommand As String, ConnectionString As String) As DataTable
Try
If TestCanConnect(ConnectionString) = False Then
@ -234,6 +240,12 @@ Public Class MSSQLServer
Return GetScalarValue(SQLQuery, _Timeout)
End Function
Public Async Function GetScalarValueAsync(SQLQuery As String) As Task(Of Object)
Return Await Task.Run(Function()
Return GetScalarValue(SQLQuery, _Timeout)
End Function)
End Function
Public Function GetScalarValueWithConnection(SQLCommand As String, ConnectionString As String) As Object
Try
If TestCanConnect(ConnectionString) = False Then

View File

@ -4,5 +4,6 @@ Public Class Environment
Public User As State.UserState
Public Settings As State.SettingsState
Public Database As MSSQLServer
Public DatabaseIDB As MSSQLServer
Public Modules As Dictionary(Of String, State.ModuleState)
End Class

View File

@ -0,0 +1,6 @@
Public Class Attribute
Public Property ID As Long
Public Property Title As String
Public Property TypeID As Long
Public Property TypeName As String
End Class

View File

@ -90,6 +90,7 @@
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="Params\Attribute.vb" />
<Compile Include="Params\ClipboardWatcherParams.vb" />
<Compile Include="Params\ProfileData.vb" />
<Compile Include="State\ModuleState.vb" />