Merge branch 'newMaster2024' of https://git.it.verag.ag/edv/SDL into newMaster2024

This commit is contained in:
2026-04-27 08:13:53 +02:00
27 changed files with 867 additions and 475 deletions

View File

@@ -29,24 +29,25 @@ Partial Class frminterneEmailBenachrichtigungen
Me.cntxtOptionen = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.StornoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.Panel1 = New System.Windows.Forms.Panel()
Me.dgvBenachrichtigungen = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.pnloptions = New System.Windows.Forms.Panel()
Me.Label9 = New System.Windows.Forms.Label()
Me.MyTextBox2 = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.Button2 = New System.Windows.Forms.Button()
Me.Panel2 = New System.Windows.Forms.Panel()
Me.cboKategorie = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.cboFirma = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.Label5 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.pnlTop = New System.Windows.Forms.Panel()
Me.Label4 = New System.Windows.Forms.Label()
Me.cboOhneEmpf = New System.Windows.Forms.CheckBox()
Me.dgvBenachrichtigungen = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.MyTextBox2 = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.cboKategorie = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.cboFirma = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.cntxtOptionen.SuspendLayout()
Me.Panel1.SuspendLayout()
CType(Me.dgvBenachrichtigungen, System.ComponentModel.ISupportInitialize).BeginInit()
Me.pnloptions.SuspendLayout()
Me.Panel2.SuspendLayout()
Me.pnlTop.SuspendLayout()
CType(Me.dgvBenachrichtigungen, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'AbgeholtToolStripMenuItem
@@ -80,29 +81,6 @@ Partial Class frminterneEmailBenachrichtigungen
Me.Panel1.Size = New System.Drawing.Size(1429, 779)
Me.Panel1.TabIndex = 4
'
'dgvBenachrichtigungen
'
Me.dgvBenachrichtigungen.AKTUALISIERUNGS_INTERVALL = -1
Me.dgvBenachrichtigungen.AllowUserToAddRows = False
Me.dgvBenachrichtigungen.AllowUserToDeleteRows = False
Me.dgvBenachrichtigungen.AllowUserToOrderColumns = True
Me.dgvBenachrichtigungen.AllowUserToResizeRows = False
Me.dgvBenachrichtigungen.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
DataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
DataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window
DataGridViewCellStyle1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
DataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText
DataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.GradientInactiveCaption
DataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.ControlText
DataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
Me.dgvBenachrichtigungen.DefaultCellStyle = DataGridViewCellStyle1
Me.dgvBenachrichtigungen.Dock = System.Windows.Forms.DockStyle.Fill
Me.dgvBenachrichtigungen.Location = New System.Drawing.Point(0, 115)
Me.dgvBenachrichtigungen.Name = "dgvBenachrichtigungen"
Me.dgvBenachrichtigungen.RowHeadersVisible = False
Me.dgvBenachrichtigungen.Size = New System.Drawing.Size(1429, 604)
Me.dgvBenachrichtigungen.TabIndex = 10
'
'pnloptions
'
Me.pnloptions.BackColor = System.Drawing.Color.WhiteSmoke
@@ -125,33 +103,6 @@ Partial Class frminterneEmailBenachrichtigungen
Me.Label9.TabIndex = 7
Me.Label9.Text = "Max:"
'
'MyTextBox2
'
Me.MyTextBox2._DateTimeOnly = False
Me.MyTextBox2._numbersOnly = True
Me.MyTextBox2._numbersOnlyKommastellen = ""
Me.MyTextBox2._numbersOnlyTrennzeichen = True
Me.MyTextBox2._Prozent = False
Me.MyTextBox2._ShortDateNew = False
Me.MyTextBox2._ShortDateOnly = False
Me.MyTextBox2._TimeOnly = False
Me.MyTextBox2._TimeOnly_Seconds = False
Me.MyTextBox2._value = ""
Me.MyTextBox2._Waehrung = False
Me.MyTextBox2._WaehrungZeichen = True
Me.MyTextBox2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.MyTextBox2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.MyTextBox2.ForeColor = System.Drawing.Color.Black
Me.MyTextBox2.Location = New System.Drawing.Point(1369, 13)
Me.MyTextBox2.MaxLineLength = -1
Me.MyTextBox2.MaxLines_Warning = ""
Me.MyTextBox2.MaxLines_Warning_Label = Nothing
Me.MyTextBox2.Name = "MyTextBox2"
Me.MyTextBox2.Size = New System.Drawing.Size(48, 20)
Me.MyTextBox2.TabIndex = 8
Me.MyTextBox2.Text = "1000"
Me.MyTextBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
'
'Button2
'
Me.Button2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
@@ -172,6 +123,7 @@ Partial Class frminterneEmailBenachrichtigungen
'
Me.Panel2.BackColor = System.Drawing.Color.WhiteSmoke
Me.Panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Panel2.Controls.Add(Me.cboOhneEmpf)
Me.Panel2.Controls.Add(Me.cboKategorie)
Me.Panel2.Controls.Add(Me.cboFirma)
Me.Panel2.Controls.Add(Me.Label5)
@@ -182,36 +134,6 @@ Partial Class frminterneEmailBenachrichtigungen
Me.Panel2.Size = New System.Drawing.Size(1429, 115)
Me.Panel2.TabIndex = 11
'
'cboKategorie
'
Me.cboKategorie._allowedValuesFreiText = Nothing
Me.cboKategorie._allowFreiText = False
Me.cboKategorie._value = ""
Me.cboKategorie.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cboKategorie.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cboKategorie.DropDownWidth = 250
Me.cboKategorie.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cboKategorie.FormattingEnabled = True
Me.cboKategorie.Location = New System.Drawing.Point(95, 76)
Me.cboKategorie.Name = "cboKategorie"
Me.cboKategorie.Size = New System.Drawing.Size(143, 24)
Me.cboKategorie.TabIndex = 30
'
'cboFirma
'
Me.cboFirma._allowedValuesFreiText = Nothing
Me.cboFirma._allowFreiText = False
Me.cboFirma._value = ""
Me.cboFirma.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cboFirma.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cboFirma.DropDownWidth = 250
Me.cboFirma.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cboFirma.FormattingEnabled = True
Me.cboFirma.Location = New System.Drawing.Point(95, 49)
Me.cboFirma.Name = "cboFirma"
Me.cboFirma.Size = New System.Drawing.Size(143, 24)
Me.cboFirma.TabIndex = 26
'
'Label5
'
Me.Label5.AutoSize = True
@@ -253,6 +175,97 @@ Partial Class frminterneEmailBenachrichtigungen
Me.Label4.TabIndex = 0
Me.Label4.Text = "interne E-Mail Benachrichtungen"
'
'cboOhneEmpf
'
Me.cboOhneEmpf.AutoSize = True
Me.cboOhneEmpf.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cboOhneEmpf.Location = New System.Drawing.Point(256, 50)
Me.cboOhneEmpf.Name = "cboOhneEmpf"
Me.cboOhneEmpf.Size = New System.Drawing.Size(118, 17)
Me.cboOhneEmpf.TabIndex = 32
Me.cboOhneEmpf.Text = "ohne Empfänger"
Me.cboOhneEmpf.UseVisualStyleBackColor = True
'
'dgvBenachrichtigungen
'
Me.dgvBenachrichtigungen.AKTUALISIERUNGS_INTERVALL = -1
Me.dgvBenachrichtigungen.AllowUserToAddRows = False
Me.dgvBenachrichtigungen.AllowUserToDeleteRows = False
Me.dgvBenachrichtigungen.AllowUserToOrderColumns = True
Me.dgvBenachrichtigungen.AllowUserToResizeRows = False
Me.dgvBenachrichtigungen.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
DataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
DataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window
DataGridViewCellStyle1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
DataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText
DataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.GradientInactiveCaption
DataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.ControlText
DataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
Me.dgvBenachrichtigungen.DefaultCellStyle = DataGridViewCellStyle1
Me.dgvBenachrichtigungen.Dock = System.Windows.Forms.DockStyle.Fill
Me.dgvBenachrichtigungen.Location = New System.Drawing.Point(0, 115)
Me.dgvBenachrichtigungen.Name = "dgvBenachrichtigungen"
Me.dgvBenachrichtigungen.RowHeadersVisible = False
Me.dgvBenachrichtigungen.Size = New System.Drawing.Size(1429, 604)
Me.dgvBenachrichtigungen.TabIndex = 10
'
'MyTextBox2
'
Me.MyTextBox2._DateTimeOnly = False
Me.MyTextBox2._numbersOnly = True
Me.MyTextBox2._numbersOnlyKommastellen = ""
Me.MyTextBox2._numbersOnlyTrennzeichen = True
Me.MyTextBox2._Prozent = False
Me.MyTextBox2._ShortDateNew = False
Me.MyTextBox2._ShortDateOnly = False
Me.MyTextBox2._TimeOnly = False
Me.MyTextBox2._TimeOnly_Seconds = False
Me.MyTextBox2._value = ""
Me.MyTextBox2._Waehrung = False
Me.MyTextBox2._WaehrungZeichen = True
Me.MyTextBox2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.MyTextBox2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.MyTextBox2.ForeColor = System.Drawing.Color.Black
Me.MyTextBox2.Location = New System.Drawing.Point(1369, 13)
Me.MyTextBox2.MaxLineLength = -1
Me.MyTextBox2.MaxLines_Warning = ""
Me.MyTextBox2.MaxLines_Warning_Label = Nothing
Me.MyTextBox2.Name = "MyTextBox2"
Me.MyTextBox2.Size = New System.Drawing.Size(48, 20)
Me.MyTextBox2.TabIndex = 8
Me.MyTextBox2.Text = "1000"
Me.MyTextBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
'
'cboKategorie
'
Me.cboKategorie._allowedValuesFreiText = Nothing
Me.cboKategorie._allowFreiText = False
Me.cboKategorie._value = ""
Me.cboKategorie.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cboKategorie.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cboKategorie.DropDownWidth = 250
Me.cboKategorie.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cboKategorie.FormattingEnabled = True
Me.cboKategorie.Location = New System.Drawing.Point(95, 76)
Me.cboKategorie.Name = "cboKategorie"
Me.cboKategorie.Size = New System.Drawing.Size(143, 24)
Me.cboKategorie.TabIndex = 30
'
'cboFirma
'
Me.cboFirma._allowedValuesFreiText = Nothing
Me.cboFirma._allowFreiText = False
Me.cboFirma._value = ""
Me.cboFirma.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cboFirma.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cboFirma.DropDownWidth = 250
Me.cboFirma.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cboFirma.FormattingEnabled = True
Me.cboFirma.Location = New System.Drawing.Point(95, 49)
Me.cboFirma.Name = "cboFirma"
Me.cboFirma.Size = New System.Drawing.Size(143, 24)
Me.cboFirma.TabIndex = 26
'
'frminterneEmailBenachrichtigungen
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -267,13 +280,13 @@ Partial Class frminterneEmailBenachrichtigungen
Me.Text = "interne E-Mail Benachrichtigungen"
Me.cntxtOptionen.ResumeLayout(False)
Me.Panel1.ResumeLayout(False)
CType(Me.dgvBenachrichtigungen, System.ComponentModel.ISupportInitialize).EndInit()
Me.pnloptions.ResumeLayout(False)
Me.pnloptions.PerformLayout()
Me.Panel2.ResumeLayout(False)
Me.Panel2.PerformLayout()
Me.pnlTop.ResumeLayout(False)
Me.pnlTop.PerformLayout()
CType(Me.dgvBenachrichtigungen, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
@@ -294,4 +307,5 @@ Partial Class frminterneEmailBenachrichtigungen
Friend WithEvents Label1 As Windows.Forms.Label
Friend WithEvents cboFirma As MyComboBox
Friend WithEvents Label5 As Windows.Forms.Label
Friend WithEvents cboOhneEmpf As Windows.Forms.CheckBox
End Class

View File

@@ -1,4 +1,5 @@
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Windows.Forms
Public Class frminterneEmailBenachrichtigungen
@@ -15,23 +16,20 @@ Public Class frminterneEmailBenachrichtigungen
cboFirma.fillWithSQL("SELECT distinct(Firma_Bez) FROM [tblFirma] order by Firma_Bez", False, "FMZOLL", True)
cboFirma.changeItem(cAllgemein.FIRMA)
loadDGVPuefungsobjekte()
loadDGVMailbenachrichtigungen()
End Sub
Private Sub cboKategorie_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboKategorie.SelectedIndexChanged
loadDGVPuefungsobjekte()
loadDGVMailbenachrichtigungen()
End Sub
Private Sub cboFirma_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFirma.SelectedIndexChanged
loadDGVPuefungsobjekte()
loadDGVMailbenachrichtigungen()
End Sub
Sub loadDGVPuefungsobjekte()
Sub loadDGVMailbenachrichtigungen()
Try
Me.Cursor = Cursors.WaitCursor
@@ -40,7 +38,7 @@ Public Class frminterneEmailBenachrichtigungen
Dim sqlstr As String = ""
sqlstr &= " SELECT e.mb_id,e.mb_aktiv,e.mb_object,e.mb_beschreibung,STRING_AGG(m.mit_email, ', ') AS Emails,STRING_AGG(m.mit_nname, ', ') as Mitarbeiter,COUNT(DISTINCT m.mit_email) AS Anzahl,e.mb_firmaID,ISNULL(f.Firma_Bez,'ALLE') AS Firma_Bez
sqlstr &= " SELECT e.mb_id,e.mb_aktiv,e.mb_object,e.mb_beschreibung,STRING_AGG(m.mit_email, ', ') AS Emails,STRING_AGG(m.mit_nname, ', ') as Mitarbeiter,COUNT(DISTINCT m.mit_email) AS Anzahl,e.mb_firmaID,ISNULL(f.Firma_Bez,'ALLE') AS Firma_Bez, MAX(CASE WHEN ISNULL(m.mit_gekuendigt,0) <> 0 THEN 1 ELSE 0 END) AS inaktivMA
FROM [tblEMailbenachrichtigungen] e
LEFT JOIN [VERAG].[dbo].[tblFirma] f ON e.mb_firmaID = f.Firma_ID
@@ -51,8 +49,13 @@ Public Class frminterneEmailBenachrichtigungen
WHERE 1 = 1 "
With dgvBenachrichtigungen
Dim SQLHAVING As String = ""
If cboOhneEmpf.Checked Then
SQLHAVING &= " HAVING COUNT(DISTINCT m.mit_email) = 0 "
End If
.SET_SQL(sqlstr & getWherePruefungsobjekte() & " GROUP BY e.mb_id,e.mb_aktiv,e.mb_object,mb_beschreibung,e.mb_firmaID,f.Firma_Bez ORDER BY mb_object,f.Firma_Bez ", "ADMIN", getListBenachrichtigungen)
.SET_SQL(sqlstr & getWherePruefungsobjekte() & " GROUP BY e.mb_id,e.mb_aktiv,e.mb_object,mb_beschreibung,e.mb_firmaID,f.Firma_Bez " & SQLHAVING & " ORDER BY mb_object,f.Firma_Bez ", "ADMIN", getListBenachrichtigungen)
.LOAD()
showDGVPruefungsobjekte()
End With
@@ -74,6 +77,7 @@ Public Class frminterneEmailBenachrichtigungen
.Columns("mb_id").Visible = False
.Columns("mb_firmaID").Visible = False
.Columns("inaktivMA").Visible = False
.Columns("mb_object").Width = 200
.Columns("mb_object").HeaderText = "Benachrichtigung"
@@ -99,6 +103,12 @@ Public Class frminterneEmailBenachrichtigungen
.Columns("mb_aktiv").Width = 40
.Columns("mb_aktiv").HeaderText = "Aktiv"
For Each r As DataGridViewRow In dgvBenachrichtigungen.Rows
If CInt(r.Cells("inaktivMA").Value) > 0 Then
r.Cells("Mitarbeiter").Style.BackColor = Color.IndianRed
End If
Next
End With
End Sub
@@ -108,6 +118,7 @@ Public Class frminterneEmailBenachrichtigungen
If cboFirma._value <> "" Then sqlstr &= " AND Firma_Bez LIKE @Firma_Bez "
If cboKategorie._value <> "" Then sqlstr &= " AND mb_object LIKE @mb_object "
Return sqlstr
End Function
@@ -127,6 +138,7 @@ Public Class frminterneEmailBenachrichtigungen
End Sub
Private Sub cboOhneEmpf_CheckedChanged(sender As Object, e As EventArgs) Handles cboOhneEmpf.CheckedChanged
loadDGVMailbenachrichtigungen()
End Sub
End Class

View File

@@ -28,6 +28,9 @@ Public Enum cAPI_ART
SDL_OUT_FA = 81
SDL_OUT_SAMMELRECHNUNG = 82
AVISO_IN_CS = 83
AVISO_OUT_SAMMELRECHNUNG = 84
AVISO_OUT_EINZELRECHNUNG = 85
SDL_OUT_RS_ORIGINALRECHNUNGEN = 86
End Enum

View File

@@ -113,6 +113,7 @@ Public Class cKundenErweitert
Property kde_CBAM_ApplicationNo As Object = Nothing
Property kde_CBAM_CBAMAccountNo As Object = Nothing
Property kde_abwToleranzTage As Object = Nothing
Property kde_SR_IM_EX As Boolean = False
Dim SQL As New SQL
@@ -234,6 +235,7 @@ Public Class cKundenErweitert
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_CBAM_ApplicationNo", kde_CBAM_ApplicationNo))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_CBAM_CBAMAccountNo", kde_CBAM_CBAMAccountNo))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_abwToleranzTage", kde_abwToleranzTage))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_SR_IM_EX", kde_SR_IM_EX))

