You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

515 lines
20 KiB

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
''' <summary>
''' Tree aufbauen
''' </summary>
''' <param name="oDS"></param>
''' <param name="oTreeview"></param>
''' <remarks></remarks>
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
''' <summary>
''' Child-Nodes hinzufügen
''' </summary>
''' <param name="oDataRow"></param>
''' <param name="oNode"></param>
''' <remarks></remarks>
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("<A href=""mailto: melroy@testmail.com"">mailto:melroy@testmail.com</A>")
'MsgBuilder.Append("<A href='mailto:&cc=testcc@testcc.com,testcc1@testcc.com'>&cc=testcc@testcc.com,testcc1@testcc.com</A>")
'MsgBuilder.Append("<A href='mailto:&bcc=testcc@testbcc.com,testcc1@testbcc.com'>&bcc=testcc@testbcc.com,testcc1@testbcc.com</A>")
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