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 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.Location = New System.Drawing.Point(0, 0) Me.lvDruckauftraege.MultiSelect = False Me.lvDruckauftraege.Name = "lvDruckauftraege" Me.lvDruckauftraege.Size = New System.Drawing.Size(480, 88) 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, 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.Add(Me.StatusBar1) Me.Controls.Add(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 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 Journal_Dokumentzugriff(gendok.DokumentId, "COLD-Print (SA)", 1, Globals.Partnernr, Globals.PartnerKurzbezeichnung, "") 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 SqlCommand = New 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 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, 1)) ' scmCmdToExecute.Parameters.Add(New SqlParameter("@partnernr", SqlDbType.VarChar, 10, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, partnernr)) ' scmCmdToExecute.Parameters.Add(New SqlParameter("@partnerkbez", SqlDbType.VarChar, 35, ParameterDirection.Input, True, 35, 0, "", DataRowVersion.Proposed, partner_kurzbezeichnung)) ' scmCmdToExecute.Parameters.Add(New 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