Плагин OLE

Материал из ЛОКАРУС
(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «== Инструкция к плагину OLE ==»)
 
(Инструкция к плагину 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

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