Initial commit
This commit is contained in:
883
DokMD/Backup/DokSA/frmMehrfachdruck.vb
Normal file
883
DokMD/Backup/DokSA/frmMehrfachdruck.vb
Normal file
@@ -0,0 +1,883 @@
|
||||
Imports System.IO
|
||||
Imports System.Data
|
||||
Imports System.Threading
|
||||
Imports System.Drawing
|
||||
Imports System.Windows.Forms
|
||||
|
||||
|
||||
Public Class frmMehrfachdruck
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
#Region " Vom Windows Form Designer generierter Code "
|
||||
|
||||
Public Sub New()
|
||||
MyBase.New()
|
||||
|
||||
' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
|
||||
InitializeComponent()
|
||||
|
||||
' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
|
||||
|
||||
End Sub
|
||||
|
||||
' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen.
|
||||
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
If disposing Then
|
||||
If Not (components Is Nothing) Then
|
||||
components.Dispose()
|
||||
End If
|
||||
End If
|
||||
MyBase.Dispose(disposing)
|
||||
End Sub
|
||||
|
||||
' Für Windows Form-Designer erforderlich
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich
|
||||
'Sie kann mit dem Windows Form-Designer modifiziert werden.
|
||||
'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
|
||||
Friend WithEvents lvDruckauftraege As System.Windows.Forms.ListView
|
||||
Friend WithEvents StatusBar1 As System.Windows.Forms.StatusBar
|
||||
Friend WithEvents ContextMenu1 As System.Windows.Forms.ContextMenu
|
||||
Friend WithEvents nmuDelete As System.Windows.Forms.MenuItem
|
||||
Friend WithEvents nmuRefresh As System.Windows.Forms.MenuItem
|
||||
Friend WithEvents mnuDurck As System.Windows.Forms.MenuItem
|
||||
Friend WithEvents MenuItem2 As System.Windows.Forms.MenuItem
|
||||
Friend WithEvents lvid_JobID As System.Windows.Forms.ColumnHeader
|
||||
Friend WithEvents lvid_Auftrag As System.Windows.Forms.ColumnHeader
|
||||
Friend WithEvents lvid_Typ As System.Windows.Forms.ColumnHeader
|
||||
Friend WithEvents lvid_Anzahl As System.Windows.Forms.ColumnHeader
|
||||
Friend WithEvents lvid_Status As System.Windows.Forms.ColumnHeader
|
||||
Friend WithEvents mnuAnzeige As System.Windows.Forms.MenuItem
|
||||
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
|
||||
Me.lvDruckauftraege = New System.Windows.Forms.ListView
|
||||
Me.lvid_JobID = New System.Windows.Forms.ColumnHeader
|
||||
Me.lvid_Auftrag = New System.Windows.Forms.ColumnHeader
|
||||
Me.lvid_Typ = New System.Windows.Forms.ColumnHeader
|
||||
Me.lvid_Anzahl = New System.Windows.Forms.ColumnHeader
|
||||
Me.lvid_Status = New System.Windows.Forms.ColumnHeader
|
||||
Me.ContextMenu1 = New System.Windows.Forms.ContextMenu
|
||||
Me.mnuAnzeige = New System.Windows.Forms.MenuItem
|
||||
Me.mnuDurck = New System.Windows.Forms.MenuItem
|
||||
Me.MenuItem2 = New System.Windows.Forms.MenuItem
|
||||
Me.nmuDelete = New System.Windows.Forms.MenuItem
|
||||
Me.nmuRefresh = New System.Windows.Forms.MenuItem
|
||||
Me.StatusBar1 = New System.Windows.Forms.StatusBar
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'lvDruckauftraege
|
||||
'
|
||||
Me.lvDruckauftraege.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.lvid_JobID, Me.lvid_Auftrag, Me.lvid_Typ, Me.lvid_Anzahl, Me.lvid_Status})
|
||||
Me.lvDruckauftraege.ContextMenu = Me.ContextMenu1
|
||||
Me.lvDruckauftraege.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.lvDruckauftraege.FullRowSelect = True
|
||||
Me.lvDruckauftraege.GridLines = True
|
||||
Me.lvDruckauftraege.Location = New System.Drawing.Point(0, 0)
|
||||
Me.lvDruckauftraege.MultiSelect = False
|
||||
Me.lvDruckauftraege.Name = "lvDruckauftraege"
|
||||
Me.lvDruckauftraege.Size = New System.Drawing.Size(527, 134)
|
||||
Me.lvDruckauftraege.TabIndex = 2
|
||||
Me.lvDruckauftraege.UseCompatibleStateImageBehavior = False
|
||||
Me.lvDruckauftraege.View = System.Windows.Forms.View.Details
|
||||
'
|
||||
'lvid_JobID
|
||||
'
|
||||
Me.lvid_JobID.Text = "JobID"
|
||||
Me.lvid_JobID.Width = 0
|
||||
'
|
||||
'lvid_Auftrag
|
||||
'
|
||||
Me.lvid_Auftrag.Text = "Auftrag"
|
||||
Me.lvid_Auftrag.Width = 120
|
||||
'
|
||||
'lvid_Typ
|
||||
'
|
||||
Me.lvid_Typ.Text = "Typ"
|
||||
Me.lvid_Typ.Width = 90
|
||||
'
|
||||
'lvid_Anzahl
|
||||
'
|
||||
Me.lvid_Anzahl.Text = "Anzahl"
|
||||
Me.lvid_Anzahl.Width = 70
|
||||
'
|
||||
'lvid_Status
|
||||
'
|
||||
Me.lvid_Status.Text = "Status"
|
||||
Me.lvid_Status.Width = 180
|
||||
'
|
||||
'ContextMenu1
|
||||
'
|
||||
Me.ContextMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuAnzeige, Me.mnuDurck, Me.MenuItem2, Me.nmuDelete, Me.nmuRefresh})
|
||||
'
|
||||
'mnuAnzeige
|
||||
'
|
||||
Me.mnuAnzeige.Index = 0
|
||||
Me.mnuAnzeige.Text = "Dokument Anzeigen"
|
||||
'
|
||||
'mnuDurck
|
||||
'
|
||||
Me.mnuDurck.Index = 1
|
||||
Me.mnuDurck.Text = "Drucken"
|
||||
'
|
||||
'MenuItem2
|
||||
'
|
||||
Me.MenuItem2.Index = 2
|
||||
Me.MenuItem2.Text = "-"
|
||||
'
|
||||
'nmuDelete
|
||||
'
|
||||
Me.nmuDelete.Index = 3
|
||||
Me.nmuDelete.Text = "Auftrag löschen"
|
||||
'
|
||||
'nmuRefresh
|
||||
'
|
||||
Me.nmuRefresh.Index = 4
|
||||
Me.nmuRefresh.Text = "Auftrag erneut anfordern"
|
||||
'
|
||||
'StatusBar1
|
||||
'
|
||||
Me.StatusBar1.Location = New System.Drawing.Point(0, 112)
|
||||
Me.StatusBar1.Name = "StatusBar1"
|
||||
Me.StatusBar1.Size = New System.Drawing.Size(527, 22)
|
||||
Me.StatusBar1.TabIndex = 3
|
||||
'
|
||||
'frmMehrfachdruck
|
||||
'
|
||||
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
|
||||
Me.ClientSize = New System.Drawing.Size(527, 134)
|
||||
Me.ControlBox = False
|
||||
Me.Controls.Add(Me.StatusBar1)
|
||||
Me.Controls.Add(Me.lvDruckauftraege)
|
||||
Me.MaximizeBox = False
|
||||
Me.MinimizeBox = False
|
||||
Me.Name = "frmMehrfachdruck"
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual
|
||||
Me.Text = "Druckaufträge"
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region " Deklarationen "
|
||||
|
||||
|
||||
|
||||
'Dim _HashThreads As New Hashtable()
|
||||
'Dim _HashDruckanzeige As New Hashtable()
|
||||
|
||||
Dim tmpColColdData As Collection
|
||||
Dim tmpColOfficeData As Collection
|
||||
|
||||
Dim sAuftraNR As String
|
||||
|
||||
'PDF Drucken
|
||||
Dim printthread As Thread
|
||||
Dim printfilename As String
|
||||
|
||||
Dim m_MenuEintrag As Integer
|
||||
|
||||
Dim iJobCounter As Integer = 0
|
||||
Dim iJobID(1) As Integer 'Job ID's für den Office und Cold Thread
|
||||
|
||||
'Dim colDruckanzeige As New Collection()
|
||||
|
||||
|
||||
Private Enum enum_MehrfachdruckFeld
|
||||
Anzahl = 0
|
||||
Status = 1
|
||||
End Enum
|
||||
|
||||
#End Region
|
||||
|
||||
#Region " Formular "
|
||||
|
||||
Public Sub InitForm()
|
||||
Try
|
||||
Me.Visible = False
|
||||
StatusBar1.Text = "Druckspooler initialisieren"
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub InitAnzeige()
|
||||
If iMerker = 1 Then
|
||||
Exit Sub
|
||||
End If
|
||||
Try
|
||||
iMerker = 1
|
||||
|
||||
Dim ColTrans As ColorTranslator
|
||||
Thread.Sleep(1000)
|
||||
If lvDruckauftraege.Items.Count = 0 Then
|
||||
StatusBar1.Text = "keine Druckaufträge"
|
||||
If Me.Visible = True Then
|
||||
Me.Visible = False
|
||||
End If
|
||||
End If
|
||||
|
||||
'Anzeige aktualisieren
|
||||
'Dim coltmp As Collection
|
||||
Dim coltmp As Hashtable
|
||||
|
||||
coltmp = _HashDruckanzeige
|
||||
|
||||
Dim i As Integer
|
||||
i = 0
|
||||
|
||||
GenAnzeige(coltmp, i)
|
||||
'Try
|
||||
|
||||
' lvDruckauftraege.Items.Clear()
|
||||
' lvDruckauftraege.BeginUpdate()
|
||||
' Dim element As DictionaryEntry
|
||||
' For Each element In coltmp
|
||||
' 'For i = 1 To coltmp.Count
|
||||
' colSpooler = element.Value
|
||||
' 'colSpooler = coltmp(i)
|
||||
' lvDruckauftraege.Items.Add(colSpooler.JobID)
|
||||
' lvDruckauftraege.Items(i).SubItems.Add(colSpooler.AuftragNr)
|
||||
' lvDruckauftraege.Items(i).SubItems.Add(colSpooler.Typ)
|
||||
' lvDruckauftraege.Items(i).SubItems.Add(colSpooler.Anzahl)
|
||||
' lvDruckauftraege.Items(i).SubItems.Add(colSpooler.Status)
|
||||
' If colSpooler.Status = "Dokument bereit zum drucken" Then
|
||||
' 'grün
|
||||
' lvDruckauftraege.Items(i).BackColor = Color.FromArgb(255, 164, 253, 143)
|
||||
' End If
|
||||
' If colSpooler.Status = "Fehler beim Drucken" Then
|
||||
' 'rot
|
||||
' lvDruckauftraege.Items(i).BackColor = Color.FromArgb(255, 255, 174, 165)
|
||||
' End If
|
||||
' i &= 1
|
||||
' Next
|
||||
' lvDruckauftraege.EndUpdate()
|
||||
'Catch ex As Exception
|
||||
' MsgBox("Fehler4: " & ex.Message)
|
||||
'End Try
|
||||
Try
|
||||
'Statusbar aktualisieren
|
||||
If i > 0 Then
|
||||
Me.StatusBar1.Text = "Anzahl Druckaufträge " + i.ToString.Trim
|
||||
If Me.Visible = False Then
|
||||
Me.Top = Me.ParentForm.ClientSize.Height - Me.Height - 50
|
||||
Me.Left = Me.ParentForm.ClientSize.Width - Me.Width - 30
|
||||
minimize_all_childs()
|
||||
Me.Visible = True
|
||||
Else
|
||||
minimize_all_childs()
|
||||
End If
|
||||
Else
|
||||
StatusBar1.Text = "keine Druckaufträge"
|
||||
If Me.Visible = True Then
|
||||
Me.Visible = False
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Fehler1: " & ex.Message)
|
||||
End Try
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("Fehler3: " & ex.Message)
|
||||
Finally
|
||||
iMerker = 0
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Delegate Sub GenCallBack(ByVal coltmp As Hashtable, ByRef i As Integer)
|
||||
Private Sub GenAnzeige(ByVal coltmp As Hashtable, ByRef i As Integer)
|
||||
Try
|
||||
'If Me.lvDruckauftraege.InvokeRequired = True Then
|
||||
' Dim dd As New GenCallBack(AddressOf GenAnzeige)
|
||||
' dd.Invoke(coltmp, i)
|
||||
'End If
|
||||
Dim colSpooler As clsSpooler_Data
|
||||
'lvDruckauftraege = New ListView()
|
||||
lvDruckauftraege.BeginUpdate()
|
||||
Try
|
||||
lvDruckauftraege.Items.Clear()
|
||||
Catch
|
||||
lvDruckauftraege = New ListView()
|
||||
Me.lvDruckauftraege.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.lvid_JobID, Me.lvid_Auftrag, Me.lvid_Typ, Me.lvid_Anzahl, Me.lvid_Status})
|
||||
Me.lvDruckauftraege.ContextMenu = Me.ContextMenu1
|
||||
Me.lvDruckauftraege.FullRowSelect = True
|
||||
Me.lvDruckauftraege.GridLines = True
|
||||
Me.lvDruckauftraege.MultiSelect = False
|
||||
Me.lvDruckauftraege.Name = "lvDruckauftraege"
|
||||
Me.lvDruckauftraege.Size = New System.Drawing.Size(480, 88)
|
||||
Me.lvDruckauftraege.TabIndex = 2
|
||||
Me.lvDruckauftraege.View = System.Windows.Forms.View.Details
|
||||
End Try
|
||||
|
||||
lvDruckauftraege.Sorting = SortOrder.None
|
||||
|
||||
Dim element As DictionaryEntry
|
||||
|
||||
For Each element In coltmp
|
||||
colSpooler = element.Value
|
||||
lvDruckauftraege.Items.Add(colSpooler.JobID.ToString.Trim)
|
||||
lvDruckauftraege.Items(i).SubItems.Add(colSpooler.AuftragNr)
|
||||
lvDruckauftraege.Items(i).SubItems.Add(colSpooler.Typ)
|
||||
lvDruckauftraege.Items(i).SubItems.Add(colSpooler.Anzahl)
|
||||
lvDruckauftraege.Items(i).SubItems.Add(colSpooler.Status)
|
||||
lvDruckauftraege.Items(i).ForeColor = Color.Black
|
||||
If colSpooler.Status = "Dokument bereit zum drucken" Then
|
||||
'grün
|
||||
lvDruckauftraege.Items(i).BackColor = Color.FromArgb(255, 164, 253, 143)
|
||||
End If
|
||||
If colSpooler.Status = "Fehler beim Drucken" Then
|
||||
'rot
|
||||
lvDruckauftraege.Items(i).BackColor = Color.FromArgb(255, 255, 174, 165)
|
||||
End If
|
||||
i = i + 1
|
||||
Next
|
||||
|
||||
lvDruckauftraege.EndUpdate()
|
||||
|
||||
'Dim Sorter As New clsListViewItemComparer(0)
|
||||
'lvDruckauftraege.ListViewItemSorter = Sorter
|
||||
'lvDruckauftraege.Sort()
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("Fehler GenAnzeige: " & ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub AnzeigePopup()
|
||||
Try
|
||||
minimize_all_childs()
|
||||
Me.Focus()
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region " Druck Funktionen "
|
||||
|
||||
Public Function DruckAnfrage(ByVal colColdData As Collection, ByVal colOfficeData As Collection)
|
||||
Try
|
||||
'Auftragsnummer generieren
|
||||
sAuftraNR = Now().ToString.Trim
|
||||
'JobID's zuweisen
|
||||
iJobCounter = iJobCounter + 1
|
||||
iJobID(0) = iJobCounter 'JobID Cold
|
||||
iJobCounter = iJobCounter + 1
|
||||
iJobID(1) = iJobCounter 'JobID Office
|
||||
|
||||
If colColdData.Count > 0 Then
|
||||
Dim MehrfachDruckColdThread As Thread
|
||||
tmpColColdData = colColdData
|
||||
MehrfachDruckColdThread = New Thread(AddressOf StartColdDruckJob)
|
||||
MehrfachDruckColdThread.IsBackground = True
|
||||
MehrfachDruckColdThread.Name = "EDOKA_MehrfachDruck_" + (iJobCounter - 1).ToString.Trim
|
||||
MehrfachDruckColdThread.Start()
|
||||
_HashThreads.Add(iJobCounter - 1, MehrfachDruckColdThread)
|
||||
End If
|
||||
|
||||
If colOfficeData.Count > 0 Then
|
||||
Dim MehrfachDruckEdokaThread As Thread
|
||||
tmpColOfficeData = colOfficeData
|
||||
MehrfachDruckEdokaThread = New Thread(AddressOf StartEdokaDruckJob)
|
||||
MehrfachDruckEdokaThread.IsBackground = True
|
||||
MehrfachDruckEdokaThread.Name = "EDOKA_MehrfachDruck_" + iJobCounter.ToString.Trim
|
||||
MehrfachDruckEdokaThread.Start()
|
||||
_HashThreads.Add(iJobCounter, MehrfachDruckEdokaThread)
|
||||
|
||||
End If
|
||||
Thread.Sleep(1500)
|
||||
InitAnzeige()
|
||||
AnzeigePopup()
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Sub StartColdDruckJob()
|
||||
Dim sThreadName As String
|
||||
Dim iColdJobID As Integer = iJobID(0)
|
||||
sThreadName = "EDOKA_MehrfachDruck_" + iColdJobID.ToString.Trim
|
||||
Try
|
||||
Dim tmpData As Collection
|
||||
Dim gendok As clsMehrfachdruck_Data
|
||||
Dim rReturn As Object
|
||||
|
||||
Dim timestamp As String
|
||||
Dim pdfFileName As String
|
||||
Dim sJobNummer As String
|
||||
|
||||
timestamp = Format(Now, "yyyyMMddHHmmss")
|
||||
sJobNummer = iColdJobID.ToString.Trim
|
||||
Do While Len(sJobNummer) < 4
|
||||
sJobNummer = "0" & sJobNummer
|
||||
Loop
|
||||
pdfFileName = timestamp + "_" + sJobNummer + ".pdf"
|
||||
tmpData = tmpColColdData
|
||||
|
||||
'colDruckanzeige.Add(New clsSpooler_Data(iColdJobID, sAuftraNR, "Cold-Druck", "Daten Aufbereitung", tmpData.Count.ToString.Trim, tmpData, Now(), 1, pdfFileName))
|
||||
Dim newDruckRow As New clsSpooler_Data(iColdJobID, sAuftraNR, "Cold-Druck", "Daten Aufbereitung", tmpData.Count.ToString.Trim, tmpData, Now(), 1, pdfFileName)
|
||||
_HashDruckanzeige.Add(iColdJobID, newDruckRow)
|
||||
|
||||
Console.WriteLine("StartColdDruckJob - JobID=" & iColdJobID.ToString)
|
||||
|
||||
'Wenn mehrere Dokumente gedruckt werden sollen
|
||||
Dim i As Integer
|
||||
Dim tmp1 As New DataTable()
|
||||
|
||||
tmp1.Columns.Add("DokumentId")
|
||||
tmp1.Columns.Add("PartnerNr")
|
||||
tmp1.Columns.Add("Typ")
|
||||
tmp1.Columns.Add("OfficeDokument")
|
||||
tmp1.Columns.Add("DokumentTyp")
|
||||
tmp1.Columns.Add("Auftragnr")
|
||||
tmp1.Columns.Add("PartnerName")
|
||||
tmp1.Columns.Add("Erstellungsdatum")
|
||||
|
||||
Dim row As DataRow
|
||||
|
||||
For i = 1 To tmpData.Count
|
||||
gendok = tmpData(i)
|
||||
row = tmp1.NewRow
|
||||
row.Item("Auftragnr") = gendok.Auftragnr
|
||||
row.Item("DokumentId") = gendok.DokumentId
|
||||
row.Item("DokumentTyp") = gendok.DokumentTyp
|
||||
row.Item("Erstellungsdatum") = gendok.Erstellungsdatum
|
||||
row.Item("OfficeDokument") = gendok.OfficeDokument
|
||||
row.Item("PartnerName") = gendok.PartnerName
|
||||
row.Item("PartnerNr") = gendok.PartnerNr
|
||||
Select Case gendok.Typ
|
||||
Case clsMehrfachdruck_Data.Enum_Typ.EDOKA
|
||||
row.Item("Typ") = 1
|
||||
Case clsMehrfachdruck_Data.Enum_Typ.HOST
|
||||
row.Item("Typ") = 2
|
||||
Case clsMehrfachdruck_Data.Enum_Typ.ZV
|
||||
row.Item("Typ") = 3
|
||||
End Select
|
||||
|
||||
tmp1.Rows.Add(row)
|
||||
Next
|
||||
|
||||
'Cold Dokumente
|
||||
For i = 1 To tmpData.Count
|
||||
gendok = tmpData(i)
|
||||
If gendok.OfficeDokument = False Then
|
||||
Try
|
||||
Journal_Dokumentzugriff(gendok.DokumentId, "COLD-Print (SA)", 1, Globals.Partnernr, Globals.PartnerKurzbezeichnung, gendok.DokumentTyp)
|
||||
Catch
|
||||
End Try
|
||||
End If
|
||||
Next
|
||||
|
||||
'Dokumente anfordern
|
||||
UpdateCollection(iColdJobID, enum_MehrfachdruckFeld.Status, "Cold-Dokument anfordern")
|
||||
Dim remoteObj As EDKB07Verarbeitung.EDKB07Verarbeitung.IEDKB07
|
||||
Dim Obj As New Object()
|
||||
Obj = Activator.GetObject( _
|
||||
GetType(EDKB07Verarbeitung.EDKB07Verarbeitung.IEDKB07), _
|
||||
System.Configuration.ConfigurationSettings.AppSettings("RemoteObjUrl"))
|
||||
|
||||
' Auf das Remote-Objekt durch die Schnittstelle zugreifen.
|
||||
remoteObj = CType(Obj, EDKB07Verarbeitung.EDKB07Verarbeitung.IEDKB07)
|
||||
Try
|
||||
remoteObj.GetColdMehrfachDruck(Globals.TGNummer, iColdJobID, tmp1, rReturn)
|
||||
'remoteObj = Nothing
|
||||
|
||||
'Dokument erhalten
|
||||
UpdateCollection(iColdJobID, enum_MehrfachdruckFeld.Status, "Cold-Dokument empfangen und speichern")
|
||||
|
||||
Try
|
||||
If rReturn.Length > 1 Then
|
||||
Dim fs As New FileStream(Globals.temppfad & pdfFileName, FileMode.OpenOrCreate, FileAccess.Write)
|
||||
fs.Write(rReturn, 0, rReturn.Length)
|
||||
fs.Close()
|
||||
fs = Nothing
|
||||
Dim s As String
|
||||
UpdateCollection(iColdJobID, enum_MehrfachdruckFeld.Status, "Dokument bereit zum drucken")
|
||||
Else
|
||||
UpdateCollection(iColdJobID, enum_MehrfachdruckFeld.Status, "Fehler beim Drucken")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Console.WriteLine("StartColdDruckJob - JobID=" & iColdJobID.ToString & " Fehler 1: " & ex.Message)
|
||||
UpdateCollection(iColdJobID, enum_MehrfachdruckFeld.Status, "Fehler beim Drucken")
|
||||
Finally
|
||||
InitAnzeige()
|
||||
AnzeigePopup()
|
||||
End Try
|
||||
|
||||
Catch ex As Exception
|
||||
Console.WriteLine("StartColdDruckJob - JobID=" & iColdJobID.ToString & " Fehler 2: " & ex.Message)
|
||||
UpdateCollection(iColdJobID, enum_MehrfachdruckFeld.Status, "Fehler beim Drucken")
|
||||
InitAnzeige()
|
||||
AnzeigePopup()
|
||||
End Try
|
||||
|
||||
Catch ex As Exception
|
||||
Console.WriteLine("StartColdDruckJob - JobID=" & iColdJobID.ToString & " Fehler 3: " & ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub StartEdokaDruckJob()
|
||||
Try
|
||||
Dim tmpData As Collection
|
||||
Dim iOfficeJobID As Integer = iJobID(1)
|
||||
Dim gendok As clsMehrfachdruck_Data
|
||||
tmpData = tmpColOfficeData
|
||||
|
||||
Console.WriteLine("StartEdokaDruckJob - JobID=" & iOfficeJobID.ToString)
|
||||
|
||||
'colDruckanzeige.Add(New clsSpooler_Data(iOfficeJobID, sAuftraNR, "Office-Druck", "am drucken", tmpData.Count.ToString.Trim, tmpData, Now(), 1, ""))
|
||||
Dim newDruckRow As New clsSpooler_Data(iOfficeJobID, sAuftraNR, "Office-Druck", "am drucken", tmpData.Count.ToString.Trim, tmpData, Now(), 1, "")
|
||||
_HashDruckanzeige.Add(iOfficeJobID, newDruckRow)
|
||||
|
||||
|
||||
Thread.Sleep(2000)
|
||||
|
||||
'Office Dokumente
|
||||
Dim i As Integer
|
||||
For i = 1 To tmpData.Count
|
||||
gendok = tmpData(i)
|
||||
If gendok.OfficeDokument = True Then
|
||||
Console.WriteLine("StartEdokaDruckJob - Vor Drucken=" & iOfficeJobID.ToString)
|
||||
'DivFnkt.print_office(gendok.DokumentId, Nothing, False)
|
||||
Console.WriteLine("StartEdokaDruckJob - Nach Drucken=" & iOfficeJobID.ToString)
|
||||
'Druckauftrag anpassen
|
||||
UpdateCollection(iOfficeJobID, enum_MehrfachdruckFeld.Anzahl, i.ToString.Trim + " von " + tmpData.Count.ToString.Trim)
|
||||
If i = tmpData.Count Then
|
||||
UpdateCollection(iOfficeJobID, enum_MehrfachdruckFeld.Status, "gedruckt")
|
||||
End If
|
||||
InitAnzeige()
|
||||
End If
|
||||
Next
|
||||
'Eintrag Löschen
|
||||
DeleteEntryCollection(iOfficeJobID)
|
||||
Catch ex As Exception
|
||||
Console.WriteLine("StartEdokaDruckJob - Fehler =" & ex.Message)
|
||||
'MsgBox(ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region " PDF Drucken"
|
||||
'Designd by SHU
|
||||
|
||||
'Private Sub print_pdf(ByVal spfad As String)
|
||||
' 'Druckt ein PDF in einem neuen Thread
|
||||
' printfilename = New String(spfad)
|
||||
' printthread = New Thread(AddressOf start_print_pdf)
|
||||
' printthread.Start()
|
||||
'End Sub
|
||||
|
||||
|
||||
''Dim WithEvents pdfprinter As frmPDF_Printer
|
||||
''Dim Print_Active As Boolean
|
||||
'Private Sub start_print_pdf()
|
||||
' Dim objpdf As New clsPDF_print_show()
|
||||
' objpdf.PrintPDF(printfilename, clsPDF_print_show.Enum_Art.Drucken)
|
||||
' 'pdfprinter = New frmPDF_Printer(printfilename, False) '0
|
||||
' 'pdfprinter.Prepare_Form()
|
||||
' 'Application.DoEvents()
|
||||
' 'Print_Active = True
|
||||
' 'pdfprinter.PrintPDF()
|
||||
' delay(5)
|
||||
'End Sub
|
||||
|
||||
'Private Sub delay(ByVal seconds As Integer)
|
||||
' Me.Cursor = Cursors.WaitCursor
|
||||
' Dim starttime As DateTime = DateTime.Now
|
||||
' Do
|
||||
' Application.DoEvents()
|
||||
' Loop While DateTime.Now.Subtract(starttime).TotalSeconds < seconds
|
||||
' Me.Cursor = Cursors.Default
|
||||
'End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region " Collection Funktionen"
|
||||
|
||||
Private Sub UpdateCollection(ByVal iJobID As Integer, ByVal iTyp As enum_MehrfachdruckFeld, ByVal sWert As String)
|
||||
'Wert in der Collection updaten
|
||||
Try
|
||||
Dim i As Integer
|
||||
Dim colSpooler As clsSpooler_Data
|
||||
Dim element As DictionaryEntry
|
||||
For Each element In _HashDruckanzeige
|
||||
colSpooler = element.Value
|
||||
If colSpooler.JobID = iJobID Then
|
||||
Select Case iTyp
|
||||
Case enum_MehrfachdruckFeld.Anzahl
|
||||
colSpooler.Anzahl = sWert
|
||||
Case enum_MehrfachdruckFeld.Status
|
||||
colSpooler.Status = sWert
|
||||
End Select
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub DeleteEntryCollection(ByVal iJobID As Integer)
|
||||
'Eintrag aus der Collection entfernen
|
||||
Try
|
||||
Dim i As Integer
|
||||
Dim colSpooler As clsSpooler_Data
|
||||
Dim element As DictionaryEntry
|
||||
For Each element In _HashDruckanzeige
|
||||
colSpooler = element.Value
|
||||
If colSpooler.JobID = iJobID Then
|
||||
_HashDruckanzeige.Remove(iJobID)
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
Thread.Sleep(1000)
|
||||
InitAnzeige()
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Function GetDataFromColl(ByVal OrgColl As Hashtable, ByVal JobID As Integer) As Collection
|
||||
Try
|
||||
Dim tmpData As Hashtable
|
||||
Dim i As Integer
|
||||
Dim gendok As clsSpooler_Data
|
||||
|
||||
tmpData = OrgColl
|
||||
Dim element As DictionaryEntry
|
||||
For Each element In _HashDruckanzeige
|
||||
gendok = element.Value
|
||||
If gendok.JobID = JobID Then
|
||||
'JobID gefunden
|
||||
GetDataFromColl = gendok.Data
|
||||
Exit Try
|
||||
End If
|
||||
Next
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function GetDateiNameFromColl(ByVal OrgColl As Hashtable, ByVal JobID As Integer) As String
|
||||
Try
|
||||
Dim tmpData As Hashtable
|
||||
Dim i As Integer
|
||||
Dim gendok As clsSpooler_Data
|
||||
|
||||
tmpData = OrgColl
|
||||
Dim element As DictionaryEntry
|
||||
For Each element In _HashDruckanzeige
|
||||
gendok = element.Value
|
||||
If gendok.JobID = JobID Then
|
||||
'JobID gefunden
|
||||
GetDateiNameFromColl = gendok.DateiName
|
||||
Exit Try
|
||||
End If
|
||||
Next
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
|
||||
#Region " Menufunktionen"
|
||||
|
||||
Private Sub nmuDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nmuDelete.Click
|
||||
Try
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
Dim iJobID As Integer
|
||||
iJobID = lvDruckauftraege.Items(m_MenuEintrag).SubItems(0).Text
|
||||
|
||||
Console.WriteLine("nmuDelete_Click =" & m_MenuEintrag.ToString & " JobID " & iJobID.ToString)
|
||||
|
||||
Try
|
||||
Dim MehrfachDruckThread As Thread
|
||||
MehrfachDruckThread = _HashThreads.Item(iJobID)
|
||||
MehrfachDruckThread.Abort()
|
||||
Catch ex As Exception
|
||||
Console.WriteLine("nmuDelete_Click 1=" & m_MenuEintrag.ToString & ex.Message)
|
||||
End Try
|
||||
DeleteEntryCollection(iJobID)
|
||||
Catch ex As Exception
|
||||
Console.WriteLine("nmuDelete_Click 2=" & m_MenuEintrag.ToString & ex.Message)
|
||||
Finally
|
||||
Me.Cursor = Cursors.Default
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub nmuRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nmuRefresh.Click
|
||||
Try
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
Dim tmpCollData As New Collection()
|
||||
Dim tmpCollLeer As New Collection()
|
||||
'tmpCollData = GetDataFromColl(colDruckanzeige, lvDruckauftraege.Items(m_MenuEintrag).SubItems(0).Text)
|
||||
tmpCollData = GetDataFromColl(_HashDruckanzeige, lvDruckauftraege.Items(m_MenuEintrag).SubItems(0).Text)
|
||||
|
||||
If lvDruckauftraege.Items(m_MenuEintrag).SubItems(2).Text = "Cold-Druck" Then
|
||||
DruckAnfrage(tmpCollData, tmpCollLeer)
|
||||
Else
|
||||
DruckAnfrage(tmpCollLeer, tmpCollData)
|
||||
End If
|
||||
|
||||
If lvDruckauftraege.Items(m_MenuEintrag).SubItems(4).Text = "Fehler beim Drucken" Then
|
||||
DeleteEntryCollection(lvDruckauftraege.Items(m_MenuEintrag).SubItems(0).Text())
|
||||
Else
|
||||
InitAnzeige()
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
Finally
|
||||
Me.Cursor = Cursors.Default
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub mnuAnzeige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuAnzeige.Click
|
||||
Dim iJobID As Integer
|
||||
Try
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
Dim tmpCollData As New Collection()
|
||||
Dim tmpCollLeer As New Collection()
|
||||
Dim sDateiName As String
|
||||
|
||||
iJobID = lvDruckauftraege.Items(m_MenuEintrag).SubItems(0).Text
|
||||
|
||||
sDateiName = GetDateiNameFromColl(_HashDruckanzeige, iJobID)
|
||||
sDateiName = Globals.temppfad & sDateiName
|
||||
|
||||
'Dokument Drucken
|
||||
UpdateCollection(iJobID, enum_MehrfachdruckFeld.Status, "Cold-Dokument drucken")
|
||||
|
||||
Dim objpdf As New clsPDF_print_show()
|
||||
objpdf.PrintPDF(sDateiName, clsPDF_print_show.Enum_Art.Anzeigen)
|
||||
'print_pdf(sDateiName)
|
||||
|
||||
'Abgeschlossen
|
||||
UpdateCollection(iJobID, enum_MehrfachdruckFeld.Status, "gedruckt")
|
||||
|
||||
'Eintrag Löschen
|
||||
DeleteEntryCollection(iJobID)
|
||||
|
||||
Catch ex As Exception
|
||||
UpdateCollection(iJobID, enum_MehrfachdruckFeld.Status, "Fehler beim ausdrucken")
|
||||
Finally
|
||||
Me.Cursor = Cursors.Default
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub mnuDurck_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDurck.Click
|
||||
Dim iJobID As Integer
|
||||
Try
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
Dim tmpCollData As New Collection()
|
||||
Dim tmpCollLeer As New Collection()
|
||||
Dim sDateiName As String
|
||||
|
||||
iJobID = lvDruckauftraege.Items(m_MenuEintrag).SubItems(0).Text
|
||||
|
||||
sDateiName = GetDateiNameFromColl(_HashDruckanzeige, iJobID)
|
||||
sDateiName = Globals.temppfad & sDateiName
|
||||
|
||||
'Dokument Drucken
|
||||
UpdateCollection(iJobID, enum_MehrfachdruckFeld.Status, "Cold-Dokument drucken")
|
||||
|
||||
Dim objpdf As New clsPDF_print_show()
|
||||
objpdf.PrintPDF(sDateiName, clsPDF_print_show.Enum_Art.Drucken)
|
||||
'print_pdf(sDateiName)
|
||||
|
||||
'Abgeschlossen
|
||||
UpdateCollection(iJobID, enum_MehrfachdruckFeld.Status, "gedruckt")
|
||||
|
||||
'Eintrag Löschen
|
||||
DeleteEntryCollection(iJobID)
|
||||
|
||||
Catch ex As Exception
|
||||
UpdateCollection(iJobID, enum_MehrfachdruckFeld.Status, "Fehler beim ausdrucken")
|
||||
Finally
|
||||
Me.Cursor = Cursors.Default
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub ContextMenu1_Popup(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContextMenu1.Popup
|
||||
Try
|
||||
|
||||
m_MenuEintrag = lvDruckauftraege.SelectedItems.Item(0).Index
|
||||
Console.WriteLine("ContextMenu1_Popup =" & m_MenuEintrag.ToString)
|
||||
If lvDruckauftraege.Items(m_MenuEintrag).SubItems(2).Text = "Cold-Druck" Then
|
||||
If lvDruckauftraege.Items(m_MenuEintrag).SubItems(4).Text = "Dokument bereit zum drucken" Or _
|
||||
lvDruckauftraege.Items(m_MenuEintrag).SubItems(4).Text = "Fehler beim ausdrucken" Then
|
||||
mnuAnzeige.Enabled = True
|
||||
mnuDurck.Enabled = True
|
||||
Else
|
||||
mnuAnzeige.Enabled = False
|
||||
mnuDurck.Enabled = False
|
||||
End If
|
||||
Else
|
||||
mnuAnzeige.Enabled = False
|
||||
mnuDurck.Enabled = False
|
||||
End If
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region " Diverse Funktionen"
|
||||
|
||||
Private Sub minimize_all_childs()
|
||||
Dim c As Form
|
||||
For Each c In Me.ParentForm.MdiChildren
|
||||
c.WindowState = FormWindowState.Normal
|
||||
Next
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
Private Function Journal_Dokumentzugriff(ByVal dokumentid As String, ByVal zugriffsart As String, ByVal host As Integer, ByVal partnernr As Integer, ByVal partner_kurzbezeichnung As String, ByVal dokumenttyp As String)
|
||||
Dim scmCmdToExecute As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand()
|
||||
Dim i As Integer
|
||||
Dim connopen As Boolean = False
|
||||
scmCmdToExecute.CommandText = "dbo.sp_journal_dokzugriffe"
|
||||
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
||||
scmCmdToExecute.Connection = conn.scoDBConnection
|
||||
Try
|
||||
'If host = 0 Then
|
||||
' scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
||||
' scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.Mitarbeiternr))
|
||||
' scmCmdToExecute.Parameters.Add(New SqlParameter("@zugriffsart", SqlDbType.VarChar, 25, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, zugriffsart))
|
||||
' scmCmdToExecute.Parameters.Add(New SqlParameter("@host", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
||||
' scmCmdToExecute.Parameters.Add(New SqlParameter("@partnernr", SqlDbType.VarChar, 10, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, ""))
|
||||
' scmCmdToExecute.Parameters.Add(New SqlParameter("@partnerkbez", SqlDbType.VarChar, 35, ParameterDirection.Input, True, 35, 0, "", DataRowVersion.Proposed, ""))
|
||||
' scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumenttyp", SqlDbType.VarChar, 128, ParameterDirection.Input, True, 35, 0, "", DataRowVersion.Proposed, ""))
|
||||
'Else
|
||||
scmCmdToExecute.Parameters.Add(New System.Data.SqlClient.SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
||||
scmCmdToExecute.Parameters.Add(New System.Data.SqlClient.SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.Mitarbeiternr))
|
||||
scmCmdToExecute.Parameters.Add(New System.Data.SqlClient.SqlParameter("@zugriffsart", SqlDbType.VarChar, 25, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, zugriffsart))
|
||||
scmCmdToExecute.Parameters.Add(New System.Data.SqlClient.SqlParameter("@host", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
|
||||
scmCmdToExecute.Parameters.Add(New System.Data.SqlClient.SqlParameter("@partnernr", SqlDbType.VarChar, 10, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, partnernr))
|
||||
scmCmdToExecute.Parameters.Add(New System.Data.SqlClient.SqlParameter("@partnerkbez", SqlDbType.VarChar, 35, ParameterDirection.Input, True, 35, 0, "", DataRowVersion.Proposed, partner_kurzbezeichnung))
|
||||
scmCmdToExecute.Parameters.Add(New System.Data.SqlClient.SqlParameter("@dokumenttyp", SqlDbType.VarChar, 128, ParameterDirection.Input, True, 35, 0, "", DataRowVersion.Proposed, dokumenttyp))
|
||||
'End If
|
||||
Try
|
||||
scmCmdToExecute.Connection.Open()
|
||||
connopen = True
|
||||
Catch
|
||||
End Try
|
||||
scmCmdToExecute.ExecuteNonQuery()
|
||||
If connopen Then
|
||||
Try
|
||||
scmCmdToExecute.Connection.Close()
|
||||
Catch
|
||||
End Try
|
||||
End If
|
||||
Catch ex As Exception
|
||||
|
||||
Finally
|
||||
scmCmdToExecute.Dispose()
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Sub frmMehrfachdruck_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user