328 lines
15 KiB
VB.net
328 lines
15 KiB
VB.net
Imports ERPConnect
|
|
Imports System.Data.SqlClient
|
|
|
|
Public Class frmSAP_FuBa
|
|
Dim m_CountTo As Integer = 0
|
|
Private Sub TBPMO_SAP_FUBABindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles TBPMO_SAP_FUBABindingNavigatorSaveItem.Click
|
|
Try
|
|
Me.TBPMO_SAP_FUBABindingSource.EndEdit()
|
|
If DD_ECMAdmin.TBPMO_SAP_FUBA.GetChanges Is Nothing = False Then
|
|
Me.CHANGED_WHOTextBox.Text = Environment.UserName
|
|
Me.TBPMO_SAP_FUBABindingSource.EndEdit()
|
|
Me.TBPMO_SAP_FUBATableAdapter.Update(DD_ECMAdmin.TBPMO_SAP_FUBA)
|
|
lblSave.Visible = True
|
|
Else
|
|
lblSave.Visible = False
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Error in Save Fuba:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub frmSAP_FuBa_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
'TODO: Diese Codezeile lädt Daten in die Tabelle "DD_ECMAdmin.TBPMO_SAP_FUBA". Sie können sie bei Bedarf verschieben oder entfernen.
|
|
Refresh_Fubas()
|
|
End Sub
|
|
Sub Refresh_Fubas()
|
|
Try
|
|
Me.TBPMO_SAP_FUBATableAdapter.Connection.ConnectionString = MyConnectionString
|
|
Me.TBPMO_SAP_FUBATableAdapter.Fill(Me.DD_ECMAdmin.TBPMO_SAP_FUBA)
|
|
If MethodTextBox.Text <> "" Then
|
|
If MethodTextBox.Text = "TABLE" Then
|
|
rbTable.Checked = True
|
|
Else
|
|
rBFuba.Checked = True
|
|
End If
|
|
End If
|
|
If rbTable.Checked Then
|
|
MethodTextBox.Text = "TABLE"
|
|
lblMethodname.Text = "Table Name"
|
|
Else
|
|
lblMethodname.Text = "FuBa Name"
|
|
MethodTextBox.Text = "FUBA"
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Error in Load Fubas:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub btnERPConnect_Click(sender As Object, e As EventArgs) Handles btnERPConnect.Click
|
|
Me.Cursor = Cursors.WaitCursor
|
|
If ClassSAP.ConnectionInit(HostTextBox.Text, SystemNumberTextBox.Text, UserNameTextBox.Text, PasswordTextBox.Text, ClientTextBox.Text, LanguageTextBox.Text) = True Then
|
|
lblConnectionopen.Text = "SAP Connection successfull"
|
|
lblConnectionopen.BackColor = Color.Yellow
|
|
lblConnectionopen.Visible = True
|
|
Else
|
|
lblConnectionopen.Text = "SAP Connection Error"
|
|
lblConnectionopen.BackColor = Color.Red
|
|
lblConnectionopen.Visible = True
|
|
End If
|
|
Me.Cursor = Cursors.Default
|
|
'Try
|
|
' Me.Cursor = Cursors.WaitCursor
|
|
' If LogErrorsOnly = False Then ClassLogger.Add("", False)
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> SAP Connect started:", False)
|
|
' ERPConnect.LIC.SetLic("W86DWC992C")
|
|
' con.Host = HostTextBox.Text
|
|
' con.SystemNumber = SystemNumberTextBox.Text
|
|
' con.UserName = UserNameTextBox.Text
|
|
' con.Password = PasswordTextBox.Text
|
|
' con.Client = ClientTextBox.Text
|
|
' con.Language = LanguageTextBox.Text
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> HOST: " & HostTextBox.Text & " |SystemNumber: " & SystemNumberTextBox.Text & " |UserName: " & UserNameTextBox.Text & " |Password: " & PasswordTextBox.Text & " |Client: " & ClientTextBox.Text & " |Language: " & LanguageTextBox.Text, False)
|
|
' con.Open(False)
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> SAP-Connection erfolgreich aufgebaut!", False)
|
|
' If LogErrorsOnly = False Then ClassLogger.Add("", False)
|
|
' lblConnectionopen.Visible = True
|
|
' Me.Cursor = Cursors.Default
|
|
'Catch ex As Exception
|
|
' MsgBox("Unexpected Error in SAP Connect: " & ex.Message, MsgBoxStyle.Critical)
|
|
' lblConnectionopen.Visible = False
|
|
' Me.Cursor = Cursors.Default
|
|
' lblResult.Visible = False
|
|
' GridControl2.DataSource = Nothing
|
|
' lblSave.Visible = False
|
|
' Me.Cursor = Cursors.Default
|
|
' Exit Sub
|
|
'End Try
|
|
End Sub
|
|
|
|
Private Sub TBPMO_SAP_FUBABindingSource_AddingNew(sender As Object, e As System.ComponentModel.AddingNewEventArgs) Handles TBPMO_SAP_FUBABindingSource.AddingNew
|
|
DD_ECMAdmin.TBPMO_SAP_FUBA.ADDED_WHOColumn.DefaultValue = Environment.UserName
|
|
End Sub
|
|
|
|
Private Sub TBPMO_SAP_FUBABindingSource_CurrentChanged(sender As Object, e As EventArgs) Handles TBPMO_SAP_FUBABindingSource.CurrentChanged
|
|
lblSave.Visible = False
|
|
GridControl2.DataSource = Nothing
|
|
lblConnectionopen.Visible = False
|
|
If MethodTextBox.Text <> "" Then
|
|
If MethodTextBox.Text = "TABLE" Then
|
|
rbTable.Checked = True
|
|
Else
|
|
rBFuba.Checked = True
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnInsertData.Click
|
|
If TempTableNameTextBox.Text <> "" Then
|
|
Me.Cursor = Cursors.WaitCursor
|
|
If ClassSAP.ConnectionInit(HostTextBox.Text, SystemNumberTextBox.Text, UserNameTextBox.Text, PasswordTextBox.Text, ClientTextBox.Text, LanguageTextBox.Text) = True Then
|
|
lblConnectionopen.Visible = True
|
|
Else
|
|
lblConnectionopen.Visible = False
|
|
Me.Cursor = Cursors.Default
|
|
lblResult.Visible = False
|
|
GridControl2.DataSource = Nothing
|
|
lblSave.Visible = False
|
|
Exit Sub
|
|
End If
|
|
Dim rowlimit As Integer = 0
|
|
If txtLimitRows.Text <> "" Then
|
|
rowlimit = txtLimitRows.Text
|
|
End If
|
|
Dim SAPResulttable As DataTable = New DataTable
|
|
If rbTable.Checked = True Then
|
|
Dim result = ClassSAP.Return_Datatable_for_Table(TableNameTextBox.Text, WHERE_CLAUSETextBox.Text, rowlimit)
|
|
If Not IsNothing(result) Then
|
|
SAPResulttable = result
|
|
End If
|
|
End If
|
|
If rBFuba.Checked = True Then
|
|
Dim result = ClassSAP.FuBa_Returndatatable_Seperated(TableNameTextBox.Text, FuBa_SplitCharacterTextBox.Text, rowlimit)
|
|
If Not IsNothing(result) Then
|
|
SAPResulttable = result
|
|
End If
|
|
End If
|
|
If SAPResulttable Is Nothing Then
|
|
ClassSAP.SAP_CONNECTION.Close()
|
|
lblResult.Visible = False
|
|
Me.Cursor = Cursors.Default
|
|
lblSave.Visible = False
|
|
GridControl2.DataSource = Nothing
|
|
ClassLogger.Add(">> SAPResulttable is nothing", False)
|
|
Exit Sub
|
|
End If
|
|
'######
|
|
Dim i = 0
|
|
Dim tablename = "[TBPMO_SAP_" & TempTableNameTextBox.Text & "]"
|
|
ClassDatabase.Execute_non_Query_withConn("DROP TABLE " & tablename, 1)
|
|
|
|
Dim createtablesql = "CREATE TABLE " & tablename & " ( "
|
|
For Each col As System.Data.DataColumn In SAPResulttable.Columns
|
|
If i = 0 Then
|
|
createtablesql += "[" & col.ColumnName & "] [varchar](250)"
|
|
Else
|
|
createtablesql += ", [" & col.ColumnName & "] [varchar](250)"
|
|
End If
|
|
i += 1
|
|
Next
|
|
createtablesql += ")"
|
|
''Die Tabelle anlegen
|
|
If LogErrorsOnly = False Then ClassLogger.Add(">> Create Table: " & createtablesql, False)
|
|
If ClassDatabase.Execute_non_Query_withConn(createtablesql, 1) = False Then
|
|
MsgBox("Error in creating TempTable: Check log", MsgBoxStyle.Critical)
|
|
Exit Sub
|
|
End If
|
|
If LogErrorsOnly = False Then ClassLogger.Add(">> table has been created", False)
|
|
|
|
Dim alter = String.Format("ALTER TABLE {0} ADD GUID INTEGER NOT NULL IDENTITY(1,1)", tablename)
|
|
ClassDatabase.Execute_non_Query_withConn(alter, 1)
|
|
'Dim del = "delete from " & tablename
|
|
'ClassDatabase.Execute_non_Query_withConn(del, 1)
|
|
'If ClassDatabase.Execute_non_Query_withConn(createtablesql, 1) = False Then
|
|
' Me.Cursor = Cursors.Default
|
|
' MsgBox("Error while creating the temporary table. Please check the logfile!", MsgBoxStyle.Critical)
|
|
' Exit Sub
|
|
'End If
|
|
'Dim ins = "Insert into " & tablename & "("
|
|
'Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM " & tablename)
|
|
'If Not IsNothing(DT) Then
|
|
' Dim anz As Integer = 0
|
|
' For Each col As DataColumn In DT.Columns
|
|
' If anz = 0 Then
|
|
' ins = ins & col.ColumnName
|
|
' Else
|
|
' ins = ins & ", " & col.ColumnName
|
|
' End If
|
|
' anz += 1
|
|
' Next
|
|
' ins = ins & ") VALUES ("
|
|
'End If
|
|
Try
|
|
Dim OwnerCS As String
|
|
OwnerCS = ClassDatabase.GetConnectionString(1)
|
|
Dim SQLconnect As New SqlClient.SqlConnection
|
|
SQLconnect.ConnectionString = OwnerCS
|
|
SQLconnect.Open()
|
|
' Note that the column positions in the source DataTable
|
|
' match the column positions in the destination table,
|
|
' so there is no need to map columns.
|
|
Using bulkCopy As SqlBulkCopy = New SqlBulkCopy(SQLconnect)
|
|
bulkCopy.DestinationTableName = tablename
|
|
Try
|
|
' Write from the source to the destination.
|
|
bulkCopy.WriteToServer(SAPResulttable)
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in BulkCopy SQL: " & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Using
|
|
SQLconnect.Close()
|
|
Me.Cursor = Cursors.Default
|
|
If LogErrorsOnly = False Then ClassLogger.Add(">> Create table from SAP FuBa was successfull " & SAPResulttable.Rows.Count & " Rows were inserted to table '" & tablename & "'!", False)
|
|
MsgBox("Create table was successfull! " & vbNewLine & SAPResulttable.Rows.Count & " Rows were inserted to table '" & tablename & "'!", MsgBoxStyle.Information)
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in SQL bulkCopy: " & ex.Message, MsgBoxStyle.Critical)
|
|
Me.Cursor = Cursors.Default
|
|
End Try
|
|
'######
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub rbTable_CheckedChanged(sender As Object, e As EventArgs) Handles rbTable.CheckedChanged
|
|
If rbTable.Checked Then
|
|
MethodTextBox.Text = "TABLE"
|
|
lblMethodname.Text = "Table Name"
|
|
Else
|
|
lblMethodname.Text = "FuBa Name"
|
|
MethodTextBox.Text = "FUBA"
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub MethodTextBox_TextChanged(sender As Object, e As EventArgs) Handles MethodTextBox.TextChanged
|
|
If MethodTextBox.Text = "TABLE" Then
|
|
rbTable.Checked = True
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnGetResult_Click(sender As Object, e As EventArgs) Handles btnGetResult.Click
|
|
|
|
Dim sw As New Stopwatch
|
|
sw.Start()
|
|
m_CountTo = 100
|
|
|
|
Me.Cursor = Cursors.WaitCursor
|
|
If ClassSAP.ConnectionInit(HostTextBox.Text, SystemNumberTextBox.Text, UserNameTextBox.Text, PasswordTextBox.Text, ClientTextBox.Text, LanguageTextBox.Text) = True Then
|
|
lblConnectionopen.Visible = True
|
|
Else
|
|
lblConnectionopen.Visible = False
|
|
Me.Cursor = Cursors.Default
|
|
lblResult.Visible = False
|
|
GridControl2.DataSource = Nothing
|
|
lblSave.Visible = False
|
|
sw.Stop()
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim SAPResulttable As DataTable = New DataTable
|
|
Dim rowlimit As Integer = 0
|
|
If txtLimitRows.Text <> "" Then
|
|
rowlimit = txtLimitRows.Text
|
|
End If
|
|
If rbTable.Checked = True Then
|
|
|
|
Dim result = ClassSAP.Return_Datatable_for_Table(TableNameTextBox.Text, WHERE_CLAUSETextBox.Text, rowlimit)
|
|
If Not IsNothing(result) Then
|
|
SAPResulttable = result
|
|
End If
|
|
ElseIf rBFuba.Checked = True Then 'FUBA Abruf
|
|
Dim result = ClassSAP.FuBa_Returndatatable_Seperated(TableNameTextBox.Text, FuBa_SplitCharacterTextBox.Text, rowlimit)
|
|
If Not IsNothing(result) Then
|
|
SAPResulttable = result
|
|
End If
|
|
End If
|
|
If SAPResulttable Is Nothing Then
|
|
ClassSAP.SAP_CONNECTION.Close()
|
|
lblResult.Visible = False
|
|
Me.Cursor = Cursors.Default
|
|
lblSave.Visible = False
|
|
GridControl2.DataSource = Nothing
|
|
sw.Stop()
|
|
ClassLogger.Add(">> SAPResulttable is nothing", False)
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
'Jetzt dem Grid die Datasource zuordnen
|
|
|
|
Try
|
|
If SAPResulttable.Rows.Count > 0 Then
|
|
GridControl2.DataSource = SAPResulttable
|
|
End If
|
|
ClassSAP.SAP_CONNECTION.Close()
|
|
Dim elapsed As Double
|
|
elapsed = sw.Elapsed.TotalSeconds
|
|
sw.Stop()
|
|
If rowlimit <> 0 And SAPResulttable.Rows.Count >= rowlimit Then
|
|
lblResult.Text = "Result (limited to " & rowlimit.ToString & " rows) - Duration: " & Format(elapsed, "0.00") & " seconds"
|
|
Else
|
|
lblResult.Text = "Result (unlimited) >> " & SAPResulttable.Rows.Count & " rows retrieved - Duration: " & Format(elapsed, "0.00") & " seconds"
|
|
End If
|
|
lblResult.Visible = True
|
|
Me.Cursor = Cursors.Default
|
|
lblSave.Visible = False
|
|
|
|
Catch ex As Exception
|
|
ClassSAP.SAP_CONNECTION.Close()
|
|
lblResult.Visible = False
|
|
Me.Cursor = Cursors.Default
|
|
lblSave.Visible = False
|
|
GridControl2.DataSource = Nothing
|
|
ClassLogger.Add(">> Unexpected Error in GridControl2 >> DataTable 2: " & ex.Message, False)
|
|
MsgBox("Error in GridControl2 >> DataTable: " & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub rBFuba_CheckedChanged(sender As Object, e As EventArgs) Handles rBFuba.CheckedChanged
|
|
If rBFuba.Checked = True Then
|
|
Me.FuBa_SplitCharacterTextBox.Visible = True
|
|
lblSplitchr.Visible = True
|
|
Else
|
|
Me.FuBa_SplitCharacterTextBox.Visible = False
|
|
lblSplitchr.Visible = False
|
|
End If
|
|
End Sub
|
|
End Class |