Страница 1 из 1

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

Добавлено: 08 дек 2010, 17:21
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

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

Добавлено: 10 дек 2010, 22:30
Старик Крупский
И что?

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

Добавлено: 13 дек 2010, 07:10
Andrew
Может кто-то работал с api Компаса подскажите, где не правильно