Скрипт получения данных из Компаса

Обсуждение технических вопросов работы с системами управления базами данных (СУБД), работе с языком SQL и скриптовыми языками.
Ответить
Andrew
Новый участник
Сообщения: 21
Зарегистрирован: 15 окт 2009, 10:12
Используемое ПО: Lotsia PDM PLUS

Скрипт получения данных из Компаса

Сообщение Andrew »

На VBA код работает, а вот скрипт не хочет и Компас дает ошибку

Sub Command()
Dim Kompas
Dim ksDocument2D
FileName = "c:\5.cdw"
On Error resume next
Set Kompas = CreateObject("Kompas.Application.5")
Kompas.Visible = True
Set ksDocument2D = Kompas.Document2D
ksDocument2D.ksOpenDocument (FileName), False
if Err.Number<>0 then
Set Kompas = GetObject(,"Kompas.Application.5")
Kompas.Visible = True
Set ksDocument2D = Kompas.Document2D
ksDocument2D.ksOpenDocument (FileName), False
end if
Dim doc
Set doc = Kompas.ActiveDocument2D
Dim docPar
Set docPar = Kompas.GetParamStruct(35)
doc.ksGetObjParam Reference, docPar, -1
MsgBox " Comment " & docPar.Comment
Dim sheet
Set sheet = docPar.GetLayoutParam
Dim standart
Set standart = sheet.GetSheetParam()
MsgBox " Format " & standart.Format
MsgBox " multiply " & standart.multiply
// До сих пор все работает, а дальше все MsgBox пустые и при закрытии Компаса идет сообщение неверный индекс массива, дальше используется динамический массив...
Dim stamp
Set stamp = ksDocument2D.GetStampEx(1)
If Not stamp Is Nothing And stamp.ksOpenStamp Then
stamp.ksColumnNumber 4
Dim numb
Dim Arr
Set Arr = stamp.ksGetStampColumnText(numb)
MsgBox " numb " & numb
Dim ArrpLineText
Set ArrpLineText = Kompas.GetDynamicArray(3)
Dim ItemLineText
Set ItemLineText = Kompas.GetParamStruct(29)
If Not ItemLineText Is Nothing And Not ArrpLineText Is Nothing And Not Arr Is Nothing Then
Arr.ksGetArrayItem 0, ItemLineText
MsgBox "Style " & ItemLineText.Style
Dim ArrpTextItem
Set ArrpTextItem = ItemLineText.GetTextItemArr
End If
Dim Item
Set Item = Kompas.GetParamStruct(31)
If Not ArrpTextItem Is Nothing And Not Item Is Nothing Then
ArrpTextItem.ksGetArrayItem 0, Item
Dim TextItemFont
Set TextItemFont = Item.GetItemFont
MsgBox "Soderzanie" & Item.s

End If
stamp.ksCloseStamp
Set ksDocument2D = Kompas.ActiveDocument2D
ksDocument2D.ksCloseDocument
End If
End Sub
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

Re: Скрипт получения данных из Компаса

Сообщение Старик Крупский »

И что?
"Лучше меньше, да лучше" (C)
Andrew
Новый участник
Сообщения: 21
Зарегистрирован: 15 окт 2009, 10:12
Используемое ПО: Lotsia PDM PLUS

Re: Скрипт получения данных из Компаса

Сообщение Andrew »

Может кто-то работал с api Компаса подскажите, где не правильно
Ответить