mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
VBA w Handel Forte https://forum.mix-soft.pl/viewtopic.php?f=15&t=88 |
Strona 1 z 1 |
Autor: | jacszym11 [ 2008-04-10, 12:49 ] |
Tytuł: | VBA w Handel Forte |
Chcę wykorzystać procedury VBA w zrobieniu dodatków do handel forte. nie AmBasic i sbc. moim zamierzeniem jest obsługa makr VBA z programu nie z pulpitu. jako przykład tego co chcę zrobić podat to: W UserVBASymfonia jest UserElement. ELEMENT ma przypisaną fabrycznie funkcję Private Sub MainDoc_TryToOpen(ByVal Category As String, ByVal Group As String, Name As String, ByVal ActionType As AmOpenAction, Cancel As Boolean) ta funkja jest wywoływana w momencie (przed) otwarciem okna w symfoni lub wywołania raportu i zwrana między innymi nazwę otwieranego elementu, co można przechwycić i zainicjować wykonuwanie programu. Kod: Private Sub MainDoc_TryToOpen(ByVal Category As String, ByVal Group As String, Name As String, ByVal ActionType As AmOpenAction, Cancel As Boolean) if Name="nazwa_raportu" then userform.show end sub i tą metodę mogę i chciałbym wykorzystać ale... 1. wdrożeniowiec był pierwszy i podłożył swój plik UserDoc_HM.mng do symfonii, plik zahasłowany przez programistę z sagesymfonia (wdrożeniowiec nie zna hasła) i nie mogę teraz z niego korzystać (choć w nazwie ma USER). 2. czy można do symfonii dołączyć nowy projekt, aktywowany przy stacie firmy (nie sbc bo ten jest uruchamiany z pulpitu), a jak można to jak. 3. czy można wywołać makro z aktywnego projektu przez komendę umieszczoną w raporcie np. komeda_ktora_uruchomi_makro_start nooutput() przekopałem dostępną dokumentację i nie znalazłem odpowiedzi na te pytania. i co z tym hasłem w UserVBASymfonia czy jest możliwośc poznania go. pozdrawiam Serwisant teraz Symfonii. |
Autor: | barnie [ 2008-04-10, 13:51 ] |
Tytuł: | |
UserVBASymfonia jest standardowo odhasłowany. Bez tego nie masz dostępu do TryToOpen. Jedyną osobą, która może dać Ci tam dostęp to tylko ta, która zakładało hasło. Dowiedz się dlaczego odebrano Ci dostęp (może dla Twojego dobra :) ). Cytuj: 2. czy można do symfonii dołączyć nowy projekt, aktywowany przy stacie firmy (nie sbc bo ten jest uruchamiany z pulpitu), a jak można to jak. 3. czy można wywołać makro z aktywnego projektu przez komendę umieszczoną w raporcie np. komeda_ktora_uruchomi_makro_start nooutput() 3. Z ambasica możesz wywołać Kod: Dispatch A, D A = GetApplication() D = A.Documents.OpenDocument(App.Exepath + "\sbc_hm\\mojProgram.sbc") NoOutPut() Spowoduje to uruchomienie projektu sbc... 2. ... co za tym idzie możesz użyć Procedury ambasica ONOPEN wywoływanej przy wejściu do firmy. Raporty - Procedury - Procedura OnTimer Kod: int sub OnOpen() Dispatch A, D A = GetApplication() D = A.Documents.OpenDocument(App.Exepath + "\sbc_hm\\mojProgram.sbc") OnOpen = 0 endsub |
Autor: | jacszym11 [ 2008-04-10, 14:07 ] |
Tytuł: | |
dzięki za zainteresowanie. dostęp nie został zabrany tylko został wgrany plik userdoc_hm już z hasłem. to jest jeszcze etap wdrażania i są dokładane nowe rzeczy dla potrzeb klienta, wdrożenie prowadzi wydrożeniowiec z sage'a(być może dostanę dostęp ale na razie rozpatruje inne możliwości). ja przejmę serwis po zakończeniu wdrożenia a na razie mam zlecenie na określone raporty i zestawienia które pracowały ze starym programem a klient chce to samo teraz - dlatego vba. moge w excelu ale po co jakjest w symfoni. to jeszcze pytanko : co zrobić zeby nie było widać okna sbc a projekt był aktywny. pozdrawiam |
Autor: | barnie [ 2008-04-10, 14:22 ] |
Tytuł: | |
jacszym11 pisze: dostęp nie został zabrany tylko został wgrany plik userdoc_hm już z hasłem. jacszym11 pisze: to jest jeszcze etap wdrażania i są dokładane nowe rzeczy dla potrzeb klienta, wdrożenie prowadzi wydrożeniowiec z sage'a jacszym11 pisze: to jeszcze pytanko : co zrobić zeby nie było widać okna sbc a projekt był aktywny. Najprawdopodobniej chodzi Ci o coś takiego Kod: Private Sub Document_Open() Element.Visible = False UserForm1.Show End Sub |
Autor: | jacszym11 [ 2008-04-10, 18:13 ] |
Tytuł: | |
chyba chodzi o to, dziękuję. a co do hasła to raczej taka polityka firmy, bo nawet wdrożeniowiec go nie zna. do tego zahasłowane są dodatkowe raporty (by może te prace były jako dodatek komercyjny, więc to normalne sam tak robię), ale irytuje mnie to że ja już nie mogę skorzystac z VBA tylko muszę kombinowac. ale to jeszcze sprawa rozwojowa. w każdym bądź razie jeszcze raz dziękuję. |
Autor: | jacszym11 [ 2008-04-15, 16:30 ] |
Tytuł: | |
wszytko działa fajnie (no prawie), ale mam jeszcze jeden problem. jak przenieść wartość jednej czy kilku zmiennych z raportu do VBA. powiedzmy że uruchamiam raport z karty towaru i chciałbym odczytac w vba IdObiektu np: Kod: long idObiektu idObiektu = GetLineId() Dispatch A, D A = GetApplication() D = A.Documents.OpenDocument(A.Exepath + "\sbc_hm\\mojProgram.sbc") uruchamiam makro Auto_Open() obiektu SBC i chciałbym pobrać/mieć możliwość odczytania zmiennej IdObiektu pozdrawiam |
Autor: | rafal [ 2008-04-15, 19:08 ] |
Tytuł: | |
jeden ze znanych mi sposobów to : w części AmBasic Kod: #define amLong 1 long idObiektu idObiektu = GetLineId() Dispatch A, D A = GetApplication() D = A.Documents.OpenDocument(A.Exepath + "\sbc_hm\\mojProgram.sbc") D.AddField("Param01", amLong, 4) = idObiektu w części sbc Kod: Private Sub CommandButton1_Click() MsgBox ClientField("Param01") End Sub W związku z tym, że wartość parametru nadajemy dopiero po otwarciu dokumentu, nie jest dostępna w zdarzeniu Private Sub Document_Open() |
Autor: | jacszym11 [ 2008-04-18, 10:30 ] |
Tytuł: | |
jeszcze jedno: czy można zamknąć dokument SBC z poziomu VBA. unload nie działa . a było bu elegancko gdyby użytkownik miał ładny duży przycick "koniec" pozdrawiam |
Autor: | rafal [ 2008-04-18, 10:42 ] |
Tytuł: | |
Kod: Element.CloseDoc(False) |
Autor: | tatanka [ 2010-09-21, 15:02 ] |
Tytuł: | |
rafal pisze: jeden ze znanych mi sposobów to : w części AmBasic Kod: #define amLong 1 long idObiektu idObiektu = GetLineId() Dispatch A, D A = GetApplication() D = A.Documents.OpenDocument(A.Exepath + "\sbc_hm\\mojProgram.sbc") D.AddField("Param01", amLong, 4) = idObiektu w części sbc Kod: Private Sub CommandButton1_Click() MsgBox ClientField("Param01") End Sub W związku z tym, że wartość parametru nadajemy dopiero po otwarciu dokumentu, nie jest dostępna w zdarzeniu Private Sub Document_Open() Chciałem dopytać coś w temacie. Prześledziłem wasz wątek i spróbowałem przykładu Rafała do przekazania zmiennej z ambasic do vba. Rozumiem że poniższy kod podpinam pod guzik na formie. Kod: Private Sub CommandButton1_Click() MsgBox ClientField("Param01") End Sub Po kliknięciu dostaję komunikat że funkcja ClientFileld("Param01") not defined. Czy w związku z wykorzystaniem tej funkcji trzeba do projektu dodać jakieś referencje ?? Poradziłem sobie. element.clientfield("Param01") |
Autor: | zz [ 2019-06-25, 15:02 ] |
Tytuł: | Re: VBA w Handel Forte |
A jak przenieść wartość zmiennej z SBC-a do AMbasica? tzn. chcę wykonać RUN z parametrami |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |