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.
1301 lines
50 KiB
1301 lines
50 KiB
Imports System.IO.File
|
|
Imports System.IO
|
|
Imports System.Data.SqlClient
|
|
Imports System.Data.SqlTypes
|
|
Imports System.ComponentModel
|
|
|
|
Public Class Form1
|
|
|
|
#Region "Deklarationen"
|
|
Dim ds As New DataSet()
|
|
Dim ds2 As New DataSet
|
|
#End Region
|
|
|
|
Dim params As New Parameters
|
|
|
|
Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click
|
|
Me.Close()
|
|
End Sub
|
|
|
|
#Region "Allgemeine Funktionalitäten"
|
|
Private Function Insert_Journal(ByVal txt As String)
|
|
If Me.Journal.Text <> "" Then Me.Journal.Text = Me.Journal.Text + vbCrLf
|
|
If txt.IndexOf("Start") > -1 Then
|
|
txt = txt & " : " & Now.ToString
|
|
End If
|
|
If txt.IndexOf("Ende") > -1 Then
|
|
txt = txt & " : " & Now.ToString
|
|
End If
|
|
|
|
Me.Journal.Text = Me.Journal.Text + txt
|
|
If txt.IndexOf("Ende") > -1 Then
|
|
If txt.IndexOf("--->") < 0 Then
|
|
Me.Journal.Text = Me.Journal.Text + vbCrLf
|
|
Me.Journal.Text = Me.Journal.Text + "*******************"
|
|
Me.Journal.Text = Me.Journal.Text + vbCrLf
|
|
Me.Journal.Text = Me.Journal.Text + vbCrLf
|
|
End If
|
|
End If
|
|
Windows.Forms.Application.DoEvents()
|
|
End Function
|
|
|
|
Private Function Printheader(ByVal Filenumber As Integer, ByVal Text As String)
|
|
Dim s As String
|
|
Dim l As Integer = 0
|
|
s = "/************************************************************************************/"
|
|
l = Len(s)
|
|
PrintLine(1, s)
|
|
s = "/* Coldabgleich: " & Text
|
|
While Len(s) < (l - 2)
|
|
s = s & " "
|
|
End While
|
|
s = s & "*/"
|
|
PrintLine(1, s)
|
|
s = "/* " & Now.ToLongDateString & " / " & Now.ToLongTimeString
|
|
While Len(s) < (l - 2)
|
|
s = s & " "
|
|
End While
|
|
s = s & "*/"
|
|
PrintLine(1, s)
|
|
s = "/************************************************************************************/"
|
|
PrintLine(1, s)
|
|
End Function
|
|
Private Function Printfooter(ByVal Filenumber As Integer)
|
|
Dim s As String
|
|
Dim l As String
|
|
s = "/************************************************************************************/"
|
|
l = Len(s)
|
|
PrintLine(1, s)
|
|
s = "/* End of File "
|
|
While Len(s) < (l - 2)
|
|
s = s & " "
|
|
End While
|
|
s = s & "*/"
|
|
PrintLine(1, s)
|
|
s = "/* " & Now.ToLongDateString
|
|
While Len(s) < (l - 2)
|
|
s = s & " "
|
|
End While
|
|
s = s & "*/"
|
|
PrintLine(1, s)
|
|
s = "/************************************************************************************/"
|
|
PrintLine(1, s)
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "ZV-Belege"
|
|
|
|
Private Sub ZVStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ZVStart.Click
|
|
'Vergleichstabellen generieren
|
|
If Me.zvchk0.Checked = True Then
|
|
Insert_Journal("Start Vergleichstabellen generieren")
|
|
zv_gen_vergleichstabellen()
|
|
Insert_Journal("Ende Vergleichstabellen generieren")
|
|
End If
|
|
'Bereich ZV-Belege
|
|
If Me.zvchk1.Checked = True Then
|
|
Insert_Journal("Start fehlende Dokumente in EDOKA_ZV")
|
|
ZV_Fehlende_Dokumente_In_EDOKA_ZV()
|
|
If ds.Tables(0).Rows.Count > 0 Then
|
|
Insert_Journal("---> Start Generierung Insert-Statements")
|
|
ZV_Gen_Insert_Fehlende_Dokumente()
|
|
Insert_Journal("---> Ende Generierung Insert-Statements")
|
|
End If
|
|
Insert_Journal("Ende Fehlende Dokumente in EDOKA_ZV")
|
|
End If
|
|
If Me.zvchk2.Checked = True Then
|
|
Insert_Journal("Start Überzählige Dokumente in EDOKA_ZV")
|
|
ZV_Ueberzaehlige_Dokumente_In_EDOKA_ZV()
|
|
If ds.Tables(0).Rows.Count > 0 Then
|
|
Insert_Journal("---> Start Generierung Delete-Statements")
|
|
ZV_Gen_Del_Statements()
|
|
Insert_Journal("---> Ende Generierung Delete-Statements")
|
|
End If
|
|
Insert_Journal("Ende überzählige Dokumente in EDOKA_ZV")
|
|
End If
|
|
If Me.zvchk3.Checked = True Then
|
|
Insert_Journal("Start doppelte Dokumente in EDOKA_ZV")
|
|
ZV_Doppelte_Dokumente_In_EDOKA_ZV()
|
|
If ds.Tables(0).Rows.Count > 0 Then
|
|
Insert_Journal("---> Start Generierung Delete-Statements")
|
|
ZV_Doppelte_Gen_Del_Statements()
|
|
Insert_Journal("---> Ende Generierung Delete-Statements")
|
|
Insert_Journal("---> Start Generierung Insert-Statements")
|
|
ZV_Doppelte_Gen_Ins_Statements()
|
|
Insert_Journal("---> Ende Generierung Insert-Statements")
|
|
End If
|
|
Insert_Journal("Ende doppelte Dokumente in EDOKA_ZV")
|
|
End If
|
|
Me.Journal.SelectionStart = Me.Journal.Text.Length
|
|
|
|
If Me.zvchk4.Checked = True Then
|
|
Insert_Journal("Start Attribut-Abgleich")
|
|
ZV_Attribut_Abgleich()
|
|
If ds.Tables(0).Rows.Count > 0 Then
|
|
Insert_Journal("---> Start Generierung Update-Statements")
|
|
ZV_Gen_Attribut_Update()
|
|
Insert_Journal("---> Ende Generierung Update-Statements")
|
|
End If
|
|
Insert_Journal("Ende Attributabgleich")
|
|
End If
|
|
If Me.zvchk5.Checked = True Then
|
|
Insert_Journal("Start Nicht zugeordnete Dokumente")
|
|
ZV_Nicht_Zugeordnete_Dokumente()
|
|
Insert_Journal("Ende Nicht zugeordnete Dokumente")
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
#Region "Vergleichstabellen generieren"
|
|
Private Sub ZV_Gen_Vergleichstabellen()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "zv_gen_compare_tables"
|
|
sqlcmd.Parameters.Add("@von", SqlDbType.DateTime, 8)
|
|
sqlcmd.Parameters.Add("@bis", SqlDbType.DateTime, 8)
|
|
sqlcmd.Parameters(0).Value = Me.zvdatumab.Text + " 00:00:00"
|
|
sqlcmd.Parameters(1).Value = Me.zvdatumbis.Text + " 00:00:00"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
|
|
sqlcmd.CommandTimeout = 500000
|
|
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
'Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Fehlende ZV-Dokumente in EDOKA_ZV"
|
|
Private Sub ZV_Fehlende_Dokumente_In_EDOKA_ZV()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "ZV_Fehlende_Dokumente_EDOKA_ZV"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
|
|
sqlcmd.CommandTimeout = 500000
|
|
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
End Sub
|
|
Private Sub ZV_Gen_Insert_Fehlende_Dokumente()
|
|
Insert_Journal("-----> Start Insert-Statements generieren")
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "ZV_Script_Insert_Fehlende_Dokumente"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
|
|
sqlcmd.CommandTimeout = 500000
|
|
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Catch ex As Exception
|
|
Insert_Journal("-----> Fehler!!!" & ex.Message)
|
|
Finally
|
|
Insert_Journal("-----> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
Insert_Journal("-----> Ende Insert-Statements generieren")
|
|
Insert_Journal("-----> Start Scriptdatei erstellen")
|
|
ZV_Script_Insert_Statements()
|
|
Insert_Journal("-----> Ende Scriptdatei erstellen")
|
|
End Sub
|
|
Private Sub ZV_Script_Insert_Statements()
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count
|
|
Dim filename As String = params.ScriptPath & "\1_" & Format(Now, "yyyymmss_hhmmss") & "_ZV_Ins_Fehlende_Dokumente.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Printheader(1, "Insert fehlende Dokumente in EDOKA_ZV")
|
|
|
|
Dim s As String
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
Me.ToolProgress.Value = Me.ToolProgress.Value + 1
|
|
Windows.Forms.Application.DoEvents()
|
|
s = ds.Tables(0).Rows(i).Item(0)
|
|
s = s.Replace("[tmp_zv]", "[zvbelege_import]")
|
|
PrintLine(1, s)
|
|
PrintLine(1, "Go")
|
|
PrintLine(1, "")
|
|
Next
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Insert_Journal("-----> " & ds.Tables(0).Rows.Count & " Insert-Statements generiert")
|
|
Catch ex As Exception
|
|
Insert_Journal("-----> Fehler!!!" & ex.Message)
|
|
End Try
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Überzählige ZV-Dokumente in EDOKA_ZV"
|
|
Private Sub ZV_Ueberzaehlige_Dokumente_In_EDOKA_ZV()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "ZV_Ueberzaehlige_Dokumente_EDOKA_ZV"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
|
|
sqlcmd.CommandTimeout = 500000
|
|
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub ZV_Gen_Del_Statements()
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count
|
|
Dim filename As String = params.ScriptPath & "\2_" & Format(Now, "yyyymmss_hhmmss") & "_ZV_Del_Ueberzaehlige_Dokumente.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Printheader(1, "Delete überzählige Dokumente in EDOKA_ZV")
|
|
|
|
Dim s As String
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
Me.ToolProgress.Value = Me.ToolProgress.Value + 1
|
|
Windows.Forms.Application.DoEvents()
|
|
s = "Delete form edoka_zv.dbo.zvbelege_data where nrdot00='" & ds.Tables(0).Rows(i).Item("nrdot00") & "' "
|
|
s = s & " and nrauf00='" & Trim(ds.Tables(0).Rows(i).Item("nrauf00")) & "' "
|
|
s = s & " and nrdoc00='" & Trim(ds.Tables(0).Rows(i).Item("nrdoc00")) & "'"
|
|
PrintLine(1, s)
|
|
PrintLine(1, "Go")
|
|
PrintLine(1, "")
|
|
Next
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Insert_Journal("---> " & ds.Tables(0).Rows.Count & " Delete-Statements generiert")
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
End Try
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Doppelte ZV-Dokument"
|
|
Private Sub ZV_Doppelte_Dokumente_In_EDOKA_ZV()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "ZV_Doppelte_Dokumente_EDOKA_ZV"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int, 4)
|
|
sqlcmd.Parameters(0).Value = 1
|
|
|
|
sqlcmd.CommandTimeout = 500000
|
|
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub ZV_Doppelte_Gen_Del_Statements()
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count / 2
|
|
Dim filename As String = params.ScriptPath & "\3_" & Format(Now, "yyyymmss_hhmmss") & "_ZV_Del_Doppelte_Dokumente.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Printheader(1, "Delete Doppelte Dokumente in EDOKA_ZV")
|
|
|
|
Dim s As String
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1 Step 2
|
|
Me.ToolProgress.Value = Me.ToolProgress.Value + 1
|
|
Windows.Forms.Application.DoEvents()
|
|
s = "Delete form edoka_zv.dbo.zvbelege_data where nrdot00='" & ds.Tables(0).Rows(i).Item("nrdot00") & "' "
|
|
s = s & " and nrauf00='" & Trim(ds.Tables(0).Rows(i).Item("nrauf00")) & "' "
|
|
s = s & " and nrdoc00='" & Trim(ds.Tables(0).Rows(i).Item("nrdoc00")) & "'"
|
|
PrintLine(1, s)
|
|
PrintLine(1, "Go")
|
|
PrintLine(1, "")
|
|
Next
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Insert_Journal("---> " & ds.Tables(0).Rows.Count / 2 & " Delete-Statements generiert")
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub ZV_Doppelte_Gen_Ins_Statements()
|
|
ds.Tables.Clear()
|
|
ZV_Doppelte_Get_Insert_Statements()
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count / 2
|
|
Dim filename As String = params.ScriptPath & "\4_" & Format(Now, "yyyymmss_hhmmss") & "_ZV_Ins_Einzelne_Dokumente.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Printheader(1, "Insert einzlne Dokumente (Dopplte entfernt) in EDOKA_ZV")
|
|
|
|
Dim s As String
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1 Step 2
|
|
Me.ToolProgress.Value = Me.ToolProgress.Value + 1
|
|
Windows.Forms.Application.DoEvents()
|
|
s = ds.Tables(0).Rows(i).Item(0)
|
|
s = s.Replace("[tmp_zv_doppelte]", "[zvbelege_import]")
|
|
PrintLine(1, s)
|
|
PrintLine(1, "Go")
|
|
PrintLine(1, "")
|
|
Next
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Insert_Journal("-----> " & ds.Tables(0).Rows.Count / 2 & " Insert-Statements generiert")
|
|
Catch ex As Exception
|
|
Insert_Journal("-----> Fehler!!!" & ex.Message)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub ZV_Doppelte_Get_Insert_Statements()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "ZV_Doppelte_Dokumente_EDOKA_ZV"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int, 4)
|
|
sqlcmd.Parameters(0).Value = 2
|
|
|
|
sqlcmd.CommandTimeout = 500000
|
|
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
Finally
|
|
Insert_Journal("---> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count / 2)))
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Attributabgleich ZV"
|
|
Private Sub ZV_Attribut_Abgleich()
|
|
ds.Tables.Clear()
|
|
ds2.Tables.Clear()
|
|
ZV_Attribut_Abgleich_DoAbgleich()
|
|
ZV_Attribut_Abgleich_Get_Table1()
|
|
ZV_Attribut_Abgleich_Get_Table2()
|
|
End Sub
|
|
|
|
Private Sub ZV_Attribut_Abgleich_DoAbgleich()
|
|
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "ZV_Attributvergleich"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int)
|
|
sqlcmd.Parameters(0).Value = 1
|
|
sqlcmd.CommandTimeout = 500000
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
'Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
End Sub
|
|
Private Sub ZV_Attribut_Abgleich_Get_Table1()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "zv_Attributvergleich"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int)
|
|
sqlcmd.Parameters(0).Value = 2
|
|
sqlcmd.CommandTimeout = 500000
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
|
|
End Sub
|
|
Private Sub ZV_Attribut_Abgleich_Get_Table2()
|
|
ds2.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "ZV_Attributvergleich"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int)
|
|
sqlcmd.Parameters(0).Value = 3
|
|
sqlcmd.CommandTimeout = 500000
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds2, "Datatable1")
|
|
Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
End Sub
|
|
Private Sub ZV_Gen_Attribut_Update()
|
|
If ds.Tables(0).Rows.Count <> ds2.Tables(0).Rows.Count Then
|
|
Insert_Journal("---> Fehler!!! Anzahl Datensätze Source/Dest nicht identisch)")
|
|
Exit Sub
|
|
End If
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count
|
|
Dim filename As String = params.ScriptPath & "\5_" & Format(Now, "yyyymmss_hhmmss") & "_ZV_Attribut_Update.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Dim ii As Integer = 0
|
|
Printheader(1, "Update Attribute in EDOKA_HOST ")
|
|
|
|
'ds = Cold-Tabelle
|
|
'ds2 = EDOKA-Tabelle
|
|
Dim dr1 As DataRow
|
|
Dim dr2 As DataRow
|
|
Dim s As String
|
|
Dim cnt As Integer = 0
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
dr1 = ds.Tables(0).Rows(i)
|
|
dr2 = ds2.Tables(0).Rows(i)
|
|
If dr1.Item("nrdoc00") <> dr2.Item("nrdoc00") And dr1.Item("nrdot00") <> dr1.Item("nrdot00") And dr1.Item("nrauf00") <> dr2.Item("nrauf00") Then
|
|
Insert_Journal("---> Fehler!!! Daten Source/Dest nicht synchron: " & dr1.Item("nrdot00") & "/" & dr1.Item("nrauf00") & "/" & dr1.Item("nrdoc00"))
|
|
Exit Sub
|
|
End If
|
|
For ii = 1 To ds.Tables(0).Columns.Count - 1
|
|
|
|
If dr1.Item(ii) <> dr2.Item(ii) Then
|
|
s = "Update edoka_zv.dbo.zvbelege_data set " & ds.Tables(0).Columns(ii).ColumnName & "='" & dr1.Item(ii) & "'"
|
|
s = s & " where nrdot00='" & ds.Tables(0).Rows(i).Item("nrdot00") & "' "
|
|
s = s & " and nrauf00='" & Trim(ds.Tables(0).Rows(i).Item("nrauf00")) & "' "
|
|
s = s & " and nrdoc00='" & Trim(ds.Tables(0).Rows(i).Item("nrdoc00")) & "'"
|
|
PrintLine(1, s)
|
|
cnt = cnt + 1
|
|
End If
|
|
Next
|
|
Windows.Forms.Application.DoEvents()
|
|
PrintLine(1, "Go")
|
|
PrintLine(1, "")
|
|
Next
|
|
Insert_Journal("---> Anzahl Update-Statements generiert: " & Trim(Str(cnt)))
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
End Try
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Nicht zugeordnete Dokumente"
|
|
Private Sub ZV_Nicht_Zugeordnete_Dokumente()
|
|
Insert_Journal("---> Start Prüfung nicht zugeordnete Partner_Inhaber")
|
|
|
|
ZV_Nicht_Zugeordnete_Partner()
|
|
If ds.Tables(0).Rows.Count > 0 Then
|
|
Insert_Journal("---> Start Generierung Nicht zugeordnete Partner")
|
|
ZV_Print_Nicht_Zugeordnete_Partner()
|
|
Insert_Journal("---> Ende Generierung Nicht zugeordnete Partner")
|
|
End If
|
|
Insert_Journal("---> Ende Prüfung nicht zugeordnete Partner")
|
|
|
|
End Sub
|
|
Private Sub ZV_Nicht_Zugeordnete_Partner()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
'Dim res As IAsyncResult = sqlcmd.BeginExecuteReader(CommandBehavior.CloseConnection)
|
|
|
|
sqlcmd.CommandText = "ZV_nicht_zugeordnete_dokumente"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int)
|
|
sqlcmd.Parameters(0).Value = 1
|
|
sqlcmd.CommandTimeout = 500000
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Insert_Journal("---> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
Finally
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
Private Sub ZV_Print_Nicht_Zugeordnete_Partner()
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count
|
|
Dim filename As String = params.ScriptPath & "\6_" & Format(Now, "yyyymmss_hhmmss") & "_ZV_Nicht_zuget_Partner_Inhaber.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Dim s As String
|
|
Printheader(1, "EDOKA_ZV nicht zugeordnete Partnernr (nrpar00) ")
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
PrintLine(1, ds.Tables(0).Rows(i).Item("nrdot00") & ", " & ds.Tables(0).Rows(i).Item("nrauf00") & ", " & ds.Tables(0).Rows(i).Item("nrdoc00") & ", " & ds.Tables(0).Rows(i).Item("nrpar00"))
|
|
Next
|
|
Insert_Journal("---> Anzahl nicht zugeordnete Partner_Inhaber: " & Trim(ds.Tables(0).Rows.Count))
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
#End Region
|
|
|
|
Private Sub HOST_Start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HOST_Start.Click
|
|
Me.Journal.Text = ""
|
|
If Me.hostchk0.Checked = True Then
|
|
Insert_Journal("Start Vergleichstabellen generieren")
|
|
host_Gen_Vergleichstabellen()
|
|
Insert_Journal("Ende Vergleichstabellen generieren")
|
|
|
|
End If
|
|
If Me.hostchk1.Checked = True Then
|
|
Insert_Journal("Start fehlende Dokumente in EDOKA_HOST")
|
|
HOST_Fehlende_Dokumente_In_EDOKA_HOST()
|
|
'If ds.Tables(0).Rows.Count > 0 Then
|
|
' Insert_Journal("---> Start Generierung Insert-Statements")
|
|
' HOST_Gen_Insert_Fehlende_Dokumente()
|
|
' Insert_Journal("---> Ende Generierung Insert-Statements")
|
|
'End If
|
|
Insert_Journal("Ende Fehlende Dokumente in EDOKA_HOST")
|
|
End If
|
|
Me.Journal.SelectionStart = Me.Journal.Text.Length
|
|
|
|
If Me.hostchk2.Checked = True Then
|
|
Insert_Journal("Start Überzählige Dokumente in EDOKA_HOST")
|
|
HOST_Ueberzaehlige_Dokumente_In_EDOKA_HOST()
|
|
'If ds.Tables(0).Rows.Count > 0 Then
|
|
' Insert_Journal("---> Start Generierung Delete-Statements")
|
|
' HOST_Gen_Del_Statements()
|
|
' Insert_Journal("---> Ende Generierung Delete-Statements")
|
|
'End If
|
|
Insert_Journal("Ende überzählige Dokumente in EDOKA_HOST")
|
|
End If
|
|
Me.Journal.SelectionStart = Me.Journal.Text.Length
|
|
|
|
If Me.hostchk3.Checked = True Then
|
|
Insert_Journal("Start doppelte Dokumente in EDOKA_HOST")
|
|
HOST_Doppelte_Dokumente_In_EDOKA_HOST()
|
|
'If ds.Tables(0).Rows.Count > 0 Then
|
|
' Insert_Journal("---> Start Generierung Delete-Statements")
|
|
' HOST_Doppelte_Gen_Del_Statements()
|
|
' Insert_Journal("---> Ende Generierung Delete-Statements")
|
|
' Insert_Journal("---> Start Generierung Insert-Statements")
|
|
' HOST_Doppelte_Gen_Ins_Statements()
|
|
' Insert_Journal("---> Ende Generierung Insert-Statements")
|
|
'End If
|
|
Insert_Journal("Ende doppelte Dokumente in EDOKA_HOST")
|
|
End If
|
|
Me.Journal.SelectionStart = Me.Journal.Text.Length
|
|
|
|
If Me.hostchk4.Checked = True Then
|
|
Insert_Journal("Start Attribut-Abgleich")
|
|
HOST_Attribut_Abgleich()
|
|
If ds.Tables(0).Rows.Count > 0 Then
|
|
Insert_Journal("---> Start Generierung Update-Statements")
|
|
HOST_Gen_Attribut_Update()
|
|
Insert_Journal("---> Ende Generierung Update-Statements")
|
|
End If
|
|
Insert_Journal("Ende Attributabgleich")
|
|
End If
|
|
Me.Journal.SelectionStart = Me.Journal.Text.Length
|
|
|
|
If Me.hostchk5.Checked = True Then
|
|
Insert_Journal("Start Nicht zugeordnete Dokumente")
|
|
HOST_Nicht_Zugeordnete_Dokumente()
|
|
Insert_Journal("Ende Nicht zugeordnete Dokumente")
|
|
End If
|
|
End Sub
|
|
|
|
#Region "Host-Dokumente"
|
|
|
|
#Region "Host Vergleichstabellen generieren"
|
|
Private Sub host_Gen_Vergleichstabellen()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "host_gen_compare_tables"
|
|
sqlcmd.Parameters.Add("@von", SqlDbType.VarChar, 8)
|
|
sqlcmd.Parameters.Add("@bis", SqlDbType.VarChar, 8)
|
|
Dim s As String = Me.hostdatumab.Text
|
|
s = s.Substring(6, 4) + s.Substring(3, 2) + s.Substring(0, 2)
|
|
sqlcmd.Parameters(0).Value = s
|
|
s = Me.hostdatumbis.Text
|
|
s = s.Substring(6, 4) + s.Substring(3, 2) + s.Substring(0, 2)
|
|
sqlcmd.Parameters(1).Value = s
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
|
|
sqlcmd.CommandTimeout = 500000
|
|
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
'Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "Fehlende HOST-Dokumente in EDOKA_HOST"
|
|
Private Sub HOST_Fehlende_Dokumente_In_EDOKA_HOST()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "HOST_Fehlende_Dokumente_EDOKA_HOST"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
|
|
sqlcmd.CommandTimeout = 500000
|
|
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
End Sub
|
|
Private Sub HOST_Gen_Insert_Fehlende_Dokumente()
|
|
Insert_Journal("-----> Start Insert-Statements generieren")
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "HOST_Script_Insert_Fehlende_Dokumente"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
|
|
sqlcmd.CommandTimeout = 500000
|
|
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Catch ex As Exception
|
|
Insert_Journal("-----> Fehler!!!" & ex.Message)
|
|
Finally
|
|
Insert_Journal("-----> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
Insert_Journal("-----> Ende Insert-Statements generieren")
|
|
Insert_Journal("-----> Start Scriptdatei erstellen")
|
|
Host_Script_Insert_Statements()
|
|
Insert_Journal("-----> Ende Scriptdatei erstellen")
|
|
End Sub
|
|
Private Sub Host_Script_Insert_Statements()
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count
|
|
Dim filename As String = params.ScriptPath & "\1_" & Format(Now, "yyyymmss_hhmmss") & "_HOST_Ins_Fehlende_Dokumente.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Printheader(1, "Insert fehlende Dokumente in EDOKA_HOST")
|
|
|
|
Dim s As String
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
Me.ToolProgress.Value = Me.ToolProgress.Value + 1
|
|
Windows.Forms.Application.DoEvents()
|
|
s = ds.Tables(0).Rows(i).Item(0)
|
|
s = s.Replace("[tmp_host]", "[host_dokument_import]")
|
|
PrintLine(1, s)
|
|
PrintLine(1, "Go")
|
|
PrintLine(1, "")
|
|
Next
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Insert_Journal("-----> " & ds.Tables(0).Rows.Count & " Insert-Statements generiert")
|
|
Catch ex As Exception
|
|
Insert_Journal("-----> Fehler!!!" & ex.Message)
|
|
End Try
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Überzählige Host-Dokumente in EDOKA_HOST"
|
|
Private Sub HOST_Ueberzaehlige_Dokumente_In_EDOKA_HOST()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "HOST_Ueberzaehlige_Dokumente_EDOKA_HOST"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
|
|
sqlcmd.CommandTimeout = 500000
|
|
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub HOST_Gen_Del_Statements()
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count
|
|
Dim filename As String = params.ScriptPath & "\2_" & Format(Now, "yyyymmss_hhmmss") & "_HOST_Del_Ueberzaehlige_Dokumente.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Printheader(1, "Delete überzählige Dokumente in EDOKA_HOST")
|
|
|
|
Dim s As String
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
Me.ToolProgress.Value = Me.ToolProgress.Value + 1
|
|
Windows.Forms.Application.DoEvents()
|
|
s = "Delete from edoka_host.dbo.host_dokument_data where dokumentid='" & ds.Tables(0).Rows(i).Item("Dokumentid") & "'"
|
|
PrintLine(1, s)
|
|
PrintLine(1, "Go")
|
|
PrintLine(1, "")
|
|
Next
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Insert_Journal("---> " & ds.Tables(0).Rows.Count & " Delete-Statements generiert")
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
End Try
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Doppelte HOST-Dokument"
|
|
Private Sub HOST_Doppelte_Dokumente_In_EDOKA_HOST()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "HOST_Doppelte_Dokumente_EDOKA_HOST"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int, 4)
|
|
sqlcmd.Parameters(0).Value = 1
|
|
|
|
sqlcmd.CommandTimeout = 500000
|
|
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub HOST_Doppelte_Gen_Del_Statements()
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count
|
|
Dim filename As String = params.ScriptPath & "\3_" & Format(Now, "yyyymmss_hhmmss") & "_HOST_Del_Doppelte_Dokumente.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Printheader(1, "Delete Doppelte Dokumente in EDOKA_HOST")
|
|
|
|
Dim s As String
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
Me.ToolProgress.Value = Me.ToolProgress.Value + 1
|
|
Windows.Forms.Application.DoEvents()
|
|
s = "Delete from edoka_host.dbo.host_dokument_data where dokumentid='" & ds.Tables(0).Rows(i).Item("Dokumentid") & "'"
|
|
PrintLine(1, s)
|
|
PrintLine(1, "Go")
|
|
PrintLine(1, "")
|
|
Next
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Insert_Journal("---> " & ds.Tables(0).Rows.Count & " Delete-Statements generiert")
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub HOST_Doppelte_Gen_Ins_Statements()
|
|
ds.Tables.Clear()
|
|
HOST_Doppelte_Get_Insert_Statements()
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count
|
|
Dim filename As String = params.ScriptPath & "\4_" & Format(Now, "yyyymmss_hhmmss") & "_HOST_Ins_Einzelne_Dokumente.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Printheader(1, "Insert einzlne Dokumente (Dopplte entfernt) in EDOKA_HOST")
|
|
|
|
Dim s As String
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1 Step 2
|
|
Me.ToolProgress.Value = Me.ToolProgress.Value + 1
|
|
Windows.Forms.Application.DoEvents()
|
|
s = ds.Tables(0).Rows(i).Item(0)
|
|
s = s.Replace("[tmp_host_doppelte]", "[host_dokument_import]")
|
|
PrintLine(1, s)
|
|
PrintLine(1, "Go")
|
|
PrintLine(1, "")
|
|
Next
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Insert_Journal("-----> " & ds.Tables(0).Rows.Count / 2 & " Insert-Statements generiert")
|
|
Catch ex As Exception
|
|
Insert_Journal("-----> Fehler!!!" & ex.Message)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub HOST_Doppelte_Get_Insert_Statements()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "HOST_Doppelte_Dokumente_EDOKA_HOST"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int, 4)
|
|
sqlcmd.Parameters(0).Value = 2
|
|
|
|
sqlcmd.CommandTimeout = 500000
|
|
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
Finally
|
|
Insert_Journal("---> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count / 2)))
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Attributabgleich"
|
|
Private Sub HOST_Attribut_Abgleich()
|
|
ds.Tables.Clear()
|
|
ds2.Tables.Clear()
|
|
HOST_Attribut_Abgleich_DoAbgleich()
|
|
HOST_Attribut_Abgleich_Get_Table1()
|
|
HOST_Attribut_Abgleich_Get_Table2()
|
|
End Sub
|
|
|
|
Private Sub HOST_Attribut_Abgleich_DoAbgleich()
|
|
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "HOST_Attributvergleich"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int)
|
|
sqlcmd.Parameters(0).Value = 1
|
|
sqlcmd.CommandTimeout = 500000
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
'Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
End Sub
|
|
Private Sub HOST_Attribut_Abgleich_Get_Table1()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "HOST_Attributvergleich"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int)
|
|
sqlcmd.Parameters(0).Value = 2
|
|
sqlcmd.CommandTimeout = 500000
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
|
|
End Sub
|
|
Private Sub HOST_Attribut_Abgleich_Get_Table2()
|
|
ds2.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "HOST_Attributvergleich"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int)
|
|
sqlcmd.Parameters(0).Value = 3
|
|
sqlcmd.CommandTimeout = 500000
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds2, "Datatable1")
|
|
Insert_Journal("-> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
Catch ex As Exception
|
|
Insert_Journal("-> Fehler!!!" & ex.Message)
|
|
Finally
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
End Sub
|
|
Private Sub HOST_Gen_Attribut_Update()
|
|
If ds.Tables(0).Rows.Count <> ds2.Tables(0).Rows.Count Then
|
|
Insert_Journal("---> Fehler!!! Anzahl Datensätze Source/Dest nicht identisch)")
|
|
Exit Sub
|
|
End If
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count
|
|
Dim filename As String = params.ScriptPath & "\5_" & Format(Now, "yyyymmss_hhmmss") & "_HOST_Attribut_Update.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Dim ii As Integer = 0
|
|
Printheader(1, "Update Attribute in EDOKA_HOST ")
|
|
|
|
'ds = Cold-Tabelle
|
|
'ds2 = EDOKA-Tabelle
|
|
Dim dr1 As DataRow
|
|
Dim dr2 As DataRow
|
|
Dim s As String
|
|
Dim cnt As Integer = 0
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
dr1 = ds.Tables(0).Rows(i)
|
|
dr2 = ds2.Tables(0).Rows(i)
|
|
If dr1.Item("Dokumentid") <> dr2.Item("Dokumentid") Then
|
|
Insert_Journal("---> Fehler!!! Daten Source/Dest nicht synchron: " & dr1.Item("dokumentid"))
|
|
Exit Sub
|
|
End If
|
|
For ii = 1 To ds.Tables(0).Columns.Count - 1
|
|
If dr1.Item(ii) Is System.DBNull.Value Then dr1.Item(ii) = ""
|
|
If dr2.Item(ii) Is System.DBNull.Value Then dr2.Item(ii) = ""
|
|
|
|
If dr1.Item(ii) <> dr2.Item(ii) Then
|
|
s = "Update edoka_host.dbo.host_dokument_data set " & ds.Tables(0).Columns(ii).ColumnName & "='" & dr1.Item(ii) & "'"
|
|
s = s + " where dokumentid ='" & ds.Tables(0).Rows(i).Item("Dokumentid") & "'"
|
|
PrintLine(1, s)
|
|
cnt = cnt + 1
|
|
End If
|
|
Next
|
|
Windows.Forms.Application.DoEvents()
|
|
PrintLine(1, "Go")
|
|
PrintLine(1, "")
|
|
Next
|
|
Insert_Journal("---> Anzahl Update-Statements generiert: " & Trim(Str(cnt)))
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
End Try
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Nicht zugeordnete Dokumente"
|
|
Private Sub HOST_Nicht_Zugeordnete_Dokumente()
|
|
Insert_Journal("---> Start Prüfung nicht zugeordnete Partner_Inhaber")
|
|
|
|
HOST_Nicht_Zugeordnete_Partner_Inhaber()
|
|
If ds.Tables(0).Rows.Count > 0 Then
|
|
Insert_Journal("---> Start Generierung Nicht zugeordnete Partner_Inhaber")
|
|
HOST_Print_Nicht_Zugeordnete_Partner_Inhaber()
|
|
Insert_Journal("---> Ende Generierung Nicht zugeordnete Partner_Inhaber")
|
|
End If
|
|
Insert_Journal("---> Ende Prüfung nicht zugeordnete Partner_Inhaber")
|
|
|
|
Insert_Journal("---> Start Prüfung nicht zugeordnete Partner_Zusteller")
|
|
HOST_Nicht_Zugeordnete_Partner_Zusteller()
|
|
If ds.Tables(0).Rows.Count > 0 Then
|
|
Insert_Journal("---> Start Generierung Nicht zugeordnete Partner_Zusteller")
|
|
HOST_Print_Nicht_Zugeordnete_Partner_Zusteller()
|
|
Insert_Journal("---> Ende Generierung Nicht zugeordnete Partner_Zusteller")
|
|
End If
|
|
Insert_Journal("---> Ende Prüfung nicht zugeordnete Partner_Zusteller")
|
|
End Sub
|
|
Private Sub HOST_Nicht_Zugeordnete_Partner_Inhaber()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "HOST_nicht_zugeordnete_dokumente"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int)
|
|
sqlcmd.Parameters(0).Value = 1
|
|
sqlcmd.CommandTimeout = 500000
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Insert_Journal("---> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
Finally
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
Private Sub HOST_Print_Nicht_Zugeordnete_Partner_Inhaber()
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count
|
|
Dim filename As String = params.ScriptPath & "\6_" & Format(Now, "yyyymmss_hhmmss") & "_HOST_Nicht_zuget_Partner_Inhaber.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Dim s As String
|
|
Printheader(1, "EDOKA_HOST nicht zugeordnete Partnernr_Inhaber (Inrpar00_Inhaber) ")
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
PrintLine(1, ds.Tables(0).Rows(i).Item("dokumentid") & ", " & ds.Tables(0).Rows(i).Item("inrpar00_inhaber"))
|
|
Next
|
|
Insert_Journal("---> Anzahl nicht zugeordnete Partner_Inhaber: " & Trim(ds.Tables(0).Rows.Count))
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
End Try
|
|
End Sub
|
|
Private Sub HOST_Nicht_Zugeordnete_Partner_Zusteller()
|
|
ds.Tables.Clear()
|
|
Dim connection As New SqlConnection()
|
|
Dim da As New SqlDataAdapter("", connection)
|
|
Dim sqlcmd As New SqlCommand
|
|
|
|
sqlcmd.CommandText = "HOST_nicht_zugeordnete_dokumente"
|
|
sqlcmd.CommandType = CommandType.StoredProcedure
|
|
sqlcmd.Connection = connection
|
|
sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int)
|
|
sqlcmd.Parameters(0).Value = 2
|
|
sqlcmd.CommandTimeout = 500000
|
|
Try
|
|
connection.ConnectionString = params.ConnectionStringColdabgleich
|
|
connection.Open()
|
|
da.SelectCommand = sqlcmd
|
|
da.Fill(ds, "Datatable1")
|
|
Insert_Journal("---> Total Datensätze: " & Trim(Str(ds.Tables(0).Rows.Count)))
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
Finally
|
|
connection.Close()
|
|
da.Dispose()
|
|
sqlcmd.Dispose()
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
Private Sub HOST_Print_Nicht_Zugeordnete_Partner_Zusteller()
|
|
Try
|
|
Me.ToolProgress.Value = 0
|
|
Me.ToolProgress.Maximum = Me.ds.Tables(0).Rows.Count
|
|
Dim filename As String = params.ScriptPath & "\7_" & Format(Now, "yyyymmss_hhmmss") & "_HOST_Nicht_zuget_Partner_Zusteller.sql"
|
|
FileOpen(1, filename, OpenMode.Output)
|
|
Dim i As Integer = 0
|
|
Dim s As String
|
|
Printheader(1, "EDOKA_HOST nicht zugeordnete Partnernr_Zusteller (Inrpar00_Zusteller) ")
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
PrintLine(1, ds.Tables(0).Rows(i).Item("dokumentid") & ", " & ds.Tables(0).Rows(i).Item("inrpar00_zusteller"))
|
|
Next
|
|
Insert_Journal("---> Anzahl nicht zugeordnete Partner_Zusteller: " & Trim(ds.Tables(0).Rows.Count))
|
|
Printfooter(1)
|
|
FileClose(1)
|
|
Insert_Journal("---> Filename: " & filename)
|
|
Catch ex As Exception
|
|
Insert_Journal("---> Fehler!!!" & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#End Region
|
|
|
|
End Class
|