• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Вставка из буфера обмена

Автор azeshko, 04.07.14, 21:48:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

azeshko

04.07.14, 21:48:59 Последнее редактирование: 05.07.14, 02:47:28 от azeshko
Добрый день!
Мне нужно поочередно вставлять в документ Компас скопированные во внешнем приложении (MS Excel) фрагменты через буфер обмена....
Вручную это делаю через Редактор - Специальная вставка - Picture (Metafile)
Настало время сделать это программно.... Порылся в спецификации по Компас - SDK. Как я понял это можно делать методом ksCMEditPaste

Может у кого-то есть пример решения подобной задачи, спасибо

PS. по ksCMEditPaste в хелпе нет никаких примеров кроме упоменания названия метода.

Запустить процесс ksCMEditPaste можно так:
KompasApi7.ExecuteKompasCommand(ksCMEditPaste,False);
или
KompasObject.ksExecuteKompasCommand(ksCMEditPaste,False);
или сервисной функцией ksExecuteKompasCommand(ksCMEditPaste,0);
+ Благодарностей: 1

azeshko

Спасибо, все работает. Вот только вставка происходит в формате Bitmap
Скажите, как передать параметры вставки. Мне нужно вставить Picture (Metafile) - так качество намного выше
А еще продолжить задавать параметры объекта вставки - масштаб и т.д. Вот мой код



Public Sub copyTableAndPasteAsPicture(rName As String)
   
    Application.Range(rName).Copy
    ActiveSheet.Pictures.Paste(Link:=False).Cut
 

End Sub

Sub kompasRuner()


Dim kompas As Kompas6API5.Application
Dim ksDoc2D As Kompas6API5.Document2D

'This I wanna check if kompas run. But it's not work. I do it later

'If Not kompas Is Nothing Then
'    MsgBox "Kompas is run"
'    Exit Sub
'End If


Set kompas = New Kompas6API5.Application
    kompas.Visible = True

    Call openKompasDocument(kompas)
   

End Sub


Private Sub openKompasDocument(ByRef kompas As Kompas6API5.Application)
    Dim path As String
    Dim ksDoc2D As Kompas6API5.Document2D
        path = "c:\kmp.cdw"
    If Not kompas Is Nothing Then
    Set ksDoc2D = kompas.Document2D
       ksDoc2D.ksOpenDocument path, False
       
       If Not ksDoc2D Is Nothing Then
            kompas.ksExecuteKompasCommand ksCMEditPaste, False
       End If
       
       
    End If
End Sub