fix für PDF-Attachment bei MergePDFs

This commit is contained in:
2026-06-25 14:14:44 +02:00
parent 66c6f84725
commit c829d349aa
14 changed files with 491 additions and 55 deletions

View File

@@ -366,6 +366,76 @@ Public Class cProgramFunctions
End If
End Sub
Public Shared Function ValidateSQLFieldLengths(parameters As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable), tableName As String, Info As String, Optional conn_art As String = "FMZOLL", Optional showError As Boolean = True) As Boolean
Try
Dim sql As String =
"SELECT COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" & tableName & "' AND DATA_TYPE IN ('varchar','nvarchar','char','nchar')"
Dim dt As DataTable =
(New SQL).loadDgvBySql(sql, conn_art)
If dt Is Nothing Then Return False
Dim fieldLengths As New Dictionary(Of String, Integer)(StringComparer.OrdinalIgnoreCase)
For Each r As DataRow In dt.Rows
fieldLengths(r!COLUMN_NAME.ToString) =
CInt(r!CHARACTER_MAXIMUM_LENGTH)
Next
Dim errors As New List(Of String)
For Each p As SQLVariable In parameters
If p Is Nothing Then Continue For
If p.Value() Is Nothing Then Continue For
If p.Text() Is Nothing Then Continue For
Dim fieldName As String = p.Text().TrimStart("@"c)
If Not fieldLengths.ContainsKey(fieldName) Then Continue For
Dim maxLen As Integer = fieldLengths(fieldName)
' varchar(max) / nvarchar(max)
If maxLen = -1 Then Continue For
Dim value As String = p.Value().ToString
If value.Length > maxLen Then
errors.Add(fieldName & " -> " & value.Length & "/" & maxLen)
End If
Next
If errors.Count > 0 Then
Info = "Folgende SQL-Felder sind zu lang:" & vbCrLf & vbCrLf & String.Join(vbCrLf, errors)
If showError Then
MsgBox(Info, MsgBoxStyle.Exclamation)
End If
Return False
End If
Return True
Catch ex As Exception
MsgBox("ValidateSQLFieldLengths:" & vbCrLf & ex.Message)
Return False
End Try
End Function
Public Shared Function fktEuro(varBetrag As Object, varVonWährung As Object, varNachWährung As Object) As Object
'(FixeTaxe, "ATS", RECHNUNG.Währungscode)
'Dim varVonWährung As Object
@@ -948,11 +1018,19 @@ BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, [Control], New Object(
Return SQL.getValueTxtBySql(sqlstr, "FMZOLL")
End Function
Shared Function getISO1Land(LandKz As String)
Dim sqlstr = "SELECT TOP 1 isnull(Währungstabelle.LandKz,'') AS LandKzISO1 FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN Währungstabelle ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = Währungstabelle.Währungsschlüssel WHERE [Länderverzeichnis für die Außenhandelsstatistik].LandKz='" & LandKz & "' "
Shared Function getLandEnglFromISO2Land(Iso2Land As String)
Dim sqlstr = "SELECT TOP 1 isnull(Land_EN,'') AS LandBez FROM [Währungstabelle] LEFT JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = Währungstabelle.Währungsschlüssel WHERE [Länderverzeichnis für die Außenhandelsstatistik].LandKz='" & Iso2Land & "' "
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Return SQL.getValueTxtBySql(sqlstr, "FMZOLL")
End Function
Shared Function getISO1Land(LandKz As String)
Dim sqlstr = "SELECT TOP 1 isnull(Währungstabelle.Land_EN,'') AS LandBez FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN Währungstabelle ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = Währungstabelle.Währungsschlüssel WHERE [Länderverzeichnis für die Außenhandelsstatistik].LandKz='" & LandKz & "' "
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Return SQL.getValueTxtBySql(sqlstr, "FMZOLL")
End Function
Shared Function convertToIso(s) As String
Return s