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.
411 lines
16 KiB
411 lines
16 KiB
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
|