Imports System.Net.Mail Imports C1.Win.C1TrueDBGrid Imports DevComponents.AdvTree '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 dbDokumente As New clsDB Dim m_patientnr As Integer Property Patientnr As Integer Get Return m_patientnr End Get Set(value As Integer) m_patientnr = value 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. 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() 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 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 Sub Update_Grid() dbDokumente.Get_Tabledata("Dokumente", "", "Select * from dms_dokument where dms_strukturnr=" + Me.treestruktur.SelectedNode.Tag.ToString + " and keyvalue=" + Me.Patientnr.ToString + " and aktiv=1") Me.C1Dokumente.DataSource = Nothing Me.C1Dokumente.DataSource = dbDokumente.dsDaten.Tables(0) Me.C1Dokumente.DataMember = dbDokumente.dsDaten.Tables(0).TableName Dim spalten As New Tabellenspalte spalten.Spaltentitel_aktualisieren(Me.C1Dokumente, "DMS_Dokument", dbDokumente.dsDaten.Tables(0)) If Me.C1Dokumente.Splits(0).Rows.Count = 0 Then Me.DocumentViewer1.Visible = False Else Me.DocumentViewer1.Visible = True End If 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) Else Process.Start(Me.C1Dokumente.Columns("pfad").Value) End If Catch End Try End Sub 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 Dim db As New clsDB db.Get_Tabledata("DMS_Dokument", "where nreintrag=" + C1Dokumente.Columns("nreintrag").Value.ToString, "") db.dsDaten.Tables(0).Rows(0).Item("Aktiv") = 0 db.dsDaten.Tables(0).Rows(0).Item("mutiert_am") = Now db.dsDaten.Tables(0).Rows(0).Item("mutierer") = Globals.ActUser db.Update_Data() db.Dispose() 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 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 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 Try If C1Dokumente.Columns("InDB").Value = "False" Then Me.DocumentViewer1.LoadDocument(C1Dokumente.Columns("Pfad").Value) Else Dim dok As New clsDok Dim ms As System.IO.MemoryStream = dok.Get_Dokument_stram(Me.C1Dokumente.Columns("nreintrag").Value) Me.DocumentViewer1.LoadDocument(ms) End If Catch End Try End Sub 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 PerMailVersendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PerMailVersendenToolStripMenuItem.Click Try Dim db As New clsDB Dim email As String If Me.Patientnr > 49999 Then db.Get_Tabledata("Email", "", "Select E_Mail from firma where nrfirma=" + Me.Patientnr.ToString) Else db.Get_Tabledata("Email", "", "Select E_Mail from privat where nrprivat=" + Me.Patientnr.ToString) End If Try email = db.dsDaten.Tables(0).Rows(0).Item(0) Catch ex As Exception End Try db.Dispose() If C1Dokumente.Columns("indb").Value = "True" Then Dim dok As New clsDok test(email, dok.Get_Dokument(Me.C1Dokumente.Columns("nreintrag").Value)) ' OpenEmail(email, "test", "test", dok.Get_Dokument(Me.C1Dokumente.Columns("nreintrag").Value)) Else test(email, Me.C1Dokumente.Columns("Pfad").Value) ' OpenEmail(email, "", "", Me.C1Dokumente.Columns("Pfad").Value) End If Catch EX As Exception MsgBox(EX.Message) End Try End Sub Public Function OpenEmail(ByVal EmailAddress As String, Optional ByVal Subject As String = "test", Optional ByVal Body As String = "test", Optional ByVal Attachments As String = "") _ As Boolean Dim bAns As Boolean = True Dim sParams As String sParams = EmailAddress If LCase(Strings.Left(sParams, 7)) <> "mailto:" Then _ sParams = "mailto:" & sParams If Subject <> "" Then sParams = sParams & "?subject=" & Subject If Body <> "" Then sParams = CStr(sParams & CStr(IIf(Subject = "", "?", "&"))) sParams = sParams & "body=" & Body End If If Attachments <> "" Then 'sParams = CStr(sParams & CStr(IIf(Body = "", "?", "&"))) sParams = sParams & "attachments=" & Attachments End If Try System.Diagnostics.Process.Start(sParams) Catch bAns = False End Try Return bAns End Function Sub test(email As String, ByVal attachmentfile As String) 'string builder used for concatination Dim MsgBuilder As New System.Text.StringBuilder MsgBuilder.Append("mailto:melroy@testmail.com") 'MsgBuilder.Append("&cc=testcc@testcc.com,testcc1@testcc.com") 'MsgBuilder.Append("&bcc=testcc@testbcc.com,testcc1@testbcc.com") MsgBuilder.Append("&subject=this is test subject") MsgBuilder.Append("&body=this is test body") ExecuteFile(MsgBuilder.ToString) End Sub Private Function ExecuteFile(ByVal FileName As String) As Boolean Dim myProcess As New Process myProcess.StartInfo.FileName = FileName myProcess.StartInfo.UseShellExecute = True myProcess.StartInfo.RedirectStandardOutput = False myProcess.Start() myProcess.Dispose() End Function End Class