Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-12-03, 19:19x



Odpowiedz w temacie  [ Posty: 12 ] 
[VBA] Wyłączenie HMF 2014a z poziomu VBA 
Autor Wiadomość

Rejestracja: 2009-02-27, 09:09
Posty: 84
Pomógł: 1
Post [VBA] Wyłączenie HMF 2014a z poziomu VBA
Witam,

Czy mógł by mi ktoś podpowiedzieć jak wyłączyć HMF 2014a z posiomu VBA ? oraz w jaki sposób z poziomu VBA zakończyć pracę z firmą. To drugie rozwiązanie było by nawet lepsze.

Jakaś metoda , funkcja ?

Dzięki z góry i pozdrawiam
Łukasz.

_________________
Cyfrowa lodówka.


2014-05-09, 09:20
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4002
Pomógł: 448
Post Re: [VBA] Wyłączenie HMF 2014a z poziomu VBA
Opisz do czego Ci jest potrzebna taka funkcjonalność.
W, którym momencie chcesz wywołać kod zamykający?

Zamykając program możesz mieć w edycji dokumenty.
Operator musi zdecydować co z nimi zrobić (zapisać, Anulować zmiany).

Możesz wysłać do procesu aplikacji HMF komunikat WM_CLOSE
Kod:
SendMessage(hWnd, WM_CLOSE, 0, 0)


W ostateczności możesz zabić proces aplikacji. Ale to nie jest chyba dobry pomysł.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2014-05-10, 08:18
Wyświetl profil

Rejestracja: 2009-02-27, 09:09
Posty: 84
Pomógł: 1
Post Re: [VBA] Wyłączenie HMF 2014a z poziomu VBA
Zaraz po otwarciu firmy sprawdzam kilka danych w bazie i na ich podstawie decyduję o zamknięciu programu lub nie. Uzytkownik nie zdąży nic zrobić, więc nie ma problemu z otwartymi dokumentami.
Najlepiej było by zalogowanego już użytkownika , po prostu wylogować (zakończyć prace z firmą).

Starałem się użyć obiektu "application" i metody "quit" ,ale nie działa.

_________________
Cyfrowa lodówka.


2014-05-10, 09:42
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4002
Pomógł: 448
Post Re: [VBA] Wyłączenie HMF 2014a z poziomu VBA
A dlaczego nie użyjesz OnOpen w procedurach AmBasic?

Kod:
int sub OnOpen()

   if nie_spełniony_warunek then
      OnOpen = -6000 // spowoduje wyjście z firmy
   else
      OnOpen = 0
   endif

endsub

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2014-05-10, 12:25
Wyświetl profil

Rejestracja: 2009-02-27, 09:09
Posty: 84
Pomógł: 1
Post Re: [VBA] Wyłączenie HMF 2014a z poziomu VBA
Ponieważ cała procedura za wzgledu na jej specyfike ,musi być napisana w VBA. Chyba ,że można wywołać jakąś procedurę AmBasica zamykająca firmę z poziomu VBA ? .

To może inaczej, jak z poziomu AmBasic'a wykonać funkcję napisaną w VBA i otrzymać od niej z powrotem wynik do AmBasic'a ?

_________________
Cyfrowa lodówka.


2014-05-13, 09:17
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4002
Pomógł: 448
Post Re: [VBA] Wyłączenie HMF 2014a z poziomu VBA
W AmBasic Obiektem aplikacji

Kod:
dispatch app = GetApplication()


Potem obiekt dokumentu sbc

Kod:
doc = App.Documents.OpenDocument("")


potem obiekt MxInter

Kod:
mxInter = doc.CommandDoc("GetMxInterDoc")


potem uruchomienie aplikacji VBA

Kod:
exec = mxInter.ExecuteApp(....)


exec zwróci retVal z procedury sub _EvExecuteApp() po stronie VBA

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2014-05-13, 13:15
Wyświetl profil

Rejestracja: 2009-02-27, 09:09
Posty: 84
Pomógł: 1
Post Re: [VBA] Wyłączenie HMF 2014a z poziomu VBA
rafal pisze:
A dlaczego nie użyjesz OnOpen w procedurach AmBasic?

