Initial
This commit is contained in:
410
EDOKA/EDEX/Serienbriefe/frmDruckAbschluss.vb
Normal file
410
EDOKA/EDEX/Serienbriefe/frmDruckAbschluss.vb
Normal file
@@ -0,0 +1,410 @@
|
||||
Imports System.IO
|
||||
Imports System.Data
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.Data.SqlTypes
|
||||
|
||||
Public Class frmDruckabschluss
|
||||
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 GroupBox1 As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents rbkeineaktion As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents rbweiteregenerieren As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents rbgeneriertedokumentebestätigen As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents rbabschliessen As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents Button1 As System.Windows.Forms.Button
|
||||
Friend WithEvents Abbruch As System.Windows.Forms.Button
|
||||
Friend WithEvents txtbemerkung As System.Windows.Forms.TextBox
|
||||
Friend WithEvents Label1 As System.Windows.Forms.Label
|
||||
Friend WithEvents Label2 As System.Windows.Forms.Label
|
||||
Friend WithEvents StatusBar1 As System.Windows.Forms.StatusBar
|
||||
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
|
||||
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
|
||||
Me.rbabschliessen = New System.Windows.Forms.RadioButton()
|
||||
Me.rbgeneriertedokumentebestätigen = New System.Windows.Forms.RadioButton()
|
||||
Me.rbweiteregenerieren = New System.Windows.Forms.RadioButton()
|
||||
Me.rbkeineaktion = New System.Windows.Forms.RadioButton()
|
||||
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
|
||||
Me.txtbemerkung = New System.Windows.Forms.TextBox()
|
||||
Me.Button1 = New System.Windows.Forms.Button()
|
||||
Me.Abbruch = New System.Windows.Forms.Button()
|
||||
Me.Label1 = New System.Windows.Forms.Label()
|
||||
Me.Label2 = New System.Windows.Forms.Label()
|
||||
Me.StatusBar1 = New System.Windows.Forms.StatusBar()
|
||||
Me.GroupBox1.SuspendLayout()
|
||||
Me.GroupBox2.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'GroupBox1
|
||||
'
|
||||
Me.GroupBox1.Controls.AddRange(New System.Windows.Forms.Control() {Me.rbabschliessen, Me.rbgeneriertedokumentebestätigen, Me.rbweiteregenerieren, Me.rbkeineaktion})
|
||||
Me.GroupBox1.Location = New System.Drawing.Point(8, 40)
|
||||
Me.GroupBox1.Name = "GroupBox1"
|
||||
Me.GroupBox1.Size = New System.Drawing.Size(320, 128)
|
||||
Me.GroupBox1.TabIndex = 0
|
||||
Me.GroupBox1.TabStop = False
|
||||
Me.GroupBox1.Text = "Optionen"
|
||||
'
|
||||
'rbabschliessen
|
||||
'
|
||||
Me.rbabschliessen.Location = New System.Drawing.Point(16, 96)
|
||||
Me.rbabschliessen.Name = "rbabschliessen"
|
||||
Me.rbabschliessen.Size = New System.Drawing.Size(200, 24)
|
||||
Me.rbabschliessen.TabIndex = 3
|
||||
Me.rbabschliessen.Text = "Serienbrief abschliessen"
|
||||
'
|
||||
'rbgeneriertedokumentebestätigen
|
||||
'
|
||||
Me.rbgeneriertedokumentebestätigen.Location = New System.Drawing.Point(16, 72)
|
||||
Me.rbgeneriertedokumentebestätigen.Name = "rbgeneriertedokumentebestätigen"
|
||||
Me.rbgeneriertedokumentebestätigen.Size = New System.Drawing.Size(200, 24)
|
||||
Me.rbgeneriertedokumentebestätigen.TabIndex = 2
|
||||
Me.rbgeneriertedokumentebestätigen.Text = "Erstellte Dokumente bestätigen"
|
||||
'
|
||||
'rbweiteregenerieren
|
||||
'
|
||||
Me.rbweiteregenerieren.Location = New System.Drawing.Point(16, 48)
|
||||
Me.rbweiteregenerieren.Name = "rbweiteregenerieren"
|
||||
Me.rbweiteregenerieren.Size = New System.Drawing.Size(240, 24)
|
||||
Me.rbweiteregenerieren.TabIndex = 1
|
||||
Me.rbweiteregenerieren.Text = "Weitere pendente Dokumente generieren"
|
||||
'
|
||||
'rbkeineaktion
|
||||
'
|
||||
Me.rbkeineaktion.Location = New System.Drawing.Point(16, 24)
|
||||
Me.rbkeineaktion.Name = "rbkeineaktion"
|
||||
Me.rbkeineaktion.Size = New System.Drawing.Size(152, 24)
|
||||
Me.rbkeineaktion.TabIndex = 0
|
||||
Me.rbkeineaktion.Text = "keine Aktion durchführen"
|
||||
'
|
||||
'GroupBox2
|
||||
'
|
||||
Me.GroupBox2.Controls.AddRange(New System.Windows.Forms.Control() {Me.txtbemerkung})
|
||||
Me.GroupBox2.Location = New System.Drawing.Point(8, 176)
|
||||
Me.GroupBox2.Name = "GroupBox2"
|
||||
Me.GroupBox2.Size = New System.Drawing.Size(320, 100)
|
||||
Me.GroupBox2.TabIndex = 1
|
||||
Me.GroupBox2.TabStop = False
|
||||
Me.GroupBox2.Text = "Beschreibung"
|
||||
'
|
||||
'txtbemerkung
|
||||
'
|
||||
Me.txtbemerkung.BackColor = System.Drawing.SystemColors.ActiveBorder
|
||||
Me.txtbemerkung.Location = New System.Drawing.Point(8, 16)
|
||||
Me.txtbemerkung.Multiline = True
|
||||
Me.txtbemerkung.Name = "txtbemerkung"
|
||||
Me.txtbemerkung.Size = New System.Drawing.Size(304, 72)
|
||||
Me.txtbemerkung.TabIndex = 0
|
||||
Me.txtbemerkung.Text = ""
|
||||
'
|
||||
'Button1
|
||||
'
|
||||
Me.Button1.Location = New System.Drawing.Point(248, 288)
|
||||
Me.Button1.Name = "Button1"
|
||||
Me.Button1.TabIndex = 2
|
||||
Me.Button1.Text = "OK"
|
||||
'
|
||||
'Abbruch
|
||||
'
|
||||
Me.Abbruch.Location = New System.Drawing.Point(8, 288)
|
||||
Me.Abbruch.Name = "Abbruch"
|
||||
Me.Abbruch.TabIndex = 3
|
||||
Me.Abbruch.Text = "Abbruch"
|
||||
'
|
||||
'Label1
|
||||
'
|
||||
Me.Label1.Location = New System.Drawing.Point(16, 8)
|
||||
Me.Label1.Name = "Label1"
|
||||
Me.Label1.Size = New System.Drawing.Size(64, 23)
|
||||
Me.Label1.TabIndex = 4
|
||||
Me.Label1.Text = "Serienbrief:"
|
||||
'
|
||||
'Label2
|
||||
'
|
||||
Me.Label2.Location = New System.Drawing.Point(80, 8)
|
||||
Me.Label2.Name = "Label2"
|
||||
Me.Label2.Size = New System.Drawing.Size(248, 23)
|
||||
Me.Label2.TabIndex = 5
|
||||
Me.Label2.Text = "Label2"
|
||||
'
|
||||
'StatusBar1
|
||||
'
|
||||
Me.StatusBar1.Location = New System.Drawing.Point(0, 327)
|
||||
Me.StatusBar1.Name = "StatusBar1"
|
||||
Me.StatusBar1.Size = New System.Drawing.Size(336, 22)
|
||||
Me.StatusBar1.TabIndex = 6
|
||||
'
|
||||
'frmDruckabschluss
|
||||
'
|
||||
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
|
||||
Me.ClientSize = New System.Drawing.Size(336, 349)
|
||||
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.StatusBar1, Me.Label2, Me.Label1, Me.Abbruch, Me.Button1, Me.GroupBox2, Me.GroupBox1})
|
||||
Me.Name = "frmDruckabschluss"
|
||||
Me.Text = "Serienbrief-Verarbeitung:"
|
||||
Me.GroupBox1.ResumeLayout(False)
|
||||
Me.GroupBox2.ResumeLayout(False)
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
Dim serienbriefnr As Integer
|
||||
Dim dsempfaenger As New DataSet()
|
||||
Dim progress As New ucProgress()
|
||||
Dim m_datasaved As Boolean
|
||||
Dim serienbrief As New edokadb.clsEdex_sb_serienbrief()
|
||||
|
||||
Property datasaved() As Boolean
|
||||
Get
|
||||
Return m_datasaved
|
||||
End Get
|
||||
Set(ByVal Value As Boolean)
|
||||
m_datasaved = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub New(ByVal serienbriefnr As Integer)
|
||||
MyBase.New()
|
||||
' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
|
||||
InitializeComponent()
|
||||
' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
|
||||
Me.serienbriefnr = serienbriefnr
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub frmDruckabschluss_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
||||
serienbrief.cpMainConnectionProvider = Globals.conn
|
||||
serienbrief.iSerienbriefnr = New SqlInt32(CType(Me.serienbriefnr, Int32))
|
||||
serienbrief.SelectOne()
|
||||
Label2.Text = serienbrief.sBezeichnung.Value
|
||||
serienbrief.Dispose()
|
||||
Me.StatusBar1.Controls.Add(progress)
|
||||
Me.SetProgress(0, "Empfänger prüfen", False)
|
||||
If Load_empfaenger() = True Then
|
||||
check_data()
|
||||
End If
|
||||
Me.SetProgress(0, "", True)
|
||||
Me.rbkeineaktion.Checked = True
|
||||
End Sub
|
||||
|
||||
Private Function Load_empfaenger() As Boolean
|
||||
Try
|
||||
Dim dokumentname = Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + Me.serienbriefnr.ToString + "_empfaenger.xml"
|
||||
Me.dsempfaenger.Tables.Clear()
|
||||
Dim Connection As New SqlConnection()
|
||||
Dim DA As New SqlDataAdapter("select * from edex_sb_empfaenger where serienbriefnr=" + Str(Me.serienbriefnr), Connection)
|
||||
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
|
||||
Dim ds As New DataSet()
|
||||
Try
|
||||
Connection.ConnectionString = Globals.sConnectionString
|
||||
Connection.Open()
|
||||
DA.Fill(ds, "empf")
|
||||
Dim myRow As DataRow
|
||||
If ds.Tables(0).Rows.Count = 0 Then
|
||||
MyMsg.show_standardmessage(701, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
Else
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
Dim MyData() As Byte
|
||||
MyData = myRow.Item(2)
|
||||
Dim K As Long
|
||||
K = UBound(MyData)
|
||||
Dim fs As New FileStream(dokumentname, FileMode.OpenOrCreate, FileAccess.Write)
|
||||
fs.Write(MyData, 0, K)
|
||||
fs.Close()
|
||||
fs = Nothing
|
||||
Me.dsempfaenger.ReadXml(dokumentname)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MyMsg.show_standardmessage(701, MsgBoxStyle.Critical)
|
||||
' MsgBox(ex.Message)
|
||||
Return False
|
||||
End Try
|
||||
cb = Nothing
|
||||
ds = Nothing
|
||||
DA = Nothing
|
||||
|
||||
Connection.Close()
|
||||
Connection = Nothing
|
||||
Return True
|
||||
Catch EX As Exception
|
||||
MyMsg.show_standardmessage(701, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function save_empfaenger() As Boolean
|
||||
Try
|
||||
Dim dokumentname = Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + Me.serienbriefnr.ToString + "_empfaenger.xml"
|
||||
Me.dsempfaenger.WriteXml(dokumentname)
|
||||
Dim Connection As New SqlConnection()
|
||||
Dim DA As New SqlDataAdapter("select * from edex_sb_empfaenger where serienbriefnr=" + Str(Me.serienbriefnr), Connection)
|
||||
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
|
||||
Dim ds As New DataSet()
|
||||
Dim fs As New FileStream(dokumentname, FileMode.Open, FileAccess.Read)
|
||||
Dim mydata(fs.Length) As Byte
|
||||
Try
|
||||
fs.Read(mydata, 0, fs.Length)
|
||||
fs.Close()
|
||||
Connection.ConnectionString = Globals.sConnectionString
|
||||
Connection.Open()
|
||||
DA.Fill(ds, "empf")
|
||||
Dim myRow As DataRow
|
||||
If ds.Tables(0).Rows.Count = 0 Then
|
||||
'Neue Serienbrief_Empfaenger speichern
|
||||
myRow = ds.Tables(0).NewRow
|
||||
myRow.Item(1) = Me.serienbriefnr
|
||||
myRow.Item(2) = mydata
|
||||
ds.Tables(0).Rows.Add(myRow)
|
||||
DA.Update(ds, "empf")
|
||||
Else
|
||||
' Bestehende Empfängerliste überschreiben
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
myRow.Item(2) = mydata
|
||||
DA.Update(ds, "empf")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MyMsg.show_standardmessage(700, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
fs = Nothing
|
||||
cb = Nothing
|
||||
ds = Nothing
|
||||
DA = Nothing
|
||||
|
||||
Connection.Close()
|
||||
Connection = Nothing
|
||||
Return True
|
||||
Catch EX As Exception
|
||||
MyMsg.show_standardmessage(700, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function check_data()
|
||||
Me.rbabschliessen.Enabled = False
|
||||
Me.rbgeneriertedokumentebestätigen.Enabled = False
|
||||
Me.rbkeineaktion.Enabled = True
|
||||
Me.rbweiteregenerieren.Enabled = False
|
||||
If Me.serienbrief.iAusgeloest.Value <> 0 Then Me.rbweiteregenerieren.Enabled = True
|
||||
If Me.serienbrief.iErstellt.Value <> 0 Or Me.serienbrief.iGedruckt.Value <> 0 Then Me.rbgeneriertedokumentebestätigen.Enabled = True
|
||||
If Me.serienbrief.iFehlerhaft.Value = 0 And Me.serienbrief.iAusgeloest.Value = 0 And Me.serienbrief.iInBearbeitung.Value = 0 Then
|
||||
Me.rbabschliessen.Enabled = True
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Sub SetProgress(ByVal wert As Integer, ByVal txt As String, ByVal hidedialog As Boolean)
|
||||
If hidedialog Then
|
||||
progress.Hide()
|
||||
Exit Sub
|
||||
End If
|
||||
progress.Visible = True
|
||||
If wert + 1 > 100 Then wert = 99
|
||||
progress.Bar1.Value = wert + 1
|
||||
progress.info.Text = txt
|
||||
progress.Refresh()
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
|
||||
If Me.rbkeineaktion.Checked Then
|
||||
Me.datasaved = False
|
||||
Me.Close()
|
||||
End If
|
||||
If Me.rbgeneriertedokumentebestätigen.Checked Then
|
||||
Dokumente_bestaetigen()
|
||||
Me.save_empfaenger()
|
||||
Me.datasaved = True
|
||||
Me.Close()
|
||||
End If
|
||||
If Me.rbabschliessen.Checked Then
|
||||
Dokumente_bestaetigen()
|
||||
Dim serienbrief As New edokadb.clsEdex_sb_serienbrief()
|
||||
serienbrief.cpMainConnectionProvider = Globals.conn
|
||||
serienbrief.iSerienbriefnr = New SqlInt32(CType(Me.serienbriefnr, Int32))
|
||||
serienbrief.SelectOne()
|
||||
serienbrief.iStatus = New SqlInt32(CType(1, Int32))
|
||||
Globals.conn.OpenConnection()
|
||||
serienbrief.Update()
|
||||
Globals.conn.CloseConnection(True)
|
||||
serienbrief.Dispose()
|
||||
|
||||
Me.save_empfaenger()
|
||||
Me.datasaved = True
|
||||
Me.Close()
|
||||
End If
|
||||
If Me.rbweiteregenerieren.Checked Then
|
||||
Dim serienbrief As New edokadb.clsEdex_sb_serienbrief()
|
||||
serienbrief.cpMainConnectionProvider = Globals.conn
|
||||
serienbrief.iSerienbriefnr = New SqlInt32(CType(Me.serienbriefnr, Int32))
|
||||
serienbrief.SelectOne()
|
||||
serienbrief.iStatus = New SqlInt32(CType(-1, Int32))
|
||||
Globals.conn.OpenConnection()
|
||||
serienbrief.Update()
|
||||
Globals.conn.CloseConnection(True)
|
||||
serienbrief.Dispose()
|
||||
Me.save_empfaenger()
|
||||
Me.Close()
|
||||
Me.datasaved = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Dokumente_bestaetigen()
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
Application.DoEvents()
|
||||
Dim pwert As Integer
|
||||
Dim i As Integer
|
||||
For i = 0 To Me.dsempfaenger.Tables(0).Rows.Count - 1
|
||||
Try
|
||||
pwert = 100 / Me.dsempfaenger.Tables(0).Rows.Count * i
|
||||
Catch
|
||||
pwert = 0
|
||||
End Try
|
||||
Me.SetProgress(pwert, "Dokumente bestätigen", False)
|
||||
|
||||
Try
|
||||
If Me.dsempfaenger.Tables(0).Rows(i).Item("STATUS") = 2 Or Me.dsempfaenger.Tables(0).Rows(i).Item("STATUS") = 3 Then
|
||||
Me.dsempfaenger.Tables(0).Rows(i).Item("Dokument_Gedruckt") = 1
|
||||
Me.dsempfaenger.Tables(0).Rows(i).Item("STATUS") = 4
|
||||
End If
|
||||
Catch
|
||||
End Try
|
||||
Next
|
||||
Me.SetProgress(100, "", True)
|
||||
Cursor = Cursors.Default
|
||||
Application.DoEvents()
|
||||
End Sub
|
||||
|
||||
Private Sub Abbruch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Abbruch.Click
|
||||
Me.Close()
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user