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.

1518 lines
64 KiB

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
<System.Diagnostics.DebuggerStepThrough()> 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
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
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)
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