This commit is contained in:
2019-10-28 09:30:39 +01:00
parent d29dc72b22
commit 6ae299259e
38 changed files with 2570 additions and 1168 deletions

View File

@@ -61,7 +61,7 @@ Public Class frmSendungAnhangImport
' PdfViewer.DocumentLoaded += New EventHandler(AddressOf radPdfViewer1_DocumentLoaded)
txtDateiname.Text = USRCNTL.FILE_NAME
txtSeiten.Focus()
' End If
End Sub
@@ -135,6 +135,13 @@ Public Class frmSendungAnhangImport
' End Try
'End Function
Function getPDFSplitName(FILE_NAME)
If txtBezeichnung.Text <> "" Then
Return txtBezeichnung.Text
End If
Return FILE_NAME
End Function
Dim tmpPageMove = 0
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnAnfuegen.Click
If txtSeiten.Text = "" Then Exit Sub
@@ -142,8 +149,14 @@ Public Class frmSendungAnhangImport
If cboSendungen._value = "" Then Exit Sub
If Not checkSeiten() Then Exit Sub
Dim CurrentPageNumber = PdfViewer.CurrentPageNumber
Dim pages = getPagesFromText()
Dim cntl = getAcitveCntl()
Dim cntlID = If(cntl IsNot Nothing, getAcitveCntl().FILE_ANHID, -1)
For Each u As usrCntlSendungAnhangElement In flpnlAviso.Controls
If u.ACTIVE Then
If u.FILE_TYPE <> "PDF" Then Exit Sub
Dim fi As New FileInfo(u.FILE_PATH)
'-------------
'------------- PDFs extrahieren und auf den Datenserver laden + Eintrag in tblAvisoAnhaenger
@@ -154,12 +167,13 @@ Public Class frmSendungAnhangImport
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)
saveToDS(AvisoId, getPDFSplitName(u.FILE_NAME), TMP_Path_New, cboArt._value, u.FILE_TYPE,,,, SendngsId)
'-------------
'------------- PDFs aus der original Datei löschen
'-------------
' tryDelete(TMP_Path_New)
'tryDelete(TMP_Path_New)
If cbxDelPDF.Checked Then
If cbxDelPDF.Checked Then
@@ -189,33 +203,55 @@ Public Class frmSendungAnhangImport
clearPnlAnfuegen()
' initSendungen()
Dim CurrentPageNumber = PdfViewer.CurrentPageNumber
Dim pages = getPagesFromText()
Dim cntl = getAcitveCntl()
initFlpANH_LIST()
If flpnlAviso.Controls.Count > 0 Then
If Not setAvtive(flpnlAviso, CurrentPageNumber, pages, cntl) Then
If Not setAvtiveById(flpnlAviso, CurrentPageNumber, pages, cntlID) Then
DirectCast(flpnlAviso.Controls(0), usrCntlSendungAnhangElement).CLICK_Me()
End If
End If
End Sub
Function setAvtive(pnl, CurrentPageNumber, listDelPages, u) As Boolean
For Each p As usrCntlSendungAnhangElement In flpnlAviso.Controls
If p Is u Then
p.ACTIVE = True
Dim newCurrentPageNumber = CurrentPageNumber
For Each s In getPagesFromText() ' vorheirge Seiten, die gelöscht wurden werden abgezogen
If s < CurrentPageNumber Then CurrentPageNumber -= 1
Next
If newCurrentPageNumber > 0 Then PdfViewer.GoToPage(newCurrentPageNumber)
Return True
End If
Next
Function setAvtiveById(pnl As FlowLayoutPanel, CurrentPageNumber As Integer, listDelPages As List(Of Integer), anhId As Integer) As Boolean
Try
For Each p As usrCntlSendungAnhangElement In flpnlAviso.Controls
If p.FILE_ANHID = anhId Then
'p.ACTIVE = True
p.CLICK_Me()
Dim newCurrentPageNumber = CurrentPageNumber
For Each s In getPagesFromText() ' vorheirge Seiten, die gelöscht wurden werden abgezogen
If s < CurrentPageNumber Then CurrentPageNumber -= 1
Next
If PdfViewer.IsDocumentLoaded Then
If newCurrentPageNumber > 0 Then PdfViewer.GoToPage(newCurrentPageNumber)
End If
Return True
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
Return False
End Function
Function setAvtive(pnl As FlowLayoutPanel, CurrentPageNumber As Integer, listDelPages As List(Of Integer), u As usrCntlSendungAnhangElement) As Boolean
Try
For Each p As usrCntlSendungAnhangElement In flpnlAviso.Controls
If p Is u Then
p.ACTIVE = True
Dim newCurrentPageNumber = CurrentPageNumber
For Each s In getPagesFromText() ' vorheirge Seiten, die gelöscht wurden werden abgezogen
If s < CurrentPageNumber Then CurrentPageNumber -= 1
Next
If newCurrentPageNumber > 0 Then PdfViewer.GoToPage(newCurrentPageNumber)
Return True
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
Return False
End Function
Private Sub Button1_ClickALL(sender As Object, e As EventArgs) Handles btnAnfuegenAll.Click
If cboSendungen._value = "" Then Exit Sub
@@ -243,10 +279,11 @@ Public Class frmSendungAnhangImport
End If
Else
ANH.anh_SendungsId = SendngsId
If cboArt._value <> "" Then ANH.anh_Art = cboArt._value
ANH.anh_id = -1 'neuer Eintrag
ANH.SAVE()
ANH.SAVE()
End If
End If
End If
Next
clearPnlAnfuegen()
' initSendungen()
@@ -257,6 +294,7 @@ Public Class frmSendungAnhangImport
txtDateiname.Text = ""
txtSeiten.Text = ""
cboArt.Text = ""
txtBezeichnung.Text = ""
txtSeiten.Focus()
Dim u As usrCntlSendungAnhangElement = getAcitveCntl()
@@ -400,8 +438,22 @@ Public Class frmSendungAnhangImport
' Dim pageInt = p - 1 ' Nciht SeitenNr. sonder Aufzählung
Dim pageInt = p
If pageInt >= 0 And pageInt < pdf.Pages.Count Then
page = pdf1.Pages.Add(pdf.Pages(p).Size, New Graphics.PdfMargins(0))
pdf.Pages(p).CreateTemplate().Draw(page, New System.Drawing.PointF(0, 0))
Dim pageOLD As PdfPageBase = pdf.Pages(pageInt)
If pageOLD.Rotation = PdfPageRotateAngle.RotateAngle90 Then
page = pdf1.Pages.Add(New SizeF(pageOLD.Size.Height, pageOLD.Size.Width), New Graphics.PdfMargins(0))
ElseIf pageOLD.Rotation = PdfPageRotateAngle.RotateAngle270 Then
page = pdf1.Pages.Add(New SizeF(pageOLD.Size.Height, pageOLD.Size.Width), New Graphics.PdfMargins(0))
Else
page = pdf1.Pages.Add(pageOLD.Size, New Graphics.PdfMargins(0))
End If
pdf.Pages(pageInt).CreateTemplate().Draw(page, New System.Drawing.PointF(0, 0))
'alter Kot:
'page = pdf1.Pages.Add(pdf.Pages(p).Size, New Graphics.PdfMargins(0))
'pdf.Pages(p).CreateTemplate().Draw(page, New System.Drawing.PointF(0, 0))
PagesLeft += 1
End If
Next
@@ -422,6 +474,31 @@ Public Class frmSendungAnhangImport
Try
''Load the original PDF
'Dim pdf As New PdfDocument()
'pdf.LoadFromFile("20191017092932604.pdf")
''Get the first page
'Dim page As PdfPageBase = pdf.Pages(0)
''Create a new PDF file
'Dim pdf1 As New PdfDocument()
'Dim newPage As PdfPageBase
''Judge if the page is rotated and rotate it back
'If page.Rotation = PdfPageRotateAngle.RotateAngle90 Then
' newPage = pdf1.Pages.Add(New SizeF(page.Size.Height, page.Size.Width), New PdfMargins(0))
'End If
'If page.Rotation = PdfPageRotateAngle.RotateAngle270 Then
' newPage = pdf1.Pages.Add(New SizeF(page.Size.Height, page.Size.Width), New PdfMargins(0))
'Else
' newPage = pdf1.Pages.Add(page.Size, New PdfMargins(0))
'End If
''Draw template on new page
'page.CreateTemplate().Draw(newPage, New PointF(0, 0))
''Save the file
'pdf1.SaveToFile("result.pdf", Spire.Pdf.FileFormat.PDF)
Dim pdf As New PdfDocument()
pdf.LoadFromFile(sourceFile)
@@ -431,8 +508,20 @@ Public Class frmSendungAnhangImport
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 Graphics.PdfMargins(0))
Dim pageOLD As PdfPageBase = pdf.Pages(pageInt)
If pageOLD.Rotation = PdfPageRotateAngle.RotateAngle90 Then
page = pdf1.Pages.Add(New SizeF(pageOLD.Size.Height, pageOLD.Size.Width), New Graphics.PdfMargins(0))
ElseIf pageOLD.Rotation = PdfPageRotateAngle.RotateAngle270 Then
page = pdf1.Pages.Add(New SizeF(pageOLD.Size.Height, pageOLD.Size.Width), New Graphics.PdfMargins(0))
Else
page = pdf1.Pages.Add(pageOLD.Size, New Graphics.PdfMargins(0))
End If
pdf.Pages(pageInt).CreateTemplate().Draw(page, New System.Drawing.PointF(0, 0))
'alter Kot:
' page = pdf1.Pages.Add(pdf.Pages(pageInt).Size, New Graphics.PdfMargins(0))
'pdf.Pages(pageInt).CreateTemplate().Draw(page, New System.Drawing.PointF(0, 0))
End If
Next
pdf1.SaveToFile(destinationFile)
@@ -610,17 +699,19 @@ Public Class frmSendungAnhangImport
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Ausfuhr", "Ausfuhr"))
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("Sonstiges", "Sonstiges"))
initSendungen()
cboSendungen.changeItem(-1)
' cboSendungen.changeItem(-1)
initFlpANH_LIST(flpnlAviso)
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
Private Sub txtSeiten_KeyDown(sender As Object, e As KeyEventArgs) Handles txtSeiten.KeyDown, cboArt.KeyDown, txtBezeichnung.KeyDown
If e.KeyCode = Keys.Return Then
btnAnfuegen.PerformClick()
End If
@@ -645,11 +736,11 @@ Public Class frmSendungAnhangImport
MyTextBox2.Text = cboSendungen.Text
flpnlSendungen.Controls.Clear()
initFlpANH_LIST()
initFlpANH_LIST(flpnlSendungen)
End Sub
Sub initFlpANH_LIST()
Sub initFlpANH_LIST(Optional pnl As FlowLayoutPanel = Nothing)
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
@@ -657,8 +748,8 @@ Public Class frmSendungAnhangImport
' 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()
If pnl Is Nothing OrElse pnl Is flpnlSendungen Then flpnlSendungen.Controls.Clear()
If pnl Is Nothing OrElse pnl Is flpnlAviso Then flpnlAviso.Controls.Clear()
For Each a In ANH_LIST
@@ -675,13 +766,13 @@ Public Class frmSendungAnhangImport
If If(a.anh_SendungsId, 0) > 0 Then
If cboSendungen._value <> "" AndAlso cboSendungen._value = a.anh_SendungsId Then
flpnlSendungen.Controls.Add(USRCNTL)
If pnl Is Nothing OrElse pnl Is flpnlSendungen Then flpnlSendungen.Controls.Add(USRCNTL)
End If
Else
flpnlAviso.Controls.Add(USRCNTL)
If pnl Is Nothing OrElse pnl Is flpnlAviso Then flpnlAviso.Controls.Add(USRCNTL)
End If
Next
initLocationViewer("", "PDF")
'If act Is Nothing Then initLocationViewer("", "PDF")
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnAnfuegenAll.Click
@@ -859,7 +950,7 @@ Public Class frmSendungAnhangImport
BrowserLoaded = True
End Sub
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles btnAddSnd.Click
Dim f As New frmAddSendnung(AvisoId)
f.ShowDialog(Me)
initSendungen()
@@ -900,24 +991,125 @@ Public Class frmSendungAnhangImport
End Sub
Private Sub txtSeiten_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles txtSeiten.PreviewKeyDown, cboArt.PreviewKeyDown
If e.Modifiers = Keys.Control Then
If e.KeyCode = Keys.PageDown Then
cboSendungen.SelectedIndex = cboSendungen.SelectedIndex + 1
Try
If e.Modifiers = Keys.Alt Then ' Sendungen durchlaufen
If e.KeyCode = Keys.PageDown Then
cboSendungen.SelectedIndex = cboSendungen.SelectedIndex + 1
End If
If e.KeyCode = Keys.PageUp Then
cboSendungen.SelectedIndex = cboSendungen.SelectedIndex - 1
End If
ElseIf e.Modifiers = Keys.Control Then ' PDFs durchlaufen
If e.KeyCode = Keys.PageDown Then
nextPDF()
End If
If e.KeyCode = Keys.PageUp Then
prevPDF()
End If
If e.KeyCode = Keys.Add Then
btnAddSnd.PerformClick()
End If
Else
If e.KeyCode = Keys.PageDown Then
PdfViewer.GoToPage(PdfViewer.CurrentPageNumber + 1)
End If
If e.KeyCode = Keys.PageUp Then
PdfViewer.GoToPage(PdfViewer.CurrentPageNumber - 1)
End If
End If
If e.KeyCode = Keys.PageUp Then
cboSendungen.SelectedIndex = cboSendungen.SelectedIndex - 1
Catch ex As ArgumentOutOfRangeException
'out of range
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Sub nextPDF()
Dim bool_next = False
For Each c As usrCntlSendungAnhangElement In flpnlAviso.Controls
If bool_next Then c.CLICK_Me() : Exit Sub
If c.ACTIVE Then
bool_next = True
End If
Else
If e.KeyCode = Keys.PageDown Then
PdfViewer.GoToPage(PdfViewer.CurrentPageNumber + 1)
Next
End Sub
Sub prevPDF()
Dim ctmp As usrCntlSendungAnhangElement = Nothing
For Each c As usrCntlSendungAnhangElement In flpnlAviso.Controls
If c.ACTIVE Then
If ctmp IsNot Nothing Then ctmp.CLICK_Me()
Exit Sub
End If
If e.KeyCode = Keys.PageUp Then
PdfViewer.GoToPage(PdfViewer.CurrentPageNumber - 1)
ctmp = c
Next
End Sub
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.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
Dim CurrentPageNumber = PdfViewer.CurrentPageNumber
Dim pages = getPagesFromText()
Dim cntl = getAcitveCntl()
Dim cntlID = If(cntl IsNot Nothing, getAcitveCntl().FILE_ANHID, -1)
For Each u As usrCntlSendungAnhangElement In flpnlAviso.Controls
If u.ACTIVE Then
If u.FILE_TYPE <> "PDF" Then Exit Sub
Dim fi As New FileInfo(u.FILE_PATH)
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")
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 PagesLeft = 0 Then
'delFromDS(u.FILE_DOCID)
deleteElement(u.FILE_DOCID, u.FILE_ANHID, False)
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
'-------------
End If
Next
clearPnlAnfuegen()
' initSendungen()
initFlpANH_LIST()
If flpnlAviso.Controls.Count > 0 Then
If Not setAvtiveById(flpnlAviso, CurrentPageNumber, pages, cntlID) Then
DirectCast(flpnlAviso.Controls(0), usrCntlSendungAnhangElement).CLICK_Me()
End If
End If
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
PdfViewer.Rotate(Spire.PdfViewer.Forms.RotateAngle.RotateAngle90)
End Sub
Private Sub cboArt_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboArt.SelectedIndexChanged
If cboArt.Text.Replace("Sonstige", "") <> "" Then
txtBezeichnung.Text = cboArt.Text.Replace("Rechnung", "Handelsrechnung") & ".pdf"
End If
End Sub
'Private Sub txtBezeichnung_GotFocus(sender As Object, e As EventArgs) Handles txtBezeichnung.GotFocus
' txtBezeichnung.SelectAll()
'End Sub
'Dim angle = 0
'Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click