Imports System.Data Imports System.Data.SqlClient Imports System.Data.SqlTypes Imports System.Drawing Imports System.Drawing.Color Imports System.IO Imports System.Threading Public Class frmBLAuslieferungen 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 ToolBar1 As System.Windows.Forms.ToolBar Friend WithEvents ImageList1 As System.Windows.Forms.ImageList Friend WithEvents ToolBarButton1 As System.Windows.Forms.ToolBarButton Friend WithEvents DokList As C1.Win.C1TrueDBGrid.C1TrueDBGrid Friend WithEvents ToolBarButton2 As System.Windows.Forms.ToolBarButton Friend WithEvents ToolBarButton3 As System.Windows.Forms.ToolBarButton Friend WithEvents Timer1 As System.Timers.Timer Friend WithEvents ImgListSteuerung As System.Windows.Forms.ImageList Friend WithEvents TVStatus As System.Windows.Forms.TreeView Friend WithEvents BtnHelp As System.Windows.Forms.Button Friend WithEvents mnuprintall As System.Windows.Forms.MenuItem Friend WithEvents MenuItem3 As System.Windows.Forms.MenuItem Friend WithEvents mnuAgain As System.Windows.Forms.MenuItem Friend WithEvents mnuDruckAbbruch As System.Windows.Forms.MenuItem Friend WithEvents MnuStatusZurueck As System.Windows.Forms.MenuItem Friend WithEvents MenuItem9 As System.Windows.Forms.MenuItem Friend WithEvents mnuAuslieferungen As System.Windows.Forms.MenuItem Friend WithEvents mnuShowDoc As System.Windows.Forms.MenuItem Friend WithEvents mnuEdit As System.Windows.Forms.MenuItem Friend WithEvents mnuDruckArchiv As System.Windows.Forms.MenuItem Friend WithEvents mnuDelete As System.Windows.Forms.MenuItem Friend WithEvents MenuItem6 As System.Windows.Forms.MenuItem Friend WithEvents ContextMenu1 As System.Windows.Forms.ContextMenu Friend WithEvents MnuPrintBestaetigen As System.Windows.Forms.MenuItem Friend WithEvents mnuPrintOK As System.Windows.Forms.MenuItem Friend WithEvents mnuprintaq As System.Windows.Forms.MenuItem Friend WithEvents mnuPrintNOK As System.Windows.Forms.MenuItem Friend WithEvents MnuDruck As System.Windows.Forms.MenuItem Friend WithEvents pnlNiederlassung As System.Windows.Forms.GroupBox Friend WithEvents Panel1 As System.Windows.Forms.Panel Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox Friend WithEvents cbnl As System.Windows.Forms.ComboBox Friend WithEvents mnuBLDossier As System.Windows.Forms.MenuItem Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmBLAuslieferungen)) Dim TreeNode1 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("Auslieferungstatus (alle)", 0, 4) Me.ToolBar1 = New System.Windows.Forms.ToolBar() Me.ToolBarButton1 = New System.Windows.Forms.ToolBarButton() Me.ToolBarButton2 = New System.Windows.Forms.ToolBarButton() Me.ToolBarButton3 = New System.Windows.Forms.ToolBarButton() Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) Me.DokList = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() Me.ContextMenu1 = New System.Windows.Forms.ContextMenu() Me.MnuDruck = New System.Windows.Forms.MenuItem() Me.mnuprintall = New System.Windows.Forms.MenuItem() Me.mnuprintaq = New System.Windows.Forms.MenuItem() Me.MnuPrintBestaetigen = New System.Windows.Forms.MenuItem() Me.mnuPrintOK = New System.Windows.Forms.MenuItem() Me.mnuPrintNOK = New System.Windows.Forms.MenuItem() Me.MenuItem3 = New System.Windows.Forms.MenuItem() Me.mnuAgain = New System.Windows.Forms.MenuItem() Me.mnuDruckAbbruch = New System.Windows.Forms.MenuItem() Me.MnuStatusZurueck = New System.Windows.Forms.MenuItem() Me.MenuItem9 = New System.Windows.Forms.MenuItem() Me.mnuAuslieferungen = New System.Windows.Forms.MenuItem() Me.mnuShowDoc = New System.Windows.Forms.MenuItem() Me.mnuEdit = New System.Windows.Forms.MenuItem() Me.mnuDruckArchiv = New System.Windows.Forms.MenuItem() Me.mnuDelete = New System.Windows.Forms.MenuItem() Me.MenuItem6 = New System.Windows.Forms.MenuItem() Me.MenuItem1 = New System.Windows.Forms.MenuItem() Me.mnuBLDossier = New System.Windows.Forms.MenuItem() Me.Timer1 = New System.Timers.Timer() Me.TVStatus = New System.Windows.Forms.TreeView() Me.ImgListSteuerung = New System.Windows.Forms.ImageList(Me.components) Me.BtnHelp = New System.Windows.Forms.Button() Me.pnlNiederlassung = New System.Windows.Forms.GroupBox() Me.cbnl = New System.Windows.Forms.ComboBox() Me.Panel1 = New System.Windows.Forms.Panel() Me.GroupBox1 = New System.Windows.Forms.GroupBox() CType(Me.DokList, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.Timer1, System.ComponentModel.ISupportInitialize).BeginInit() Me.pnlNiederlassung.SuspendLayout() Me.Panel1.SuspendLayout() Me.GroupBox1.SuspendLayout() Me.SuspendLayout() ' 'ToolBar1 ' Me.ToolBar1.Buttons.AddRange(New System.Windows.Forms.ToolBarButton() {Me.ToolBarButton1, Me.ToolBarButton2, Me.ToolBarButton3}) Me.ToolBar1.DropDownArrows = True Me.ToolBar1.ImageList = Me.ImageList1 Me.ToolBar1.Location = New System.Drawing.Point(0, 0) Me.ToolBar1.Name = "ToolBar1" Me.ToolBar1.ShowToolTips = True Me.ToolBar1.Size = New System.Drawing.Size(840, 28) Me.ToolBar1.TabIndex = 0 ' 'ToolBarButton1 ' Me.ToolBarButton1.ImageIndex = 0 Me.ToolBarButton1.Name = "ToolBarButton1" ' 'ToolBarButton2 ' Me.ToolBarButton2.ImageIndex = 11 Me.ToolBarButton2.Name = "ToolBarButton2" ' 'ToolBarButton3 ' Me.ToolBarButton3.ImageIndex = 10 Me.ToolBarButton3.Name = "ToolBarButton3" Me.ToolBarButton3.Style = System.Windows.Forms.ToolBarButtonStyle.ToggleButton ' 'ImageList1 ' Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent Me.ImageList1.Images.SetKeyName(0, "") Me.ImageList1.Images.SetKeyName(1, "") Me.ImageList1.Images.SetKeyName(2, "") Me.ImageList1.Images.SetKeyName(3, "") Me.ImageList1.Images.SetKeyName(4, "") Me.ImageList1.Images.SetKeyName(5, "") Me.ImageList1.Images.SetKeyName(6, "") Me.ImageList1.Images.SetKeyName(7, "") Me.ImageList1.Images.SetKeyName(8, "") Me.ImageList1.Images.SetKeyName(9, "") Me.ImageList1.Images.SetKeyName(10, "") Me.ImageList1.Images.SetKeyName(11, "") ' 'DokList ' Me.DokList.AllowUpdateOnBlur = False Me.DokList.AlternatingRows = True Me.DokList.ContextMenu = Me.ContextMenu1 Me.DokList.Cursor = System.Windows.Forms.Cursors.Default Me.DokList.Dock = System.Windows.Forms.DockStyle.Fill Me.DokList.FetchRowStyles = True Me.DokList.FilterBar = True Me.DokList.GroupByCaption = "Drag a column header here to group by that column" Me.DokList.Images.Add(CType(resources.GetObject("DokList.Images"), System.Drawing.Image)) Me.DokList.Location = New System.Drawing.Point(256, 28) Me.DokList.MultiSelect = C1.Win.C1TrueDBGrid.MultiSelectEnum.None Me.DokList.Name = "DokList" Me.DokList.PreviewInfo.Location = New System.Drawing.Point(0, 0) Me.DokList.PreviewInfo.Size = New System.Drawing.Size(0, 0) Me.DokList.PreviewInfo.ZoomFactor = 75.0R Me.DokList.PrintInfo.PageSettings = CType(resources.GetObject("DokList.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) Me.DokList.ScrollTips = True Me.DokList.Size = New System.Drawing.Size(584, 305) Me.DokList.TabIndex = 27 Me.DokList.Text = "C1TrueDBGrid1" Me.DokList.PropBag = resources.GetString("DokList.PropBag") ' 'ContextMenu1 ' Me.ContextMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MnuDruck, Me.MnuPrintBestaetigen, Me.MenuItem3, Me.mnuAgain, Me.mnuDruckAbbruch, Me.MnuStatusZurueck, Me.MenuItem9, Me.mnuAuslieferungen, Me.mnuDelete, Me.MenuItem6, Me.MenuItem1, Me.mnuBLDossier}) ' 'MnuDruck ' Me.MnuDruck.Index = 0 Me.MnuDruck.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuprintall, Me.mnuprintaq}) Me.MnuDruck.Text = "Dokumente ausdrucken" ' 'mnuprintall ' Me.mnuprintall.Index = 0 Me.mnuprintall.Text = "Aushändigungs-Quittung und Dokumente" ' 'mnuprintaq ' Me.mnuprintaq.Index = 1 Me.mnuprintaq.Text = "Nur Aushändigungs-Quittung" ' 'MnuPrintBestaetigen ' Me.MnuPrintBestaetigen.Index = 1 Me.MnuPrintBestaetigen.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuPrintOK, Me.mnuPrintNOK}) Me.MnuPrintBestaetigen.Text = "Ausdruck bestätigen" ' 'mnuPrintOK ' Me.mnuPrintOK.Index = 0 Me.mnuPrintOK.Text = "Erfolgreich" ' 'mnuPrintNOK ' Me.mnuPrintNOK.Index = 1 Me.mnuPrintNOK.Text = "Nicht erfolgreich" ' 'MenuItem3 ' Me.MenuItem3.Index = 2 Me.MenuItem3.Text = "-" ' 'mnuAgain ' Me.mnuAgain.Index = 3 Me.mnuAgain.Text = "Dokumente neu aufbereiten" ' 'mnuDruckAbbruch ' Me.mnuDruckAbbruch.Index = 4 Me.mnuDruckAbbruch.Text = "Druck&auftrag abbrechen" ' 'MnuStatusZurueck ' Me.MnuStatusZurueck.Index = 5 Me.MnuStatusZurueck.Text = "Aushändigungsstatus zurücksetzen" ' 'MenuItem9 ' Me.MenuItem9.Index = 6 Me.MenuItem9.Text = "-" ' 'mnuAuslieferungen ' Me.mnuAuslieferungen.Index = 7 Me.mnuAuslieferungen.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuShowDoc, Me.mnuEdit, Me.mnuDruckArchiv}) Me.mnuAuslieferungen.Text = "Aushändigungs-Quittung" ' 'mnuShowDoc ' Me.mnuShowDoc.Index = 0 Me.mnuShowDoc.Text = "Anzeigen" ' 'mnuEdit ' Me.mnuEdit.Index = 1 Me.mnuEdit.Text = "Bearbeiten" ' 'mnuDruckArchiv ' Me.mnuDruckArchiv.Index = 2 Me.mnuDruckArchiv.Text = "Drucken" ' 'mnuDelete ' Me.mnuDelete.Index = 8 Me.mnuDelete.Text = "Aushändigung löschen" ' 'MenuItem6 ' Me.MenuItem6.Index = 9 Me.MenuItem6.Text = "-" Me.MenuItem6.Visible = False ' 'MenuItem1 ' Me.MenuItem1.Index = 10 Me.MenuItem1.Text = "-" ' 'mnuBLDossier ' Me.mnuBLDossier.Index = 11 Me.mnuBLDossier.Text = "Banklagernd-Dossier anzeigen" ' 'Timer1 ' Me.Timer1.Interval = 10000.0R Me.Timer1.SynchronizingObject = Me ' 'TVStatus ' Me.TVStatus.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer)) Me.TVStatus.Dock = System.Windows.Forms.DockStyle.Fill Me.TVStatus.ImageIndex = 0 Me.TVStatus.ImageList = Me.ImgListSteuerung Me.TVStatus.Location = New System.Drawing.Point(3, 16) Me.TVStatus.Name = "TVStatus" TreeNode1.ImageIndex = 0 TreeNode1.Name = "" TreeNode1.SelectedImageIndex = 4 TreeNode1.Text = "Auslieferungstatus (alle)" Me.TVStatus.Nodes.AddRange(New System.Windows.Forms.TreeNode() {TreeNode1}) Me.TVStatus.SelectedImageIndex = 0 Me.TVStatus.Size = New System.Drawing.Size(250, 246) Me.TVStatus.TabIndex = 28 ' 'ImgListSteuerung ' Me.ImgListSteuerung.ImageStream = CType(resources.GetObject("ImgListSteuerung.ImageStream"), System.Windows.Forms.ImageListStreamer) Me.ImgListSteuerung.TransparentColor = System.Drawing.Color.Transparent Me.ImgListSteuerung.Images.SetKeyName(0, "") Me.ImgListSteuerung.Images.SetKeyName(1, "") Me.ImgListSteuerung.Images.SetKeyName(2, "") Me.ImgListSteuerung.Images.SetKeyName(3, "") Me.ImgListSteuerung.Images.SetKeyName(4, "") Me.ImgListSteuerung.Images.SetKeyName(5, "") Me.ImgListSteuerung.Images.SetKeyName(6, "") Me.ImgListSteuerung.Images.SetKeyName(7, "") ' 'BtnHelp ' Me.BtnHelp.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.BtnHelp.Image = CType(resources.GetObject("BtnHelp.Image"), System.Drawing.Image) Me.BtnHelp.Location = New System.Drawing.Point(816, 2) Me.BtnHelp.Name = "BtnHelp" Me.BtnHelp.Size = New System.Drawing.Size(24, 23) Me.BtnHelp.TabIndex = 69 ' 'pnlNiederlassung ' Me.pnlNiederlassung.Controls.Add(Me.cbnl) Me.pnlNiederlassung.Dock = System.Windows.Forms.DockStyle.Top Me.pnlNiederlassung.Location = New System.Drawing.Point(0, 0) Me.pnlNiederlassung.Name = "pnlNiederlassung" Me.pnlNiederlassung.Size = New System.Drawing.Size(256, 40) Me.pnlNiederlassung.TabIndex = 70 Me.pnlNiederlassung.TabStop = False Me.pnlNiederlassung.Text = "Niederlassung" ' 'cbnl ' Me.cbnl.Location = New System.Drawing.Point(8, 16) Me.cbnl.Name = "cbnl" Me.cbnl.Size = New System.Drawing.Size(244, 21) Me.cbnl.TabIndex = 0 Me.cbnl.Text = "ComboBox1" ' 'Panel1 ' Me.Panel1.Controls.Add(Me.GroupBox1) Me.Panel1.Controls.Add(Me.pnlNiederlassung) Me.Panel1.Dock = System.Windows.Forms.DockStyle.Left Me.Panel1.Location = New System.Drawing.Point(0, 28) Me.Panel1.Name = "Panel1" Me.Panel1.Size = New System.Drawing.Size(256, 305) Me.Panel1.TabIndex = 71 ' 'GroupBox1 ' Me.GroupBox1.Controls.Add(Me.TVStatus) Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill Me.GroupBox1.Location = New System.Drawing.Point(0, 40) Me.GroupBox1.Name = "GroupBox1" Me.GroupBox1.Size = New System.Drawing.Size(256, 265) Me.GroupBox1.TabIndex = 71 Me.GroupBox1.TabStop = False Me.GroupBox1.Text = "Aushändigungen" ' 'frmBLAuslieferungen ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(840, 333) Me.Controls.Add(Me.DokList) Me.Controls.Add(Me.Panel1) Me.Controls.Add(Me.BtnHelp) Me.Controls.Add(Me.ToolBar1) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "frmBLAuslieferungen" Me.ShowInTaskbar = False Me.Text = "Aushändigungen" CType(Me.DokList, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.Timer1, System.ComponentModel.ISupportInitialize).EndInit() Me.pnlNiederlassung.ResumeLayout(False) Me.Panel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() End Sub #End Region Public Event evDossierAenderungen_Erfolgt() Dim NLFilter As Integer Dim dtnl As New DataTable() Dim on_load As Boolean = True Dim WithEvents mcbnl As MultiComboBox Private Sub frmBLAuslieferungen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.DokList.FetchRowStyles = True Me.DokList.FetchRowStyles = True Me.mcbnl = New MultiComboBox(Me.cbnl) Me.mcbnl.CheckNullValue = True Me.mcbnl.NullValueMessage = MyTxt.gettext(18) Me.mcbnl.DisplayColumnName = "nl" Me.mcbnl.ValueColumnName = "nlnr" Me.mcbnl.Fill_Data(Me.Get_nldata, False) Dim i As Integer Dim ii As Integer For i = 0 To mcbnl.Items.Count - 1 mcbnl.SelectedIndex = i If mcbnl.SelectedValue = Me.NLFilter Then Exit For Next Load_Auslieferungen() Me.ToolBar1.Buttons(2).Pushed = False Me.Timer1.Enabled = False alstatus = Get_Auslieferungstatus() on_load = False End Sub Dim alstatus As New DataTable() Private Sub Update_TVStatus() Dim i As Integer Dim tn1 As New TreeNode() Dim tn As New TreeNode() Dim x As IList Dim TMPDT As New DataTable() Dim i1 As Integer TMPDT = Me.DokList.DataSource tn = Me.TVStatus.Nodes(0) tn.Tag = -1 Me.TVStatus.Nodes.Clear() Dim totalvorbereitung As Integer Dim totalnachbearbeitung As Integer For i = 0 To TMPDT.Rows.Count - 1 If TMPDT.Rows(i).Item("status") < 4 Then totalvorbereitung = totalvorbereitung + 1 Else totalnachbearbeitung = totalnachbearbeitung + 1 End If Next tn = Me.TVStatus.Nodes.Add("Alle Aushändigungen (" + LTrim(Str(totalvorbereitung + totalnachbearbeitung)) + ")") tn.Tag = "" tn = Me.TVStatus.Nodes.Add("Vorbereitung" + " (" + LTrim(Str(totalvorbereitung)) + ")") 'tn.NodeFont = New System.Drawing.Font(Me.TVStatus.Font.FontFamily, Me.TVStatus.Font.Size, FontStyle.Bold) tn.Tag = -1 For i = 0 To alstatus.Rows.Count - 1 Dim tmpz As Integer = 0 tmpz = 0 For i1 = 0 To TMPDT.Rows.Count - 1 If TMPDT.Rows(i1).Item("status") = alstatus.Rows(i).Item("auslieferungstatusnr") Then tmpz = tmpz + 1 End If Next If alstatus.Rows(i).Item("auslieferungstatusnr") = 4 Then tn = Me.TVStatus.Nodes.Add("Nachbereitung (" + LTrim(Str(totalnachbearbeitung)) + ")") ' If totalnachbearbeitung > 0 Then tn.NodeFont = New System.Drawing.Font(Me.TVStatus.Font.FontFamily, Me.TVStatus.Font.Size, FontStyle.Bold) tn.Tag = -1 End If tn1 = tn.Nodes.Add(alstatus.Rows(i).Item("bezeichnung")) If tmpz > 0 Then tn1.Text = tn1.Text + " (" + LTrim(Str(tmpz)) + ")" End If tn1.SelectedImageIndex = 4 tn1.ImageIndex = 0 tn1.Tag = alstatus.Rows(i).Item("auslieferungstatusnr") Next Me.TVStatus.ExpandAll() Me.TVStatus.SelectedNode = Me.TVStatus.Nodes(0) End Sub Private Function Load_Auslieferungen() Dim savenode As New TreeNode() Try savenode = TVStatus.SelectedNode Catch End Try Me.DokList.Enabled = False Me.DokList.BeginInit() Dim dt As New DataTable() Me.DokList.DataSource = Nothing dt = Get_Auslierferungen() Me.DokList.DataSource = dt Me.DokList.DataMember = dt.TableName DivFnkt.SpaltenTitel_Aktualisieren(Me.DokList, dt, "auslieferung") Update_TVStatus() Me.DokList.EndInit() Me.DokList.Enabled = True Try DivFnkt.Searchnode(Me.TVStatus, savenode.Tag, 4) If DivFnkt.found = True Then Me.TVStatus.SelectedNode = DivFnkt.FoundNode Catch End Try End Function #Region "Formularhandling" Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick Select Case ToolBar1.Buttons.IndexOf(e.Button) Case 0 'Exit Me.Close() Case 1 Me.Load_Auslieferungen() Case 2 If Me.ToolBar1.Buttons(2).Pushed Then Me.Timer1.Enabled = True Else Me.Timer1.Enabled = False End If End Select End Sub #End Region #Region "DruckjobAufbereitung" Public Sub Create_PrintJob(ByVal Aushaendigungnr As Integer, ByVal bldossier As DataTable) Dim i As Integer Dim updateit As Boolean = False Dim Anzahl As Integer For i = 0 To bldossier.Rows.Count - 1 updateit = False Try If bldossier.Rows(i).Item("auslieferungnr") = 0 Then updateit = True Else updateit = False End If Catch updateit = True End Try If updateit = True Then Anzahl = Anzahl + 1 Select Case Microsoft.VisualBasic.Left(bldossier.Rows(i).Item("dokumentart"), 4) Case "HOST" update_bldokument(1, bldossier.Rows(i).Item("dokumentid"), Aushaendigungnr) Case Else update_bldokument(2, bldossier.Rows(i).Item("dokumentid"), Aushaendigungnr) End Select End If Next If Anzahl = 0 Then update_aushaendigungsquittung_status(Aushaendigungnr, 2) Try Dim xdruckjobnr As Integer xdruckjobnr = Me.get_druckjob(Aushaendigungnr) Dim f As New frmWatchJob(xdruckjobnr) f.Timer1.Enabled = False f.Timer1.Interval = 5000 f.Timer1.Enabled = True f.Visible = False f.Hide() f.Show() f.Hide() Application.DoEvents() Catch End Try Exit Sub End If Dim Druckjobnr As Integer = Create_Druckjob(Aushaendigungnr, bldossier, Anzahl) intDruckjobnr = Druckjobnr intAushaendigungnr = Aushaendigungnr intNeuerDruckauftrag = False DruckThread = New Thread(AddressOf startdruckjob) DruckThread.Start() Thread.CurrentThread.Sleep(1000) Try Dim f As New frmWatchJob(intDruckjobnr) f.Visible = False f.Hide() f.Show() f.Hide() Catch End Try update_aushaendigungsquittung_status(Aushaendigungnr, 1) RaiseEvent evDossierAenderungen_Erfolgt() 'If Start_Druckjob(Druckjobnr) = True Then ' update_aushaendigungsquittung_status(Aushaendigungnr, 1) ' RaiseEvent evDossierAenderungen_Erfolgt() 'Else ' Delete_Druckjob(Druckjobnr) ' update_aushaendigungsquittung_status(Aushaendigungnr, 0) ' Try ' RaiseEvent evDossierAenderungen_Erfolgt() ' Catch ' End Try 'End If End Sub Private Function Create_Druckjob(ByVal auslieferungnr As Integer, ByVal bldossier As DataTable, ByVal anzahl As Integer) As Integer Dim dbkey As New edokadb.clsMyKey_Tabelle() Dim key As Integer dbkey.cpMainConnectionProvider = conn conn.OpenConnection() key = dbkey.get_dbkey("Druckjob") conn.CloseConnection(False) Dim druckjob As New edokadb.clsEDEX_BL_Druckjob() druckjob.cpMainConnectionProvider = conn druckjob.iDruckjobnr = New SqlInt32(CType(key, Int32)) druckjob.iAuslieferungnr = New SqlInt32(CType(auslieferungnr, Int32)) 'Schulung Rel. 3.7 If Microsoft.VisualBasic.Left(Globals.TGNummer, 2) = "AK" Then druckjob.sTgnummer = New SqlString(CType("TG" + Globals.TGNummer, String)) Else druckjob.sTgnummer = New SqlString(CType(Globals.TGNummer, String)) End If druckjob.iAnzahl_dokument = New SqlInt32(CType(anzahl, Int32)) druckjob.daAufbereitet_am = New SqlDateTime(CType(Now, DateTime)) druckjob.iStatus = New SqlInt32(CType(0, Int32)) druckjob.sBemerkung = New SqlString(CType("", String)) druckjob.bAktiv = New SqlBoolean(CType(True, Boolean)) druckjob.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) druckjob.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) druckjob.iMutierer = New SqlInt32(CType(Globals.MitarbeiterNr, Int32)) druckjob.iMandantnr = New SqlInt32(CType(Globals.MandantNr, Int32)) conn.OpenConnection() druckjob.Insert() conn.CloseConnection(True) Return key End Function Private Function Delete_Druckjob(ByVal druckjobnr As Integer) Dim druckjob As New edokadb.clsEDEX_BL_Druckjob() druckjob.cpMainConnectionProvider = conn druckjob.iDruckjobnr = New SqlInt32(CType(druckjobnr, Int32)) druckjob.SelectOne() conn.OpenConnection() druckjob.Delete() conn.CloseConnection(True) druckjob.Dispose() End Function Dim DruckThread As Thread Dim intDruckjobnr As Integer = 0 Dim intAushaendigungnr As Integer Dim intNeuerDruckauftrag As Boolean = False Private Sub startdruckjob() If Start_Druckjob(intDruckjobnr) = True Then update_aushaendigungsquittung_status(intAushaendigungnr, 1) RaiseEvent evDossierAenderungen_Erfolgt() Else If intNeuerDruckauftrag = False Then Delete_Druckjob(intDruckjobnr) update_aushaendigungsquittung_status(intAushaendigungnr, 0) Try RaiseEvent evDossierAenderungen_Erfolgt() Catch End Try End If End If Try DruckThread.Abort() Catch End Try End Sub Private Function Start_Druckjob(ByVal Druckjobnr As Integer) As Boolean Try 'Me.Cursor = Cursors.WaitCursor Dim remoteObj As EDKB07Verarbeitung.EDKB07Verarbeitung.IEDKB07 Dim Obj As 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) remoteObj.GetDocBLPDF(Druckjobnr) remoteObj.PrintJobF(1, 0) Return True Catch ex As Exception MsgBox("Aufgrund des folgenden Fehlers konnte der Druckjob nicht gestartet werden:" + vbCrLf + vbCrLf + ex.Message, MsgBoxStyle.Critical) Return False Finally 'Me.Cursor = Cursors.Default End Try End Function #End Region #Region "Datenhandling" Private Function get_druckjob_parts() As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_edex_bl_get_druckjobparts" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = conn.scoDBConnection scmCmdToExecute.Parameters.Add(New SqlParameter("@alnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DokList.Columns(0).Value)) sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() End Try End Function Private Function update_bldokument(ByVal art As Integer, ByVal dokumentid As String, ByVal auslieferungnr As Integer) Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_edex_bl_update_auslieferungnr" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = conn.scoDBConnection scmCmdToExecute.Parameters.Add(New SqlParameter("@art", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, art)) scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid)) scmCmdToExecute.Parameters.Add(New SqlParameter("@auslieferungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, auslieferungnr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr)) sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() End Try End Function Private Function Get_Auslieferungstatus() As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_edex_bl_get_auslieferungstatus" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = conn.scoDBConnection sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() End Try End Function Private Function set_druckjobstatus(ByVal alnr As Integer, ByVal status As Integer) Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_edex_bl_set_druckjobstatus" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = conn.scoDBConnection scmCmdToExecute.Parameters.Add(New SqlParameter("@auslieferungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, alnr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, status)) sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() End Try End Function Private Function set_druckjobstatus_part(ByVal alnr As Integer, ByVal part As Integer, ByVal status As Integer) As Integer Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_edex_bl_set_druckjobstatus_part" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = conn.scoDBConnection scmCmdToExecute.Parameters.Add(New SqlParameter("@auslieferungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, alnr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@part", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, part)) scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, status)) scmCmdToExecute.Parameters.Add(New SqlParameter("@return", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0)) sdaAdapter.Fill(dtToReturn) Return scmCmdToExecute.Parameters("@return").Value Catch ex As Exception Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() End Try End Function Private Function Get_nldata() As DataTable Dim connect As New SqlConnection() connect.ConnectionString = Globals.sConnectionString Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.sp_edex_bl_getnl" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = connect scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@nlnr", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0)) sdaAdapter.Fill(dtToReturn) Me.NLFilter = scmCmdToExecute.Parameters("@nlnr").Value Return dtToReturn Catch ex As Exception Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() connect.Dispose() End Try End Function Private Function Get_Auslierferungen() As DataTable Dim connect As New SqlConnection() connect.ConnectionString = Globals.sConnectionString Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.sp_edex_bl_get_auslieferungen" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = connect scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@nl", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.mcbnl.SelectedValue)) sdaAdapter.Fill(dtToReturn) ' Me.NLFilter = scmCmdToExecute.Parameters("@nl").Value Return dtToReturn Catch ex As Exception Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() connect.Dispose() End Try End Function Private Function delete_aushaendigungsquittung(ByVal alnr As Integer) Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_edex_bl_delete_aushaendigungsquittung" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = conn.scoDBConnection scmCmdToExecute.Parameters.Add(New SqlParameter("@auslieferungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, alnr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr)) sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() End Try End Function Private Function update_aushaendigungsquittung_status(ByVal auslieferungnr As Integer, ByVal status As Integer) Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_edex_bl_aushaendigungsquittung_update_status" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = conn.scoDBConnection scmCmdToExecute.Parameters.Add(New SqlParameter("@auslieferungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, auslieferungnr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, status)) scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr)) sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() End Try End Function Private Function set_quittung_bereit_zur_archivierung(ByVal auslieferungnr As Integer) Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_edex_bl_quittung_bza" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = conn.scoDBConnection scmCmdToExecute.Parameters.Add(New SqlParameter("@auslieferungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, auslieferungnr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr)) sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() End Try End Function Private Function get_druckjob(ByVal auslieferungnr As Integer) As Integer Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_edex_bl_get_druckjob" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = conn.scoDBConnection scmCmdToExecute.Parameters.Add(New SqlParameter("@auslieferungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, auslieferungnr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@druckjobnr", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0)) sdaAdapter.Fill(dtToReturn) Return scmCmdToExecute.Parameters("@druckjobnr").Value Catch ex As Exception Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() End Try End Function Private Function get_bldokumente(ByVal auslieferungnr As Integer) As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.sp_edex_get_dossierdokumente" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = conn.scoDBConnection scmCmdToExecute.Parameters.Add(New SqlParameter("@auslieferungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, auslieferungnr)) sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() End Try End Function #End Region Private Sub mnuDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDelete.Click If Delete_Aushaendigung(Me.DokList.Columns(0).Value) Then Load_Auslieferungen() RaiseEvent evDossierAenderungen_Erfolgt() End If End Sub Public Function Delete_Aushaendigung(ByVal alnr As Integer) As Boolean If MyMsg.Show_MessageYesNo(611) = MsgBoxResult.Yes Then delete_aushaendigungsquittung(alnr) Return True Else Return False End If End Function Private Sub mnuShowDoc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuShowDoc.Click ShowDoc(Me.DokList.Columns("dokumentid_quittung").Value, Me) End Sub Public Sub ShowDoc(ByVal Officedokumentid As String, ByVal Parentform As Form) DivFnkt.show_office(Officedokumentid, Parentform) End Sub Private Sub mnuDruckAbbruch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDruckAbbruch.Click If stop_druckauftrag(Me.DokList.Columns(0).Value) Then Me.Load_Auslieferungen() End Sub Public Function stop_druckauftrag(ByVal alnr As Integer) As Boolean Try Try If Me.DruckThread.IsAlive Then Me.DruckThread.Abort() End If Catch End Try Dim druckjobnr As Integer druckjobnr = get_druckjob(alnr) Me.Delete_Druckjob(druckjobnr) update_aushaendigungsquittung_status(alnr, 0) Return True Catch Return False End Try End Function Private Sub mnuiAgain_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuAgain.Click neuer_druckauftrag(Me.DokList.Columns(0).Value) Me.Load_Auslieferungen() End Sub Public Sub neuer_druckauftrag(ByVal alnr As Integer) DruckThread = New Thread(AddressOf startdruckjob) Dim dt As New DataTable() dt = get_bldokumente(alnr) Dim druckjobnr As Integer = Create_Druckjob(alnr, dt, dt.Rows.Count) If druckjobnr > 0 Then intAushaendigungnr = alnr intDruckjobnr = druckjobnr intNeuerDruckauftrag = True Try If DruckThread.IsAlive Then DruckThread.CurrentThread.Abort() End If DruckThread.Start() Thread.CurrentThread.Sleep(1000) Try Dim f As New frmWatchJob(intDruckjobnr) f.Visible = False f.Hide() f.Show() f.Hide() Catch End Try Catch ex As Exception DruckThread.ResetAbort() DruckThread.Start() Thread.CurrentThread.Sleep(1000) Try Dim f As New frmWatchJob(intDruckjobnr) f.Visible = False f.Hide() f.Show() f.Hide() Catch End Try End Try End If End Sub Private Sub ContextMenu1_Popup(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContextMenu1.Popup Dim tmpdata As New DataTable() Dim m As MenuItem For Each m In Me.ContextMenu1.MenuItems m.Enabled = False Next Me.mnuBLDossier.Enabled = True Me.mnuprintall.Enabled = True Me.mnuprintaq.Enabled = True Me.mnuPrintOK.Enabled = True Me.mnuPrintNOK.Enabled = True Me.mnuAuslieferungen.Enabled = True Me.mnuDelete.Enabled = True Try If Me.Mutationsberechtigung(DokList.Columns("nrpar00").Value, DokList.Columns("dokumentid_quittung").Value) = False Then Me.mnuEdit.Enabled = False Me.mnuDruckArchiv.Enabled = False Me.mnuAgain.Enabled = False Me.mnuDelete.Enabled = False Me.mnuAuslieferungen.Enabled = True Exit Sub End If Catch Me.mnuEdit.Enabled = False Me.mnuDruckArchiv.Enabled = False Me.mnuAgain.Enabled = False Me.mnuDelete.Enabled = False Me.mnuAuslieferungen.Enabled = False Exit Sub End Try Try Select Case Me.DokList.Columns("status").Value Case 0 Me.mnuAgain.Enabled = True Case 1 Me.mnuDruckAbbruch.Enabled = True Case 2 Me.MnuDruck.Enabled = True Case 3 Me.MnuPrintBestaetigen.Enabled = True Case 4 If Me.get_druckjobstatus(Me.DokList.Columns(0).Value) < 4 Then Me.MnuStatusZurueck.Enabled = True End If Case 5 Me.mnuDelete.Enabled = False Case Else End Select Catch End Try Me.mnuprintall.MenuItems.Clear() Me.mnuPrintOK.MenuItems.Clear() Me.mnuPrintNOK.MenuItems.Clear() If Me.MnuStatusZurueck.Enabled = True Then Exit Sub If Me.get_parts(Me.DokList.Columns(0).Value) > 0 Then 'Druckmenu Dim i As Integer Dim a As Integer = 0 Dim b As Integer = 0 Dim c As Integer = 0 tmpdata = get_druckjob_parts() For i = 0 To tmpdata.Rows.Count - 1 Select Case tmpdata.Rows(i).Item("status") Case 2 a = 1 Case 3 b = 1 Case 4 c = 1 End Select Next If b = 0 And c = 0 And Me.MnuPrintBestaetigen.Enabled = True Then Exit Sub If a = 1 Then Me.MnuDruck.Enabled = True End If If b = 1 Then Me.MnuPrintBestaetigen.Enabled = True End If If tmpdata.Rows.Count > 1 Then Dim s As String For i = 0 To tmpdata.Rows.Count - 1 s = "Teil " + LTrim(Str(i + 1)) + " von " + LTrim(Str(tmpdata.Rows(i).Item("totalparts"))) If i = 0 Then s = s + " inkl. Quittung" If tmpdata.Rows(i).Item("status") = 2 Then s = s + " (nicht gedruckt)" If tmpdata.Rows(i).Item("status") = 3 Then s = s + " (gedruckt nicht bestätigt)" If tmpdata.Rows(i).Item("status") = 4 Then s = s + " (erfolgreich gedruckt)" m = Me.mnuprintall.MenuItems.Add(s, New EventHandler(AddressOf handlemenu)) If tmpdata.Rows(i).Item("status") = 4 Or tmpdata.Rows(i).Item("status") = 3 Then m.Enabled = False If a > 0 Or b > 0 Or c > 0 Then m = Me.mnuPrintOK.MenuItems.Add(s, New EventHandler(AddressOf handlemenuok)) If tmpdata.Rows(i).Item("status") = 2 Or tmpdata.Rows(i).Item("status") = 4 Then m.Enabled = False m = Me.mnuPrintNOK.MenuItems.Add(s, New EventHandler(AddressOf handlemenunok)) If tmpdata.Rows(i).Item("status") = 4 Or tmpdata.Rows(i).Item("status") = 2 Then m.Enabled = False End If Next End If End If End Sub Private Sub handlemenu(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim m As New MenuItem() m = sender Dim s As String s = Mid(m.Text, 6, 2) Dim part = Val(s) - 1 PrintDocs(Me.DokList.Columns("dokumentid_quittung").Value, Me, Me.DokList.Columns(0).Value, part) Me.Load_Auslieferungen() End Sub Private Sub handlemenuok(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim m As New MenuItem() m = sender Dim s As String s = Mid(m.Text, 6, 2) Dim part = Val(s) - 1 Me.set_PrintOK(Me.DokList.Columns(0).Value, part) Me.Load_Auslieferungen() End Sub Private Sub handlemenunok(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim m As New MenuItem() m = sender Dim s As String s = Mid(m.Text, 6, 2) Dim part = Val(s) - 1 Me.set_PrintNOK(Me.DokList.Columns(0).Value, part) Me.Load_Auslieferungen() End Sub Dim Dokumentfilename As String = "" 'Public Function PrintDocs(ByVal Officedokumentid As String, ByVal parentform As Form, ByVal alnr As Integer) ' Dim i As Integer ' Me.Cursor = Cursors.WaitCursor ' DivFnkt.print_office(Officedokumentid, parentform, False) ' Me.Cursor = Cursors.Default ' Me.Dokumentfilename = "" ' Me.Cursor = Cursors.WaitCursor ' If get_pdf(alnr) Then ' print_pdf(alnr) ' set_druckjobstatus(alnr, 3) ' Me.update_aushaendigungsquittung_status(alnr, 3) ' Else ' MsgBox("Das temporäre PDF-Dokumente konnte nicht erstellt werden.", MsgBoxStyle.Information) ' End If ' Me.Cursor = Cursors.Default 'End Function Public Function PrintDocs(ByVal Officedokumentid As String, ByVal parentform As Form, ByVal alnr As Integer, ByVal part As Integer) Dim f As New frmDokumentAufbereitung(alnr, part) 'f.MdiParent = Me.MdiParent f.Show() f.StartDruckaufbereituung() End Function Public Function PrintQuittung(ByVal Officedokumentid As String, ByVal parentform As Form, ByVal alnr As Integer) Me.Cursor = Cursors.WaitCursor Dim i As Integer DivFnkt.print_office(Officedokumentid, parentform, False) Me.update_aushaendigungsquittung_status(alnr, 3) Me.Dokumentfilename = "" Dim f As New frmPDFPrinter(False) f.Button1.Enabled = True f.alnr = alnr f.Show() Me.Cursor = Cursors.Default End Function Private Sub print_pdf(ByVal alnr As Integer) Try Dim f As New frmPDFPrinter(True) f.addressBar.Text = Dokumentfilename f.alnr = alnr f.Show() Application.DoEvents() f.PrintPDF() Catch ex As Exception End Try End Sub Private Function get_pdf(ByVal alnr As Integer) As Boolean 'PDF-Dokument aus der Datenbank auslesen Me.Cursor = Cursors.WaitCursor Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("Select * from edex_bl_druckjob where status=2 and auslieferungnr=" + LTrim(Str(alnr)), connection) Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da) Dim ds As New DataSet() Try 'Connectionstring zur Datenbank connection.ConnectionString = Globals.sConnectionString connection.Open() da.Fill(ds, "docs") Dim myRow As DataRow myRow = ds.Tables(0).Rows(0) Dim MyData() As Byte MyData = myRow.Item("pdfdokument_aufbereitet") Dokumentfilename = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente") + LTrim(Str(myRow.Item(0))) + "_" + Format(Now, "yyyyMMddHHmmss" + ".PDF") Dim K As Long K = UBound(MyData) Dim fs As New FileStream(Dokumentfilename, FileMode.OpenOrCreate, FileAccess.Write) fs.Write(MyData, 0, K) fs.Close() fs = Nothing Return True Catch ex As Exception Return False Finally CB = Nothing ds = Nothing da = Nothing connection.Close() connection = Nothing Me.Cursor = Cursors.Default End Try End Function Public Sub set_PrintOK(ByVal alnr As Integer, ByVal part As Integer) If get_parts(alnr) = 0 Or part = -1 Then Me.update_aushaendigungsquittung_status(alnr, 4) Me.set_druckjobstatus(alnr, 4) Me.set_quittung_bereit_zur_archivierung(alnr) Else If Me.set_druckjobstatus_part(alnr, part, 4) = 1 Then Me.update_aushaendigungsquittung_status(alnr, 4) Me.set_druckjobstatus(alnr, 4) Me.set_quittung_bereit_zur_archivierung(alnr) End If End If End Sub Public Sub set_PrintNOK(ByVal alnr As Integer, ByVal part As Integer) If get_parts(alnr) = 0 Or part = -1 Then Me.update_aushaendigungsquittung_status(alnr, 2) Me.set_druckjobstatus(alnr, 2) Else Me.set_druckjobstatus_part(alnr, part, 2) End If End Sub Private Sub Timer1_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed Me.Load_Auslieferungen() End Sub Private Sub DokList_FetchRowStyle(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchRowStyleEventArgs) Handles DokList.FetchRowStyle End Sub Private Sub mnuEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuEdit.Click EditDok(Me.DokList.Columns(0).Value) End Sub Public Sub EditDok(ByVal Alnr As Integer) Dim f As New frmBLDruck(Alnr) f.ShowDialog() End Sub Private Sub DokList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DokList.Click End Sub Private Sub mnuDruckArchiv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDruckArchiv.Click Print_And_Arch(Me.DokList.Columns("dokumentid_quittung").Value, Me, Me.DokList.Columns(0).Value) End Sub Public Sub Print_And_Arch(ByVal officedokumentid As String, ByVal parentform As Form, ByVal alnr As Integer) DivFnkt.print_office(officedokumentid, parentform) Me.set_quittung_bereit_zur_archivierung(alnr) End Sub Private Sub TVStatus_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TVStatus.AfterSelect Try Me.DokList.Columns("status").FilterText = Me.TVStatus.SelectedNode.Tag Catch ex As Exception End Try End Sub Private Sub frmBLAuslieferungen_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing ' Me.Hide() ' e.Cancel = True End Sub Private Sub mnuprintall_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuprintall.Click PrintDocs(Me.DokList.Columns("dokumentid_quittung").Value, Me, Me.DokList.Columns(0).Value, 0) Me.Load_Auslieferungen() End Sub Private Sub mnuprintquittung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuprintaq.Click PrintQuittung(Me.DokList.Columns("dokumentid_quittung").Value, Me, Me.DokList.Columns(0).Value) Me.Load_Auslieferungen() End Sub Public Function get_druckjobstatus(ByVal alnr As Integer) As Integer Dim connect As New SqlConnection() connect.ConnectionString = Globals.sConnectionString Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.sp_edex_bl_get_druckjobstatus" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = connect scmCmdToExecute.Parameters.Add(New SqlParameter("@auslieferungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, alnr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0)) sdaAdapter.Fill(dtToReturn) Return scmCmdToExecute.Parameters("@status").Value Catch ex As Exception Return -1 Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() connect.Dispose() End Try End Function Public Function get_parts(ByVal alnr As Integer) As Integer Dim connect As New SqlConnection() connect.ConnectionString = Globals.sConnectionString Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.sp_edex_bl_get_druckjobparts_count" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = connect scmCmdToExecute.Parameters.Add(New SqlParameter("@auslieferungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, alnr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@parts", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0)) sdaAdapter.Fill(dtToReturn) Return scmCmdToExecute.Parameters("@parts").Value Catch ex As Exception Return -1 Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() connect.Dispose() End Try End Function 'Public Function get_druckjob(ByVal alnr As Integer) As Integer ' Dim connect As New SqlConnection() ' connect.ConnectionString = Globals.sConnectionString ' Dim scmCmdToExecute As SqlCommand = New SqlCommand() ' scmCmdToExecute.CommandText = "dbo.sp_edex_bl_get_druckjobparts_count" ' scmCmdToExecute.CommandType = CommandType.StoredProcedure ' Dim dtToReturn As DataTable = New DataTable() ' Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) ' Try ' scmCmdToExecute.Connection = connect ' scmCmdToExecute.Parameters.Add(New SqlParameter("@auslieferungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, alnr)) ' scmCmdToExecute.Parameters.Add(New SqlParameter("@parts", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0)) ' sdaAdapter.Fill(dtToReturn) ' Return scmCmdToExecute.Parameters("@parts").Value ' Catch ex As Exception ' Return -1 ' Finally ' scmCmdToExecute.Dispose() ' sdaAdapter.Dispose() ' dtToReturn.Dispose() ' connect.Dispose() ' End Try 'End Function Public Function Aushaendigungsstatus_zuruecksetzen(ByVal alnr As Integer) Me.update_aushaendigungsquittung_status(alnr, 2) End Function Private Sub mnuPrintOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPrintOK.Click set_PrintOK(Me.DokList.Columns(0).Value, -1) Me.Load_Auslieferungen() End Sub Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPrintNOK.Click Me.set_PrintNOK(Me.DokList.Columns(0).Value, -1) Me.Load_Auslieferungen() End Sub Private Sub cbnl_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mcbnl.SelectedIndexChanged If on_load = True Then Exit Sub Load_Auslieferungen() End Sub Public Function Mutationsberechtigung(ByVal nrpar00 As Integer, ByVal dokumentid As String) As Boolean Dim d As New DataTable() Dim dok As New edokadb.clsDokument() dok.cpMainConnectionProvider = Globals.conn dok.sDokumentid = New SqlString(CType(dokumentid, String)) dok.SelectOne() Try 'd = DivFnkt.Berechtigte_Mitarbeiter(dok.iDokumenttypnr.Value, Globals.MitarbeiterNr, nrpar00, dokumentid, 0, 0, 0, 0, "") If dok.iVerantwortlich.Value <> Globals.MitarbeiterNr And Globals.stv = 0 Then If Not isstv(Globals.MitarbeiterNr, nrpar00, dokumentid) Then Return False Else Return True End If Else Return True End If Catch Return False Finally d.Dispose() dok.Dispose() End Try End Function Public Function isstv(ByVal manr As Integer, ByVal partnernr As Integer, ByVal dokumentid As String) As Boolean Dim connect As New SqlConnection() connect.ConnectionString = Globals.sConnectionString Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.sp_edex_bl_isstv" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Try scmCmdToExecute.Connection = connect scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, manr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@nrpar00", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, partnernr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid)) scmCmdToExecute.Parameters.Add(New SqlParameter("@isstv", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0)) sdaAdapter.Fill(dtToReturn) If scmCmdToExecute.Parameters("@isstv").Value = 1 Then Return True Else Return False End If Catch ex As Exception Return -1 Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() dtToReturn.Dispose() connect.Dispose() End Try End Function Private Sub MnuStatusZurueck_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuStatusZurueck.Click Aushaendigungsstatus_zuruecksetzen(Me.DokList.Columns(0).Value) Me.Load_Auslieferungen() End Sub Private Sub mnuBLDossier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBLDossier.Click Dim f As New frmBLDossier() f.NRPar00 = Me.DokList.Columns("NRPAR00").Value f.MdiParent = Me.MdiParent f.Profilnr = 0 f.Auslieferungnr = Me.DokList.Columns(0).Value f.Show() End Sub Private Sub DokList_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DokList.MouseDown Me.DokList.Bookmark = Me.DokList.RowContaining(e.Y) End Sub Private Sub BtnHelp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHelp.Click Globals.HTMLHelp.ShowHelpToc("aushndigungenverwalten") End Sub End Class