Słuchajcie, całkiem zgłupiałem ze sferą w połączeniu z Delphi.
Sytuacja wygląda następująco:
Jakiś czas temu spróbowałem się z tym zmierzyć, nawet pisałem prośbę o pomoc na forum. W końcu jakoś sobie poradziłem i mam połączenie, potrafię utworzyć dokument itp. Czyli wszystko co potrzebowałem. Teraz przyszła pora aby dołączyć rozwiązanie do trochę większego mojego programu.
Oczywiście bez problemu uruchamiam program, ustawiam magazyn i biorę się za tworzenie dokumentu. Wszystko działa - albo i nie.
Przechodzę do konkretu. Tak Uruchamiam program (mam podpięty InsERT_TLB):
try
oGT := CreateOleObject('InsERT.GT');
oDodatki := CreateOleObject('InsERT.Dodatki');
except
on e: exception do
begin
Application.MessageBox(Pchar('Błąd przy próbie uruchomienia Sfery dla Subiekt GT:' + #10#13 + e.message), 'Uwaga',
mb_OK + mb_ICONERROR);
end;
end;
oGT.Produkt := 1; // 1 - Subiekt
oGT.Autentykacja := 0;
oGT.Serwer := subiekt_baza_serwer; // zmienna kierująca na serwer SQL
oGT.Uzytkownik := subiekt_baza_user; // user sql mający prawa do bazy
oGT.UzytkownikHaslo := subiekt_baza_pass; // hasło usera powyżej
oGT.Baza := subiekt_baza_baza; // nazwa bazy
oGT.operator := subiekt_program_user; // użytkownik w Subiekt mający prawa które mnie interesują
oGT.OperatorHaslo := oDodatki.Szyfruj(subiekt_program_pass); // hasło
oSubiekt := oGT.Uruchom(0, 4); // start programu. 0 - uruchom a jak jest uruchomione to użyj, 4 - uruchamiaj w tle
if not oSubiekt.Okno.Widoczne then //Aktualnie pokazuje okno, w trybie produkcyjnym będę ukrywał
oSubiekt.Okno.Widoczne := True;
oSubiekt.MagazynId := 1; // SEDNO SPRAWY
Jak widać, nie jest to zbyt skomplikowane.
Na końcu widać jak ustawiam odpowiedni magazyn i działa to bez problemu. Jednak gdy chciałbym to zrobić tak (a jest to niezbędne ponieważ program będzie tworzył dokumenty
na wielu magazynach):
var magazyn: Integer;
begin
magazyn:=2;
oSubiekt.MagazynId:=magazyn;
end;
to niestety Subiekt po uruchomieniu wyświetla okienko do ręcznego wyboru magazynu. Czyli, wie że uruchomiłem MagazynId ale nie wie jaką zmienną przekazałem.
Jest to bardzo dziwne bo w Visual Basic bez problemu działa przekazanie zmiennej jako Integer.
Oczywiście to nie koniec problemów. W czasie tworzenia dokumentu jest dokładnie to samo. Wpisanie jawnie wartości działa, poprzez zmienne już nie?
Pomoże ktoś?