Плагин OLE
Yan (обсуждение | вклад) (Новая страница: «== Инструкция к плагину OLE ==») |
Yan (обсуждение | вклад) (→Инструкция к плагину OLE) |
||
Строка 1: | Строка 1: | ||
== Инструкция к плагину 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 |
Текущая версия на 15:35, 4 марта 2021
Инструкция к плагину 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