20200108
This commit is contained in:
@@ -81,14 +81,21 @@ Public Class frmSendungAnhangImport
|
||||
PdfViewer.CloseDocument()
|
||||
WebBrowser.Navigate("")
|
||||
If typ = "PDF" Then
|
||||
WebBrowser.Visible = False
|
||||
PdfViewer.Visible = (loc <> "")
|
||||
PdfViewer.LoadFromFile(loc)
|
||||
If cbxAlternativePDFAnsicht.Checked Then
|
||||
PdfViewer.Visible = False
|
||||
WebBrowser.Visible = (loc <> "")
|
||||
WebBrowser.Navigate(loc)
|
||||
Else
|
||||
WebBrowser.Visible = False
|
||||
PdfViewer.Visible = (loc <> "")
|
||||
PdfViewer.LoadFromFile(loc)
|
||||
End If
|
||||
ElseIf typ = "BILD" Then
|
||||
PdfViewer.Visible = False
|
||||
WebBrowser.Visible = (loc <> "")
|
||||
WebBrowser.Navigate(loc)
|
||||
End If
|
||||
Button5.Visible = PdfViewer.Visible
|
||||
End Sub
|
||||
|
||||
Function getAcitvePnl() As FlowLayoutPanel
|
||||
@@ -141,10 +148,10 @@ Public Class frmSendungAnhangImport
|
||||
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
|
||||
'If Not extractPagesFromPdf_Spire(u.FILE_PATH, TMP_Path_New, getPagesFromText()) Then Exit Sub
|
||||
If Not ExtractPdfPages_NEW(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, getPDFSplitName(u.FILE_NAME), TMP_Path_New, cboArt._value, u.FILE_TYPE,,,, SendngsId)
|
||||
|
||||
'-------------
|
||||
@@ -156,7 +163,8 @@ Public Class frmSendungAnhangImport
|
||||
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 removePagesFromPdf_Spire(u.FILE_PATH, TMP_Path_New, getPagesFromText(), PagesLeft, False) Then
|
||||
If removePagesFromPdf_NEW(u.FILE_PATH, TMP_Path_New, getPagesFromText(), PagesLeft, False) Then
|
||||
If PagesLeft = 0 Then
|
||||
'delFromDS(u.FILE_DOCID)
|
||||
deleteElement(u.FILE_DOCID, u.FILE_ANHID, False)
|
||||
@@ -213,7 +221,7 @@ Public Class frmSendungAnhangImport
|
||||
End If
|
||||
Next
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
Return False
|
||||
End Function
|
||||
@@ -232,7 +240,7 @@ Public Class frmSendungAnhangImport
|
||||
End If
|
||||
Next
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
Return False
|
||||
End Function
|
||||
@@ -556,6 +564,34 @@ Public Class frmSendungAnhangImport
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
Public Function ExtractPdfPages_NEW(ByVal SourceFile As String, ByVal TargetFile As String, pagesToExtract As List(Of Integer)) As Boolean
|
||||
Try
|
||||
Dim impPage As iTextSharp.text.pdf.PdfImportedPage = Nothing
|
||||
Dim Reader As New iTextSharp.text.pdf.PdfReader(SourceFile)
|
||||
If Not TargetFile.ToLower.EndsWith(".pdf") Then TargetFile = TargetFile & ".pdf"
|
||||
Dim srcDoc As New iTextSharp.text.Document() 'Reader.GetPageSizeWithRotation(0))
|
||||
Dim PdfCopyProvider As New iTextSharp.text.pdf.PdfCopy(srcDoc, New System.IO.FileStream(TargetFile, System.IO.FileMode.Create))
|
||||
PdfCopyProvider.SetFullCompression()
|
||||
srcDoc.Open()
|
||||
For Each p In pagesToExtract
|
||||
If p > Reader.NumberOfPages Then MsgBox("Seitenanzahl überschritten!") : Return False
|
||||
impPage = PdfCopyProvider.GetImportedPage(Reader, p)
|
||||
' ----- Ermitteln der Seitenauflösung und setzen für die neue Seite
|
||||
PdfCopyProvider.SetPageSize(New iTextSharp.text.Rectangle(0.0F, 0.0F, impPage.Width, impPage.Height, Reader.GetPageRotation(p)))
|
||||
' ----- PDF Seite in das neue Dokument einfügen
|
||||
PdfCopyProvider.AddPage(impPage)
|
||||
|
||||
Next
|
||||
' ----- neues PDF Dokument und den Reader schließen
|
||||
srcDoc.Close()
|
||||
Reader.Close()
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
Return False
|
||||
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 iTextSharp.text.pdf.PdfImportedPage = Nothing
|
||||
@@ -582,6 +618,58 @@ Public Class frmSendungAnhangImport
|
||||
'End Function
|
||||
|
||||
|
||||
Public Function removePagesFromPdf_NEW(ByVal sourceFile As String, ByVal destinationFile As String, pagesToDelete As List(Of Integer), ByRef PagesLeft As Integer, delSource As Boolean) As Boolean
|
||||
|
||||
Try
|
||||
PagesLeft = 0
|
||||
Dim r As iTextSharp.text.pdf.PdfReader = New iTextSharp.text.pdf.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
|
||||
If pagesToKeep.Count > 0 Then
|
||||
PagesLeft = r.NumberOfPages - pagesToKeep.Count
|
||||
If ExtractPdfPages_NEW(sourceFile, destinationFile, pagesToKeep) Then
|
||||
If delSource Then tryDelete(sourceFile)
|
||||
End If
|
||||
If False Then
|
||||
|
||||
Using fs As FileStream = New FileStream(destinationFile, FileMode.Create, FileAccess.Write, FileShare.None)
|
||||
|
||||
Using doc As iTextSharp.text.Document = New iTextSharp.text.Document()
|
||||
|
||||
Dim w As iTextSharp.text.pdf.PdfWriter = iTextSharp.text.pdf.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
|
||||
End If
|
||||
If delSource Then tryDelete(sourceFile)
|
||||
End If
|
||||
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
Return False
|
||||
End Function
|
||||
|
||||
'Public Sub removePagesFromPdf(ByVal sourceFile As String, ByVal destinationFile As String, pagesToDelete As List(Of Integer), ByRef PagesLeft As Integer)
|
||||
|
||||
' Try
|
||||
@@ -710,9 +798,16 @@ Public Class frmSendungAnhangImport
|
||||
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("Ausfuhr", "Ausfuhr"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Vorpapier", "Vorpapier"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Packliste", "Packliste"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Auftrag", "Auftrag"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Vorpapier", "Vorpapier"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Auftrag", "Auftrag"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Dispoliste", "Dispoliste"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Vorkasse", "Vorkasse"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Überweisungsbeleg", "Überweisungsbeleg"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Vollmacht", "Vollmacht"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ATB-Nr", "ATB"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ATA-Nr", "ATA"))
|
||||
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Sonstiges", "Sonstiges"))
|
||||
initSendungen()
|
||||
|
||||
@@ -746,6 +841,10 @@ Public Class frmSendungAnhangImport
|
||||
End Sub
|
||||
|
||||
Private Sub cboSendungen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboSendungen.SelectedIndexChanged
|
||||
|
||||
btnSndDel.Enabled = (cboSendungen._value <> "")
|
||||
btnSndEdit.Enabled = (cboSendungen._value <> "")
|
||||
|
||||
MyTextBox2.Text = cboSendungen.Text
|
||||
flpnlSendungen.Controls.Clear()
|
||||
|
||||
@@ -769,9 +868,20 @@ Public Class frmSendungAnhangImport
|
||||
VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge.LOAD_LIST_ByAviso(ANH_LIST, AvisoId) 'LÄDT alle Aviso-Anhänge
|
||||
If pnl Is Nothing OrElse pnl Is flpnlSendungen Then flpnlSendungen.Controls.Clear()
|
||||
If pnl Is Nothing OrElse pnl Is flpnlAviso Then flpnlAviso.Controls.Clear()
|
||||
lblWarenbeichnung.Text = ""
|
||||
lblSendungsdetails.Text = ""
|
||||
lblAbsender.Text = ""
|
||||
lblEmpfaenger.Text = ""
|
||||
If cboSendungen._value <> "" Then
|
||||
Dim SND As New VERAG_PROG_ALLGEMEIN.cSendungen(cboSendungen._value)
|
||||
If If(SND.tblSnd_Colli, "") <> "" Then lblSendungsdetails.Text = SND.tblSnd_Colli & " Pk"
|
||||
If If(SND.tblSnd_Gewicht, "") <> "" Then lblSendungsdetails.Text &= If(lblSendungsdetails.Text <> "", "; ", "") & CDbl(SND.tblSnd_Gewicht).ToString("N1") & " kg"
|
||||
lblWarenbeichnung.Text = If(SND.tblSnd_Warenbezeichnung, "")
|
||||
lblAbsender.Text = If(SND.tblSnd_Absender, "")
|
||||
lblEmpfaenger.Text = If(SND.tblSnd_Empfaenger, "")
|
||||
End If
|
||||
|
||||
For Each a In ANH_LIST
|
||||
|
||||
If If(a.anh_SendungsId, 0) > 0 Then
|
||||
If cboSendungen._value <> "" AndAlso cboSendungen._value = a.anh_SendungsId Then
|
||||
If pnl Is Nothing OrElse pnl Is flpnlSendungen Then
|
||||
@@ -899,7 +1009,7 @@ Public Class frmSendungAnhangImport
|
||||
cntxt.Show(Cursor.Position)
|
||||
End Sub
|
||||
|
||||
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
||||
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles btnSndDel.Click
|
||||
deleteActiveElement(flpnlSendungen)
|
||||
End Sub
|
||||
|
||||
@@ -1034,6 +1144,14 @@ Public Class frmSendungAnhangImport
|
||||
If e.KeyCode = Keys.PageUp Then
|
||||
cboSendungen.SelectedIndex = cboSendungen.SelectedIndex - 1
|
||||
End If
|
||||
If e.KeyCode = Keys.Add Then
|
||||
btnAddSnd.PerformClick()
|
||||
e.IsInputKey = True ' Damit Event abgefangen ist, sonst steht "+" im Feld
|
||||
End If
|
||||
If e.KeyCode = Keys.Return Then
|
||||
btnSndEdit.PerformClick()
|
||||
e.IsInputKey = True ' Damit Event abgefangen ist, sonst steht "+" im Feld
|
||||
End If
|
||||
ElseIf e.Modifiers = Keys.Control Then ' PDFs durchlaufen
|
||||
If e.KeyCode = Keys.PageDown Then
|
||||
nextPDF()
|
||||
@@ -1045,6 +1163,10 @@ Public Class frmSendungAnhangImport
|
||||
btnAddSnd.PerformClick()
|
||||
e.IsInputKey = True ' Damit Event abgefangen ist, sonst steht "+" im Feld
|
||||
End If
|
||||
If e.KeyCode = Keys.Return Then
|
||||
btnSndEdit.PerformClick()
|
||||
e.IsInputKey = True ' Damit Event abgefangen ist, sonst steht "+" im Feld
|
||||
End If
|
||||
Else
|
||||
If e.KeyCode = Keys.PageDown Then
|
||||
PdfViewer.GoToPage(PdfViewer.CurrentPageNumber + 1)
|
||||
@@ -1056,7 +1178,7 @@ Public Class frmSendungAnhangImport
|
||||
Catch ex As ArgumentOutOfRangeException
|
||||
'out of range
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
@@ -1068,6 +1190,9 @@ Public Class frmSendungAnhangImport
|
||||
bool_next = True
|
||||
End If
|
||||
Next
|
||||
If bool_next = False And flpnlAviso.Controls.Count > 0 Then
|
||||
DirectCast(flpnlAviso.Controls(0), usrCntlSendungAnhangElement).CLICK_Me()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub prevPDF()
|
||||
@@ -1102,7 +1227,8 @@ Public Class frmSendungAnhangImport
|
||||
Dim PagesLeft = 0
|
||||
If vbYes = MsgBox("Möchten Sie die Seiten wirklich auf dem Dokument löschen?", vbYesNoCancel) Then
|
||||
|
||||
If removePagesFromPdf_Spire(u.FILE_PATH, TMP_Path_New, getPagesFromText(), PagesLeft, False) Then
|
||||
'If removePagesFromPdf_Spire(u.FILE_PATH, TMP_Path_New, getPagesFromText(), PagesLeft, False) Then
|
||||
If removePagesFromPdf_NEW(u.FILE_PATH, TMP_Path_New, getPagesFromText(), PagesLeft, False) Then
|
||||
If PagesLeft = 0 Then
|
||||
'delFromDS(u.FILE_DOCID)
|
||||
deleteElement(u.FILE_DOCID, u.FILE_ANHID, False)
|
||||
@@ -1166,6 +1292,47 @@ Public Class frmSendungAnhangImport
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles btnSndEdit.Click
|
||||
|
||||
If cboSendungen._value <> "" Then
|
||||
Dim SND As New VERAG_PROG_ALLGEMEIN.cSendungen(cboSendungen._value)
|
||||
If SND IsNot Nothing Then
|
||||
Dim f As New frmAddSendnung(AvisoId, SND)
|
||||
If f.ShowDialog(Me) = DialogResult.OK Then
|
||||
initSendungen()
|
||||
cboSendungen.changeItem(f.SendungsId)
|
||||
initFlpANH_LIST(flpnlSendungen)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
txtSeiten.Focus()
|
||||
End Sub
|
||||
|
||||
Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click
|
||||
Dim frmGrayOut = VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO.grayoutForm()
|
||||
Dim sv As New frmAddSendungsvermerkShort(AvisoId, SENDUNG_LIST(CURRENT_INDEX).tblSnd_SendungID) ', dgvSendungen.SelectedRows(0).Cells("tblSnd_SendungID").Value)
|
||||
sv.Location = Me.PointToClient(System.Windows.Forms.Cursor.Position)
|
||||
sv.ShowDialog(frmGrayOut)
|
||||
frmGrayOut.Close()
|
||||
sv.Close()
|
||||
|
||||
' initVermerke()
|
||||
End Sub
|
||||
|
||||
Private Sub cbxAlternativePDFAnsicht_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAlternativePDFAnsicht.CheckedChanged
|
||||
For Each p As usrCntlSendungAnhangElement In flpnlAviso.Controls
|
||||
If p.ACTIVE Then
|
||||
initLocationViewer(p.FILE_PATH, p.FILE_TYPE) : Exit Sub
|
||||
End If
|
||||
Next
|
||||
|
||||
For Each p As usrCntlSendungAnhangElement In flpnlSendungen.Controls
|
||||
If p.ACTIVE Then
|
||||
initLocationViewer(p.FILE_PATH, p.FILE_TYPE)
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
'Private Sub txtBezeichnung_GotFocus(sender As Object, e As EventArgs) Handles txtBezeichnung.GotFocus
|
||||
' txtBezeichnung.SelectAll()
|
||||
|
||||
Reference in New Issue
Block a user