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

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