neu
This commit is contained in:
761
Aviso/frmSendungAnhangImport.vb
Normal file
761
Aviso/frmSendungAnhangImport.vb
Normal file
@@ -0,0 +1,761 @@
|
||||
|
||||
Imports iTextSharp.text.pdf
|
||||
Imports iTextSharp.text
|
||||
Imports System.IO
|
||||
Imports GrapeCity.Documents.Pdf
|
||||
|
||||
|
||||
|
||||
Public Class frmSendungAnhangImport
|
||||
|
||||
Public AvisoId As Integer
|
||||
Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen)
|
||||
Dim CURRENT_INDEX As Integer
|
||||
|
||||
|
||||
Dim BrowserLoaded = True
|
||||
|
||||
Sub New(AvisoId)
|
||||
|
||||
' Dieser Aufruf ist für den Designer erforderlich.
|
||||
InitializeComponent()
|
||||
Me.AvisoId = AvisoId
|
||||
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
||||
|
||||
'Dim f As New GroupDocs.Viewer
|
||||
End Sub
|
||||
|
||||
|
||||
Sub initElement(USRCNTL As usrCntlSendungAnhangElement)
|
||||
AddHandler USRCNTL.ME_CLICK, Sub()
|
||||
' If BrowserLoaded Then
|
||||
|
||||
If USRCNTL.ACTIVE Then Exit Sub 'Bereits aktiv
|
||||
For Each u As usrCntlSendungAnhangElement In flpnlAviso.Controls
|
||||
u.ACTIVE = False
|
||||
Next
|
||||
For Each u As usrCntlSendungAnhangElement In flpnlSendungen.Controls
|
||||
u.ACTIVE = False
|
||||
Next
|
||||
USRCNTL.ACTIVE = True
|
||||
'WebBrowser1.Navigate(USRCNTL.FILE_PATH)
|
||||
If File.Exists(USRCNTL.FILE_PATH) Then
|
||||
initLocationViewer(USRCNTL.FILE_PATH)
|
||||
|
||||
Else
|
||||
initLocationViewer("")
|
||||
End If
|
||||
|
||||
' PdfViewer.DocumentLoaded += New EventHandler(AddressOf radPdfViewer1_DocumentLoaded)
|
||||
|
||||
txtDateiname.Text = USRCNTL.FILE_NAME
|
||||
|
||||
' End If
|
||||
End Sub
|
||||
|
||||
AddHandler USRCNTL.KeyDown, Sub(ob As Object, ev As KeyEventArgs)
|
||||
If ev.KeyCode = Keys.Delete Then
|
||||
deleteActiveElement(getAcitvePnl())
|
||||
End If
|
||||
End Sub
|
||||
End Sub
|
||||
|
||||
Sub initLocationViewer(loc)
|
||||
If WebBrowser1.Url.AbsoluteUri <> loc Then
|
||||
WebBrowser1.Navigate(loc)
|
||||
BrowserLoaded = False
|
||||
End If
|
||||
If loc = "" Then BrowserLoaded = True
|
||||
End Sub
|
||||
|
||||
Function getAcitvePnl() As FlowLayoutPanel
|
||||
For Each u As usrCntlSendungAnhangElement In flpnlAviso.Controls
|
||||
If u.ACTIVE Then Return flpnlAviso
|
||||
Next
|
||||
For Each u As usrCntlSendungAnhangElement In flpnlSendungen.Controls
|
||||
If u.ACTIVE Then Return flpnlSendungen
|
||||
Next
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
Public Function ExtractPdfPages(ByVal SourceFile As String, ByVal TargetFile As String, ByVal IntStr As Integer, ByVal IntEnd As Integer)
|
||||
Try
|
||||
Dim impPage As pdf.PdfImportedPage = Nothing
|
||||
Dim Reader As New PdfReader(SourceFile)
|
||||
|
||||
Dim srcDoc As New Document(Reader.GetPageSizeWithRotation(IntStr))
|
||||
Dim PdfCopyProvider As New PdfCopy(srcDoc, New System.IO.FileStream(TargetFile, System.IO.FileMode.Create))
|
||||
PdfCopyProvider.SetFullCompression()
|
||||
srcDoc.Open()
|
||||
For X = IntStr To IntEnd
|
||||
impPage = PdfCopyProvider.GetImportedPage(Reader, X)
|
||||
' ----- Ermitteln der Seitenauflösung und setzen für die neue Seite
|
||||
PdfCopyProvider.SetPageSize(New Rectangle(0.0F, 0.0F, impPage.Width, impPage.Height))
|
||||
' ----- PDF Seite in das neue Dokument einfügen
|
||||
PdfCopyProvider.AddPage(impPage)
|
||||
|
||||
Next
|
||||
' ----- neues PDF Dokument und den Reader schließen
|
||||
srcDoc.Close()
|
||||
Reader.Close()
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnAnfuegen.Click
|
||||
If txtSeiten.Text = "" Then Exit Sub
|
||||
' If cboArt._value = "" Then Exit Sub
|
||||
If cboSendungen._value = "" Then Exit Sub
|
||||
If Not checkSeiten() Then Exit Sub
|
||||
|
||||
For Each u As usrCntlSendungAnhangElement In flpnlAviso.Controls
|
||||
If u.ACTIVE Then
|
||||
Dim fi As New FileInfo(u.FILE_PATH)
|
||||
'-------------
|
||||
'------------- PDFs extrahieren und auf den Datenserver laden + Eintrag in tblAvisoAnhaenger
|
||||
'-------------
|
||||
Dim SendngsId As Integer = cboSendungen._value
|
||||
Dim TMP_Path_Old = u.FILE_PATH
|
||||
Dim TMP_Path_New = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(u.FILE_NAME, fi.Extension,, True, "SendungsAnhaenge")
|
||||
If Not extractPagesFromPdf_Spire(u.FILE_PATH, TMP_Path_New, getPagesFromText()) Then Exit Sub
|
||||
|
||||
'Hochladen in den Datenserver und anfügen in die Tbl Anhänge mit der SendungsId
|
||||
saveToDS(AvisoId, u.FILE_NAME, TMP_Path_New, cboArt._value, u.FILE_TYPE,,,, SendngsId)
|
||||
|
||||
'-------------
|
||||
'------------- PDFs aus der original Datei löschen
|
||||
'-------------
|
||||
' tryDelete(TMP_Path_New)
|
||||
|
||||
If cbxDelPDF.Checked Then
|
||||
If cbxDelPDF.Checked Then
|
||||
TMP_Path_New = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(u.FILE_NAME, fi.Extension,, True, "SendungsAnhaenge")
|
||||
Dim PagesLeft = 0
|
||||
If removePagesFromPdf_Spire(u.FILE_PATH, TMP_Path_New, getPagesFromText(), PagesLeft, False) Then
|
||||
If PagesLeft = 0 Then
|
||||
delFromDS(u.FILE_DOCID)
|
||||
flpnlAviso.Controls.Remove(u)
|
||||
Else
|
||||
Dim destPath = ""
|
||||
If saveChangeToDS_daId(u.FILE_DOCID, TMP_Path_New, destPath) Then
|
||||
tryDelete(TMP_Path_Old)
|
||||
u.FILE_PATH = destPath
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
initLocationViewer("")
|
||||
If flpnlAviso.Controls.Count > 0 Then
|
||||
DirectCast(flpnlAviso.Controls(0), usrCntlSendungAnhangElement).CLICK_Me()
|
||||
End If
|
||||
End If
|
||||
'-------------
|
||||
End If
|
||||
Next
|
||||
clearPnlAnfuegen()
|
||||
' initSendungen()
|
||||
initFlpANH_LIST()
|
||||
End Sub
|
||||
|
||||
Private Sub Button1_ClickALL(sender As Object, e As EventArgs) Handles btnAnfuegenAll.Click
|
||||
If cboSendungen._value = "" Then Exit Sub
|
||||
For Each u As usrCntlSendungAnhangElement In flpnlAviso.Controls
|
||||
If u.ACTIVE Then
|
||||
Dim fi As New FileInfo(u.FILE_PATH)
|
||||
'-------------
|
||||
'------------- PDFs extrahieren und auf den Datenserver laden + Eintrag in tblAvisoAnhaenger
|
||||
'-------------
|
||||
Dim TMP_Path_New = u.FILE_PATH
|
||||
Dim SendngsId As Integer = cboSendungen._value
|
||||
'Hochladen in den Datenserver und anfügen in die Tbl Anhänge mit der SendungsId
|
||||
' saveToDS(u.FILE_NAME, TMP_Path_New, cboArt._value, u.FILE_TYPE,,, SendngsId)
|
||||
|
||||
Dim ANH = New VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge(u.FILE_ANHID)
|
||||
|
||||
If cbxDelPDF.Checked Then
|
||||
ANH.anh_SendungsId = SendngsId
|
||||
ANH.SAVE() 'Eintrag wird überschreiben
|
||||
flpnlAviso.Controls.Remove(u)
|
||||
If cbxDelPDF.Checked Then tryDelete(u.FILE_PATH)
|
||||
initLocationViewer("")
|
||||
If flpnlAviso.Controls.Count > 0 Then
|
||||
DirectCast(flpnlAviso.Controls(0), usrCntlSendungAnhangElement).CLICK_Me()
|
||||
End If
|
||||
Else
|
||||
ANH.anh_SendungsId = SendngsId
|
||||
ANH.anh_id = -1 'neuer Eintrag
|
||||
ANH.SAVE()
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
clearPnlAnfuegen()
|
||||
' initSendungen()
|
||||
initFlpANH_LIST()
|
||||
End Sub
|
||||
|
||||
Sub clearPnlAnfuegen()
|
||||
MyTextBox2.Text = ""
|
||||
txtDateiname.Text = ""
|
||||
txtSeiten.Text = ""
|
||||
cboArt.Text = ""
|
||||
txtSeiten.Focus()
|
||||
End Sub
|
||||
Sub tryDelete(TMP_Path_New)
|
||||
|
||||
Try
|
||||
File.Delete(TMP_Path_New)
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Sub DeletePages(ByVal pageRange As String, ByVal SourcePdfPath As String, ByVal OutputPdfPath As String, ByVal Optional Password As String = "")
|
||||
Dim pagesToDelete As New List(Of Integer)
|
||||
|
||||
If pageRange.IndexOf(",") <> -1 Then
|
||||
Dim tmpHold As String() = pageRange.Split(","c)
|
||||
|
||||
For Each nonconseq As String In tmpHold
|
||||
|
||||
If nonconseq.IndexOf("-") <> -1 Then
|
||||
Dim rangeHold As String() = nonconseq.Split("-"c)
|
||||
|
||||
For i As Integer = Convert.ToInt32(rangeHold(0)) To Convert.ToInt32(rangeHold(1))
|
||||
pagesToDelete.Add(i)
|
||||
Next
|
||||
Else
|
||||
pagesToDelete.Add(Convert.ToInt32(nonconseq))
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
|
||||
If pageRange.IndexOf("-") <> -1 Then
|
||||
Dim rangeHold As String() = pageRange.Split("-"c)
|
||||
|
||||
For i As Integer = Convert.ToInt32(rangeHold(0)) To Convert.ToInt32(rangeHold(1))
|
||||
pagesToDelete.Add(i)
|
||||
Next
|
||||
Else
|
||||
pagesToDelete.Add(Convert.ToInt32(pageRange))
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim doc As Document = New Document()
|
||||
Dim reader As PdfReader = New PdfReader(SourcePdfPath, New System.Text.ASCIIEncoding().GetBytes(Password))
|
||||
|
||||
Using memoryStream As MemoryStream = New MemoryStream()
|
||||
Dim writer As PdfWriter = PdfWriter.GetInstance(doc, memoryStream)
|
||||
doc.Open()
|
||||
doc.AddDocListener(writer)
|
||||
|
||||
For p As Integer = 1 To reader.NumberOfPages
|
||||
|
||||
If pagesToDelete.FindIndex(Function(s) s = p) <> -1 Then
|
||||
Continue For
|
||||
End If
|
||||
|
||||
|
||||
doc.SetPageSize(reader.GetPageSize(p))
|
||||
doc.NewPage()
|
||||
Dim cb As PdfContentByte = writer.DirectContent
|
||||
Dim pageImport As pdf.PdfImportedPage = writer.GetImportedPage(reader, p)
|
||||
Dim rot As Integer = reader.GetPageRotation(p)
|
||||
|
||||
If rot = 90 OrElse rot = 270 Then
|
||||
cb.AddTemplate(pageImport, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(p).Height)
|
||||
Else
|
||||
cb.AddTemplate(pageImport, 1.0F, 0, 0, 1.0F, 0, 0)
|
||||
End If
|
||||
Next
|
||||
|
||||
reader.Close()
|
||||
File.WriteAllBytes(OutputPdfPath, memoryStream.ToArray())
|
||||
doc.Close()
|
||||
End Using
|
||||
End Sub
|
||||
|
||||
|
||||
Function getPagesFromText() As List(Of Integer)
|
||||
Dim List As New List(Of Integer)
|
||||
Dim split = txtSeiten.Text.Split(",")
|
||||
For Each s In split
|
||||
If s.Contains("-") Then
|
||||
Dim s_vb = s.Split("-")
|
||||
Dim von = CInt(s_vb(0))
|
||||
Dim bis = CInt(s_vb(1))
|
||||
For page = von To bis
|
||||
Dim anfuegen = True
|
||||
For Each l In List
|
||||
If l = page Then
|
||||
anfuegen = False
|
||||
End If
|
||||
Next
|
||||
If anfuegen Then List.Add(page)
|
||||
Next
|
||||
|
||||
|
||||
Else
|
||||
If IsNumeric(s) Then List.Add(s)
|
||||
End If
|
||||
Next
|
||||
Return List
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Public Function removePagesFromPdf_Spire(ByVal sourceFile As String, ByVal destinationFile As String, pagesToDelete As List(Of Integer), ByRef PagesLeft As Integer, Optional delSource As Boolean = False) As Boolean
|
||||
|
||||
Try
|
||||
PagesLeft = 0
|
||||
|
||||
Dim pdf As New Spire.Pdf.PdfDocument()
|
||||
pdf.LoadFromFile(sourceFile)
|
||||
' Dim r As PdfReader = New PdfReader(sourceFile)
|
||||
Dim pagesToKeep As New List(Of Integer)
|
||||
For p = 0 To pdf.Pages.Count - 1 ' r.NumberOfPages
|
||||
Dim del = False
|
||||
For Each i In pagesToDelete
|
||||
If p = (i - 1) Then
|
||||
del = True : Exit For
|
||||
End If
|
||||
Next
|
||||
If Not del Then
|
||||
pagesToKeep.Add(p)
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
Dim pdf1 As New Spire.Pdf.PdfDocument()
|
||||
Dim page As Spire.Pdf.PdfPageBase
|
||||
|
||||
For Each p In pagesToKeep
|
||||
Dim pageInt = p - 1 ' Nciht SeitenNr. sonder Aufzählung
|
||||
If pageInt >= 0 And pageInt < pdf.Pages.Count Then
|
||||
page = pdf1.Pages.Add(pdf.Pages(p).Size, New Spire.Pdf.Graphics.PdfMargins(0))
|
||||
pdf.Pages(p).CreateTemplate().Draw(page, New System.Drawing.PointF(0, 0))
|
||||
PagesLeft += 1
|
||||
End If
|
||||
Next
|
||||
pdf1.SaveToFile(destinationFile)
|
||||
pdf.Dispose()
|
||||
pdf1.Dispose()
|
||||
|
||||
If delSource Then tryDelete(sourceFile)
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
Return False
|
||||
End Try
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Public Function extractPagesFromPdf_Spire(ByVal sourceFile As String, ByVal destinationFile As String, pagesToExtract As List(Of Integer)) As Boolean
|
||||
|
||||
Try
|
||||
|
||||
Dim pdf As New Spire.Pdf.PdfDocument()
|
||||
pdf.LoadFromFile(sourceFile)
|
||||
|
||||
Dim pdf1 As New Spire.Pdf.PdfDocument()
|
||||
Dim page As Spire.Pdf.PdfPageBase
|
||||
|
||||
For Each p In pagesToExtract
|
||||
Dim pageInt = p - 1 ' Nciht SeitenNr. sonder Aufzählung
|
||||
If pageInt >= 0 And pageInt < pdf.Pages.Count Then
|
||||
page = pdf1.Pages.Add(pdf.Pages(pageInt).Size, New Spire.Pdf.Graphics.PdfMargins(0))
|
||||
pdf.Pages(pageInt).CreateTemplate().Draw(page, New System.Drawing.PointF(0, 0))
|
||||
End If
|
||||
Next
|
||||
pdf1.SaveToFile(destinationFile)
|
||||
|
||||
|
||||
'MsgBox("P: " &pdf.Pages.Count)
|
||||
'Dim pdf1 As New Spire.Pdf.PdfDocument()
|
||||
''Dim page As New Spire.Pdf.PdfPageBase
|
||||
|
||||
''For i As Integer = 0 To 4
|
||||
'For Each p In pagesToKeep
|
||||
' pdf1.Pages.Add(pdf.Pages(p).Size, New Spire.Pdf.Graphics.PdfMargins(0))
|
||||
' 'Dim page =
|
||||
' 'pdf.Pages(p).CreateTemplate().Draw(page, New System.Drawing.PointF(0, 0))
|
||||
' MsgBox(p)
|
||||
'Next
|
||||
|
||||
'pdf1.SaveToFile(destinationFile)
|
||||
|
||||
|
||||
|
||||
|
||||
'Using fs As FileStream = New FileStream(destinationFile, FileMode.Create, FileAccess.Write, FileShare.None)
|
||||
|
||||
' Using doc As Document = New Document()
|
||||
|
||||
' Using w As PdfWriter = PdfWriter.GetInstance(doc, fs)
|
||||
' doc.Open()
|
||||
' For Each page As Integer In pagesToKeep
|
||||
' doc.NewPage()
|
||||
' w.DirectContent.AddTemplate(w.GetImportedPage(r, page), 0, 0)
|
||||
' PagesLeft += 1
|
||||
' Next
|
||||
' doc.Close()
|
||||
' End Using
|
||||
' End Using
|
||||
'End Using
|
||||
pdf.Dispose()
|
||||
pdf1.Dispose()
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
Return False
|
||||
End Try
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Public Sub removePagesFromPdf(ByVal sourceFile As String, ByVal destinationFile As String, pagesToDelete As List(Of Integer), ByRef PagesLeft As Integer)
|
||||
|
||||
Try
|
||||
PagesLeft = 0
|
||||
Dim r As PdfReader = New PdfReader(sourceFile)
|
||||
Dim pagesToKeep As New List(Of Integer)
|
||||
For p = 1 To r.NumberOfPages
|
||||
Dim del = False
|
||||
For Each i In pagesToDelete
|
||||
If p = i Then
|
||||
del = True : Exit For
|
||||
End If
|
||||
Next
|
||||
If Not del Then
|
||||
pagesToKeep.Add(p)
|
||||
End If
|
||||
Next
|
||||
Using fs As FileStream = New FileStream(destinationFile, FileMode.Create, FileAccess.Write, FileShare.None)
|
||||
|
||||
Using doc As Document = New Document()
|
||||
|
||||
Using w As PdfWriter = PdfWriter.GetInstance(doc, fs)
|
||||
doc.Open()
|
||||
For Each page As Integer In pagesToKeep
|
||||
doc.NewPage()
|
||||
w.DirectContent.AddTemplate(w.GetImportedPage(r, page), 0, 0)
|
||||
PagesLeft += 1
|
||||
Next
|
||||
doc.Close()
|
||||
End Using
|
||||
End Using
|
||||
End Using
|
||||
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
Private Sub txtSeiten_TextChanged(sender As Object, e As EventArgs) Handles txtSeiten.TextChanged
|
||||
txtSeiten.BackColor = Color.White
|
||||
If txtSeiten.Text = "" Then Exit Sub
|
||||
If checkSeiten() Then
|
||||
txtSeiten.BackColor = Color.White
|
||||
Else
|
||||
txtSeiten.BackColor = Color.MistyRose
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Function checkSeiten()
|
||||
txtSeiten.Text.Replace(";", ",")
|
||||
|
||||
' If txtSeiten.Text.Contains(",") Then
|
||||
Dim split = txtSeiten.Text.Split(",")
|
||||
For Each s In split
|
||||
If s.Contains("-") Then
|
||||
Dim s_vb = s.Split("-")
|
||||
Dim von = s_vb(0)
|
||||
Dim bis = s_vb(1)
|
||||
' Dim bis = ""
|
||||
'If s_vb.Count > 0 Then bis = s_vb(1)
|
||||
If Not IsNumeric(von) Then Return False
|
||||
If Not IsNumeric(bis) Then Return False
|
||||
Else
|
||||
If Not IsNumeric(s) Then Return False
|
||||
End If
|
||||
Next
|
||||
' Else
|
||||
' If Not IsNumeric(txtSeiten.Text) Then Return False
|
||||
' End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
||||
deleteActiveElement(flpnlAviso)
|
||||
End Sub
|
||||
Sub deleteActiveElement(flpnl As FlowLayoutPanel)
|
||||
If flpnl Is Nothing Then Exit Sub
|
||||
For Each u As usrCntlSendungAnhangElement In flpnl.Controls
|
||||
If u.ACTIVE Then
|
||||
If vbYes = MsgBox("Möchten Sie das Element löschen?", vbYesNoCancel) Then
|
||||
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(u.FILE_DOCID)
|
||||
If DS.DELETE_COMPLETE Then
|
||||
flpnl.Controls.Remove(u)
|
||||
initLocationViewer("")
|
||||
If flpnl.Controls.Count > 0 Then
|
||||
DirectCast(flpnl.Controls(0), usrCntlSendungAnhangElement).CLICK_Me()
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub frmSendungAnhangImport_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
WebBrowser1.Navigate("")
|
||||
flpnlAviso.Controls.Clear()
|
||||
flpnlSendungen.Controls.Clear()
|
||||
|
||||
cboArt.Items.Clear()
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ATR", "ATR"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Rechnung", "Rechnung"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("CMR", "CMR"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Auftrag", "Auftrag"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Packliste", "Packliste"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Sonstiges", "Sonstiges"))
|
||||
initSendungen()
|
||||
|
||||
cboSendungen.changeItem(-1)
|
||||
End Sub
|
||||
|
||||
Private Sub frmSendungAnhangImport_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
||||
txtSeiten.Focus()
|
||||
End Sub
|
||||
|
||||
Private Sub txtSeiten_KeyDown(sender As Object, e As KeyEventArgs) Handles txtSeiten.KeyDown, cboArt.KeyDown
|
||||
If e.KeyCode = Keys.Return Then
|
||||
btnAnfuegen.PerformClick()
|
||||
End If
|
||||
End Sub
|
||||
Sub initSendungen()
|
||||
cboSendungen.Items.Clear()
|
||||
' cboSendungen.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Allgemein", -1))
|
||||
|
||||
VERAG_PROG_ALLGEMEIN.cSendungen.LOAD_LIST(SENDUNG_LIST, CURRENT_INDEX, AvisoId) 'LÄDT alle SENDUNGSDATEN
|
||||
Dim cnt = 1
|
||||
For Each s In SENDUNG_LIST
|
||||
cboSendungen.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(cnt & ". " & s.tblSnd_Empfaenger & " (" & s.tblSnd_Abfertigungsart_ID & ")", s.tblSnd_SendungID))
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub cboSendungen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboSendungen.SelectedIndexChanged
|
||||
MyTextBox2.Text = cboSendungen.Text
|
||||
flpnlSendungen.Controls.Clear()
|
||||
|
||||
initFlpANH_LIST()
|
||||
|
||||
End Sub
|
||||
|
||||
Sub initFlpANH_LIST()
|
||||
Dim ANH_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge)
|
||||
'If cboSendungen._value > 0 Then
|
||||
' VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge.LOAD_LIST_BySendung(ANH_LIST, cboSendungen._value) 'LÄDT alle Aviso-Anhänge
|
||||
'Else
|
||||
' VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge.LOAD_LIST_ByAviso(ANH_LIST, AvisoId) 'LÄDT alle Sendungs-Anhänge
|
||||
'End If
|
||||
VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge.LOAD_LIST_ByAviso(ANH_LIST, AvisoId) 'LÄDT alle Aviso-Anhänge
|
||||
flpnlSendungen.Controls.Clear
|
||||
flpnlAviso.Controls.Clear()
|
||||
|
||||
For Each a In ANH_LIST
|
||||
|
||||
Dim USRCNTL As New usrCntlSendungAnhangElement
|
||||
|
||||
USRCNTL.FILE_PATH = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(a.anh_docId)
|
||||
USRCNTL.FILE_NAME = a.anh_Name
|
||||
USRCNTL.FILE_TYPE = a.anh_Typ
|
||||
|
||||
USRCNTL.FILE_ANHID = a.anh_id
|
||||
USRCNTL.FILE_DOCID = a.anh_docId
|
||||
|
||||
initElement(USRCNTL)
|
||||
|
||||
If If(a.anh_SendungsId, 0) > 0 Then
|
||||
If cboSendungen._value <> "" AndAlso cboSendungen._value = a.anh_SendungsId Then
|
||||
flpnlSendungen.Controls.Add(USRCNTL)
|
||||
End If
|
||||
Else
|
||||
flpnlAviso.Controls.Add(USRCNTL)
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnAnfuegenAll.Click
|
||||
clearPnlAnfuegen()
|
||||
End Sub
|
||||
|
||||
Private Sub Button3_Click_1(sender As Object, e As EventArgs) Handles Button3.Click
|
||||
If cboSendungen._value = "" Then Exit Sub
|
||||
For Each u As usrCntlSendungAnhangElement In flpnlAviso.Controls
|
||||
If u.ACTIVE Then
|
||||
|
||||
Dim ANH = New VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge(u.FILE_ANHID)
|
||||
ANH.anh_SendungsId = Nothing
|
||||
ANH.SAVE()
|
||||
|
||||
End If
|
||||
Next
|
||||
clearPnlAnfuegen()
|
||||
' initSendungen()
|
||||
initFlpANH_LIST()
|
||||
End Sub
|
||||
|
||||
Public Sub DateiHochladenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiHochladenToolStripMenuItem.Click
|
||||
addData_SendungAnhangFD()
|
||||
End Sub
|
||||
|
||||
|
||||
Sub delFromDS(daId)
|
||||
Dim ds As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
|
||||
ds.DELETE_COMPLETE()
|
||||
End Sub
|
||||
|
||||
Function saveChangeToDS_daId(daId, sourcePath, ByRef destPath) As Boolean
|
||||
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
|
||||
If Not DS.uploadDataToDATENSERVER(sourcePath) Then MsgBox("Fehler beim Speichern: Datenserver!") : Return False
|
||||
If DS.da_id <= 0 Then MsgBox("Keine DocId!") : Return False
|
||||
|
||||
destPath = DS.GET_TOP1_PATH
|
||||
'Dim ANH As New VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge(AvisoId, DS.da_name, DS.da_id, cboArt._value, DS.da_name, Nothing)
|
||||
'If Not ANH.SAVE Then MsgBox("Fehler beim Anhang speichern!") : Return False
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Sub DateiScannenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiScannenToolStripMenuItem.Click
|
||||
Try
|
||||
'If KdNr < 0 Then Exit Sub
|
||||
Dim frmScan As New VERAG_PROG_ALLGEMEIN.frmScan("DirectScan")
|
||||
frmScan.DefaultFileName = "Scan" ' Me._TEXT_PDF
|
||||
|
||||
If frmScan.ShowDialog(Me) = DialogResult.OK Then
|
||||
If frmScan.ReturnValue IsNot Nothing Then
|
||||
Dim Filename = frmScan.fileName
|
||||
Dim TMP_Path = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(Filename, ".pdf",, False, "SendungsAnhaenge")
|
||||
File.WriteAllBytes(TMP_Path, frmScan.ReturnValue)
|
||||
|
||||
Dim da_id = -1
|
||||
Dim anhId = -1
|
||||
Dim destPath = ""
|
||||
If saveToDS(AvisoId, Filename, TMP_Path, "", "PDF", da_id, anhId, destPath) Then
|
||||
addUsrcnlToPnl(destPath, da_id, anhId, Filename, "PDF")
|
||||
End If
|
||||
|
||||
'addUsrcnlToPnl(TMP_Path)
|
||||
End If
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("FEHLER Scan: " & ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Sub addUsrcnlToPnl(TMP_Path, dicId, anhId, Optional filename = "", Optional Typ = "")
|
||||
Dim USRCNTL As New usrCntlSendungAnhangElement
|
||||
|
||||
Dim fi As New FileInfo(TMP_Path)
|
||||
If filename = "" Then filename = fi.Name
|
||||
|
||||
USRCNTL.FILE_PATH = TMP_Path
|
||||
USRCNTL.FILE_NAME = filename
|
||||
USRCNTL.FILE_DOCID = dicId
|
||||
USRCNTL.FILE_NAME = filename
|
||||
USRCNTL.FILE_ANHID = anhId
|
||||
|
||||
USRCNTL.FILE_TYPE = Typ
|
||||
|
||||
initElement(USRCNTL)
|
||||
flpnlAviso.Controls.Add(USRCNTL)
|
||||
End Sub
|
||||
|
||||
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
|
||||
cntxt.Show(Cursor.Position)
|
||||
End Sub
|
||||
|
||||
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
||||
deleteActiveElement(flpnlSendungen)
|
||||
End Sub
|
||||
|
||||
|
||||
Public Sub addData_SendungAnhangFD()
|
||||
Dim fd As New OpenFileDialog
|
||||
fd.Multiselect = True
|
||||
|
||||
If fd.ShowDialog = vbOK Then
|
||||
For Each F_listItem In fd.FileNames
|
||||
|
||||
Dim fi As New FileInfo(F_listItem)
|
||||
Dim filename = fi.Name
|
||||
' Dim TMP_Path = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(filename, fi.Extension,, False, "SendungsAnhaenge")
|
||||
' MsgBox(TMP_Path)
|
||||
' File.Copy(F_listItem, TMP_Path)
|
||||
Dim da_id = -1
|
||||
Dim anhId = -1
|
||||
Dim destPath = ""
|
||||
|
||||
Dim Typ = ""
|
||||
If getFileTypeValid(fi.Extension.Replace(".", ""), Typ) Then
|
||||
If saveToDS(AvisoId, fi.Name, F_listItem, "", Typ, da_id, anhId, destPath) Then
|
||||
addUsrcnlToPnl(destPath, da_id, anhId, filename, Typ)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
If flpnlAviso.Controls.Count > 0 Then DirectCast(flpnlAviso.Controls(0), usrCntlSendungAnhangElement).CLICK_Me()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Sub addData_SendungAnhang(Path)
|
||||
|
||||
|
||||
Dim fi As New FileInfo(Path)
|
||||
Dim filename = fi.Name
|
||||
Dim da_id = -1
|
||||
Dim anhId = -1
|
||||
Dim destPath = ""
|
||||
|
||||
Dim Typ = ""
|
||||
If getFileTypeValid(fi.Extension.Replace(".", ""), Typ) Then
|
||||
If saveToDS(AvisoId, fi.Name, Path, "", Typ, da_id, anhId, destPath) Then
|
||||
addUsrcnlToPnl(destPath, da_id, anhId, filename, Typ)
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Function getFileTypeValid(extension, ByRef Typ) As Boolean
|
||||
Select Case extension
|
||||
Case "PDF" : Typ = "PDF"
|
||||
Case "XLS", "XLXS" : Typ = "EXCEL"
|
||||
Case "DOC", "DOCX" : Typ = "WORD"
|
||||
Case "TXT" : Typ = "TEXT"
|
||||
Case "JPEG", "JPG", "GIF", "TFF" : Typ = "BILD"
|
||||
Case "EXE" : MsgBox("Aviso-Anhänge: Ungültiges Datei-Format!") : Return False
|
||||
Case Else : Typ = "SONSTIGES"
|
||||
End Select
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Public Shared Function saveToDS(AvisoId, fileName, sourcePath, Art, Typ, Optional ByRef da_id = -1, Optional anhId = -1, Optional ByRef destPath = "", Optional SendungsId = Nothing) As Boolean
|
||||
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "AVISO_ANHAENGE", AvisoId, Now.ToString("ddMMyy_HHmmss.sss"), "", fileName, -1, False)
|
||||
If Not DS.uploadDataToDATENSERVER(sourcePath) Then MsgBox("Fehler beim Speichern: Datenserver!") : Return False
|
||||
If DS.da_id <= 0 Then MsgBox("Keine DocId!") : Return False
|
||||
da_id = DS.da_id
|
||||
destPath = DS.GET_TOP1_PATH
|
||||
Dim ANH As New VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge(AvisoId, fileName, DS.da_id, Art, Typ, SendungsId)
|
||||
If Not ANH.SAVE Then MsgBox("Fehler beim Anhang speichern!") : Return False
|
||||
anhId = ANH.anh_id
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
|
||||
BrowserLoaded = True
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user