Imports DevComponents.AdvTree Imports Gnostice.Documents.Controls.WinForms Imports Gnostice.Documents Public Class DokumentDetail Dim m_massenimport As Boolean Property Massenimport Get Return m_massenimport End Get Set(value) m_massenimport = value End Set End Property Dim m_keyvalue As Integer Property KeyValue As Integer Get Return m_keyvalue End Get Set(value As Integer) m_keyvalue = value End Set End Property Dim m_strutkurid As Integer Property Strukturid As Integer Get Return m_strutkurid End Get Set(value As Integer) m_strutkurid = value End Set End Property Dim m_editmode As Boolean Property Edit_Mode As Boolean Get Return m_editmode End Get Set(value As Boolean) m_editmode = value End Set End Property Dim m_dokid As Integer Property DokID As Integer Get Return m_dokid End Get Set(value As Integer) m_dokid = value End Set End Property Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub Sub New(ByVal KeyValue As Integer, ByVal StrukturID As Integer, Optional DokID As Integer = 0, Optional edit As Boolean = False) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() Me.KeyValue = KeyValue Me.Strukturid = StrukturID ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. Me.DokID = DokID Me.Edit_Mode = edit Get_tree() End Sub Private Sub DokumentDetail_Load(sender As Object, e As EventArgs) Handles MyBase.Load If Not Me.Edit_Mode Then Me.AllowDrop = True If Me.Edit_Mode = True Then Me.txtPath.Enabled = False Me.Button1.Enabled = False Dim db As New clsDB db.Get_Tabledata("dms_dokument", "where nreintrag=" + Me.DokID.ToString) Me.txtBezeichnung.Text = db.dsDaten.Tables(0).Rows(0).Item(2) Me.txtBeschreibung.Text = db.dsDaten.Tables(0).Rows(0).Item(3) Me.txtPath.Text = db.dsDaten.Tables(0).Rows(0).Item(4) Me.dtTermin.Value = db.dsDaten.Tables(0).Rows(0).Item(10) Me.CheckBox1.Checked = db.dsDaten.Tables(0).Rows(0).Item(11) = True Me.txtTermin.Text = db.dsDaten.Tables(0).Rows(0).Item(12) End If End Sub Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click If Not Me.Edit_Mode And Not System.IO.File.Exists(Me.txtPath.Text) Then MsgBox("Die ausgewählte Datei ist nicht vorhandne." + vbExclamation) Exit Sub End If Dim dir As String Dim db As New clsDB Dim db1 As New clsDB db1.Get_Tabledata("DMS_Settings", "", "Select * from dms_settings where nreintrag=1") Dim db2 As New clsDB db2.Get_Tabledata("DMS_Settings", "", "Select * from dms_settings where nreintrag=2") dir = db2.dsDaten.Tables(0).Rows(0).Item(2) If db1.dsDaten.Tables(0).Rows(0).Item(2) = "False" Then If System.IO.File.Exists(dir + System.IO.Path.GetFileName(Me.txtPath.Text)) Then If MsgBox("Die Datei " + System.IO.Path.GetFileName(Me.txtPath.Text) + " ist im Ablage-Verzeichnis bereits vorhanden." + vbCrLf + "Soll sie überschrieben werden?", vbYesNo + vbQuestion) = MsgBoxResult.No Then Exit Sub End If End If End If If Me.Edit_Mode Then db.Get_Tabledata("Dokumente", "", "Select * from dms_dokument where nreintrag=" + Me.DokID.ToString) Else db.Get_Tabledata("Dokumente", "", "Select * from dms_dokument where nreintrag=-1") End If Dim dr As DataRow If Edit_Mode = False Then dr = db.dsDaten.Tables(0).NewRow Else dr = db.dsDaten.Tables(0).Rows(0) End If dr.Item(1) = Me.treestruktur.SelectedNode.Tag dr.Item(2) = Me.txtBezeichnung.Text dr.Item(3) = Me.txtBeschreibung.Text dr.Item(4) = Me.txtPath.Text If Not Me.Edit_Mode Then dr.Item(5) = Now dr.Item(6) = Now dr.Item(7) = Globals.ActUser dr.Item(8) = True If Not Edit_Mode Then dr.Item(9) = db1.dsDaten.Tables(0).Rows(0).Item(2) If db1.dsDaten.Tables(0).Rows(0).Item(2) = "False" Then dr.Item(4) = dir + System.IO.Path.GetFileName(Me.txtPath.Text) End If End If dr.Item(10) = dtTermin.Value dr.Item(11) = CheckBox1.Checked = True dr.Item(12) = txtTermin.Text dr.Item(13) = Me.KeyValue If Not Edit_Mode Then db.dsDaten.Tables(0).Rows.Add(dr) db.Update_Data() If Not Me.Edit_Mode Then If db1.dsDaten.Tables(0).Rows(0).Item(2) = "True" Then db.Get_Tabledata("Dokument", "", "Select top 1 * from dms_dokument order by nreintrag desc") Dim dok As New clsDok dok.Save_Document(db.dsDaten.Tables(0).Rows(0).Item(0), Me.txtPath.Text) Else If Not System.IO.Directory.Exists(dir) Then System.IO.Directory.CreateDirectory(dir) End If System.IO.File.Copy(Me.txtPath.Text, dir + System.IO.Path.GetFileName(Me.txtPath.Text)) End If End If ToolStripStatusLabel1.Text = "Dokument wurde gespeicher." If Me.Massenimport Then Me.Close() End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If Me.OpenFileDialog1.ShowDialog = DialogResult.OK Then Me.txtPath.Text = Me.OpenFileDialog1.FileName End Sub Private Sub btnAbbruch_Click(sender As Object, e As EventArgs) Handles btnAbbruch.Click Me.Close() End Sub Private Sub Form1_DragDrop(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop Dim files() As String = e.Data.GetData(DataFormats.FileDrop) For Each path In files Me.txtPath.Text = path Next End Sub Private Sub Form1_DragEnter(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) Then e.Effect = DragDropEffects.Copy End If End Sub Private Sub txtPath_TextChanged(sender As Object, e As EventArgs) Handles txtPath.TextChanged ToolStripStatusLabel1.Text = "" End Sub Sub Get_tree() Dim db As New clsDB db.Get_Tabledata("DMS_Struktur", "", "Select * from dms_struktur where aktiv=1") Load_Treeview(db.dsDaten, Me.treestruktur) End Sub Private Sub Load_Treeview(ByVal oSourceData As DataSet, ByRef tree As AdvTree) If Not (oSourceData Is Nothing) Then Dim oView As DataView = oSourceData.Tables(0).DefaultView Dim oTable As DataTable = oView.Table Dim oDS As DataSet = New DataSet() oDS.Tables.Add(oTable.Copy()) If oDS.Relations.Contains("SelfRefenceRelation") = False Then oDS.Relations.Add("SelfRefenceRelation", oDS.Tables(0).Columns("eintragnr"), oDS.Tables(0).Columns("parentid")) End If oTable.Dispose() oTable = Nothing LoadTreeView(oDS, tree) oDS.Dispose() oDS = Nothing End If End Sub ''' ''' Tree aufbauen ''' ''' ''' ''' Private Sub LoadTreeView(ByVal oDS As DataSet, ByRef oTreeview As AdvTree) 'Dim oTreeView As TreeView = New TreeView() Dim oDataRow As DataRow For Each oDataRow In oDS.Tables(0).Rows If Not oDataRow.IsNull("Parentid") Then If oDataRow.Item("Parentid") = 0 Then Dim oNode As New DevComponents.AdvTree.Node oNode.Text = oDataRow("Bezeichnung").ToString() oNode.Tag = oDataRow("eintragnr").ToString oNode.ImageIndex = 0 oNode.ImageIndex = 0 oTreeview.Nodes.Add(oNode) RecursivelyLoadTree(oDataRow, oNode) End If End If Next oDataRow oDS.Dispose() oDS = Nothing End Sub ''' ''' Child-Nodes hinzufügen ''' ''' ''' ''' Private Sub RecursivelyLoadTree(ByVal oDataRow As DataRow, ByRef oNode As DevComponents.AdvTree.Node) Dim oChildRow As DataRow For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation") Dim oChildNode As New DevComponents.AdvTree.Node() oChildNode.Text = oChildRow("Bezeichnung").ToString() oChildNode.Tag = oChildRow("eintragnr").ToString() If oChildRow("eintragnr") = 0 Then oChildNode.ImageIndex = 0 oChildNode.ImageIndex = 0 Else oChildNode.ImageIndex = 1 oChildNode.ImageIndex = 1 End If oNode.Nodes.Add(oChildNode) RecursivelyLoadTree(oChildRow, oChildNode) Next oChildRow End Sub End Class