Imports System.Data Imports System.Data.SqlClient Imports System.Data.SqlTypes Public Class frmSBEdit #Region "Deklarationen" Public sb As edokadb.clsEdex_sb_serienbrief Private EmpfData As New DataTable Public ResultatDaten As New DataTable #End Region Sub New(ByRef serienbrief As edokadb.clsEdex_sb_serienbrief, ByRef daten As DataTable) Me.InitializeComponent() Me.sb = serienbrief Me.EmpfData = daten.Copy Me.ResultatDaten = daten.Copy End Sub Private Sub frmSBEdit_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try Me.txtStatus.Text = Me.sb.iStatus.Value.ToString Me.txtfehlerhaft.Text = Me.sb.iFehlerhaft.Value.ToString Me.txtinbearbeitung.Text = Me.sb.iInBearbeitung.Value.ToString Me.txterstellt.Text = Me.sb.iErstellt.Value.ToString Me.txtgedruckt.Text = Me.sb.iGedruckt.Value.ToString Me.txtbestätigt.Text = Me.sb.iBestaetigt.Value.ToString Me.txtausgelöst.Text = Me.sb.iAusgeloest.Value.ToString Me.txtBLDossier.Text = Me.sb.iBldossier.Value.ToString Me.empflist.DataSource = Me.EmpfData Me.empflist.DataMember = Me.EmpfData.TableName Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click Me.Close() End Sub Private Sub SpeichernToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SpeichernToolStripMenuItem.Click Me.sb.iStatus = New SqlInt32(CType(Me.txtStatus.Text, Int32)) Me.sb.iFehlerhaft = New SqlInt32(CType(Me.txtfehlerhaft.Text, Int32)) Me.sb.iInBearbeitung = New SqlInt32(CType(Me.txtinbearbeitung.Text, Int32)) Me.sb.iErstellt = New SqlInt32(CType(Me.txterstellt.Text, Int32)) Me.sb.iGedruckt = New SqlInt32(CType(Me.txtgedruckt.Text, Int32)) Me.sb.iBestaetigt = New SqlInt32(CType(Me.txtbestätigt.Text, Int32)) Me.sb.iAusgeloest = New SqlInt32(CType(Me.txtausgelöst.Text, Int32)) Me.sb.iBldossier = New SqlInt32(CType(Me.txtBLDossier.Text, Int32)) Me.ResultatDaten.Clear() Me.ResultatDaten = Me.EmpfData.Copy End Sub Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged End Sub Private Sub StatusEmpfängerlisteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StatusEmpfängerlisteToolStripMenuItem.Click Dim res As String = "-99" res = InputBox("Status der Einträge in der Empängerliste:", "Status Empfängerliste setzen") If res <> "-99" Then For Each dr As DataRow In Me.EmpfData.Rows dr.Item("Status") = res Next End If End Sub Private Sub DruckstapelLöschenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DruckstapelLöschenToolStripMenuItem.Click If MsgBox("Es werden alle Druckstapel gelöscht. Die Löschung kann nicht mehr rückgängig gemacht werde. Fortfahren?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Druckstapel löschen") = MsgBoxResult.Yes Then set_druckjobstatus(3, Me.sb.iSerienbriefnr.Value) End If End Sub Private Function set_druckjobstatus(ByVal status As Integer, ByVal serienbriefnr As Integer) As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() Dim i As Integer Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.CommandText = "sp_edex_sb_set_druckjobstatus" scmCmdToExecute.CommandType = CommandType.StoredProcedure scmCmdToExecute.Connection = conn.scoDBConnection Try scmCmdToExecute.Parameters.Add(New SqlParameter("@druckjobnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0)) scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, status)) scmCmdToExecute.Parameters.Add(New SqlParameter("@serienbriefnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, serienbriefnr)) sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception Throw New Exception("sp_check_dokumentreaktivierung::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() End Try End Function Private Sub DokumentePruefenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DokumentePruefenToolStripMenuItem.Click Try Cursor = Cursors.WaitCursor Dim i As Integer Dim tmpdata As New DataTable Dim errorstring As String = "Folgende Dokumente sind nicht im EDOKA:" Dim dok As New edokadb.clsDokument dok.cpMainConnectionProvider = Globals.conn For i = 0 To EmpfData.Rows.Count - 1 tmpdata.Rows.Clear() dok.sDokumentid = New SqlString(CType(EmpfData.Rows(i).Item("Dokumentid"), String)) tmpdata = dok.SelectOne() If tmpdata.Rows.Count = 0 Then errorstring = errorstring + vbCrLf + EmpfData.Rows(i).Item("Partnernr").ToString + ": " + EmpfData.Rows(i).Item("Dokumentid").ToString End If Next tmpdata.Dispose() dok.Dispose() If errorstring <> "Folgende Dokumente sind nicht im EDOKA:" Then MsgBox(errorstring, MsgBoxStyle.Critical) Else MsgBox("Alle Dokumente im EDOKA vorhanden.") End If Catch ex As Exception MsgBox("Bei der Prüfung ist ein Fehler aufgetreten:" + ex.Message) Cursor = Cursors.Default End Try End Sub Private Sub IndexdatenFürMarkierteDatensätzeGenerierenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IndexdatenFürMarkierteDatensätzeGenerierenToolStripMenuItem.Click If Not IO.File.Exists(Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + "\EDKB08Struktur.xml") Then MsgBox("Die Datei 'EDKB08Struktur.xml' muss für diesen Vorgang im Verzeichnis " + Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + " zur Verfügung stehen.", MsgBoxStyle.Critical) Exit Sub End If Dim importdata As New DataSet() importdata.ReadXml(Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + "\EDKB08Struktur.xml") importdata.Tables(0).Rows.Clear() importdata.Tables(0).Columns.Add("BLKunde") importdata.Tables(0).Columns.Add("Dokumentidbdr") importdata.Tables(0).Columns.Add("Dokumentid") importdata.Tables(0).Columns.Add("Bezeichnung") Dim i As Integer = 0 Dim s As String = "" Dim row As Long Dim col As C1.Win.C1TrueDBGrid.C1DataColumn Dim cols As Integer, rows As Long If Me.empflist.SelectedRows.Count = 0 Then s = Me.empflist.Columns("Dokumentid").Text Insert_datarow(importdata, s) Else For Each row In Me.empflist.SelectedRows For Each col In Me.empflist.Columns If col.Caption = "DOKUMENTID" Then s = col.CellText(row) Insert_datarow(importdata, s) End If Next Next End If importdata.WriteXml(Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + "\" + Me.sb.iSerienbriefnr.Value.ToString + "_EDKB08_Import.xml") MsgBox("Die Datei " + Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + "\" + Me.sb.iSerienbriefnr.Value.ToString + "_EDKB08_Import.xml mit den generierten Indexdaten wurde erstellt.") End Sub Private Function Insert_datarow(ByVal importdata As DataSet, ByVal dokumentid As String) Dim i As Integer For Each dv As DataRow In EmpfData.Rows If dv.Item("Dokumentid") = dokumentid Then Dim dr As DataRow dr = importdata.Tables(0).NewRow Try While i < 40 dr.Item(i) = "" i = i + 1 End While Catch End Try dr.Item("Funktion") = "ADD" dr.Item("PARTNERNR") = dv.Item("Partnernr") dr.Item("Dokumenttypnr") = sb.iDokumenttypnr.Value dr.Item("dateiname") = dv.Item("Dokumentid") + ".pdf" dr.Item("Dateiformat") = "PDF" dr.Item("Archivdatum") = Now.ToString Dim ma As New edokadb.clsMitarbeiter ma.cpMainConnectionProvider = Globals.conn ma.iMitarbeiternr = New SqlInt32(CType(dv.Item("Ersteller"), Int32)) ma.SelectOne() dr.Item("Ersteller") = ma.sTgnummer.Value.ToString ma.Dispose() dr.Item("HERKUNFTSAPPLIKATION") = "EDKB09" dr.Item("Dokumentid") = dv.Item("Dokumentid") dr.Item("Dokumentidbdr") = dv.Item("Dokumentidbdr") 'Rel. 4.1 - Nur als BL-Kunde kennzeichnen, sofern so im Serienbrief festgehalten If sb.iBldossier.Value.ToString = "1" Then dr.Item("BLKunde") = dv.Item("BLKUNDE") Else If dv.Item("BLKunde") = "1" Then 'insert_sb_bl_physiche_ablage_journal(Me.Serienbriefnr, sb.sBezeichnung.Value.ToString, get_tgnummer(dv.Item("Ersteller")), dv.Item("Partnernr"), dv.Item("DokumentID")) End If dr.Item("BLKunde") = "0" End If dr.Item("Bezeichnung") = sb.sBezeichnung.Value dr.Item("DOKUMENTWERT2") = "Serienbriefnr;" + sb.iSerienbriefnr.ToString importdata.Tables(0).Rows.Add(dr) End If Next End Function End Class