Плагин OLE

Материал из ЛОКАРУС
Версия от 15:35, 4 марта 2021; Yan (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Инструкция к плагину 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

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты