Vers, Therore, ActiveReports

This commit is contained in:
2024-10-02 11:23:39 +02:00
parent a39d888c67
commit b3dc251ff5
5 changed files with 154 additions and 649 deletions

View File

@@ -1,15 +1,16 @@
Imports Therefore.API
Imports System.ServiceModel.Configuration
Imports Therefore.API
Public Class cTherefore
Shared Function saveFileTo_ImportFolder(Path As String, FilialeAbfertigungsNr As String, AvisoId As String, FirmaId As String, Optional deleteFileAfterImport As Boolean = False)
FilialeAbfertigungsNr = FilialeAbfertigungsNr.Replace(";", " ")
FilialeAbfertigungsNr = FilialeAbfertigungsNr.Replace("/", " ")
FilialeAbfertigungsNr = FilialeAbfertigungsNr.Replace("-", " ")
if FilialeAbfertigungsNr.Length> 30 then FilialeAbfertigungsNr=FilialeAbfertigungsNr.ToString.Substring(0,30)
If FilialeAbfertigungsNr.Length > 30 Then FilialeAbfertigungsNr = FilialeAbfertigungsNr.ToString.Substring(0, 30)
Select Case FirmaId
Case 7
Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Atilla ab Juni 2011",, deleteFileAfterImport)
Case 21,22,23
Case 21, 22, 23
'Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Import ab Jänner 2021 UNISPED", "UNISPED\Import ab Jänner 2021 UNISPED DE", deleteFileAfterImport)
'Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Import ab Jänner 2021 UNISPED", "Import ab Jänner 2021 UNISPED DE", deleteFileAfterImport)
@@ -27,6 +28,132 @@ Public Class cTherefore
End Select
End Function
Shared Function getFileFromFolderCat(Path As String, FilialeAbfertigungsNr As String, AvisoId As String, Category As String, Optional Category2 As String = "", Optional deleteFileAfterImport As Boolean = False)
Try
' MsgBox("go: ")
'Dim SQL_VERAG As New VERAG_PROG_ALLGEMEIN.SQL
'Dim abfertNr = FilialeAbfertigungsNr
'Dim docid As String = ""
'Dim Filiale = FilialeAbfertigungsNr.Substring(0, 4)
'If Filiale = 4801 Then
' docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat17] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
'ElseIf Filiale = 5601 Then
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat393] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat394] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
'ElseIf Filiale = 5701 Then
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat395] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat397] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
'Else
' docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].TheCat1083 WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat889] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat398] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat291] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat153] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat119] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat109] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat101] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat84] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat72] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat59] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat36] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat14] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat130] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON") ' WAI
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat131] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON") ' SBG
'End If
'If IsNumeric(docid) AndAlso docid > 0 Then
' ' Process.Start("theviewer.exe -" & docid)
' ' Process.Start("C:\Program Files (x86)\Therefore\theviewer.exe -" & docid)
' Try
' Shell("C:\Program Files (x86)\Therefore\theviewer.exe -d" & docid)
' Catch ex As Exception
' Shell("C:\Program Files\Therefore\theviewer.exe -d" & docid)
' End Try
'Else
' MsgBox("Das Dokument konnte nicht gefunden werden.")
'End If
If Category2 = "" Then Category2 = Category
Dim SQL As New SQL
' 1. Connect to the Therefore™ Server
Dim server As New TheServer
server.Connect(TheClientType.CustomApplication)
' 2. Create a new Therefore™ Document
Dim doc As New TheDocument()
' 3. Retrieve the document from the server to the inbox
Dim inbox As String = Path
Dim TableName = ""
If IsNumeric(Category) Then
TableName = "TheCat" & Category
If SQL.getValueTxtBySql("SELECT count(*) FROM [TheCategory] WHERE TableName='" & TableName & "'", "SCANCANON",,, "") = 0 Then
MsgBox("Therefore: Tabelle nicht gefunden: " & TableName)
Return False
End If
Else
TableName = SQL.getValueTxtBySql("SELECT TOP 1 [TableName] FROM [TheCategory] WHERE Title='" & Category & "'", "SCANCANON",,, "")
End If
Dim docNo As Integer = SQL.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM " & TableName & " WHERE [String] LIKE '" & FilialeAbfertigungsNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON",,, -1)
' MsgBox("docNo: " & docNo)
Dim extractDir As String = Path & FilialeAbfertigungsNr & "\"
If Not System.IO.Directory.Exists(extractDir) Then
System.IO.Directory.CreateDirectory(extractDir)
End If
Dim filename As String = ""
If docNo > 0 Then
Dim folder = ""
Dim VerionNo As Integer
filename = doc.Retrieve(docNo, VerionNo, folder, server, False)
' 4. Extract all file streams to the specified directory
Dim i As Integer
For i = 0 To doc.StreamCount - 1 Step i + 1
Dim extractFile As String = doc.ExtractStream(i, extractDir)
Console.WriteLine("File stream extracted to " + extractFile)
Next
Else
'Nicht gefunden, hier hinschreiben:
Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter(Path & "notfound.txt", True)
file.WriteLine(FilialeAbfertigungsNr)
file.Close()
' MsgBox(FilialeAbfertigungsNr)
End If
' 8. Close Therefore™ document object
doc.Close()
Return True
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Return False
End Function
Shared Function saveFileTo_ImportFolderCat(Path As String, FilialeAbfertigungsNr As String, AvisoId As String, Category As String, Optional Category2 As String = "", Optional deleteFileAfterImport As Boolean = False)
Try
If Category2 = "" Then Category2 = Category