połaczenie przez OLE


jureko

Rekomendowane odpowiedzi

witam,

próbuję połączyc się przez OLE z Openoffice do zwcad. Trochę mam z tym problemów niestety - chciałbym otworzyć każdy plik z katalogu i pobrać z niego potrzebne informacje. Połączenie mi się udało, jakieś próbne wyswietlanie danych z zwcad działa. Natomiast otwieranie plików i robienie w nich czegokolwiek to trochę trudna sprawa dla mnie. Pomógłby mi ktoś z tym tematem?

Łączę się tak:

Sub zwConnect  'połaczenie z zwcad
Dim OleService1 As Object
Dim zwApp, zwdwg  As Object

OleService1 = createUnoService("com.sun.star.bridge.OleObjectFactory")
zwApp = OleService1.CreateInstance("Zwcad.application")
zwApp.Visible = False

MsgBox zwApp.FullName	'to dziala
zwdwg = zwApp.Documents		
zwApp.Documents.Open("c:\ole.dwg")

'zwdwg.Close
'zwApp.Quit

no a w pliku chce zrobić coś w stylu:

Sub totalnumber()

   'define
   Dim total As Double
   total = 0

   'Create a set
   Dim ssetObj As ZwcadSelectionSet
   Set ssetObj = Thisdocument.SelectionSets.Add("TEST_SSET")

   'use Filters to get text
   Dim Ftype(2) As Integer
   Dim Fdata(2) As Variant

   Ftype(0) = 0
   Fdata(0) = "text"

   Ftype(1) = 8
   Fdata(1) = "teksty"

   Ftype(2) = 62
   Fdata(2) = 4

   Dim mode As ZcSelectionSetType
   mode = zcSelectionSetAll

   ssetObj.Select zcSelectionSetAll, , , Ftype, Fdata

   'Determine the text whether to be digital
   For i = 0 To ssetObj.Count - 1
       If IsNumeric(ssetObj.Item(i).TextString) Then
           total = total + ssetObj.Item(i).TextString
           Activedocument.Utility.Prompt ssetObj.Item(i).TextString & vbCrLf
       End If
   Next i

   ' delete set
   ssetObj.Delete

   ' output the sum
   Activedocument.Utility.Prompt "suma " & total

End Sub

Pewnei w MSoffice z jego VBasic byłoby mi łatwiej ale akurat używam OOffice...

--

pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.