Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-11-25, 18:03x



Odpowiedz w temacie  [ Posty: 9 ] 
wywoływanie zewnętrznych aplikacji 
Autor Wiadomość

Rejestracja: 2008-12-14, 21:51
Posty: 3
Post wywoływanie zewnętrznych aplikacji
Witam,

mam pytanie czy ktoś mógłby mi podpowiedzieć jak wywołać zewnętrzny program np Excel w AmBasic?

Dziękuję i pozdrawiam


2008-12-14, 21:54
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert
Awatar użytkownika

Rejestracja: 2008-04-18, 18:52
Posty: 5169
Pomógł: 59
Post 
Ta wiadomość była pomocna.(1)
dispatch d
d.Create("Excel.Application")
d.Workbooks.Add()
d.Workbooks.Open("c:\\aaa\\imp.xls")
d.visible = 1
d.Range("A2").Select

etc


2008-12-14, 22:22
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2008-04-07, 13:26
Posty: 208
Pomógł: 2
Post 
Ta wiadomość była pomocna.(1)
aby TYLKO uruchomić inny program z poziomu ambasica należy użyć funkcji Execute.

przykładowo:
Kod:
Execute("C:\\Program Files\\Microsoft Office\\Office12\\excel.exe")


2008-12-14, 22:30
Wyświetl profil

Rejestracja: 2008-09-05, 11:06
Posty: 29
Post 
a gdzie znależć jakąś pomoc (przykłady) dotyczącą metod Excela, które można wywołać z poziomu symfonii?
tzn. w tym momencie próbuję na chybił trafił. Czytam helpa od VBA, rejestruje proste macra w execelu i próbuje je później odwzorować w symfonii (na podstawie tych klku linii napisanych przez wrob'a).

Bo np. chciałbym wiedzieć jak (najchętniej z jakimś przykładem):

- zapisać stworzony (lub otwarty) plik (save, saveas..)


- zamknąć plik z zapisaniem zmian, lub z pominięciem zapisywania zmian

jeśli napisałem tak:

d.workbooks.close("SaveChanges:= False")

to otrzymuję komunikat:
"Wykonanie 'PropertyGet' lub 'Method' nie powiodło się"

a jak piszę:

d.workbooks.close()

to otwiera mi sie okienko z pytaniem czy chce zapisac zmiany... - a chciałbym to trochę zautomatyzować

Please help :)


2009-01-22, 13:33
Wyświetl profil
Ekspert
Ekspert
Awatar użytkownika

Rejestracja: 2008-04-18, 18:52
Posty: 5169
Pomógł: 59
Post 
Przyklady sa w raportach - najlepiej pogrzeb w raportach typu lista plac w KDB - tam jest sporo rzeczy wysylanych do excela :)


2009-01-22, 14:18
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
poza tym możesz używać wszystkich obiektów i metod jak w VBA Excela.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2009-01-22, 22:15
Wyświetl profil

Rejestracja: 2008-09-05, 11:06
Posty: 29
Post Re: wywoływanie zewnętrznych aplikacji
Witam,

chciałem powrócić do tematu.

Nurtuje mnie czy ktoś próbował (z sukcesami) otworzyć aplikację OpenOffice'a (Writer lub Calc)?

Udało mi się wygooglować przykład opisujący sposób otwarcia OpenOffice'a Calc'a z poziomu Excela:

Kod:
Sub ControlOOo()
  Rem The service manager is always the first thing to create.
  Rem If OOo is not running, it is started.
  Set oManager = CreateObject("com.sun.star.ServiceManager")

  Rem Create the desktop.
  Set oDesktop = oManager.createInstance("com.sun.star.frame.Desktop")

  Rem Open a new empty Calc document.
  Dim args()
  Dim s As String
  Set s = "private:factory/scalc"
  Set oDoc = oDesktop.loadComponentFromURL(s, "_blank", 0, args())

  Dim oSheet As Object
  Dim oSheets As Object
  Dim oCell As Object

  Set oSheets = oDoc.sheets.CreateEnumeration
  Set oSheet = oSheets.nextElement
  Set oCell = oSheet.getCellByPosition(0, 0)
  oCell.setFormula ("Hello From Excel") 'Cell A1
  oCell.CellBackColor = RGB(127, 127, 127)
End Sub


i próbuję przełożyć to samo do Symfonii Handel Premium:

Kod:
dispatch objServiceManager
dispatch objDesktop
dispatch calc
int args(1)

objServiceManager.Create("com.sun.star.ServiceManager")
objDesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop")
calc=objDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, args())


i oczywiście dostaje błąd składni języka (Oczekiwane wyrażenie) - chodzi o args...

Czy ktoś pracuje z OpenOffice'm z poziomu Symfonii? Czy ktoś mógłby mi z tym pomóc (bardzo raczkuje jeśli chodzi o Basic'a w OO, więc byłbym wdzięczny za jakiś przykład :)


2013-10-21, 14:12
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post Re: wywoływanie zewnętrznych aplikacji
Zobacz czy
zamiast
Kod:
int args

zadziała
Kod:
dispatch args

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2013-10-21, 14:36
Wyświetl profil

Rejestracja: 2008-09-05, 11:06
Posty: 29
Post Re: wywoływanie zewnętrznych aplikacji
Zadziałało, ale nie do końca... :( tzn wyświetla innego rodzaju błąd:

Obrazek

Kod wygląda teraz tak:

Kod:
dispatch objServiceManager
dispatch objDesktop
dispatch calc
dispatch args

objServiceManager.Create("com.sun.star.ServiceManager")
objDesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop")
calc=objDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, args)


Sprawa rozbija się (raczej na pewno) o args.
Poszperałem w necie za przykładami gdzie args nie jest pusta tablica. Znalazłem np:

Kod:
Sub getStock_new
   Dim cvs_quotes
   Dim Properties(1) As New com.sun.star.beans.PropertyValue
   Dim Dane As String
   
   Properties(0).Name = "Hidden"
   Properties(0).Value = True
   Properties(1).Name = "FilterName"
   Properties(1).Value = "Text - CSV"

   cvs_quotes = StarDesktop.LoadComponentFromUrl("http://finance.yahoo.com/d/quotes.csv?s=GOOG&f=nl1&e=.csv", "_blank", 0, Properties())
   Dane = cvs_quotes.Text.String
   cvs_quotes.close(true)
   'wstawienie pobranych danych po usunięciu znaku nowej lini
   ThisComponent.Sheets.getByName("Arkusz1").getCellRangeByName("A1").String =  Left(Dane, len(Dane) - 1)
End Sub


I tu zdefiniowane są elementy tablicy Properties, ale każdy element ma name i value, dodatkowo wcześniej Properties jest zdefiniowany jako:
Kod:
Dim Properties(1) As New com.sun.star.beans.PropertyValue


jak to poskładać do kupy i zmusić Symf do współpracy :D ??

Plis help :roll:


Załączniki:
blad_OLE.png
blad_OLE.png [ 15.96 KiB | Przeglądany 5065 razy ]
2013-10-22, 13:43
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 9 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Wywoływanie okien dokumentów - HMP 2010 i wyżej

w Programowanie

mrEM

7

5043

2012-07-04, 12:04

rafal Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Export danych do zewnętrznych programów

w Programy Handlowe

ahead_jb

5

7081

2009-05-20, 18:59

wrob Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Tabele z zamówieniami / import z systemów zewnętrznych

w Programowanie

Halzero

1

2379

2017-12-15, 10:51

rafal Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Uruchamianie zewnętrznej aplikacji.

w Programowanie

sosnek

5

3522

2018-04-12, 12:50

rafal Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 24 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant