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



Odpowiedz w temacie  [ Posty: 11 ] 
VBA w Handel Forte 
Autor Wiadomość

Rejestracja: 2008-04-10, 12:09
Posty: 21
Post 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.


Ostatnio zmieniony 2008-04-10, 13:20 przez jacszym11, łącznie zmieniany 1 raz



2008-04-10, 12:49
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2008-04-07, 13:26
Posty: 208
Pomógł: 2
Post 
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


Ostatnio zmieniony 2008-04-10, 14:42 przez barnie, łącznie zmieniany 1 raz



2008-04-10, 13:51
Wyświetl profil

Rejestracja: 2008-04-10, 12:09
Posty: 21
Post 
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


2008-04-10, 14:07
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2008-04-07, 13:26
Posty: 208
Pomógł: 2
Post 
jacszym11 pisze:
dostęp nie został zabrany tylko został wgrany plik userdoc_hm już z hasłem.
jakbyś tego nie nazwał, masz odebrany dostęp.
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
jak sam mówisz program jest dostosowywany do potrzeb klienta. Najprawdopodobniej wdrożeniowiec wykonał dodatkowe prace programistyczne i chciał je zabezpieczyć przed modyfikacją przez osoby, które mogłyby doprowadzić do awarii.
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


2008-04-10, 14:22
Wyświetl profil

Rejestracja: 2008-04-10, 12:09
Posty: 21
Post 
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ę.


2008-04-10, 18:13
Wyświetl profil

Rejestracja: 2008-04-10, 12:09
Posty: 21
Post 
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


Ostatnio zmieniony 2008-04-15, 18:50 przez jacszym11, łącznie zmieniany 1 raz



2008-04-15, 16:30
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3982
Pomógł: 445
Post 
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()

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2008-04-15, 19:08
Wyświetl profil

Rejestracja: 2008-04-10, 12:09
Posty: 21
Post 
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


2008-04-18, 10:30
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3982
Pomógł: 445
Post 
Kod:
Element.CloseDoc(False)

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2008-04-18, 10:42
Wyświetl profil

Rejestracja: 2008-08-06, 12:38
Posty: 331
Post 
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")

_________________
Pozdr
TaTanka


2010-09-21, 15:02
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 590
Post Re: VBA w Handel Forte
A jak przenieść wartość zmiennej z SBC-a do AMbasica?
tzn. chcę wykonać RUN z parametrami

_________________
zz


2019-06-25, 15:02
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 11 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Handel 2011 forte - (VBA vs IE)

w Programowanie

stopi

0

2268

2011-08-08, 10:06

stopi Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Dostęp do aktywnego dokumentu w buforze FK Forte - VBA

w Programowanie

yacool

0

4436

2012-05-23, 13:41

yacool Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Dziwny problem z VBA Symfoni Forte 2013.1

w Programowanie

rswiecki

3

3242

2014-01-26, 18:43

aneta.g Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. FKF 2013 forte - projekty, błąd być może VBA

w Programy Księgowe

puchatek

1

2024

2013-03-20, 16:00

rafal Wyświetl najnowszy post



Kto jest online

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