Плагин OLE
Инструкция к плагину OLE
https://disk.yandex.ru/d/8saF7xV1xln6QA
Пример vba макроса для excel:
VERSION 1.0 CLASS BEGIN
MultiUse = -1 'True
END Attribute VB_Name = "Лист1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = True
Private Sub CommandButton1_Click() Dim MyClient As LI_OLE_Library.LI_Client Set MyClient = CreateObject("LI_OLE_Library.LI_Client") Dim UF As LI_OLE_Library.LIUtils Set UF = MyClient.LIUtils Dim RL As LI_OLE_Library.IRaceList Set RL = MyClient.RaceList Dim CDF As LI_OLE_Library.CurrDeviceFunctions Set CDF = MyClient.CurrDeviceFunctions Dim WPF As LI_OLE_Library.Warnings Set WPF = MyClient.Warnings Dim SPF As LI_OLE_Library.Stops Set SPF = MyClient.Stops Dim CPD As LI_OLE_Library.TCCPData Dim CPI As LI_OLE_Library.TCCPInfo Dim CP As LI_OLE_Library.CheckPoints Set CP = MyClient.CheckPoints Dim Ver As Long Ver = MyClient.GetVersion Dim AaS As Worksheet Set AaS = ActiveSheet
Dim i As Integer Dim OLen As Integer Dim Pos As Integer Dim D As Double
CPFile = CP.OpenCPFile("OLECPFile") CPI.Name = "OLE_Name1" CPI.Address = "OLE_ADR1" CPI.Coord.Lat = 51.5 CPI.Coord.Lon = 61.2 CPI.Radius = 200 Call CP.AddFileCPInfo(CPFile, CPI)
OLen = CP.FileCPInfoCount(CPFile) Dim CPI2 As LI_OLE_Library.TCCPInfo CPI2 = CP.GetFileCPInfo(CPFile, 0) CPI2.Name = "Name_2" CPI2.Address = "Addr2" Call CP.SetFileCPInfo(CPFile, 0, CPI2) Call CP.CloseCPFile(CPFile)
AaS.Cells(1, 1).Value = "Версия Движка"
AaS.Cells(2, 1).Value = Ver
AaS.Cells(3, 1).Value = UF.DevicesList
AaS.Cells(1, 2).Value = "Текущее устройство"
AaS.Cells(2, 2).Value = CDF.SelectedDevice
AaS.Cells(1, 3).Value = "Марка" AaS.Cells(2, 3).Value = UF.TSParam("Model", MyClient.CurrDeviceFunctions.SelectedDevice)
AaS.Cells(1, 4).Value = "Номер" AaS.Cells(2, 4).Value = UF.TSParam("Number", MyClient.CurrDeviceFunctions.SelectedDevice)
AaS.Cells(1, 5).Value = "Кол-во рейсов" AaS.Cells(2, 5).Value = RL.Count
OLen = RL.Count Pos = 4 For i = 0 To OLen - 1
D = UF.CalcStandartReportVarD("FuelUp", RL.RaceData(i).SectionBeginIndex, RL.RaceData(i).SectionEndIndex) AaS.Cells(Pos, 5).Value = D Pos = Pos + 1
Next i
AaS.Cells(1, 6).Value = "Кол-во предупреждений"
AaS.Cells(2, 6).Value = WPF.WarningsCount
OLen = WPF.WarningsCount
Pos = 3
For i = 0 To OLen - 1
W = WPF.Warnings(i) AaS.Cells(Pos, 6).Value = W.wRemark Pos = Pos + 1
Next i
AaS.Cells(1, 7).Value = "Кол-во остановок" AaS.Cells(2, 7).Value = SPF.StopsCount OLen = SPF.StopsCount Pos = 3 For i = 0 To OLen - 1
AaS.Cells(Pos, 7).Value = SPF.Stops(i).Duration / 86400 Pos = Pos + 1
Rem AaS.Cells(Pos, 7).NumberFormat = "HH:NN:SS" Next i
AaS.Cells(1, 8).Value = "Начало периода"
AaS.Cells(2, 8).Value = CDF.OnLineTimeStart
AaS.Cells(3, 8).Value = CDF.OnlineTimeStartStr
AaS.Cells(1, 9).Value = "Конец периода" AaS.Cells(2, 9).Value = CDF.OnLineTimeFinish AaS.Cells(3, 9).Value = CDF.OnlineTimeFinishStr
Dim Dist As Double Dist = UF.GetDistanceParam(55, 60, 56, 61)
AaS.Cells(1, 10).Value = "Контрольные точки" For i = 0 To MyClient.CheckPoints.DataCount - 1
AaS.Cells(2 + i, 10).Value = MyClient.CheckPoints.CPInfo(MyClient.CheckPoints.CPData(i).CPInfoIndex).Name AaS.Cells(2 + i, 11).Value = MyClient.CheckPoints.CPI_Address(MyClient.CheckPoints.CPD_CPInfoIndex(i))
Next i
Set MyClient = Nothing
End Sub
Private Sub CommandButton2_Click() Dim MyClient As LI_OLE_Library.LI_Client Set MyClient = CreateObject("LI_OLE_Library.LI_Client") Dim UF As LI_OLE_Library.LIUtils Set UF = MyClient.LIUtils Dim RL As LI_OLE_Library.IRaceList Set RL = MyClient.RaceList Dim CDF As LI_OLE_Library.CurrDeviceFunctions Set CDF = MyClient.CurrDeviceFunctions Dim WPF As LI_OLE_Library.Warnings Set WPF = MyClient.Warnings Dim SPF As LI_OLE_Library.Stops Set SPF = MyClient.Stops Dim Ver As Long Ver = MyClient.GetVersion Dim AaS As Worksheet Set AaS = ActiveSheet Dim Devices(3) As String Dim CurDevice As Integer
Devices(1) = "2BK000484" Devices(2) = "2DB003611" Devices(3) = "CB002272" Dim CurLine
CurLine = 2
AaS.Cells(1, 1).Value = "Версия Движка" AaS.Cells(2, 1).Value = Ver AaS.Cells(1, 2).Value = "Текущее устройство" AaS.Cells(1, 3).Value = "Марка" AaS.Cells(1, 4).Value = "Номер" AaS.Cells(1, 5).Value = "Кол-во рейсов" AaS.Cells(1, 6).Value = "Кол-во предупреждений" AaS.Cells(1, 7).Value = "Кол-во остановок"
For CurDevice = 1 To 3
CDF.SelectedDevice = Devices(CurDevice)
AaS.Cells(CurLine, 2).Value = CDF.SelectedDevice
AaS.Cells(CurLine, 3).Value = UF.TSParam("Model", MyClient.CurrDeviceFunctions.SelectedDevice)
AaS.Cells(CurLine, 4).Value = UF.TSParam("Number", MyClient.CurrDeviceFunctions.SelectedDevice)
AaS.Cells(CurLine, 5).Value = RL.Count
AaS.Cells(CurLine, 6).Value = WPF.WarningsCount
AaS.Cells(CurLine, 7).Value = SPF.StopsCount
CurLine = CurLine + 1
Next CurDevice
End Sub