Imports ERPConnect Imports System.Data.SqlClient Public Class frmSAP_FuBa 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) 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 Dim con As New R3Connection Try Me.Cursor = Cursors.WaitCursor ClassLogger.Add("", False) 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 ClassLogger.Add(">> HOST: " & HostTextBox.Text & " |SystemNumber: " & SystemNumberTextBox.Text & " |UserName: " & UserNameTextBox.Text & " |Password: " & PasswordTextBox.Text & " |Client: " & ClientTextBox.Text & " |Language: " & LanguageTextBox.Text, False) con.Open(False) ClassLogger.Add(">> SAP-Connection erfolgreich aufgebaut!", False) ClassLogger.Add("", False) lblConnectionopen.Visible = True Catch ex As Exception MsgBox("Unexpected Error in SAP Connect: " & ex.Message, MsgBoxStyle.Critical) lblConnectionopen.Visible = False Me.Cursor = Cursors.Default lblResult.Visible = False Exit Sub End Try Try Dim table As New ERPConnect.Utils.ReadTable(con) 'Dim cWhereClause = "SAP_OBJECT EQ '' AND AR_DATE GE ''" 'Dim sSearchDate1 = "20160101" 'cWhereClause = Replace(cWhereClause, "", Objekttyp.Text) 'cWhereClause = Replace(cWhereClause, "", sSearchDate1) If WHERE_CLAUSETextBox.Text <> "" Then table.AddCriteria(WHERE_CLAUSETextBox.Text) End If 'ClassLogger.Add(">> cWhereClause: " & cWhereClause, False) 'table.AddField("MATNR") 'table.AddField("MAKTX") ' table.AddCriteria("SPRAS = 'DE'") table.TableName = TableNameTextBox.Text table.RowCount = 1000 table.Run() Dim resulttable As DataTable resulttable = table.Result Try GridControl2.DataSource = resulttable Catch ex As Exception MsgBox("Fehler bei GridControl2 >> DataTable: " & ex.Message, MsgBoxStyle.Critical) End Try Dim i As Integer 'For Each row As DataRow In resulttable.Rows ' ClassLogger.Add(">> " & row.Item(0).ToString & "|" & row.Item(1).ToString & "|" & row.Item(2).ToString) 'Next con.Close() lblResult.Visible = True Me.Cursor = Cursors.Default Catch ex As Exception MsgBox("Unexpected Error in SAP Table Result: " & ex.Message, MsgBoxStyle.Critical) lblResult.Visible = False 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 End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If TempTableNameTextBox.Text <> "" Then Dim con As New R3Connection Try Me.Cursor = Cursors.WaitCursor ClassLogger.Add("", False) 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 ClassLogger.Add(">> HOST: " & HostTextBox.Text & " |SystemNumber: " & SystemNumberTextBox.Text & " |UserName: " & UserNameTextBox.Text & " |Password: " & PasswordTextBox.Text & " |Client: " & ClientTextBox.Text & " |Language: " & LanguageTextBox.Text, False) con.Open(False) ClassLogger.Add(">> SAP-Connection erfolgreich aufgebaut!", False) ClassLogger.Add("", False) Catch ex As Exception MsgBox("Unexpected Error in SAP Connect: " & ex.Message, MsgBoxStyle.Critical) Me.Cursor = Cursors.Default Exit Sub End Try Dim resulttable As DataTable Try Dim table As New ERPConnect.Utils.ReadTable(con) 'Dim cWhereClause = "SAP_OBJECT EQ '' AND AR_DATE GE ''" 'Dim sSearchDate1 = "20160101" 'cWhereClause = Replace(cWhereClause, "", Objekttyp.Text) 'cWhereClause = Replace(cWhereClause, "", sSearchDate1) If WHERE_CLAUSETextBox.Text <> "" Then table.AddCriteria(WHERE_CLAUSETextBox.Text) End If 'ClassLogger.Add(">> cWhereClause: " & cWhereClause, False) 'table.AddField("MATNR") 'table.AddField("MAKTX") ' table.AddCriteria("SPRAS = 'DE'") table.TableName = TableNameTextBox.Text table.Run() resulttable = table.Result ClassLogger.Add(">> resulttable created!", False) ClassLogger.Add("", False) Catch ex As Exception Me.Cursor = Cursors.Default MsgBox("Unexpected Error in Get SAP Table Result: " & ex.Message, MsgBoxStyle.Critical) Exit Sub End Try Dim i = 0 Dim tablename = "TPPMO_SAPFUBA_ " & TempTableNameTextBox.Text Dim createtablesql = "CREATE TABLE TPPMO_SAPFUBA_ " & TempTableNameTextBox.Text & " (" For Each col As System.Data.DataColumn In resulttable.Columns If i = 0 Then createtablesql += "[" & col.ColumnName & "] [varchar](100)" Else createtablesql += ", [" & col.ColumnName & "] [varchar](100)" End If i += 1 Next createtablesql += ")" Dim check = String.Format("SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='{0}'", tablename) If ClassDatabase.Execute_Scalar(check) = 1 Then ClassDatabase.Execute_non_Query("DROP TABLE " & tablename) End If 'Die Tabelle anlegen ClassLogger.Add(">> Create Table: " & createtablesql, False) If ClassDatabase.Execute_non_Query(createtablesql) = False Then Me.Cursor = Cursors.Default Exit Sub End If Try Dim SQLconnect As New SqlClient.SqlConnection SQLconnect.ConnectionString = MyConnectionString 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(resulttable) Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using SQLconnect.Close() Catch ex As Exception MsgBox("Unexpected Error in Get SAP Table Result: " & ex.Message, MsgBoxStyle.Critical) Me.Cursor = Cursors.Default End Try End If End Sub End Class