Imports System.Windows.Forms Imports System.IO Imports Microsoft.Office.Interop Public Class usrcntlPDFScanList Public Property _DATENSERVER_KATEGORIE As String = "DOKUMENTE" Public Property _DATENSERVER_ORDNER As String = "" Public Property _DATENSERVER_UOrdner1 As String = "" Public Property _DATENSERVER_UOrdner2 As String = "" Public Property _DATENSERVER_UOrdner3 As String = "" Public Property _OPEN_ORIGINAL As Boolean = False Private Property _TEXT_PDF As String = "SONSTIGE" Private Property _MULTI_FILES As Boolean = True Public Property _TYPE As String = "PDF" ' Public pdf_Path As String = "" Dim KdNr As Integer = -1 'Dim DATENSERVER As New cDATENSERVER ' Public ScanID As Integer = -1 Public COLL_ID As Integer = -1 'Dim DatenserverIDCollection As New cDatenserverIDCollectionList Public DS As VERAG_PROG_ALLGEMEIN.cDATENSERVER Public Event FileAdded(id As String, path As String, name As String) Private Sub usrcntlPDFScan_Layout(sender As Object, e As LayoutEventArgs) Handles Me.Layout ' Me.txt.Text = _TEXT_PDF Me.MyListBox1.Dock = DockStyle.Fill End Sub Public Sub INIT(KdNr) Me.KdNr = KdNr DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", _DATENSERVER_ORDNER, _DATENSERVER_UOrdner1, _DATENSERVER_UOrdner2, _DATENSERVER_UOrdner3, _TEXT_PDF, KdNr, _MULTI_FILES) initPdf() End Sub Public Sub INIT(KdNr, _DATENSERVER_UOrdner1) Me.KdNr = KdNr Me._DATENSERVER_UOrdner1 = _DATENSERVER_UOrdner1 DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", _DATENSERVER_ORDNER, _DATENSERVER_UOrdner1, _DATENSERVER_UOrdner2, _DATENSERVER_UOrdner3, _TEXT_PDF, KdNr, _MULTI_FILES) initPdf() End Sub Public Sub INIT(KdNr, _DATENSERVER_UOrdner1, _DATENSERVER_UOrdner2) Me.KdNr = KdNr Me._DATENSERVER_UOrdner1 = _DATENSERVER_UOrdner1 Me._DATENSERVER_UOrdner2 = _DATENSERVER_UOrdner2 DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", _DATENSERVER_ORDNER, _DATENSERVER_UOrdner1, _DATENSERVER_UOrdner2, _DATENSERVER_UOrdner3, _TEXT_PDF, KdNr, _MULTI_FILES) initPdf() End Sub Public Sub INIT(KdNr, _DATENSERVER_UOrdner1, _DATENSERVER_UOrdner2, _DATENSERVER_UOrdner3) Me.KdNr = KdNr Me._DATENSERVER_UOrdner1 = _DATENSERVER_UOrdner1 Me._DATENSERVER_UOrdner2 = _DATENSERVER_UOrdner2 Me._DATENSERVER_UOrdner3 = _DATENSERVER_UOrdner3 DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", _DATENSERVER_ORDNER, _DATENSERVER_UOrdner1, _DATENSERVER_UOrdner2, _DATENSERVER_UOrdner3, _TEXT_PDF, KdNr, _MULTI_FILES) initPdf() End Sub Private Sub usrcntlPDFScan_Load(sender As Object, e As EventArgs) Handles Me.Load ' Me.txt.Text = _TEXT_PDF Me.AllowDrop = True picAdd.ContextMenuStrip = cntxtMulti MyListBox1.ContextMenuStrip = cntxt ' Else ' If DatenserverIDCollection.Count > 0 Then 'pdf_Path = DATENSERVER.getPathById(ScanID) picAdd.Left = Me.Width - picAdd.Width - 2 picAdd.Top = Me.Height - picAdd.Height - 2 End Sub Public Fill ' Sub addId(id) ' If id > 0 Then ' ScanID = id ' pdf_Path = DATENSERVER.getPathById(ScanID) ' initPdf() ' End If ' End Sub Public Sub initPdf() MyListBox1.Items.Clear() KopierenZwischenablageToolStripMenuItem.Enabled = False AlsEmailSendenToolStripMenuItem.Enabled = False UmbenennenToolStripMenuItem.Enabled = False If DS.DATA_LIST.LIST.Count > 0 Then For Each i In DS.DATA_LIST.LIST MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(i.coll_bezeichnung, i.coll_id)) Next KopierenZwischenablageToolStripMenuItem.Enabled = True AlsEmailSendenToolStripMenuItem.Enabled = True UmbenennenToolStripMenuItem.Enabled = True LöschenToolStripMenuItem.Enabled = VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_Datenarchiv_DELETE", "SDL") End If End Sub ' Private Sub toolScannen_Click(sender As Object, e As EventArgs) Handles toolScannen.Click ' Process.Start(pdf_Path) ' End Sub Private Sub DateiScannenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem1.Click If KdNr < 0 Then Exit Sub Dim frmScan As New VERAG_PROG_ALLGEMEIN.frmScan("DirectScan") frmScan.DefaultFileName = Me._TEXT_PDF If frmScan.ShowDialog(Me) = DialogResult.OK Then If frmScan.ReturnValue IsNot Nothing Then Dim Filename = _TEXT_PDF If frmScan.fileName <> "" Then Filename = frmScan.fileName ' If _MULTI_FILES Then Filename &= Now.ToString("_ddMMyyyy_HHmmss") 'Dim path = DATENSERVER.uploadDataToDATENSERVER_fromBytes(frmScan.ReturnValue, "DOKUMENTE", _DATENSERVER_ORDNER, KdNr, Filename, ".pdf") If DS.uploadDataToDATENSERVER_fromBytes(frmScan.ReturnValue, Filename, ".pdf") Then If DS.DATA_LIST.LIST.Count > 0 Then Dim l As VERAG_PROG_ALLGEMEIN.cDatenarchiv_Collection = DS.DATA_LIST.LIST(DS.DATA_LIST.LIST.Count - 1) RaiseEvent FileAdded(l.coll_id, l.coll_pfad, l.coll_bezeichnung) End If End If ' Me.ScanID = DATENSERVER.LAST_ID ' Dim file As New FileInfo(frmScan.ReturnValue) 'If file.Exists Then ' Me.pdf_Path = path 'DS.DATA_LIST.ADD(Path, VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath( Filename,"") 'End If End If End If initPdf() End Sub Private Sub DateiHochladenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem2.Click If DS.uploadDataToDATENSERVERFileDialog_MULTI(, , , _TYPE) Then initPdf() End If 'If DS.uploadDataToDATENSERVERFileDialog(, ".pdf", , "PDF") <> "" Then ' If DS.DATA_LIST.LIST.Count > 0 Then ' Dim l As VERAG_PROG_ALLGEMEIN.cDatenarchiv_Collection = DS.DATA_LIST.LIST(DS.DATA_LIST.LIST.Count - 1) ' RaiseEvent FileAdded(l.coll_id, l.coll_pfad, l.coll_bezeichnung) ' End If 'End If 'initPdf() ' Dim fd As New OpenFileDialog ' fd.Filter = "PDF|*.PDF" ' fd.DefaultExt = "pdf" ' If fd.ShowDialog() = DialogResult.OK Then 'Dim Filename = _TEXT_PDF ' If _MULTI_FILES Then Filename &= Now.ToString("_ddMMyyyy_HHmmss") ' Dim path = DATENSERVER.uploadDataToDATENSERVER(fd.FileName, "DOKUMENTE", _DATENSERVER_ORDNER, KdNr, Filename, ".pdf") ' DatenserverIDCollection.ADD(DATENSERVER.LAST_ID, path, Filename) ' RaiseEvent FileAdded(DATENSERVER.LAST_ID, path, Filename) ' End If End Sub Private Sub LöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles LöschenToolStripMenuItem.Click 'NUR WENN MULTI = FALSE Try If vbYes = MsgBox("Möchten Sie die '" & MyListBox1.SelectedItems.Count & "' selektierte(n) Datei(en) wirklich löschen? Die Daten gehen unwiederruflich verloren.", vbYesNoCancel, "Löschen") Then For Each SI In MyListBox1.SelectedItems Dim DelItem As VERAG_PROG_ALLGEMEIN.MyListItem = DirectCast(SI, VERAG_PROG_ALLGEMEIN.MyListItem) DS.DELETE_LIST_POS(DelItem.Value) Next If DS.DATA_LIST.LIST.Count = 0 Then DS.DELETE_COMPLETE() End If initPdf() End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub picAdd_Click(sender As Object, e As EventArgs) Handles picAdd.Click cntxtMulti.Show(Windows.Forms.Cursor.Position) End Sub Private Sub MyListBox1_DoubleClick(sender As Object, e As EventArgs) Handles MyListBox1.DoubleClick Try If _OPEN_ORIGINAL Then Dim collId = DirectCast(MyListBox1.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value For Each i In DS.DATA_LIST.LIST If i.coll_id = collId Then Process.Start(i.coll_pfad) Exit Sub End If Next Else DS.OPEN(DirectCast(MyListBox1.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value,, True) End If ' VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.copyToTmp_KeepFilename(ii.coll_pfad, ii.coll_bezeichnung) Catch ex As Exception MsgBox("Fehler beim Öffnen!") End Try End Sub Private Sub MyListBox1_MouseClick(sender As Object, e As MouseEventArgs) Handles MyListBox1.MouseClick If e.Button = Windows.Forms.MouseButtons.Right Then Dim i = MyListBox1.IndexFromPoint(e.X, e.Y) If i > 0 Then MyListBox1.SelectedIndex = i If MyListBox1.SelectedItems.Count > 0 Then cntxt.Show(Windows.Forms.Cursor.Position) Else cntxt.Hide() End If End If End Sub Private Sub UmbenennenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles UmbenennenToolStripMenuItem.Click Try If MyListBox1.SelectedItems.Count = 1 Then Dim item As MyListItem = DirectCast(MyListBox1.SelectedItems(0), MyListItem) Dim bez = InputBox("Bitte geben Sie eine neue Bezeichnung ein:", , item.Text) If bez <> "" Then For Each i In DS.DATA_LIST.LIST If i.coll_id = item.Value Then i.coll_bezeichnung = bez i.UPDATE() initPdf() Exit Sub End If Next End If End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub Dim fired = False Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean Try If keyData = (Keys.Control Or Keys.C) Then KopierenZwischenablageToolStripMenuItem_Click(KopierenZwischenablageToolStripMenuItem, New EventArgs) End If Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) End Try Return False End Function Private Sub KopierenZwischenablageToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles KopierenZwischenablageToolStripMenuItem.Click Try VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.clearTMPPath("ClipBoard_TMP") Dim f(MyListBox1.SelectedItems.Count - 1) As String Dim cnt = 0 If MyListBox1.SelectedItems.Count >= 1 Then For Each SI In MyListBox1.SelectedItems Dim item As MyListItem = DirectCast(SI, MyListItem) 'DirectCast(MyListBox1.SelectedItems(0), MyListItem) For Each ii In DS.DATA_LIST.LIST If ii.coll_id = item.Value Then 'Dim f() As String = {ii.coll_pfad} If ii.coll_pfad <> "" Then f(cnt) = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.copyToTmp_KeepFilename(ii.coll_pfad, ii.coll_bezeichnung) cnt += 1 'Exit For End If End If Next Next 'Zwischenablage Clipboard.Clear() Dim d As New DataObject(DataFormats.FileDrop, f) Clipboard.SetDataObject(d, True) Exit Sub End If Catch ex As Exception MsgBox("Fehler beim Laden der Daten!") End Try End Sub Private Sub AlsEmailSendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AlsEmailSendenToolStripMenuItem.Click Try VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.clearTMPPath("ClipBoard_TMP") If MyListBox1.SelectedItems.Count >= 1 Then Try Dim outl As New Outlook.Application Dim Mail As Microsoft.Office.Interop.Outlook.MailItem Mail = outl.CreateItem(0) For Each SI In MyListBox1.SelectedItems Dim item As MyListItem = DirectCast(SI, MyListItem) 'DirectCast(MyListBox1.SelectedItems(0), MyListItem) For Each ii In DS.DATA_LIST.LIST If ii.coll_id = item.Value Then If ii.coll_pfad <> "" Then Mail.Attachments.Add(VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.copyToTmp_KeepFilename(ii.coll_pfad, ii.coll_bezeichnung), Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue) End If End If Next Next Mail.Display() Catch ex As Exception MsgBox("Fehler beim Öffnen der Mail!") End Try End If Catch ex As Exception MsgBox("Fehler beim Öffnen der Mail!") End Try End Sub Private Sub Form1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter ', txt.DragEnter, Me.DragEnter, picPDF.DragEnter e.Effect = DragDropEffects.All End Sub Private Sub txt_Click(sender As Object, e As DragEventArgs) Handles Me.DragDrop ', txt.DragDrop, Me.DragDrop, picPDF.DragDrop If e.Data.GetDataPresent("FileDrop", True) = True Then Dim FileList As String() = CType(e.Data.GetData("FileDrop"), Object) 'Hier wird der Variable "Wert" das übergeben, was wir auf die Form gezogen haben. Bei einer Datei wäre es dann der Pfad der Datei. If FileList.Count > 0 Then If Not _MULTI_FILES And FileList.Count > 1 Then MsgBox("Es können nicht mehrere Dateien hochgeladen werden!") Exit Sub End If For Each W In FileList If W.ToUpper.EndsWith(".PDF") Then Try Dim bezeichnung = System.IO.Path.GetFileName(W).ToString DS.uploadDataToDATENSERVER(W, bezeichnung, ".pdf") 'Dim l As VERAG_PROG_ALLGEMEIN.cDatenarchiv_Collection = DS.DATA_LIST.LIST(DS.DATA_LIST.LIST.Count - 1) 'RaiseEvent FileAdded(l.coll_id, l.coll_pfad, l.coll_bezeichnung) 'If DS.DATA_LIST.LIST.Count > 0 Then ' Dim l As VERAG_PROG_ALLGEMEIN.cDatenarchiv_Collection = DS.DATA_LIST.LIST(DS.DATA_LIST.LIST.Count - 1) ' RaiseEvent FileAdded(l.coll_id, l.coll_pfad, l.coll_bezeichnung) 'End If Catch ex As Exception MsgBox("FEHLER: UserControl möglicherweise nicht initialisiert!" & ex.Message & ex.StackTrace) End Try End If Next initPdf() End If End If End Sub Private Sub cntxt_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles cntxt.Opening UmbenennenToolStripMenuItem.Visible = (MyListBox1.SelectedItems.Count = 1) End Sub End Class