'Константы для подключения к R/3
Private Const cServerRFC As String = "RFC.ServerObject"
'Private Const cServerRFC As String = "SAP.R31RFCServer"
'Private Const cServerRFC As String = "SAP.Function"
Private Const cSystem As String = "DEV"
Private Const cAppServer As String = "192.168.1.243" '"192.168.1.242"
Private Const cSysNumber As String = "02" '"02"
Private Const cUser As String = "XXXXXXXXX"
Private Const cParol As String = "XXXXXXXX"
Private Const cMandt As String = "400"
Private Const cLang As String = "RU"
'Константы для формировании ZIP-файла
Private Const ZipPath As String = "C:\pkzip.exe -m "
Private Const ZipDelay As Integer = 10
Private Sub Кнопка3_Click()
On Error GoTo Err_Кнопка3_Click
Dim R3 As Object, App As Object, RetString As String
Dim TabPrice As Object
Dim LocalDB As Database, rsPrice As Recordset
Dim i As Integer
Dim OKString As String, OK As Boolean
'Получить доступ к базе данных
Set R3 = CreateObject(cServerRFC)
R3.Connection.System = cSystem
R3.Connection.ApplicationServer = cAppServer
R3.Connection.SystemNumber = cSysNumber
R3.Connection.User = cUser
R3.Connection.Password = cParol
R3.Connection.Client = cMandt
R3.Connection.Language = cLang
Set App = R3.Application
If R3.Connection.Open <> True Then
RetString = "Ошибка при подключении к R3"
MsgBox Err.Description
Resume Exit_Кнопка3_Click
'GetPrice = False
'Exit Function
End If
'Запрос к R/3 для получения объекта TabPrice
DoCmd.SetWarnings False
DoCmd.RunSQL "delete * from ZPrice"
'OK = R3.RFC_CALL_PRICE(PRICE:=TabPrice, Status:=OKString, RetStr:=RetString)
OK = R3.Z_RFC_GET_ZPRICE(TAB:=TabPrice, Result:=RetString)
RetString = TransStr(RetString)
If OK = False And RetString = "" Then RetString = "Ошибка удаленного вызова функции R/3"
'Отключиться от R3
R3.Close False
App.Quit
If OK = False Or OKString = "FAIL" Then
'GetPrice = False
'Exit Function
End If
'Перенос данных из объекта TabPrice во внутреннюю таблицу Price
Set LocalDB = CurrentDb
Set rsPrice = LocalDB.OpenRecordset("ZPrice", dbOpenDynaset)
For i = 1 To TabPrice.RowCount
With rsPrice
.AddNew
!MATNR = TransStr(TabPrice(i, "MATNR"))
!SPRAS = TransStr(TabPrice(i, "SPRAS"))
!MTART = TransStr(TabPrice(i, "MTART"))
!MAKTX = TransStr(TabPrice(i, "MAKTX"))
!MAKTG = TransStr(TabPrice(i, "MAKTG"))
!US_NAME = TransStr(TabPrice(i, "US_NAME"))
!US_DATE = TransDate(TabPrice(i, "US_DATE"))
!US_TIME = TransStr(TabPrice(i, "US_TIME"))
.Update
.Bookmark = .LastModified
End With
Next
rsPrice.Close
LocalDB.Close
'Перенос содержимого таблицы Price в файлы DBF и XLS
DoCmd.TransferDatabase acExport, "dBase IV", OutDir, acTable, "ZPrice", "ZPrice.dbf"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "ZPrice", OutDir & "ZPrice.xls", True
DoCmd.SetWarnings True
'GetPrice = True
Exit_Кнопка3_Click:
Exit Sub
Err_Кнопка3_Click:
MsgBox Err.Description
Resume Exit_Кнопка3_Click
End Sub
|
|