Files
RecordOrganizer/app/DD-Record-Organiser/frmSAP_FuBa.vb
SchreiberM 2cbf3bf5da Ms10052016
2016-05-11 12:02:44 +02:00

219 lines
9.6 KiB
VB.net

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 '<ObjectType>' AND AR_DATE GE '<AR_DATE>'"
'Dim sSearchDate1 = "20160101"
'cWhereClause = Replace(cWhereClause, "<ObjectType>", Objekttyp.Text)
'cWhereClause = Replace(cWhereClause, "<AR_DATE>", 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 '<ObjectType>' AND AR_DATE GE '<AR_DATE>'"
'Dim sSearchDate1 = "20160101"
'cWhereClause = Replace(cWhereClause, "<ObjectType>", Objekttyp.Text)
'cWhereClause = Replace(cWhereClause, "<AR_DATE>", 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