mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Problem z obiektem BTowar... https://forum.mix-soft.pl/viewtopic.php?f=15&t=1421 |
Strona 1 z 2 |
Autor: | artur17 [ 2009-11-20, 10:37 ] |
Tytuł: | Problem z obiektem BTowar... |
Witam, Problem dotyczy aplikacji HMF 2008. Otóż korzystam z obiektu BTowar, aby utworzyć nową pozycję towarową w kartotece. Z dodaniem samego towaru nie mam problemu, jednak cały czas nie wychodzą mi dwie rzeczy. Mianowicie mój raport nie dodaje mi kodu obcego i katalogu dla nowo utworzonego towaru. Próbuję to realizować tak: Kod: (...) xTowar.UstawKatalog("id='zmienna_id_katalogu_z_tabeli_XT'") xTowar.UstawKodObcy("kod='id_kontrahenta' kodObcy='moj_kod_obcy'") (...) Dodam, iż gdy dla ustawienia katalogu wpiszę jako parametr "na sztywno" np. "id=65000" to wtedy program poprawnie umieszcza mi towar w wybranym katalogu, jednak chciałbym aby to była zmienna... Natomiast to dodawanie kodu obcego w żaden sposób nie idzie... :/ Proszę więc bardziej doświadczonych o pomoc :) |
Autor: | rafal [ 2009-11-20, 11:00 ] |
Tytuł: | |
Kod: xTowar.UstawKatalog((using "id=%l",zmienna_id_katalogu_z_tabeli_XT)) xTowar.UstawKodObcy((using "kod='%s' kodObcy='%s'", kod_kontrahenta_a_nie_id, moj_kod_obcy)) |
Autor: | artur17 [ 2009-11-20, 13:26 ] |
Tytuł: | |
Dziękuję za szybką odpowiedź. Co do katalogu - działa :) Natomiast jeżeli chodzi o dodanie kodu obcego, to niestety dalej bez rezultatów... Tak to póki co wygląda: Kod: xTowar.UstawKod(kod) xTowar.nazwa=nazwa xTowar.ustawtyp("0") xTowar.jm="szt" xTowar.ustawaktywny("1") xTowar.ustawrodzaj("3200") xTowar.UstawKatalog((using "id= %l",id_katalog)) xTowar.UstawKodObcy((using "kod='%s' kodObcy='%s'", kod_kontrahenta, kod_obcy)) Oczywiście zarówno pod zmienną "kod_kontrahenta" i "kod_obcy" jest przesyłana właściwa wartość string. |
Autor: | rafal [ 2009-11-20, 14:06 ] |
Tytuł: | |
może tak? Kod: xTowar.UstawKodObcy((using "kod=%s kodObcy=%s", kod_kontrahenta, kod_obcy)) |
Autor: | artur17 [ 2009-11-20, 14:51 ] |
Tytuł: | |
Hmmm... próbowałem już na różne warianty to obsłużyć... A działa w ogóle ta metoda? W dokumentacji jest tylko tyle: Cytuj: UstawKodObcy Opis metody: Metoda ustawia nowy kod obcy dla danego towaru i wskazanego kontrahenta. Opis parametru: Parametr postaci: "kod=KOD_KONTRAHENTA kodObcy=NOWY_KOD_OBCY" Warunki wywołania: Zawsze Wartość Zwracana: 0 - zakończona pomyślnie lub numer błędu Jeżeli chodzi o zwracaną wartość błędu, to jest to error: 771. |
Autor: | leonek [ 2009-11-22, 22:35 ] |
Tytuł: | |
Ostatecznie zawsze zadziała "INSERT INTO" lub "UPDATE ... SET" |
Autor: | Notos [ 2009-11-23, 14:22 ] |
Tytuł: | |
Info co się kryje w 771 sprawdzisz tak: Kod: string sErr for i = 1 to i > xFactory.komunikaty.count sErr+= using "%s %d - %s\n", iif(xFactory.komunikaty.item(i).status, "ERR", "WRN"),xFactory.komunikaty.item(i).id, xFactory.komunikaty.item(i).tresc next i message sErr |
Autor: | artur17 [ 2009-11-24, 11:12 ] |
Tytuł: | |
Udało mi się już uprać z problemem. Wyjaśnię krótko na czym on polegał: Otóż okazuje się, że ustawienie kodu obcego musi odbywać się na już zdefiniowanym i wybranym towarze. To znaczy, że metody "UstawKodObcy" nie można uruchamiać podczas tworzenia towaru, ale dopiero PO zdefiniowaniu i zapisaniu go do tabel programu. Ot co... :)) Dziękuję jeszcze raz za pomoc... |
Autor: | artur17 [ 2010-01-08, 15:02 ] |
Tytuł: | |
Chciałbym odświeżyć temat, albowiem zetknąłem się z problemem dotyczącym obiektów BTowar i BKatalogTw. Chodzi o metodę "UstawKatalog", która przy tworzeniu nowego towaru przydziela mi dany towar do już wcześniej zdefiniowanego katalogu w swojej hierarchii. Otóż na początku próbuję załadować dane do obiektu : Kod: Dispatch xKat = xFactory.NewObject("BKatalogTW") xKat.Clear() Dispatch xParams = xKat.Params() xParams.nazwa=katalog xKat.Load(xParams1) Gdzie katalog to podana pod zmienna ścieżka do katalogu docelowego zaczynająca się od znaku "\" np."\katalog1\podkatalog2" Następnie przy tworzeniu towaru wykorzystuje wspomnianą metodę "UstawKatalog": Kod: xTowar.UstawKatalog(xKat) Niestety nie daje to oczekiwanego rezultatu. Towar nie przydziela się do danego podkatalogu. Będę bardzo wdzięczny za pomoc... Próbowałem również bezskutecznie użyć metody Give w obiekcie "BKatalogTw"... |
Autor: | rafal [ 2010-01-08, 15:44 ] |
Tytuł: | |
Kod: Dispatch xKat = xFactory.NewObject("BKatalogTW") xKat.Load("nazwa='Towary'") xTw.UstawKatalog( xKat ) |
Autor: | artur17 [ 2010-01-08, 16:38 ] |
Tytuł: | |
Niestety takie rozwiązanie nie działa. Poniższy kod stanowi odrębną całość. Na jego przykładzie testuję to rozwiązanie: Kod: Dispatch xKat = xFactory.NewObject("BKatalogTW") xKat.Load("nazwa='Katalog1'") Dispatch xTowar = xFactory.NewObject("BTowar") xTowar.Clear() xTowar.Edit() xTowar.UstawKod("Towar") xTowar.nazwa="Nazwa_towaru" xTowar.ustawtyp("0") xTowar.jm="szt" xTowar.ustawaktywny("1") xTowar.UstawKatalog( xKat ) If xTowar.Save() then xTowar.Undo() message using "Utworzenie nowego towaru nie powiodło się!" error "" Endif P.S. Oczywiście w Handlu mam katalog o nazwie "Katalog1". |
Autor: | wrob [ 2010-01-08, 16:39 ] |
Tytuł: | |
Hmmm.... a moze zapisac towar do bazy a potem dodawac mu katalog??? |
Autor: | artur17 [ 2010-01-08, 16:52 ] |
Tytuł: | |
No nie bardzo... Poza tym metoda "UstawRodzaj" dla towaru działa prawidłowo (metoda użyta przed zapisaniem rekordu do bazy). Możnaby to zrobić poprzez wywołanie metody tak: Kod: xTowar.UstawKatalog((using "id= %l",id_katalog)) Wtedy owszem - działa, lecz bardzo nieefektywne jest wyszukiwanie id danego katalogu z tabli XT. |
Autor: | sqza [ 2010-01-08, 23:06 ] |
Tytuł: | |
Można to zrobić również w poniższy sposób: Kod: dispatch xParams dispatch xKatalogTW = xFactory.NewObject("BKatalogTW") dispatch xTowar = xFactory.NewObject("BTowar") xTowar.Load("kod='Towar 3'") xTowar.Edit() xKatalogTW.Load() xParams=xKatalogTW.Params() xParams.nazwa="\\test" dispatch xWybKatTw = xKatalogTW.Give(xParams) xTowar.UstawKatalog(xWybKatTw) xTowar.Save() Pytanie czy to szybsze rozwiązanie |
Autor: | artur17 [ 2010-01-11, 12:42 ] |
Tytuł: | |
Idealnie! Bardzo dziękuję za pomoc :) |
Strona 1 z 2 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |