Imports System.ComponentModel Imports System.Net.Mail Imports C1.Win.C1TrueDBGrid Imports DevComponents.AdvTree Imports System.IO Imports System.Threading 'Imports Gnostice.Documents.Controls.WinForms 'Imports Gnostice.Documents Public Class clsDokumente Dim licenseKey As String = "6F09-41FA-5E5E-101F-E577-BDD0-1BB8-3EFB-3081-2E1F-5264-3475" Dim DMS_Thumbnail As Boolean = False Dim dbDokumente As New clsDB Dim Dokumente As New clsDok Dim m_patientnr As Integer Property Patientnr As Integer Get Return m_patientnr End Get Set(value As Integer) Dim sn As Integer Try sn = Me.treestruktur.SelectedIndex Catch ex As Exception sn = 0 End Try m_patientnr = value refreshdata() Try Try Me.treestruktur.SelectedNode = Me.treestruktur.Nodes(sn) Update_Grid() Catch ex As Exception Me.treestruktur.SelectedNode = Me.treestruktur.Nodes(0) Update_Grid() End Try Catch ex As Exception End Try End Set End Property Private Sub ToolStrip1_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked End Sub Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. Me.grpdokumentvorschau.Dock = DockStyle.Fill Me.grpdokumentvorschaupdf.Dock = DockStyle.Fill Me.GrpDokumentvorschauMail.Dock = DockStyle.Fill ' Me.BetterThumbnailBrowser1.Items.Add("Hallo") ' Me.BetterThumbnailBrowser1.View = ComponentOwl.BetterThumbnailBrowser.BetterListViewView.List Dim db As New clsDB db.Get_Tabledata("dms", "", "Select * from dms_Settings where nreintrag=11") If db.dsDaten.Tables(0).Rows.Count = 0 Then Me.DMS_Thumbnail = False Else If db.dsDaten.Tables(0).Rows(0).Item("Wert") = "True" Then DMS_Thumbnail = True End If db.Dispose() End Sub Public Sub refreshdata() Gnostice.Documents.Framework.ActivateLicense(licenseKey) Me.C1Dokumente.AllowDrop = True If Me.treestruktur.Nodes.Count = 0 Then Get_tree() Me.treestruktur.SelectedNode = Me.treestruktur.Nodes(0) End If End Sub Sub Refresh_Grid() Update_Grid() End Sub Sub Get_tree() Dokumente.LoadTree(Me.treestruktur) End Sub Private Sub tsbtnnew_Click(sender As Object, e As EventArgs) Handles tsbtnnew.Click Dim f As New DokumentDetail(Me.Patientnr, Me.treestruktur.SelectedNode.Tag) f.ShowDialog() Me.treestruktur_SelectionChanged(sender, e) End Sub Private Sub treestruktur_SelectionChanged(sender As Object, e As EventArgs) Handles treestruktur.SelectionChanged Update_Grid() End Sub Dim onUpdate As Boolean = False Sub Update_Grid() onUpdate = True Try Dokumente.Update_Grid(Me.treestruktur.SelectedNode.Tag.ToString, Me.Patientnr.ToString, Me.C1Dokumente) If Me.C1Dokumente.Splits(0).Rows.Count = 0 Then Me.DocumentViewer1.Visible = False Else If DMS_Thumbnail = True Then Me.ThumbViewer1.Visible = True Me.ThumbViewer1.Data = Me.C1Dokumente.DataSource Else Me.DocumentViewer1.Visible = True End If End If Catch Finally onUpdate = False Update_View() End Try End Sub Private Sub C1Dokumente_DoubleClick(sender As Object, e As EventArgs) Handles C1Dokumente.DoubleClick Try If C1Dokumente.Columns("indb").Value = "True" Then Dim d As New clsDok Dim s As String = d.Get_Dokument(Me.C1Dokumente.Columns("nreintrag").Value) Process.Start(s) IsFileInUse(s) Else Process.Start(Me.C1Dokumente.Columns("pfad").Value) End If Catch End Try End Sub Public Function IsFileInUse(sFile As String) As Boolean Try Using f As New IO.FileStream(sFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None) End Using Catch Ex As Exception Return True End Try Return False End Function Private Sub NeuesDokumentHinzufügenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuesDokumentHinzufügenToolStripMenuItem.Click Dim f As New DokumentDetail(Me.Patientnr, Me.treestruktur.SelectedNode.Tag) f.treestruktur.ImageList = Me.treestruktur.ImageList f.treestruktur.SelectedNode = Me.treestruktur.SelectedNode f.ShowDialog() Me.treestruktur_SelectionChanged(sender, e) End Sub Private Sub DokumentLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DokumentLöschenToolStripMenuItem.Click Try Dim i As Integer = C1Dokumente.Columns("nreintrag").Value If MsgBox("Gewähltes Dokument löschen?", vbYesNo + vbQuestion) = vbYes Then Dokumente.Delete_Dok(C1Dokumente.Columns("nreintrag").Value.ToString) treestruktur_SelectionChanged(sender, e) End If Catch End Try End Sub Private Sub DokumentAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DokumentAnzeigenToolStripMenuItem.Click Me.C1Dokumente_DoubleClick(sender, e) End Sub Private Sub DokumentinformationenBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DokumentinformationenBearbeitenToolStripMenuItem.Click Try Dim f As New DokumentDetail(Me.Patientnr, Me.treestruktur.SelectedNode.Tag, Me.C1Dokumente.Columns("nreintrag").Value, True) f.treestruktur.ImageList = Me.treestruktur.ImageList f.treestruktur.SelectedNode = Me.treestruktur.SelectedNode f.ShowDialog() Me.treestruktur_SelectionChanged(sender, e) Catch End Try End Sub Private Sub Form1_DragDrop(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop, C1Dokumente.DragDrop Dim files() As String = e.Data.GetData(DataFormats.FileDrop) For Each path In files Dim f As New DokumentDetail(Me.Patientnr, Me.treestruktur.SelectedNode.Tag) f.txtPath.Text = path f.txtBezeichnung.Text = System.IO.Path.GetFileName(path) f.dtTermin.Value = Now f.ShowDialog() Next End Sub Private Sub Form1_DragEnter(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter, C1Dokumente.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) Then e.Effect = DragDropEffects.Copy End If End Sub Private Sub C1Dokumente_DataSourceChanged(sender As Object, e As EventArgs) Handles C1Dokumente.DataSourceChanged End Sub Private Sub C1Dokumente_KeyDown(sender As Object, e As KeyEventArgs) Handles C1Dokumente.KeyDown If e.Modifiers = Keys.Control AndAlso e.KeyCode = Keys.V Then Dim iData As IDataObject = Clipboard.GetDataObject() If iData.GetDataPresent(DataFormats.FileDrop) Then Dim clipbrd As String() = DirectCast(iData.GetData(DataFormats.FileDrop), String()) For Each path In clipbrd Dim f As New DokumentDetail(Me.Patientnr, Me.treestruktur.SelectedNode.Tag) f.txtPath.Text = path f.txtBezeichnung.Text = System.IO.Path.GetFileName(path) f.dtTermin.Value = Now f.treestruktur.ImageList = Me.treestruktur.ImageList f.treestruktur.SelectedNode = Me.treestruktur.SelectedNode f.Massenimport = True f.ShowDialog() Next End If Me.treestruktur_SelectionChanged(sender, e) End If End Sub Private Sub C1Dokumente_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Dokumente.RowColChange If onUpdate Then Exit Sub Try update_view Catch Show_Doc("") End Try End Sub Sub Update_View() Dim Previewfilename As String = "" If Globals.PreViewDir = "" Then Try Dim db As New clsDB db.Get_Tabledata("dms", "", "Select * from dms_Settings where nreintrag=6") Globals.PreViewDir = db.dsDaten.Tables(0).Rows(0).Item(2) If Not System.IO.Directory.Exists(Globals.PreViewDir) Then System.IO.Directory.CreateDirectory(Globals.PreViewDir) End If Catch End Try End If If C1Dokumente.Columns("InDB").Value = "False" Then Try Previewfilename = Globals.PreViewDir + "\" + System.IO.Path.GetFileName(C1Dokumente.Columns("Pfad").Value) If System.IO.File.Exists(Previewfilename) Then System.IO.File.Delete(Previewfilename) End If FileCopy(C1Dokumente.Columns("Pfad").Value, Previewfilename) Catch MsgBox("Das Dokument kann aktuell in der Vorschau nicht angezeigt werden, da es blockiert ist.", vbInformation) Previewfilename = "" End Try Else Try If DMS_Thumbnail = True Then Me.ThumbViewer1.Visible = True Me.ThumbViewer1.Dock = DockStyle.Fill Application.DoEvents() Me.ThumbViewer1.SearchItem(C1Dokumente.Columns("nreintrag").Value) Application.DoEvents() 'Me.ThumbViewer1.Select() Else Dim d As New clsDok Previewfilename = d.Get_Dokument(Me.C1Dokumente.Columns("nreintrag").Value, Globals.PreViewDir, True, True) Show_Doc(Previewfilename) End If Catch Me.ThumbViewer1.Visible = False Me.grpdokumentvorschau.Visible = False Me.GrpDokumentvorschauMail.Visible = False Me.grpdokumentvorschaupdf.Visible = False Previewfilename = "" Show_Doc(Previewfilename) End Try End If 'Show_Doc(Previewfilename) End Sub Private Sub Show_Doc(ByVal PreviewFilename As String) If Not PreviewOK(PreviewFilename) Or PreviewFilename = "" Then Me.grpdokumentvorschau.Visible = False Me.grpdokumentvorschaupdf.Visible = False Exit Sub End If Me.grpdokumentvorschau.SuspendLayout() Me.grpdokumentvorschaupdf.SuspendLayout() Me.GrpDokumentvorschauMail.SuspendLayout() Select Case UCase(System.IO.Path.GetExtension(PreviewFilename)) Case ".PDF" Me.grpdokumentvorschau.Visible = False Me.grpdokumentvorschaupdf.Visible = True Me.GrpDokumentvorschauMail.Visible = False 'Me.pdfViewerControl1.RenderingEngine = Syncfusion.Windows.Forms.PdfViewer.PdfRenderingEngine.Pdfium 'Me.pdfViewerControl1.ReferencePath = Application.StartupPath + "" Try Me.WebBrowser2.Navigate(PreviewFilename) Catch End Try 'Dim p As New Process 'p = Process.Start(PreviewFilename) 'Me.pdfViewerControl1.Load(PreviewFilename) Case ".MSG" Me.grpdokumentvorschaupdf.Visible = False Me.grpdokumentvorschau.Visible = False Me.GrpDokumentvorschauMail.Visible = True Dim msgreader As New MsgReader.Reader Dim files = msgreader.ExtractToFolder(PreviewFilename, Globals.PreViewDir) Dim err = msgreader.GetErrorMessage webBrowser1.Navigate(files(0)) Case Else Me.grpdokumentvorschaupdf.Visible = False Me.grpdokumentvorschau.Visible = True Me.GrpDokumentvorschauMail.Visible = False Try 'Threading.Thread.CurrentThread.Sleep(1000) Try DocumentViewer1.CloseDocument() Catch End Try Me.DocumentViewer1.LoadDocument(PreviewFilename) Catch es As Gnostice.Core.XDocException End Try End Select Me.grpdokumentvorschau.ResumeLayout() Me.grpdokumentvorschaupdf.ResumeLayout() Me.GrpDokumentvorschauMail.ResumeLayout() End Sub Private Function PreviewOK(ByVal Filename As String) As Boolean Dim db As New clsDB db.Get_Tabledata("DMS", "", "Select * from dms_settings where nreintrag=7") Dim exludefiletypes As String = db.dsDaten.Tables(0).Rows(0).Item(2) Dim ext As String = System.IO.Path.GetExtension(Filename) ext = ext.Replace(".", "") exludefiletypes = UCase(exludefiletypes) ext = UCase(ext) If exludefiletypes.IndexOf(ext) > -1 Then Return False Else Return True End If End Function Private Sub tsActSize_Click(sender As Object, e As EventArgs) Handles tsActSize.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.Zoom.ZoomMode = Gnostice.Documents.Controls.WinForms.ZoomMode.ActualSize End If End Sub Private Sub tsFitPage_Click(sender As Object, e As EventArgs) Handles tsFitPage.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.Zoom.ZoomMode = Gnostice.Documents.Controls.WinForms.ZoomMode.FitPage End If End Sub Private Sub tsFitWidth_Click(sender As Object, e As EventArgs) Handles tsFitWidth.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.Zoom.ZoomMode = Gnostice.Documents.Controls.WinForms.ZoomMode.FitWidth End If End Sub Private Sub tsZoomOut_Click(sender As Object, e As EventArgs) Handles tsZoomOut.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.ZoomOut() End If End Sub Private Sub tsZoomIn_Click(sender As Object, e As EventArgs) Handles tsZoomIn.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.ZoomIn() End If End Sub Private Sub btnFirstPage_Click(sender As Object, e As EventArgs) Handles btnFirstPage.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.FirstPage() End If End Sub Private Sub btnPrvPage_Click(sender As Object, e As EventArgs) Handles btnPrvPage.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.PreviousPage() End If End Sub Private Sub btnNxtPage_Click(sender As Object, e As EventArgs) Handles btnNxtPage.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.NextPage() End If End Sub Private Sub btnLastPage_Click(sender As Object, e As EventArgs) Handles btnLastPage.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.LastPage() End If End Sub Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click DocumentViewer1.RotatePagesAntiClockwise90() End Sub Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click DocumentViewer1.RotatePagesClockwise90() End Sub Private Sub txtGoToPage_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles txtGoToPage.KeyDown Select Case e.KeyCode Case Keys.NumPad0, Keys.NumPad1, Keys.NumPad2, Keys.NumPad3, Keys.NumPad4, Keys.NumPad5, Keys.NumPad6, Keys.NumPad7, Keys.NumPad8, Keys.NumPad9, Keys.Delete, Keys.[End], Keys.Home, Keys.Down, Keys.Up, Keys.Left, Keys.Right, Keys.Back e.SuppressKeyPress = False Exit Select Case Keys.D0, Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5, Keys.D6, Keys.D7, Keys.D8, Keys.D9 If e.Shift Then e.SuppressKeyPress = True Else e.SuppressKeyPress = False End If Exit Select Case Keys.Enter e.SuppressKeyPress = False If txtGoToPage.Text.Trim() <> "" Then DocumentViewer1.GoToPage(Convert.ToInt32(txtGoToPage.Text)) End If Exit Select Case Else e.SuppressKeyPress = True Exit Select End Select End Sub Private Sub txtZoom_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles txtZoom.KeyDown Select Case e.KeyCode Case Keys.NumPad0, Keys.NumPad1, Keys.NumPad2, Keys.NumPad3, Keys.NumPad4, Keys.NumPad5, Keys.NumPad6, Keys.NumPad7, Keys.NumPad8, Keys.NumPad9, Keys.Delete, Keys.[End], Keys.Home, Keys.Down, Keys.Up, Keys.Left, Keys.Right, Keys.Back e.SuppressKeyPress = False Exit Select Case Keys.D0, Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5, Keys.D6, Keys.D7, Keys.D8, Keys.D9 If e.Shift Then e.SuppressKeyPress = True Else e.SuppressKeyPress = False End If Exit Select Case Keys.Enter e.SuppressKeyPress = False DocumentViewer1.Zoom.ZoomPercent = Double.Parse(txtZoom.Text) Exit Select Case Else e.SuppressKeyPress = True Exit Select End Select End Sub Private Sub DokumentEinemAnderenPartnerZuordnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DokumentEinemAnderenPartnerZuordnenToolStripMenuItem.Click Dim f As New frmSuche f.Dokumentsuche = True f.ShowDialog() If f.DialogResult = DialogResult.OK Then Dim db As New clsDB db.Get_Tabledata("Dokument", "", "Select * from dms_dokument where nreintrag=" + Me.C1Dokumente.Columns("nreintrag").Value.ToString) db.dsDaten.Tables(0).Rows(0).Item("keyvalue") = f.Key db.dsDaten.Tables(0).Rows(0).Item("mutiert_am") = Now db.dsDaten.Tables(0).Rows(0).Item("mutierer") = Globals.ActUser db.Update_Data() Me.treestruktur_SelectionChanged(sender, e) End If End Sub Private Sub DokumentExportierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DokumentExportierenToolStripMenuItem.Click Try If C1Dokumente.Columns("indb").Value = "True" Then Me.SaveFileDialog1.FileName = C1Dokumente.Columns("pfad").Value If Me.SaveFileDialog1.ShowDialog = DialogResult.OK Then Dim fn As String Dim dok As New clsDok fn = dok.Get_Dokument(Me.C1Dokumente.Columns("nreintrag").Value) System.IO.File.Copy(fn, SaveFileDialog1.FileName) End If Else If Me.SaveFileDialog1.ShowDialog = DialogResult.OK Then Dim fn As String Dim dok As New clsDok fn = Me.C1Dokumente.Columns("Pfad").Value System.IO.File.Copy(fn, SaveFileDialog1.FileName) End If End If Catch ex As Exception End Try End Sub Private Sub ContextMenuStrip1_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ContextMenuStrip1.Opening Dim db As New clsDB db.Get_Tabledata("EditableDocTypes", "", "select wert from dms_settings where nreintrag=3") Dim s As String = C1Dokumente.Columns("pfad").Value s = System.IO.Path.GetExtension(s) s = s.Replace(".", "") s = UCase(s) Dim dbw As String = UCase(db.dsDaten.Tables(0).Rows(0).Item(0).ToString) If dbw.IndexOf(s) > -1 Then Me.DokumentBearbeitenToolStripMenuItem.Visible = True Else Me.DokumentBearbeitenToolStripMenuItem.Visible = False End If End Sub Private Sub DokumentBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DokumentBearbeitenToolStripMenuItem.Click Try Dim fn As String Dim fi As FileInfo Dim dok As New clsDok If C1Dokumente.Columns("indb").Value = "True" Then fn = dok.Get_Dokument(Me.C1Dokumente.Columns("nreintrag").Value) fi = New System.IO.FileInfo(fn) Else fn = Me.C1Dokumente.Columns("Pfad").Value fi = New System.IO.FileInfo(fn) End If Dim db As New clsDB db.Get_Tabledata("DMS", "", "Select * from dms_settings where nreintrag=5") If db.dsDaten.Tables(0).Rows(0).Item(2) = "True" Then db.Get_Tabledata("DMS", "", "Select * from dms_settings where nreintrag=4") Dim dir As String = db.dsDaten.Tables(0).Rows(0).Item(2) If System.IO.Directory.Exists(dir) = False Then System.IO.Directory.CreateDirectory(dir) End If Dim filenew As String filenew = Format(Now, "yyyyMMddHHmmss") + "_" + Me.Patientnr.ToString + "_" + System.IO.Path.GetFileName(fn) filenew = dir + "\" + filenew System.IO.File.Copy(fn, filenew) End If Process.Start(fn) Dim ts1 As DateTime = Now.AddSeconds(10) Dim filelocked As Boolean = False While Now < ts1 If IsFileInUse(fn) Then filelocked = True Exit While End If End While If filelocked Then Globals.Filemanagement.AddFile(Me.C1Dokumente.Columns("nreintrag").Value, fi.FullName, fi.LastAccessTime, Me.C1Dokumente.Columns("indb").Value) Else MsgBox("Die Dateiüberwachung für das automatische Speichern konnte nicht initialisiert werden", vbExclamation) End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub tsbtnvorlagen_Click(sender As Object, e As EventArgs) Handles tsbtnvorlagen.Click Dim f As New frmdokumentvorlagen f.treestruktur.ImageList = Me.treestruktur.ImageList f.treestruktur.SelectedNode = Me.treestruktur.SelectedNode f.ShowDialog() End Sub Private Sub NeuesDokumentAusVorlageErstellenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuesDokumentAusVorlageErstellenToolStripMenuItem.Click Dim f As New frmdokumentvorlagen f.Vorlagenselect = True f.treestruktur.ImageList = Me.treestruktur.ImageList f.ShowDialog() If f.DialogResult = DialogResult.OK Then Dim Vorlagenkey As String = f.treestruktur.SelectedNode.Tag.ToString Vorlagenkey = Vorlagenkey.Replace("V:", "") Dim dok As New clsDok Dim db As New clsDB Dim dbv As New clsDB Dim filename As String db.Get_Tabledata("DMS", "", "Select * from dms_settings where nreintrag=1") dbv.Get_Tabledata("DMS", "", "Select * from dms_vorlage where nreintrag=" + Vorlagenkey.ToString) If db.dsDaten.Tables(0).Rows(0).Item(2) = "True" Then filename = My.Settings.TempPath If Microsoft.VisualBasic.Right(filename, 1) <> "\" Then filename = filename + "\" filename = filename + Format(Now, "yyyyMMddHHmmss") + "_" + Me.Patientnr.ToString + "_" + System.IO.Path.GetFileName(dbv.dsDaten.Tables(0).Rows(0).Item(3).ToString) dok.Get_Vorlage(Vorlagenkey, filename) Else db.Get_Tabledata("DMS", "", "Select * from dms_settings where nreintrag=2") filename = db.dsDaten.Tables(0).Rows(0).Item(2) filename = filename + Format(Now, "yyyyMMddHHmmss") + "_" + Me.Patientnr.ToString + "_" + System.IO.Path.GetFileName(dbv.dsDaten.Tables(0).Rows(0).Item(3).ToString) dok.Get_Vorlage(Vorlagenkey, filename) End If Dim dbd As New clsDB dbd.Get_Tabledata("DMS", "", "Select * from dms_dokument where nreintrag=-1") Dim dr As DataRow = dbd.dsDaten.Tables(0).NewRow dr.Item(1) = f.treestruktur.SelectedNode.Parent.Tag dr.Item(2) = f.treestruktur.SelectedNode.Text dr.Item(3) = "" dr.Item(4) = filename dr.Item(5) = Now dr.Item(6) = Now dr.Item(7) = Globals.ActUser dr.Item(8) = True dr.Item(9) = db.dsDaten.Tables(0).Rows(0).Item(2).ToString = "True" dr.Item(10) = Now dr.Item(11) = False dr.Item(12) = "" dr.Item(13) = Me.Patientnr dbd.dsDaten.Tables(0).Rows.Add(dr) dbd.Update_Data() dbd.Get_Tabledata("DMS", "", "Select top 1 * from dms_dokument order by nreintrag desc") If db.dsDaten.Tables(0).Rows(0).Item(2) = "True" Then dok.Save_Document(dbd.dsDaten.Tables(0).Rows(0).Item(0), filename) End If Me.treestruktur.SelectedNode = SearchTheTreeView(Me.treestruktur, f.treestruktur.SelectedNode.Parent.Text) Update_Grid() For i As Integer = 0 To C1Dokumente.Splits(0).Rows.Count - 1 If C1Dokumente.Columns(0).CellText(i) = dbd.dsDaten.Tables(0).Rows(0).Item(0) Then Me.C1Dokumente.Bookmark = i Me.Cursor = Cursors.WaitCursor Thread.Sleep(2000) DokumentBearbeitenToolStripMenuItem_Click(sender, e) Me.Cursor = Cursors.Default Exit For End If Next db.Dispose() dbv.Dispose() dbd.Dispose() End If End Sub Dim NodesThatMatch As New List(Of DevComponents.AdvTree.Node) Private Function SearchTheTreeView(ByVal TV As AdvTree, ByVal TextToFind As String) As DevComponents.AdvTree.Node ' Empty previous NodesThatMatch.Clear() ' Keep calling RecursiveSearch For Each TN As DevComponents.AdvTree.Node In TV.Nodes If TN.Text = TextToFind Then NodesThatMatch.Add(TN) End If RecursiveSearch(TN, TextToFind) Next If NodesThatMatch.Count > 0 Then Return NodesThatMatch(0) Else Return Nothing End If End Function Private Sub RecursiveSearch(ByVal treeNode As DevComponents.AdvTree.Node, ByVal TextToFind As String) ' Keep calling the test recursively. For Each TN As DevComponents.AdvTree.Node In treeNode.Nodes If TN.Text = TextToFind Then NodesThatMatch.Add(TN) End If RecursiveSearch(TN, TextToFind) Next End Sub Private Sub treestruktur_Click(sender As Object, e As EventArgs) Handles treestruktur.Click End Sub Private Sub PrintButton_Click(sender As Object, e As EventArgs) Handles PrintButton.Click Me.webBrowser1.ShowPrintDialog() End Sub Private Sub C1Dokumente_MouseDown(sender As Object, e As MouseEventArgs) Handles C1Dokumente.MouseDown Me.C1Dokumente.Bookmark = Me.C1Dokumente.RowContaining(e.Y) End Sub Private Sub PerMailVersendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PerMailVersendenToolStripMenuItem.Click Dim fn As String Dim dok As New clsDok fn = dok.Get_Dokument(Me.C1Dokumente.Columns("nreintrag").Value) Dim om As New clsMailClient om.CreateOutlookMail(clsMailClient.EmpfangerFrom.Dokument, Me.C1Dokumente.Columns("nreintrag").Value, fn, 100) End Sub End Class Public Class DocumentNotLoadedException Inherits Gnostice.Core.XDocException End Class Public Class DokumentNotLoadedExeption Inherits Gnostice.Core.XDocException End Class