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