Kod:
int sub OnOpen()

   if nie_spełniony_warunek then
      OnOpen = -6000 // spowoduje wyjście z firmy
   else
      OnOpen = 0
   endif

endsub


W którym miejscu w raportach wstawić tą procedurę, lub gdzie jest ta procedura ?

OK już znalazłem :)

_________________
Cyfrowa lodówka.


2014-05-13, 14:10
Wyświetl profil

Rejestracja: 2009-02-27, 09:09
Posty: 84
Pomógł: 1
Post Re: [VBA] Wyłączenie HMF 2014a z poziomu VBA
rafal pisze:
W AmBasic Obiektem aplikacji

Kod:
dispatch app = GetApplication()


Potem obiekt dokumentu sbc

Kod:
doc = App.Documents.OpenDocument("")


potem obiekt MxInter

Kod:
mxInter = doc.CommandDoc("GetMxInterDoc")


potem uruchomienie aplikacji VBA

Kod:
exec = mxInter.ExecuteApp(....)


exec zwróci retVal z procedury sub _EvExecuteApp() po stronie VBA



1. Ok ogarnąłem wszystko poza mxInter.ExecuteApp(....). Co mam wpisać zamiast kropeczek w nawiasie ? nazwę mojej procedury w VBA?

2. retVal zwróci mi w wartość wygenerowaną w mojej funkcji w VBA ?

_________________
Cyfrowa lodówka.


2014-05-13, 14:23
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4002
Pomógł: 448
Post Re: [VBA] Wyłączenie HMF 2014a z poziomu VBA
Pierwszy parametr to zawsze "0" jeżeli uruchamiasz z AmBasica.
Pozostałe to parametry typu Variant przekazywane do VBA.

Wywołanie ExecuteApp odpala zdarzenie EvExecuteApp() VBA z tymi samymi parametrami.
Co zwróci to zdarzenie za pomocą retVal to znajdzie się w zmiennej exec AmBasica.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2014-05-13, 15:24
Wyświetl profil

Rejestracja: 2009-02-27, 09:09
Posty: 84
Pomógł: 1
Post Re: [VBA] Wyłączenie HMF 2014a z poziomu VBA
rafal pisze:
Pierwszy parametr to zawsze "0" jeżeli uruchamiasz z AmBasica.
Pozostałe to parametry typu Variant przekazywane do VBA.

Wywołanie ExecuteApp odpala zdarzenie EvExecuteApp() VBA z tymi samymi parametrami.
Co zwróci to zdarzenie za pomocą retVal to znajdzie się w zmiennej exec AmBasica.



Czy mógł bym prosić o jakiś przykład w VBA jak obsłużyć to zdarzenie ?. Nigdzie nie mogę znaleźć EvExecuteApp()

_________________
Cyfrowa lodówka.


2014-05-15, 07:40
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4002
Pomógł: 448
Post Re: [VBA] Wyłączenie HMF 2014a z poziomu VBA
Nie mam gotowego przykładu. Ale może zostać dla Ciebie przygotowany.

Skontaktuj się z Ekspertem.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2014-05-15, 10:30
Wyświetl profil

Rejestracja: 2009-02-27, 09:09
Posty: 84
Pomógł: 1
Post Re: [VBA] Wyłączenie HMF 2014a z poziomu VBA
rafal pisze:
Nie mam gotowego przykładu. Ale może zostać dla Ciebie przygotowany.

Skontaktuj się z Ekspertem.



To napisz mi proszę tylko jak mogę obsłużyć w VBA zdarzenie EvExecuteApp. Coś mam załadować do VBA, jakąś bibliotekę?.

_________________
Cyfrowa lodówka.


2014-05-16, 10:41
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 12 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Jak uruchomić raport z poziomu VBA?

w Programowanie

ddooh

4

4662

2020-07-08, 09:40

zz Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. vba

w Programowanie

tatanka

5

3984

2009-02-20, 18:10

wrob Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. VBA i LMD

w Programowanie

tatanka

2

2468

2009-10-16, 09:35

tatanka Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. błędy w vba

w Programowanie

tatanka

1

2316

2009-08-24, 21:03

barnie Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 5 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