You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
842 lines
32 KiB
842 lines
32 KiB
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.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
|
|
'
|
|
'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, 88)
|
|
Me.StatusBar1.Name = "StatusBar1"
|
|
Me.StatusBar1.Size = New System.Drawing.Size(482, 22)
|
|
Me.StatusBar1.TabIndex = 3
|
|
'
|
|
'frmMehrfachdruck
|
|
'
|
|
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
|
|
Me.ClientSize = New System.Drawing.Size(482, 110)
|
|
Me.ControlBox = False
|
|
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.StatusBar1, Me.lvDruckauftraege})
|
|
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
|
|
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
|
|
|
|
Private Sub GenAnzeige(ByVal coltmp As Hashtable, ByRef i As Integer)
|
|
Try
|
|
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
|
|
DivFnkt.Journal_Dokumentzugriff(gendok.DokumentId, "COLD-Print", 0, 0, "", "")
|
|
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.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente") & 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.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente") & sDateiName
|
|
|
|
'Dokument Drucken
|
|
UpdateCollection(iJobID, enum_MehrfachdruckFeld.Status, "Cold-Dokument drucken")
|
|
Dim pdfprinting As New clsPDFHandling
|
|
If pdfprinting.DisplayType = pdfprinting.Enum_DisplayType.EDOKA_Default Then
|
|
Dim objpdf As New clsPDF_print_show()
|
|
objpdf.PrintPDF(sDateiName, clsPDF_print_show.Enum_Art.Anzeigen)
|
|
'print_pdf(sDateiName)
|
|
Else
|
|
pdfprinting.ShowPDF(sDateiName)
|
|
End If
|
|
|
|
|
|
'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.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente") & sDateiName
|
|
|
|
'Dokument Drucken
|
|
UpdateCollection(iJobID, enum_MehrfachdruckFeld.Status, "Cold-Dokument drucken")
|
|
|
|
Dim pdfprinting As New clsPDFHandling
|
|
If pdfprinting.Printtype_Mehrfachdruck = pdfprinting.enum_Printtype.EDOKA_Default Then
|
|
Dim objpdf As New clsPDF_print_show()
|
|
objpdf.PrintPDF(sDateiName, clsPDF_print_show.Enum_Art.Drucken)
|
|
End If
|
|
If pdfprinting.Printtype_Mehrfachdruck = pdfprinting.enum_Printtype.ShowAcrobat Then
|
|
pdfprinting.Print_ShowPDF(sDateiName)
|
|
End If
|
|
If pdfprinting.Printtype_Mehrfachdruck = pdfprinting.enum_Printtype.PDFPrintingNet Then
|
|
pdfprinting.PrintPDF(sDateiName, 3)
|
|
End If
|
|
|
|
|
|
'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
|
|
|
|
End Class
|