View File

@@ -3,9 +3,12 @@ Imports System.Drawing
Imports System.Drawing.Printing
Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Text.RegularExpressions
Imports System.Windows.Forms
Imports DocumentFormat.OpenXml
Imports iTextSharp.text.pdf
Imports Org.apache.pdfbox.pdmodel.graphics.color
Imports Spire.Pdf
Imports Spire.Pdf.Attachments
Imports Spire.Pdf.Print
@@ -1393,10 +1396,10 @@ Public Class cFormularManager
For Each pdfPath As String In PDFFile
Using doc As New Spire.Pdf.PdfDocument(pdfPath)
Using doc As New Spire.Pdf.PdfDocument(pdfPath)
If doc.Pages.Count = 0 Then Continue For
Dim size = doc.Pages(0).Size
If doc.Pages.Count = 0 Then Continue For
Dim size = doc.Pages(0).Size
If size.Width <= 10 OrElse size.Height <= 10 Then Continue For 'zu kleine Seiten überspringen
' --- Druckeinstellungen ---
doc.PrintSettings.PrinterName = printerName
@@ -1405,9 +1408,9 @@ Public Class cFormularManager
doc.PrintSettings.SelectSinglePageLayout(PdfSinglePageScalingMode.FitSize, True)
doc.Print()
End Using
End Using
Next
Next
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
@@ -2437,6 +2440,112 @@ Public Class DATENVERVER_OPTIONS
End Function
Public Shared Function addZugferdXML(File As String, attPath As String) As String
Dim tempFile As String = File & ".tmp"
Using reader As New PdfReader(File)
Using fs As New FileStream(tempFile, FileMode.Create)
Using stamper As New PdfStamper(reader, fs)
Dim xmlBytes = System.IO.File.ReadAllBytes(attPath)
Dim fileName As String = "factur-x.xml"
Dim fspec = PdfFileSpecification.FileEmbedded(
stamper.Writer,
fileName,
fileName,
xmlBytes,
"application/xml",
Nothing,
0
)
fspec.Put(PdfName.AFRELATIONSHIP, New PdfName("Alternative"))
stamper.Writer.AddFileAttachment("ZUGFeRD", fspec)
Dim af As New PdfArray()
af.Add(fspec.Reference)
stamper.Writer.ExtraCatalog.Put(PdfName.AFRELATIONSHIP, af)
SetZugferdXmp(stamper, fileName)
End Using
End Using
End Using
System.IO.File.Delete(File)
System.IO.File.Move(tempFile, File)
Return File
End Function
Public Shared Function ConvertToPdfA3(inputPdf As String) As String
Dim tempFile As String = inputPdf & ".tmp"
Dim reader As New PdfReader(inputPdf)
Using fs As New FileStream(tempFile, FileMode.Create, FileAccess.Write)
Using stamper As New PdfStamper(reader, fs)
' ✔ DAS ist in iTextSharp 5 der einzig relevante PDF/A-Baustein
Dim iccPath As String =
"C:\Windows\System32\spool\drivers\color\sRGB Color Space Profile.icm"
Dim icc = ICC_Profile.GetInstance(File.ReadAllBytes(iccPath))
stamper.Writer.SetOutputIntents(
"Custom",
"",
"http://www.color.org",
"sRGB IEC61966-2.1",
icc
)
stamper.Writer.PDFXConformance = PdfWriter.PDFX32002
End Using
End Using
reader.Close()
If File.Exists(inputPdf) Then File.Delete(inputPdf)
File.Move(tempFile, inputPdf)
Return inputPdf
End Function
Private Shared Sub SetZugferdXmp(stamper As PdfStamper, xmlFileName As String)
Dim xmp As String =
"<?xpacket begin="""" id=""W5M0MpCehiHzreSzNTczkc9d""?>" &
"<x:xmpmeta xmlns:x=""adobe:ns:meta/"">" &
"<rdf:RDF xmlns:rdf=""http://www.w3.org/1999/02/22-rdf-syntax-ns#"" " &
"xmlns:pdfaid=""http://www.aiim.org/pdfa/ns/id/"" " &
"xmlns:zf=""urn:factur-x:pdfa:CrossIndustryDocument:invoice:2#"" >" &
"<rdf:Description rdf:about="""">" &
"<pdfaid:part>3</pdfaid:part>" &
"<pdfaid:conformance>B</pdfaid:conformance>" &
"<zf:DocumentType>INVOICE</zf:DocumentType>" &
"<zf:DocumentFileName>" & xmlFileName & "</zf:DocumentFileName>" &
"<zf:Version>2.1</zf:Version>" &
"<zf:ConformanceLevel>EN 16931</zf:ConformanceLevel>" &
"</rdf:Description>" &
"</rdf:RDF>" &
"</x:xmpmeta>" &
"<?xpacket end=""w""?>"
stamper.XmpMetadata = Encoding.UTF8.GetBytes(xmp)
End Sub
Public Shared Function addAttachementToPDF(File As String, attPath As String, Optional renameFile As String = "") As String
Try
@@ -2496,9 +2605,9 @@ Public Class barcodeToPdf
Public width As Integer
Public height As Integer
Public onpage = 1
Public rotate As Drawing.RotateFlipType = RotateFlipType.RotateNoneFlipNone
Public rotate As System.Drawing.RotateFlipType = RotateFlipType.RotateNoneFlipNone
Sub New(image As Image, x As Integer, y As Integer, width As Integer, height As Integer, onpage As Integer, rotate As Drawing.RotateFlipType)
Sub New(image As Image, x As Integer, y As Integer, width As Integer, height As Integer, onpage As Integer, rotate As System.Drawing.RotateFlipType)
Me.image = image
Me.x = x
Me.y = y

View File

@@ -953,6 +953,7 @@
<EmbeddedResource Include="Benutzerdefinierte Steuerelemente\usrcntlKdSearch.resx">
<DependentUpon>usrcntlKdSearch.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="obj\x64\Debug\VERAG_PROG_ALLGEMEIN.frminterneEmailBenachrichtigungen.resources" />
</ItemGroup>
<ItemGroup>
<None Include="Classes\USTV\Swagger">